2013-10-23 4 views
1

나는 이제 BFS를 사용하여 A에서 B로 최단 경로를 찾을 수 있습니까 방법이bfs를 사용하여 비중구 그래프에 multisource 최단 경로를 구현하는 방법은 무엇입니까?

000000000 
0AAA00000 
0AA000000 
0AAA00000 
000000000 
000000000 
000000B00 
00000BBB0 
00000BBBB 

같은 그리드가? A와 A 사이의 이동 비용은 0이고 A-0 또는 0-B 또는 0-0은 하나입니다. 각 A에 bfs를 개별적으로 적용 해 보았습니다. 하지만 그건 효과가없는 것 같습니다. 다른 방법이 있습니까?

+0

'A'부터 시작할 수 있습니까? – svs

+0

지금까지 무엇을 했습니까? – rendon

+0

각 'A'부터 시작하는 Dijkstra 알고리즘을 사용해보십시오. 알고리즘을 구현하는 데 문제가 있다면 다시 찾아 오십시오. – rendon

답변

4

BFS는 괜찮습니다. 먼저 그리드에서 A의 모든 위치로 큐를 초기화합니다. 그리고 매번 대기열 앞쪽에 위치를 표시하고 동시에 1 단계로 도달 할 수 있고 아직 방문하지 않은 모든 위치를 누릅니다. 처음 B를 방문하면 A에서 B까지 최단 경로를 얻게됩니다.

관련 문제