무 방향 그래프의 최소 컷 찾기


25

다음은 해결하려는 과거 시험의 질문입니다.

양의 가중치 인 무 방향 그래프 경우 최소 컷을 찾으려고합니다. max-flow min-cut 정리를 사용하는 것 외에 다른 방법을 모르겠습니다. 그러나 그래프는 방향이 지정되지 않았으므로 어떻게 지시해야합니까? 양쪽 끝에 가장자리를 지정하려고 생각했지만 소스가 될 정점과 싱크가 될 정점이 무엇입니까? 아니면 최소 컷을 찾는 다른 방법이 있습니까?w ( e ) 0Gw(e)0


1
원본 그래프에 소스와 대상이 없으면 여러 가지 선택을 시도해야 할 것 같습니다. (어떤 주어진 와 의 경우 최소 컷이 둘을 분리하지 못할 수 있습니다.)tst
Raphael

주어진 소스 및 싱크 노드에 대한 최소 컷 또는 그래프의 최소 컷을 찾으려고합니까?
피터

@Peter : 그래프의 최소 컷.
Jozef

답변:


13

무 방향 그래프의 최소 컷을 찾기위한 많은 알고리즘이 있습니다. Karger의 알고리즘 은 간단하지만 효과적인 무작위 알고리즘입니다.

요컨대, 알고리즘은 무작위로 가장자리를 균일하게 선택하고 자체 루프가 제거 된 상태로 수축하여 작동합니다. 두 개의 노드가 남아 있으면 프로세스가 중지되고 두 노드는 컷을 나타냅니다. 성공 확률을 높이기 위해 무작위 알고리즘이 여러 번 실행됩니다. 달리기를하는 동안, 지금까지 발견 된 가장 작은 컷을 추적합니다.

자세한 내용은 Wikipedia 항목을 참조하십시오. 더 나은 소개를 원한다면 Michael Mitzenmacher와 Eli Upfal의 확률 및 컴퓨팅 : 무작위 알고리즘 및 확률 분석의 첫 번째 장을 확인하십시오.


이것은 근사 알고리즘입니까?
Strin

@Strin 그것은 확률이 높은 최소 컷을 찾는 무작위 알고리즘입니다.
Juho

1
나는 Karger 's가 최소 체중 감량을 찾는 데 적절하다고 생각하지 않습니다. 최소 컷을 발견 할 확률의 도출은 최소 카디널리티 컷을 찾는 것에 달려 있습니다. Karger 's는 많은 가벼운 모서리로 최소한의 절단을 찾지 못할 것입니다.
무두 페르난도

8

모든 방향이 지정되지 않은 모서리 두 개의 지정 모서리 및 만듭니다.( u , v , w e i g h t ) ( v , u , w e i g h t )(u,v,weight)(u,v,weight)(v,u,weight)

...하지만 어떤 정점이 소스가되고 어떤 정점이 싱크가됩니까?

중요하지 않습니다.


1
왜 문제가되지 않습니까?
코딩 웜뱃

1

Ford-Fulkerson 알고리즘이 적합합니다. 두 개의 가짜 정점을 만들 수 있습니다. 소스와 싱크.

Edmonds-Karp 알고리즘도 살펴보십시오 . 두 가지 변형이 있습니다.

  1. 하나의 버전은 가장 짧은 경로를 선택합니다
  2. 다른 사람은 최대 용량의 경로를 선택합니다

, 임의의 경로를 선택하는 Ford-Fulkerson과 달리.

이것은 좋은 자료입니다.


cs.stackexchange에 오신 것을 환영합니다! 가짜 정점이 기존 그래프에 연결되는 방법을 추가로 설명 할 수 있으면 OP에 도움이 될 수 있습니다. 그리고 새로운 가장자리의 가장자리 무게는 얼마입니까?
Paresh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.