Powerpoint - Choopan Rattanapoka

Download Report

Transcript Powerpoint - Choopan Rattanapoka

PROBLEM SOLVING
357353 – Introduction to AI
Asst. Prof. Dr. Choopan Rattanapoka
การแทนปั ญหา




ปั ญหาสว่ นใหญ่ในงานด ้านปั ญญาประดิษฐ์ มักเป็ น
่
ปั ญหาทีต
่ อ
้ งการคาตอบทีเหมาะสม
โดยปกติปัญหาทีต
่ ้องการแก ้ไขไม่ได ้อยูใ่ นรูปแบบ
ั เจนมากนัก
โครงสร ้างทีช
่ ด
ศาสตร์ทางด ้าน AI ได ้คิดค ้นเทคนิคการแปลงปั ญหา
ั เจนมากขึน
ให ้อยูใ่ นรูปแบบโครงสร ้างทีช
่ ด
้ เรียกว่า
การแทนปั ญหา (Problem Representation)
สว่ นมากจะนิยมใช ้ การแทนปั ญหาด้วยปริภูม ิ
สถานะ (State Space Representation)
การแก ้ปั ญหา



เป็ นการนาปั ญหามาวิเคราะห์เป็ นขัน
้ ตอน เพือ
่ ค ้นหา
เป้ าหมายทีต
่ ้องการ
กรณีทพ
ี่ บคาตอบมากกว่าหนึง่ วิธ ี ควรจะสามารถ
้
ค ้นหาเสนทางเพื
อ
่ ไปยังคาตอบทีด
่ ท
ี ส
ี่ ด
ุ
หลักการในการพิจารณาขัน
้ ตอนการแก ้ไขปั ญหา มี
ทัง้ หมด 4 ขัน
้ ตอน
Formulation กาหนดเป้ าหมาย
 Problem Formulation อธิบายปั ญหาให ้อยูใ
่ นรูปแบบ
มาตราฐาน well-defined problem
 Search for Solution เลือกเทคนิคการค ้นหาให ้เหมาะสม
กับปั ญหา
 Goal
Problem Formulation

การนาปั ญหามาแปลงให ้อยูใ่ นรูปมาตราฐาน Welldefined Problem ซงึ่ จะประกอบด ้วย
State กาหนดสถานะเริม
่ ต ้นของปั ญหา
 Successor Function กาหนดเซตของการกระทาทัง
้ หมด
ทีเ่ ป็ นไปได ้
 Goal State กาหนดสถานะเป้ าหมายของปั ญหา
้ ายหรือทรัพยากรทีใ่ ชทั
้ ง้ หมด
 Path Cost กาหนดค่าใชจ่
จากการกระทาแต่ละครัง้
 Initial
ตัวอย่าง : ปั ญหาหุน
่ ยนต์ทาความ
สะอาด

หุน
่ ยนต์จะทาหน ้าทีข
่ จัดสงิ่ สกปรกโดยการดูด (Suck)
ด ้วยอุปกรณ์ทาความสะอาดของหุน
่ ยนต์ โดย
กาหนดให ้มีห ้องทีต
่ ้องทาความสะอาด 2 ห ้อง
้
หุน
่ ยนต์สามารถเคลือ
่ นทีไ่ ปห ้อง ซาย(Left)
และ ขวา
้
(Right) ได ้ กาหนดให
้หุน
่ ยนต์เริม
่ ต ้นอยูท
่ ห
ี่ ้องซาย
Initial State
้
าหนดให ้หุน
่ ่ ยนต์อยูฝ
่ ั่ งซาย
และ ทัง้ สองห ้องมีสงิ่ กสกปรกอยู
Successor Function
หุน
่ ยนต์สามารถ {Left, Right, Suck}
Goal State
ห ้องทัง้ 2 ห ้องต ้องสะอาด
Path Cost
การกระทาแต่ละครัง้ กาหนดให ้เป็ น 1
ตัวอย่าง : ปั ญหาเกม 8-Puzzle
เกม 8-Puzzle ประกอบด ้วยแผ่นกระดาน 3 x 3 โดย
บรรจุแผ่นป้ ายขนาด 1 x 1 ทัง้ หมด 8 แผ่น โดยแต่
ละแผ่นป้ ายมีหมายเลขกากับทีไ่ ม่ซา้ กันตัง้ แต่ 1 ถึง
8
Initial State
3 2 6
สถานะเริม
่ ต ้นดังรูป (1)
(1) 5 7
Successor Function
8 4 1

1 2 3
(2) 4 5 6
7 8
่ งว่างสามารถ {Up, Down, Left, Right}
ชอ
Goal State
สถานะเป้ าหมายดังรูป (2)
Path Cost
การกระทาแต่ละครัง้ กาหนดให ้เป็ น 1
ตัวอย่าง : ปั ญหา 8-Queen (1)

วิธก
ี ารเล่น ผู ้เล่นต ้องวางตัว Queen ลงบนตาแหน่ง
ของกระดานหมากรุกทีม
่ ข
ี นาด 8 x 8 โดยไม่ให ้
Queen แต่ละตัวโจมตีกน
ั ได ้
Q
Q
Q
Q
Q
Q
Q
Q
Q
Initial State
ไม่ม ี Queen อยูบ
่ นกระดาน
Successor Function
เพิม
่ Queen ลงบนกระดานทีละตัว
Goal State
วาง Queen ได ้ 8 ตัวโดยไม่โจมตีกน
ั
เลย
Path Cost
ไม่มค
ี า่ ใชจ่้ ายในการเคลือ
่ นที่
ตัวอย่าง : ปั ญหา 8-Queen (1)




่ ง การ
แต่เนือ
่ งจาก ตารางหมากรุกมีทงั ้ หมด 64 ชอ
วางของตัว Queen 8 ตัวจะสามารถทาได ้ทัง้ หมด
64 * 63 * 62 * … * 57 ~ 1.8 x 1014 วิธ ี
ั ซอนมากในการค
้
ทาให ้เป็ นปั ญหาทีซ
่ บ
้นหาคาตอบ
ดังนัน
้ ควรจะปรับปรุง Successor Function ใหม่โดยให ้
้
ลง Queen ทีล
่ ะ 1 หลัก ไล่ไปจากซายไปขวา
Successor Function : เพิม
่ จานวน Queen ทีละตัวบน
่ งว่างโดยเริม
้ ด
ตาแหน่งชอ
่ จากหลัก ตัง้ แต่ฝั่งซายสุ
ไปขวา โดย Queen ทีว่ างจะต ้องไม่โจมตีกบ
ั ตัวทีว่ าง
มาก่อนหน ้าแล ้ว
ปริภม
ู ส
ิ ถานะ (State Space
Representation)

สว่ นประกอบหลักของปั ญหา (Problem formulation)
 Initial
State
 Successor Functions
 Goal State


หากนาสว่ นหลักทัง้ 3 มาแสดงในรูปแบบของ
แผนภาพ จะทาให ้เห็นการเปลีย
่ นแปลงของสถานะ
้
ต่างๆ และแสดงเสนทางการแก
้ปั ญหาทีน
่ าไปสู่
เป้ าหมายได ้หลากหลายแนวทาง เพือ
่ ทีจ
่ ะค ้นหาวิธท
ี ี่
ดีทส
ี่ ด
ุ
การแทนปั ญหาด ้วยแผนภาพเรียกว่า “การแทนด้วย
ปริภูมส
ิ ถานะ (State Space Representation)”
้
การใชงานปริ
ภม
ู ส
ิ ถานะ
ปริภม
ู ส
ิ ถานะจะนาเสนอในรูปแบบของกราฟ (Graph)
Edge : เป็ นตัว
สถานะ
A
เริม
่ ต ้น
แสดงการ
เปลีย
่ นจาก
Node : ทา
สถานะหนึง่ ไป
หน ้าทีแ
่ ทน
ยังอีกสถานะ
Z
B
สถานะ
หนึง่ ทีเ่ กิดจาก
การกระทาใน
set ของ
C
สถานะ
Successor
เป้ าหมาย
Function

ปริภม
ู ส
ิ ถานะ : หุน
่ ยนต์ทาความ
สะอาด
Initial state : หุน
่ ยนต์อยูท
่ ห
ี่ ้องฝั่ ง
Successor
Functions: (L)eft, (R)ight, (S)uck
้
ซาย
R
L
L
S
R
R
L
S
R
L
S
L
S
R
L
S
L
R
S
R
R
S
L
S
Goal
State
้
เสนทางไปสู
เ่ ป้ าหมาย: หุน
่ ยนต์ทา
ความสะอาด
R
L
L
S
R
R
L
S
R
L
S
L
S
R
L
S
L
R
S
R
L
S
้
เสนทางที
ด
่ ท
ี ส
ี่ ด
ุ : S, R, S
R
S
ปั ญหา 8-Puzzle

กาหนดสถานะเริม
่ ต ้น และ สถานะเป้ าหมายดังนี้
5
2
1
5
2
1
8
4
7
8
4
7
6
3
6
(a) สถานะ
เริม
่ ต ้น
3
(b) สถานะ
เป้ าหมาย
Successor Function : U, D, L, R
ปริภม
ู ส
ิ ถานะ : 8-Puzzle
U
D
1
U
D
7
5
2
1
8
4
7
6
3
2
5
8
4
1
8
4
6
3
7
6
3
R
5
2
1
7
8
4
8
6
3
7
1
5
2
7
8
4
6
R
5
1
R
Initial state
3
5
2
4
6
3
2
Goal State
1
5
2
7
8
4
6
3
้
เสนทางไปสู
เ่ ป้ าหมาย : 8-Puzzle
U
D
1
U
D
7
5
2
1
8
4
7
6
3
2
5
8
4
1
8
4
6
3
7
6
3
R
5
2
1
7
8
4
8
6
3
7
1
5
2
7
8
4
6
R
5
1
R
Initial state
3
5
2
4
6
3
2
Goal State
1
5
2
7
8
4
6
3
BLIND SEARCH TECHNIQUES
Choopan Rattanapoka
357353 – Introduction to AI
เทคนิคการค ้นหา


้
จาก ปริภม
ู ส
ิ ถานะ เราสามารถหาเสนทางจาก
สถานะ
เริม
่ ต ้น ไปยัง สถานะเป้ าหมาย ได ้ โดยใช ้ เทคนิ คการ
ค้นหา (Search)
เทคนิคการค ้นหา สามารถแบ่งออกเป็ น 3 ประเภท
ใหญ่ๆ
Blind Search (Uninformed Search)
 Heuristic Search (Informed Search)
 Adversarial Search


ิ ธิภาพของการค ้นหา
เทคนิคการค ้นหา มีการวัดประสท
คือ
Completeness สามารถรับรองการค ้นพบคาตอบ
้
 Optimality สามารถรับรองการค ้นหาเสนทางที
ด
่ ท
ี ส
ี่ ด
ุ
้
 Time Complexity ระยะเวลาทีใ
่ ชในการค
้นหา
 Space Complexity พืน
้ ทีห
่ น่วยความจาทีใ่ ชค้ ้นหา

Blind Search

บางครัง้ เรียก Uninformed Search เป็ นเทคนิคการ
้
ค ้นหาทีไ่ ม่มข
ี ้อมูลมาใชในการพิ
จารณา จึงทาให ้
่ าตอบได ้
ยากต่อการนาไปสูค
 Breadth-First
Search (BFS)
 Depth-First Search (DFS)
A
B
C
D
H
E
I
J
F
K
L
G
M N
O
Breadth-First Search (BFS)

้
เป็ นวิธก
ี ารค ้นหาในแนวกว ้าง (Breadth) จะค ้นหาทีละโหนดจากซายไปขวาที
ละระดับของต ้นไม ้ (level) วนซ้าไปเรือ
่ ยๆจนกระทัง้ พบโหนดเป้ าหมาย
ั หลักการของ queue)
(อาศย
begin
open := [start];
close := [ ] ;
while open ≠ [ ] do
begin
remove leftmost state from open, call it X;
if X is a goal then return SUCCESS
else begin
generate children of X;
put X on close;
discard children of X if already on open or closed
put remaining children on right end of open
end
end
return FAIL
end
Breadth-First Search (BFS)

ค ้นหา E
A
B
C
D
H
E
I
J
F
K
L
G
M N
O
Open : [ A ] , Close : [ ]
Open : [B C], Close : [ A ]
Open : [C D E], Close : [B A]
Open : [D E F G], Close : [C B A]
Open : [E F G H I], Close : [D C B A]
Found node E
begin
open := [start];
close := [ ] ;
while open ≠ [ ] do
begin
remove leftmost state from open, call it X;
if X is a goal then return SUCCESS
else begin
if X is not already on open or closed;
put X on close;
generate children of X;
put children on right end of open
end
end
return FAIL
end
Breath-First Search (BFS)
การตัวอย่างโปรแกรมข ้างต ้น จะเห็นได ้ว่า ถึงแม ้จะ
หาเป้ าหมายเจอ
้
แต่ก็ไม่มต
ี วั บอกเสนทางที
จ
่ ะเดินไปสูเ่ ป้ าหมาย
 สามารถประยุกต์ได ้โดยการเก็บข ้อมูลเกีย
่ วกับโหนด
แม่ด ้วย ในรูป
Open : [ (A, nil) ] , Close : [ ]
A
Open : [(B, A) (C, A)], Close : [ (A, nil) ]
 (node, parent node)
Open : [(C,A) (D, B) (E,B)], Close : [(B, A) (A,nil)]
B
C
Open : [(D,B) (E,B) (F,C) (G,C)], Close : [(C,A) (B,A) (A,nil)]
D
E
F
G Open : [(E,B) (F,C) (G,C) (H,D) (I,D)],
Close : [(D, B) (C,A) (B, A), (A, nil)]
H I J K L MN O

Found node E : A  B  E
Breadth-First Search (BFS)

Completeness สามารถรับรองการค ้นพบคาตอบ
 (Yes)

้
Optimality สามารถรับรองการค ้นหาเสนทางที
ด
่ ี
ทีส
่ ด
ุ
 (Yes)

รับรองการค ้นพบคาตอบ
้
สามารถรับรองการค ้นหาเสนทางที
ด
่ ท
ี ส
ี่ ด
ุ
้
Time Complexity ระยะเวลาทีใ่ ชในการค
้นหา
b = จานวนกิง่ ของโหนด, d = ความลึกของ
ต ้นไม ้ในระดับทีห
่ า
 O(bd)

Space Complexity พืน
้ ทีห
่ น่วยความจาทีใ่ ชค้ ้นหา
 O(bd)
Depth-First Search (DFS)

เป็ นวิธก
ี ารค ้นหาในแนวลึก (Depth) จะค ้นหาทีละโหนดจากบนลงล่าง หาก
้ อน (อาศย
ั
ไม่พบเป้ าหมาย จะลงไปพิจารณาโหลดลูกทีอ
่ ยูด
่ ้านซายก่
หลักการของ stack)
begin
open := [start];
close := [ ] ;
while open ≠ [ ] do
begin
remove leftmost state from open, call it X;
if X is a goal then return SUCCESS
else begin
if X is not already on open or closed;
put X on close;
generate children of X;
put children on left end of open
end
end
return FAIL
end
Depth-First Search (DFS)

ค ้นหา E
A
B
C
D
H
E
I
J
F
K
L
G
M N
Open : [ A ] , Close : [ ]
Open : [B C], Close : [ A ]
Open : [D E C ], Close : [B A]
Open : [H I E C ], Close : [D B A]
Open : [I E C ], Close : [H D B A]
Open : [E C], Close: [I H D B A]
Found node E
O
begin
open := [start];
close := [ ] ;
while open ≠ [ ] do
begin
remove leftmost state from open, call it X;
if X is a goal then return SUCCESS
else begin
if X is not already on open or closed;
put X on close;
generate children of X;
put children on left end of open
end
end
return FAIL
end
Depth-First Search (DFS)
การตัวอย่างโปรแกรมข ้างต ้น จะเห็นได ้ว่า ถึงแม ้จะ
หาเป้ าหมายเจอ
้
แต่ก็ไม่มต
ี วั บอกเสนทางที
จ
่ ะเดินไปสูเ่ ป้ าหมาย
 สามารถประยุกต์ได ้โดยการเก็บข ้อมูลเกีย
่ วกับโหนด
แม่ด ้วย ในรูป
Open : [ (A, nil) ] , Close : [ ]
A
Open : [(B, A) (C, A)], Close : [ (A, nil) ]
 (node, parent node)
Open : [(D, B) (E,B) (C,A)], Close : [(B, A) (A,nil)]
B
C
Open : [(H, D) (I, D) (E,B) (C,A)], Close : [(D, B) (B,A) (A,nil)]
D
E
F
G Open : [(I, D) (E,B) (C,A)]
Close : [(H, D) (D, B) (B, A) (A, nil)]
H I J K L M N O Open : [(E,B) (C,A)]

Close : [(I, D) (H, D) (D, B) (B, A) (A, nil)]
Found node E : A  B  E
Depth-First Search (DFS)

Completeness สามารถรับรองการค ้นพบคาตอบ
 (NO)ไม่รับรองการค ้นพบคาตอบ

้
Optimality สามารถรับรองการค ้นหาเสนทางที
ด
่ ี
ทีส
่ ด
ุ
้
 (NO)สามารถรับรองการค ้นหาเสนทางที
ด
่ ท
ี ส
ี่ ด
ุ

้
Time Complexity ระยะเวลาทีใ่ ชในการค
้นหา
b = จานวนกิง่ เฉลีย
่ ของโหนด, m = ความลึก
มากสุดของต ้นไม ้
 O(bm)

Space Complexity พืน
้ ทีห
่ น่วยความจาทีใ่ ชค้ ้นหา
 O(bm)
สรุป BFS VS DFS
วิธก
ี ารค้นหา
Completeness
Optimality
Time
Complexity
Space
Complexity
Breath-First Search YES
YES
O(bd)
O(bd)
Depth-First Search
NO
O(bm)
O(bm)
NO
ตัวอย่าง
ถ ้าในกราฟทีต
่ ้องการค ้นหา แต่ละโหลดมีกงิ่ เฉลีย
่ อยูท
่ ี่
3 กิง่ มีความลึกของกราฟอยูท
่ ี่ 5 ระดับ
• BFS  35
= 243
• DFS  3 * 5 = 15
แบบฝึ กหัด

จาก graph ต่อไปนีจ
้ งแสดงวิธก
ี ารหาโหนดเป้ าหมาย
G จากโหนดเริม
่ ต ้น A ด ้วยวิธ ี BFS และ DFS
 แต่ละขัน
้ ตอน
ให ้ระบุหมายเลขขัน
้ ตอน, ค่าใน open,
และ ค่าใน close
 ให ้การเก็บข ้อมูลรวมข ้อมูลเกีย
่ วกับ node แม่ด ้วย และ
A
้
บอกเสนทางที
ด
่ ท
ี ส
ี่ ด
ุ ในการไปถึ
งเป้ าหมาย
C
B
F
E
H
D
G
I
J
K
Depth-Limited Search (DLS)


ั ซอน
้
การค ้นหาแบบ depth-first search บนปริภม
ู ท
ิ ซ
ี่ บ
หรือเป็ นลูป อาจทาให ้การค ้นหาหลงทางแล ้วหา
คาตอบไม่ได ้
ั ้ ทีจ
Depth-limit search เพิม
่ การระบุจานวนชน
่ ะลงลึก
ไปในการค
A Level 0
ตัวอย่าง 1 :้นหา
ถ ้าต ้องการหา F โดย
กาหนดลิมต
ิ ในการ
คว้นหาเป็
ตั
อย่างน2 2:
ถ ้าต ้องการหา J โดย
กาหนดลิมต
ิ ในการ
ค ้นหาเป็ น 2
C Level 1
B
D
H
E
I
J
G Level 2
F
K
L
M N
O Level 3
Depth-Limited Search (DLS)

Completeness สามารถรับรองการค ้นพบคาตอบ
 (NO)

้
Optimality สามารถรับรองการค ้นหาเสนทางที
ด
่ ี
ทีส
่ ด
ุ
 (NO)

ไม่รับรองการค ้นพบคาตอบ
้
ไม่รับรองการค ้นหาเสนทางที
ด
่ ท
ี ส
ี่ ด
ุ
้
Time Complexity ระยะเวลาทีใ่ ชในการค
้นหา
b = จานวนกิง่ ของโหนด, l = ระดับลิมต
ิ ที่
กาหนดไว ้
 O(bl)

Space Complexity พืน
้ ทีห
่ น่วยความจาทีใ่ ชค้ ้นหา
 O(bl)
Iterative Deepening Search (IDS)



ื่ หนึง่ คือ Iterative Deepening Depth-First
อีกชอ
Search
เป็ นวิธก
ี ารค ้นหาทีพ
่ ัฒนามาจาก Depth-Limited
ิ ธิภาพมากขึน
Search ให ้มีประสท
้
จะมีการเพิม
่ ลาดับลิมต
ิ ให ้กับ Depth-Limited search
โดยอัตโนมัตท
ิ จ
ี่ ะ 1 ระดับ
Level 0
A
ตัวอย่าง:ถ ้า
ต ้องการหา J
Level 1
B
C
Limit = 02
3
1
Level 2
D
E
F
G
Level 3 H
I
J
K
L
M N
O
Iterative Deepening Search (IDS)

Completeness สามารถรับรองการค ้นพบคาตอบ
 (YES)

้
Optimality สามารถรับรองการค ้นหาเสนทางที
ด
่ ี
ทีส
่ ด
ุ
 (YES)

รับรองการค ้นพบคาตอบ
้
รับรองการค ้นหาเสนทางที
ด
่ ท
ี ส
ี่ ด
ุ
้
Time Complexity ระยะเวลาทีใ่ ชในการค
้นหา
b = จานวนกิง่ ของโหนด, d = ระดับความลึกที่
ค ้นหาขณะนัน
้
 O(bd)

Space Complexity พืน
้ ทีห
่ น่วยความจาทีใ่ ชค้ ้นหา
 O(bd)
ตัวอย่างการค ้นหา : 8-puzzle
Initial state
Goal state
ตัวอย่างการค ้นหา : 8-puzzle (BFS)
Initial state
1
Goal state
2
5
3
6
4
ตัวอย่างการค ้นหา : 8-puzzle (DFS)
1
Initial state
Goal state
2
3
4
5
ตัวอย่างการค ้นหา : 8-puzzle (DLS) limit
=3
1
Initial state
Goal state
2
3
4
6
7
5
ตัวอย่างการค ้นหา : 8-puzzle (IDS)
10
Limit = 2
Initial state
1
Goal state
2
3
3
4
5
4
สรุปวิธก
ี ารค ้นหาแบบต่างๆ (Blind
search)
วิธก
ี ารค้นหา
Completeness Optimality
Time
Complexity
Space
Complexity
Breath-First Search
YES
YES
O(bd)
O(bd)
Depth-First Search
NO
NO
O(bm)
O(bm)
Depth-Limited Search
NO
NO
O(bl)
O(bl)
Iterative Deepening Search
YES
YES
O(bd)
O(bd)




b จานวนกิง่ เฉลีย
่ ของแต่ละ
โหนด
d ระดับความลึกทีค
่ ้นหา
ระดับนัน
้
ั ้ ทีล
l จานวนชน
่ ม
ิ ต
ิ เอาไว ้
m ความลึกสูงสุดของกราฟ
แบบฝึ กหัด


กาหนดให ้มีกล่อง 3 กล่อง A, B, C สถานะเริม
่ ต ้นแสดง
ดังรูป (a)
ผู ้เล่นจะต ้องหยิบกล่องเพือ
่ นาไปวาง
บนตาแหน่งต่างๆ บนโต๊ะ หรือ
 วางทับบนกล่องอืน
่




การหยิบสามารถหยิบได ้ทีละกล่อง
้
ไม่อนุญาตให ้หยิบกล่องอืน
่ ทีถ
่ ก
ู ซอนทั
บอยู่
กาหนดให ้เป้ าหมายของปั ญหาแสดงดังรูป (b)
A
B
A B C
C
(a)
(b)
Problem formulation



Initial state : กล่องอยูใ่ นรูปแบบตามรูป (a)
Goal state : กล่องอยูใ่ นรูปแบบตามรูป (b)
Successor Functions : {









1 วางกล่อง
2 วางกล่อง
3 วางกล่อง
4 วางกล่อง
5 วางกล่อง
6 วางกล่อง
7 วางกล่อง
8 วางกล่อง
9 วางกล่อง
A บนโต๊ะ
A บนกล่อง B
A บนกล่อง C
B บนโต๊ะ
B บนกล่อง A
B บนกล่อง C
C บนโต๊ะ
C บนกล่อง A
C บนกล่อง B
}


Path Cost : การเคลือ
่ นทีก
่ ล่องแต่ละครัง้ นั บ 1
จงเขียน ปริภม
ู ส
ิ ถานะ ของปั ญหานี้ พร ้อมทัง้ กาหนดตัวเลขประจาโหนด จงแสดง
วิธก
ี ารค ้นหาโดยใช ้ open, close พร ้อมทัง้ ข ้อมูลของโหนดแม่ ด ้วยวิธ ี BFS และ DFS