그래프의 두 노드 사이의 최단 경로를 결정하려면 왜 가중치가 적용된 가중치 그래프에 음수 사이클이 포함될 수 없습니까?두 노드 사이의 경로를 결정할 때 부정적인 사이클이 없음
0
A
답변
2
음 사이클이 다음의 경로 가중치에 영향을 미칠 것이기 때문 웨이 :
a----------b-----------c---------------d
2 | 2 | 4
| |
| -3 | -3
| |
e-----------f
2
경로를 찾는
첫 번째 시도 :
a->b->c->d cost = 8
이제
의 루프 입력 할 수 :
0123을그럼 그 두 가지에 의해 저렴하지만, 우리는 더 나은 작업을 수행 할 수 있습니다
a->b->c->(f->e->b->c)^i->d cost = 8 + (-2)^i
명백한 문제 : 모든 루프를 통해 실행과 경로가 저렴 얻고 우리가 가장 짧은 경로로 무한 루프에 바람.
그러나 이것은 모든 경로 찾기 알고리즘에는 적용되지 않습니다. 예를 들어, Bellman-Ford-algorithm은 덜 효율적인 비용으로 네가티브 엣지를 처리 할 수 있습니다.
0
이러한주기가 있다면, 생각할 수있는 모든 "최단 경로"에 대해이 부정적인주기를 다시 한번 통과시켜 더 나은 경로를 선택할 수 있습니다. 그리고 이것은 전체 경로 비용을 확실히 감소시킬 것입니다. 왜냐하면 이러한 가정이이주기가 음의 가중치이기 때문입니다.
0
"최단"은 실제로 "최소 비용/중량"경로를 의미하기 때문에.
음의 가중치주기를 사용하면이 경로를 포함하여 (이주기가 포함 된) 임의의 낮음 가중치를 얻을 수 있습니다.
1
관련 문제
- 1. XQuery에서 두 그래프 노드 사이의 경로를 검색합니다.
- 2. 두 노드 사이의 모든 경로를 찾으십시오.
- 3. 두 노드 사이의 모든 경로를 가져옵니다. neo4j
- 4. Floyd-Warshall에 부정적인 사이클이 있습니다. 정의되지 않은 경로는 어떻게 찾습니까?
- 5. 두 노드 사이의 조상
- 6. xquery - 두 노드 사이의 모든 경로를 찾는 BFS
- 7. OWL 온톨로지에서 두 노드 사이의 모든 경로를 찾는 쿼리
- 8. TraversalDescription이있는 neo4j의 두 노드 사이의 모든 경로가 잘못된 경로를 반환합니다.
- 9. 전단지를 사용하여 두 노드 사이의 경로를 그리는 방법
- 10. 두 노드 사이의 모든 경로를 찾는 효율적인 알고리즘
- 11. Python : Networkx는 노드와 에지가있는 주어진 두 노드 사이의 경로를 얻습니다.
- 12. 무 방향성 그래프에서 두 노드 사이의 가능한 모든 경로를 찾으십시오.
- 13. 연결된 목록에서 두 노드 사이의 모든 경로를 검색하는 방법 그래프
- 14. 두 그래프 노드 사이의 고정 길이 경로
- 15. GraphViz, 두 노드 사이의 최단 경로 찾기
- 16. 그리드에서 2 노드 사이의 경로를 찾는 가장 효율적인 방법
- 17. 두 개체 사이의 부정적인 공간에 따라 UIView 높이를 변경하십시오.
- 18. 두 노드 사이의 통신 node.js 프로세스
- 19. Google지도에서 두 마커 사이의 경로를 표시하는 방법
- 20. 장고는 그래프의 두 꼭지점 사이의 경로를 찾습니다.
- 21. Google지도에서 두 마커 사이의 경로를 그리는 방법
- 22. 안드로이드에서 두 geopoints 사이의 경로를 그리는 방법
- 23. 사용할 프로세서를 결정할 수 없음
- 24. jquery가있는 두 요소 사이의 노드 수를 찾으시겠습니까?
- 25. d3.js에있는 두 노드 사이의 여러 직선
- 26. Apache 두 노드 사이의 연결을 켜십시오.
- 27. 두 노드 사이의 최단 경로 찾기 (정점)
- 28. 두 얼랑 노드 사이의 통신을 모니터하는 방법
- 29. 두 무선 이동 노드 사이의 거리
- 30. 두 노드 사이에서 가장 긴 경로를 찾으십시오.