Basic Search Method: Bidirectional Search
|
양쪽에서 부터 찾는 방식에 대한 설명 |
|---|
|
Bidirection search, 즉, 두개의 방항에서 검색하는 방식은 처음인 시작과 마지막
인 목표 에서 부터 한단계식 움직여서 같이 만나는 장소에서 멈추는 검색
방식입니다. 이 검색은 시작과 목표를 아는 상태에서 검색을 시작 하는 것입니다.
이 검색방식은 검색하는 가지수(braching factor)를 줄임으로써 시간과 공간을 Breadth-First
에 비해 많이 줄일수 있습니다. 예를 들면 가지수(branching factor)가 10이고 깊이(depth)
가 6인 Breadth-First를 검색할려면 총 1,111,111 를 검색해야 됩니다.
Breadth-First는 bd라는 형식으로 100 + 101 + 102 +
103 + 104 + 105 + 106 = 1,111,111
의 가지수가 있습니다. 그러나 Bidirection 검색을 이용하면 아까의 Breadth-First로한
검색을 깊이의 반을 2개로 나누기 때문에 총 2,222 가지를 검색합니다. 2bd/2
이므로 100 + 101 + 102 + 103 = 1,111 *
2(양쪽에서) = 2,222.
|
|
그림의 예제 |
|---|
|
|
|
이 그림은 Breadth-First방식의 검색으로 퍼져가고 있습니다. 시작(Start)과 목적(Goal)이 있지요. 시작과 목적이 이어지면 성공한 것입니다. 지금 그림은 이어질것 같은 상태를 보여줌으로써 성공가까이에 있습니다. |
|
|
|
사용할수 있는 예를 들어보겠습니다. 시작(Star State)에서 목적(Goal State) 로 가는 방식을 찾을수 있는 검색으로 사용되어서 쓰여질수 있습니다. 목적 을 달성하기 위해서는 여러가지 방법이 있는데, 여기에 쓰이는 다른 검색 방식들 Heuristic Functions 도 고려하는 것도 필요할 것 입니다. |
|
여기에 대한 예제는 없습니다. 죄송합니다. |
|---|
|
다른 검색 방법들과 비교 | ||||||
|---|---|---|---|---|---|---|
|
Criterion |
Breadth-First |
Uniform-Cost |
Depth First |
Depth-Limited |
Iterative Deepening |
Bidirectional |
|
Time(시간)
|
bd
|
bd
|
bm
|
bl
|
bd
|
bd/2
|
|
여기서의 b는 나누어지는 가지 수. (branching factor)
|
||||||
이 자료는 Artificial Intelligence, A Modern Approach에서 공부한 내용중의
하나를 한글로 쓴것입니다. 참고로 figure 3.17 그림은 책 81쪽에서 복사한
내용입니다. figure 4.7 그림은 책 101에서 복사한 내용입니다.
여기에 대한 질문이 있으시면
kee@unforgettable.com 으로 메일주시면 답변드리겠습니다.