글쎄, 문제는 결국 있습니다. 나는하겠습니다 이전 대답을 그것이 그것은 또한 (다른 질문에 대한 대답으로, NPC 임) 감독의 경우 작동으로, 그리고 쇼 에 대한 .F P T lPFPTl
방향이 지정되지 않은 경우 최소 비용 흐름을 통해 결정적으로 해결할 수 있습니다 (이것은 질문에서 언급 한 규모에서는 작동하지 않지만 지수 알고리즘보다 낫습니다.
다음 절차는 일부 에지 가 출력 그래프의 일부 여야 하는지 여부를 결정합니다 . 원래 문제에 답하기 위해 모든 가장자리를 반복하십시오.e=(u,v)∈E
플로우 네트워크를 작성하려면 다음과 같이하십시오.
1 단계 : 확장 정점 갖도록 하고 교체 에지와 (그것들은 네트워크 흐름의 일부로서 관한 )의 비용을 0으로 설정하십시오.x e e ( u , x e ) , ( x e , u ) , ( v , x e ) , ( x e , v )exee(u,xe),(xe,u),(v,xe),(xe,v)
2 단계 : 를 제외한 모든 꼭지점 를 두 개의 꼭지점 및 로 모서리 합니다. 이 모서리 비용을 1로 설정하십시오.x e t − t + ( t − , t + )txet−t+(t−,t+)
3 단계 : 의 모든 모서리 모서리 바꿉니다 . 이 모서리 비용을 0으로 설정하십시오.( a + , b − ) , ( b + , a − ){a,b}∈E(a+,b−),(b+,a−)
4 단계 : 새 정점 를 추가하고 비용 0으로 모서리 를 추가합니다 . ( s , y e ) , ( t , y e )ye(s,ye),(t,ye)
5 단계 : 모든 용량을 1로 설정합니다.
이제 최소 비용 흐름 알고리즘을 실행하여 에서 까지 의 값 2의 흐름을 검색 .y exeye
분석:
- 매주 2 값 흐름 에 경로의 조합입니다 및 경로 .xeyexe⇝s→yexe⇝t→ye
- 모든 정점 에 대해 호 에는 1 개의 용량 만 있기 때문에 경로는 분리 되어 있습니다.t(t−,t+)
- 반환 된 경로는 거리의 합이 최소 인 두 경로이며 발견 된 흐름의 비용이기도합니다. 이를 통해 출력 그래프에 를 추가 하거나 그렇지 않으면 삭제할 수 있습니다.e