위상 정렬을 사용하여 O (V + E)에서 수행 할 수 있음을 알고 있습니다. 그러나 BFS를 사용하여 동일한 복잡성으로도 수행 할 수 있다고 생각합니다.가중 된 비순환 그래프에서 소스 노드에서 다른 모든 노드까지의 최단 경로를 찾기 위해 BFS를 (가장 최적의 방법으로) 사용할 수 있습니까?
답변
토폴로지 정렬은 하나의 DFS 실행을 제외하고는 아무 것도 아닙니다. 그런 다음 각 정점이 완료되면 링크 된 목록의 맨 위에 놓습니다. 실행 시간은 O (V + E)입니다. 전에 말했듯이 "BFS를 사용하여 토폴로지를 정렬 할 수 있습니까?"라는 질문은 자연스러운 것 같습니다. 이것은 이미 묻고 대답했습니다.
만약 당신이 의미하는 것이 단순한 BFS라면, 나는 아니오라고 말할 것입니다. 이것 좀 봐 example. 토폴로지 정렬은 모든 정점의 선형 순서이므로 그래프 G에 모서리 (u, v)가 있으면 u가 순서 지정 전에 v 앞에 나타납니다. 이 예제에서 c에서 d까지의 가장자리가 있지만 c 앞에는 d가 나타납니다. 토폴로지 종류를 찾기 위해 BFS를 업데이트 할 수 있다고 생각하지만 다시 DFS를 실행하는 것과 동일한 복잡성이 있습니다. 이 게시물을 보길 권합니다. Using BFS for topological sort
얼마 동안 토폴로지 정렬을 잊어 버리자. 소스 노드 s에서 시작하여 DAG에 대한 너비 우선 탐색을 사용하면 거리 배열을 유지하고 (무한대로 초기화 됨) O (V + E) 시간에 다른 모든 노드까지의 최단 거리를 찾을 수 있습니다. 노드에 대해 현재 저장된 값보다 작은 값을 얻습니다. 그래서 원래의 질문으로 돌아가서 DAG의 노드를 통과하는 최단 경로를 찾기 위해 토폴로지 순서를 사용하는 것과 같은 복잡성에 대한 접근 방식이 아닙니까? –
- 1. 가중 그래프의 노드에서 다른 모든 노드까지의 거리 찾기
- 2. 유향 비순환 가중 그래프에서 최상위 3 개의 최장 경로 찾기
- 3. 가중 그래프에서 에지 찾기
- 4. 가중 된 무향 그래프에서 특정 길이의 모든 경로 찾기
- 5. BFS를 사용하여 최단 경로 찾기
- 6. 가중 노드 그래프에서 최적의 경로를 찾아 정점 방법
- 7. 모든 노드에서 그래프의 특정 노드까지의 최단 경로 비용
- 8. 방향성이있는 비순환 그래프에서 '5'가장 중요한 경로를 찾는 방법은 무엇입니까?
- 9. networkx 가중 그래프의 모든 최단 경로?
- 10. Neo4j 모든 노드에서 필터가있는 최단 경로 찾기
- 11. 그래프에서 노드 간 최단 거리 찾기
- 12. 모든 최단 경로 열거
- 13. 소스 노드에서 목적지 노드까지의 모든 가능한 경로의 비용/거리
- 14. 스택을 사용한 가중 그래프의 최단 경로 찾기
- 15. bfs를 사용하는 모든 버텍스 간의 최단 경로
- 16. 주어진 노드에서 다른 노드로 경로 찾기
- 17. 직접 그래프에서 두 번째 최단 경로 찾기
- 18. BFS를 사용하여 2 노드 사이의 최단 경로를 찾으십시오.
- 19. 가장 심층적 인 노드에서 가장 얕은 노드까지의 복잡도가 가장 낮은 재귀를 위해 최적화 된 데이터 구조?
- 20. BFS를 사용하는 최단 거리
- 21. OGDF 라이브러리를 사용하여 비순환 방향 그래프에서 가장 긴 경로를 찾는 방법은 무엇입니까?
- 22. 그래프에서 단일 소스에서 단일 대상까지의 최단 경로
- 23. Dijkstra : 유향 그래프에서 최단 경로 찾기
- 24. 그래프에서 '긴'단순한 비순환 경로를 모두 찾는 방법은 무엇입니까?
- 25. 암시 적 그래프에서 최단 경로를 찾는 연결 검사의 수 최소화하기
- 26. bfs를 사용하여 비중구 그래프에 multisource 최단 경로를 구현하는 방법은 무엇입니까?
- 27. 가중 그래프를 통한 최단 경로
- 28. 방향성이있는 비순환 그래프의 최단 경로
- 29. 그래프에서 최소 용량이 최대 인 경로 찾기
- 30. 그래프에서 경로가 아닌 최단 경로
(가장 최적의 방법으로) 무엇을 의미합니까? 만약 당신이 의미하는 것이 복잡하다면 그렇습니다. 토폴로지 종류는 O (V + E)의 복잡성을 갖는 DFS의 적용입니다. "BFS를 사용하여 토폴로지를 정렬 할 수 있습니까?"라는 질문은 더 자연스러운 것 같습니다. 이 질문은 이미 질문되었습니다. – Abdulhakeem
나는 토폴로지 순서로 노드를 방문하는 대신 BFS를 사용할 수 있다는 것을 의미했습니다. –