우리는 100 개의 꼭지점을 가진 지시 된 그래프를 가지고 있습니다. v1 -> v2 -> ... v100이고 모든 에지 가중치는 1입니다. 우리는 v1에서 다른 꼭지점까지 모든 최단 경로를 찾기 위해 bellman-ford를 사용하려고합니다. 각 단계에서이 알고리즘은 임의의 순서로 모든 에지를 검사합니다. 각 단계에서 다른 모든 정점과의 최단 거리 v1이 변경되지 않으면이 알고리즘이 중지됩니다. 단계 수는 모서리의 순서를 확인하는 것과 관련이 있습니다. 이 문제의 최소 및 최대 단계는 무엇입니까?Bellman Ford 알고리즘에 대한 오래된 시험, 불필요한 것이 필요합니까?
해결책 : 2
(100) 나는 생각한다
우리는이 그래프가있는 경우 : V1-> V2-> V3 -> ...-> V100을 우리가 V1이있는 경우 우리가 2. 필요 -> v2, V1-> V3, V1-> V4, ... 우리는 100을 필요로하고 v99v100, v98v99, ..., v3v2, v2v1을 갖는다면 마지막으로 100을 필요로합니다.
누구든지 나를 도울 수 있습니까?
제 오해의 요지는 그래프와 가장자리의 순서입니까? 이 세 가지 예에서 나를 위해 그것을 지울 수 있습니까? –
최악의 경우 하나의 거리를 최적으로 업데이트하려면 하나의 반복이 필요하므로 모든 거리를 최적으로 유지하려면 max_distance + 1 회 반복해야합니다. 계산 된 최적의 거리를 사용할 수있는 순서로 가장자리가 있으면 반복 횟수가 줄어 듭니다 (가장 긴 경로를 따른 경우). 예를 들어 노드 v1, v2 및 v3이있는 경우 v2-> v3보다 먼저 v1-> v2를 확인하면 동일한 반복에서 v2 및 v3을 모두 업데이트 할 수 있습니다. 그들이 그 반대의 경우에 당신은 2 번의 반복이 필요합니다. – Sorin