undirected, unweighted 그래프의 경우 평균 최단 경로 길이를 계산하는 알고리즘의 시간 복잡도와 그래프의 직경을 계산하는 알고리즘의 복잡성, 즉 두 개 사이의 가장 긴 최단 경로 정점?그래프의 평균 최단 경로 길이 및 직경 알고리즘의 시간 복잡도에 차이가 있습니까?
3
A
답변
2
Wikipedia에 따르면 그래프의 직경을 계산하려면 먼저 모든 쌍의 최단 경로를 찾아야합니다. 모든 쌍 최단 경로를 계산 한 후에 두 알고리즘 모두 O (V^2) 계산으로 축소되므로 계산 복잡도는 동일합니다.
0
아니요 둘 사이의 시간 복잡도에 차이가 없어야합니다.
가장 짧은 경로 인 algo를 조정하여 두 꼭지점 간의 가장 긴 경로를 찾을 수 있습니다.
1
나는이 주제에 관한 많은 문헌을 읽지 않았지만 나는 둘이 동일하다고 생각한다. 그러나 불일치가 있다면, 그래프의 직경을 계산하는 것이 점근적으로 빠를 것이라고 말할 수 있습니다.
내 알고리즘은 모두 V*(E+V*log(V))
에서 실행되는 Dijkstra 알고리즘을 사용하여 모든 쌍 최단 경로를 계산하는 것입니다. 그런 다음이 모든 값에 대해 산술 평균을 취합니다. 나는 당신이 이것을 빠르게 할 수있는 방법을 보지 못합니다.
그러나 그래프의 직경을 계산할 때이 프로세스의 속도를 높이는 데 사용할 수있는 영리한 트릭이있을 수 있습니다. 그러나 상한선으로, 모든 쌍의 최단 경로를 통해 상향 점을 취하면 지름을 구할 수 있습니다.이 평균 직경은 평균 최단 경로 계산과 동일한 런타임 복잡성이 있습니다.
관련 문제
- 1. 색이있는 가장자리 그래프의 최단 경로
- 2. 평균 시간 차이가 MySQL에
- 3. JUNG API에서 최단 경로 알고리즘의 성능
- 4. 모든 경로와 그래프의 최단 경로 검색 - 프롤로그
- 5. Bellman-Ford 최단 경로 알고리즘의 성능
- 6. 재귀 알고리즘의 복잡도에 대한 정보
- 7. 선형 검색 알고리즘의 평균 사례 실행 시간
- 8. 시간 복잡도에 대한 최상의, 최악의 및 평균 사례를 계산하는 방법은 무엇입니까?
- 9. 시간 복잡도에 대한 알고리즘 분석
- 10. 비순환 방향없는 연결이 끊어진 그래프의 단일 최단 경로
- 11. 순환 그래프를 최단 경로 부분 그래프의 최소 수로 분해하십시오.
- 12. 그래프의 모든 노드 쌍에서 모든 최단 경로 찾기
- 13. 수축 알고리즘의 길이 값
- 14. 실행 시간 차이가 있습니까?
- 15. 가중치가없는 최단 경로
- 16. Dag의 최단 경로
- 17. 최단 경로 프로그램
- 18. 지도의 최단 경로
- 19. 사용자 지정지도 최단 경로
- 20. 미로를 통과하는 최단 경로
- 21. 그래프의 경로 수
- 22. 그래프의 경로 계산
- 23. 지시 순환 그래프의 모든 노드를 포함하는 최단 경로를 찾으려면 어떻게합니까?
- 24. Fleury 알고리즘의 시간 복잡도
- 25. 그래프에서 경로가 아닌 최단 경로
- 26. k 번째 최단 경로 찾기?
- 27. C# - 최단 경로 찾기 찾기
- 28. 알고리즘의 시간 복잡도
- 29. 피보나치 알고리즘의 시간 복잡성
- 30. 재귀 알고리즘의 시간 복잡도
Dijkstra의 알고리즘은 단일 소스 최단 경로 만 계산하며 모든 쌍 최단 경로는 계산하지 않습니다. 모든 쌍의 최단 경로를 계산하는 Dijkstra 알고리즘의 수정은 Johnson의 알고리즘이며, Floyd-Warshall을 능가하는 경우도 있습니다. – templatetypedef
모든 단일 소스에서 Dijkstra 알고리즘을 실행하십시오. FW보다 여전히 빠릅니다. – tskuzzy
@ tskuzzy- Johnson의 알고리즘은 본질적으로 그래프를 전처리 한 후에 음의 - 가장자리를 제거합니다. :-) – templatetypedef