Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

최고의 첫 번째 검색(Informed Search)

<시간/>

최상의 우선 탐색은 가장 유망한 노드를 확인하여 다음에 방문할 노드를 결정한 후 확인하는 순회 기법입니다. 이를 위해 평가 함수를 사용하여 순회를 결정합니다.

트리 탐색의 이 최고의 첫 번째 검색 기술은 발견적 검색 또는 정보에 입각한 검색 기술의 범주에 속합니다.

노드 비용은 우선 순위 대기열에 저장됩니다. 따라서 최적 우선 탐색의 구현은 너비 우선 탐색의 구현과 동일합니다. BFS에 대한 대기열을 사용하는 것처럼 우선순위 대기열을 사용합니다.

Best First Search 구현 알고리즘

Step 1 : Create a priorityQueue pqueue.
Step 2 : insert ‘start’ in pqueue : pqueue.insert(start)
Step 3 : delete all elements of pqueue one by one.
   Step 3.1 : if, the element is goal . Exit.
   Step 3.2 : else, traverse neighbours and mark the node examined.
Step 4 : End.

이 알고리즘은 대기열에서 가장 짧은 경로를 먼저 탐색합니다. 최악의 시나리오에서 알고리즘은 O(n*logn)을 취합니다. 시간.