이분 그래프의 최대 독립 세트


19

이분 그래프의 최대 독립 세트를 찾으려고합니다.

"1998 년 5 월 13 일-University of Washington-CSE 521-응용 프로그램 네트워크 흐름" 에서 다음 사항을 발견했습니다 .

문제:

이분 그래프 주어지면 가능한 큰 독립 세트 를 찾으십시오. 여기서 및 입니다. 세트의 요소 사이 에 모서리가 없으면 세트는 독립적 입니다.G=(U,V,E)UVUUVVE

해결책:

꼭짓점 UV{s,t} 에 흐름 그래프를 구성합니다 . 각 엣지 대해 (u,v)Eu 에서 v 까지 무한한 용량 엣지가 있습니다 . 각 uU대해 s 에서 u 까지 단위 용량 가장자리가 있으며 각 vV 에 대해 v 에서 t 까지의 단위 용량 가장자리가 있습니다 .

제한된 용량을 잘라 찾기 (S,T) 와, sStT . 하자 U=USV=VT . 세트 UV 는 컷을 가로 지르는 무한 용량 모서리가 없기 때문에 독립적입니다. 컷의 크기는 |UU|+|VV|=|U|+|V||UV|. 이를 통해 독립 세트를 최대한 크게 만들기 위해 컷을 가능한 작게 만듭니다.

이것을 그래프로 보자.

A - B - C
    |
D - E - F

우리는 이것을 다음과 같이 이분 그래프로 나눌 수 있습니다 (U,V)=({A,C,E},{B,D,F})

무차별 대입 검색에서 유일한 최대 독립 세트는 A,C,D,F 입니다. 위의 솔루션을 통해 시도해보십시오.

따라서 구성된 흐름 네트워크 인접 행렬은 다음과 같습니다.

stABCDEFs00101010t00010101A1000000B01000C1000000D0100000E10000F0100000

: 여기에서 I는 작은 유한 용량 I 참조 잘라 붙어 여기서 사소한 일이다 (S,T)=({s},{t,A,B,C,D,E,F}) 의 용량 삼.

이 컷을 사용하면 다음과 같은 잘못된 해결책이 나타납니다.

U=US={}
V=VT={B,D,F}
UV={B,D,F}

우리가 기대하는 반면 UV={A,C,D,F} ? 내 추리 / 작업에서 내가 잘못한 곳을 누구나 볼 수 있습니까?


(S, T) = ({s, A, B, C}, {t, D, E, F})의 용량은 2입니다.

1
@Brian 컷 전체에 걸쳐 B에서 E까지 무한한 용량 엣지가 있으므로 무한한 용량입니다.
Andrew Tomazos

무차별 대입 솔루션을 기반으로 이것을 올바르게 이해하면 S에 A와 C가 포함되고 T에 D와 F가 포함 된 컷이 필요합니다.이 컷은 {s, A, C}, {t, D, F}입니다. . 이제 컷을 어떻게 구성합니까?
njzk2

또한 이것은 Ford-Fulkerson처럼 보이며 가장자리의 용량은 1입니다.
njzk2

헝가리어 알고리즘을 찾으십시오.
Patrik Vörös

답변:


14

최대 독립 세트의 보완은 최소 정점 커버입니다.

이분 그래프에서 최소 정점 표지를 찾으려면 코니 그 정리를 참조하십시오 .


2
이것은 (아마도) 문제를 해결하지만 질문에 대답하지는 않습니다.
Raphael

2
@Raphael : "아마도"라는 단어를 제거하면 동의합니다. :)
Jukka Suomela

1
아, 나는 그것이 해결 확신 문제를,하지만 난 그게 도움이 있는지 확실하지 않다 앤드류는 자신의 문제를 해결한다.
Raphael

3
제안한대로 HopcroftKarp-> 최대 매칭-> Konigs Thereom-> 최소 버텍스 커버-> 보완-> 최대 독립 세트. 내 질문에 설명 된 흐름 방법이 작동하지 않는 이유를 여전히 알고 싶습니다.
Andrew Tomazos

5

반대의 예에서 보듯이 주어진 해결책은 분명히 틀립니다. 그래프 U + V는 무한 용량 에지에 의해 연결된 컴포넌트입니다. 따라서 모든 유효한 절단에는 동일한면에 A, B, C, D, E, F가 모두 포함되어야합니다.

솔루션의 출처를 추적하려고 시도합니다. http://www.cs.washington.edu/education/courses/cse521/01sp/flownotes.pdf Ahuja, Magnanti 및 Orlin의 Network Flows에 일부 문제가 있습니다. 이 책은 저작권 이 없으며 http://archive.org/details/networkflows00ahuj 에서 다운로드 할 수 있지만이 문제와 해결책을 포함하지는 않습니다 (모든 "이중"항목 검색).

솔루션의 설명 문단에서 구성하는 그래프의 가장 작은 컷이 최대 독립 세트에 해당함을 나타내지 않습니다 . 그것은 단지 얻을 수있는 방법을 보여줍니다 독립적 인 세트를.

그러나 알고리즘이 수행하려는 작업을 볼 수 있습니다. 다음은 실제 최대 독립 세트가 s, t cut 측면에서 대응하는 내용입니다.

Graph

알고리즘을 깨는 무한 용량 에지가 강조됩니다.

알고리즘을 의도 한대로 수정하는 방법을 잘 모르겠습니다. 후진하는 경우 무한 에지의 비용은 0이되어야합니다 (즉, S에서 T로 이동하지만 t-side에서 s-side로 교차하는 경우)? 그러나이 비선형 성으로 min-cut / max-flow를 쉽게 찾을 수 있습니까? 또한 @ Jukka Suomela의 솔루션에서 문제의 알고리즘으로 브리지하는 방법을 생각할 때 최대 매칭에서 최소 정점 커버로 이동하는 데 어려움이 있습니다. 최대 매칭을 찾는 동안 최대 흐름으로 수행 할 수 있습니다 유사 알고리즘, 흐름 유사 알고리즘을 사용하여 최소 정점 커버를 어떻게 복구합니까? 여기에 설명 된대로최대 매칭이 발견 된 후, U와 V 사이의 에지는 최소 정점 커버를 찾도록 지시된다. 다시 말해,이 문제를 해결하기 위해 min-cut / max-flow를 적용하는 것만으로는 충분하지 않습니다.


2

STS


1
동의하지만 흐름 알고리즘에 대한 완벽한 정확성 증명 및 알고리즘이 OP의 예에 어떻게 적용되는지와 같은 세부 정보를 추가 할 수 있습니까?
xskxzr

이 메모에는 정확성에 대한 짧은 증거가 있습니다. cs.washington.edu/education/courses/cse521/01sp/flownotes.pdf 예를 들어, 위의 Evgeni Sergeev의 그림을 보면 가장자리가 모두 아래쪽을 향해야 합니다. 그런 다음 S에서 두 개의 모서리 만 (s, e)와 (b, t)이고, 굵은 빨간색 모서리는 S로 들어가고 절단 값에 포함되지 않아야합니다.
yu25x

0

컷은 용량이 아닌 실제 흐름에 있어야합니다. s의 흐름이 유한하기 때문에 모든 {S, T} 컷은 유한합니다. 나머지는 위에 설명되어 있습니다.


1
확실합니까? 절단은 일반적으로 용량에 따라 이루어지며, 어쨌든 최소 절단이 유한하다는 것을 이미 알고 있으므로 무한 절단은 문제가되지 않습니다.
David Richerby

0

원래 그래프의 방향이 지정되지 않은 경우에도 가장자리를 양방향으로 연결할 필요는 없다고 생각합니다. 플로우 네트워크의 경우 직접 그래프가 필요하기 때문에 모서리 만 고려할 수 있습니다.V.

그런 다음이 새로운 그래프에서 ', 당신은 2의 최소 컷을 가지게 될 것입니다. {,,,에프}.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.