2013-05-24 2 views
0

그래프에서 두 점 사이의 최단 경로를 찾고 한 검사 점을 방문해야합니다. 또한 각 꼭지점을 한 번만 방문 할 수 있습니다. 네트워크 흐름과 관련이 있다고 생각하지만 구현 방법을 모릅니다.세 점 사이의 최단 경로

+0

A * 알고리즘을 확인하십시오. –

+0

죄송합니다. http://en.wikipedia.org/wiki/A*_search_algorithm 링크 만 더 제공 할 수 있습니다. 여기에서 구현 예를 찾을 수 있습니다. –

+0

고맙습니다.하지만 체크 포인트에 대해서는 아무 것도 없습니다. 시작과 검사 점 사이의 최단 경로를 찾으면 끝까지 내 길을 막을 수도 있습니다. – Kamgar

답변

0

용량이있는 다목적 최소 비용 흐름 문제로 완전히 모델링 할 수 있습니다. 꼭지점을 두 번 사용하지 않고 C를 통해 A에서 B로 이동하려고합니다. A에서 C (상품 1)와 B에서 C (상품 2) 사이의 흐름으로 모델링 할 수 있습니다. 노드가 두 번 사용되는 것을 피하려면 모델의 모든 노드에서 다음 트릭을 수행해야합니다.

p 개의 수신 및 t 개의 송신 에지가있는 노드 X가있는 경우 새 노드 Y를 만들고 모래밭. p 수신 링크는 모두 X에 도착하고, q 송신 에지는 모두 Y에서 출발합니다. X에서 Y까지 단 하나의 링크 (L) 만 추가합니다. L 링크의 용량을 1로 설정하면 각 노드가 사용됩니다 일단.

그러면 (M) ILP로 기록하고 해결할 수 있습니다. ILP는 올바른 솔루션을 제공합니다. 응용 프로그램에 따라 과도 할 수도 있습니다. 빠른 경험적 발견을 원한다면 2 개의 A * 검색을 사용하고 중복되지 않기를 바랍니다.