2017-02-12 1 views

답변

1

변화하는 비용을 인코딩하는 새 그래프를 만들 수 있습니다. 실제로는 새 그래프를 명시 적으로 구성하지 않는 것이 좋습니다.

각 정점 두 정점을 일으킨다

 1 
    A --> B 
    | /| 
2 | /5 | 4 
    v < v 
    C <-- D 
    3 

같은 그래프가 주어지면, 각각의 아크는 두 개의 호를 일으킨다. 원호는 원점에서 원점으로, 원점에서 원점으로 이동합니다. 이제

1   5   3 
A ---> B' B ---> C' D ---> C' 

    2   10   6 
A' ---> B B' ---> C D' ---> C 

    2   4 
A ---> C' B ---> D' 

    4   8 
A' ---> C B' ---> D 

대상 또는 그 사본 저렴한 경로를 찾고, 소스 또는 첫 번째 홉이 두 배로 여부에 따라 사본 중 하나에서 검색 할 수 있습니다.

+0

다른 모든 가장자리 무게가 두 배가됩니까? 또는 두 배가되는 모든 n 번째 홉에 적용하여 수정할 수 있습니까? 예를 들어 매 3 홉 또는 4 홉이라면? 상단에 다른 그래프를 추가하여이를 수행합니까? 나는 그것이 합리적이라고 생각한다. 정말 고맙습니다! – Sauhaarda

+0

@Sauhaarda 각 k 번째 홉을 두 배로해야하는 그래프 (V, A)가 주어지면 꼭지점 V x {0, ..., k-1} 및 호 {(v, j)) → (w, (j + 1) mod k) | (v, j) -> (w, (j + 1) mod k)의 가중치는 (x, v, w) j = <원하는 것이면 뭐든지> else 1x. –

+0

귀하의 게시물을 +1했지만 평판이 거의 없으므로 아무런 효과가 없었습니다. – Sauhaarda