작동하지 않아야하는 Max-Cut 알고리즘, 이유가 불분명


21

좋아, 이것은 숙제 질문처럼 보일 수도 있고, 어떤 의미에서는 그렇습니다. 학부 알고리즘 수업에서 과제로 다음과 같은 고전을 썼습니다.

무 방향 그래프 주어지면 와 같은 컷 을 찾는 알고리즘을 제공하십시오 . 는 컷을 가로 지르는 모서리 수입니다. 시간 복잡도는 이어야합니다 .G=(V,E)(S,S¯)δ(S,S¯)|E|/2δ(S,S¯)O(V+E)

어떤 이유로 든 다음과 같은 솔루션이 많이 있습니다. 이제 시간이 너무 많이 걸리므로 채점 문제는 아니지만 궁금합니다. "정확한"것으로 보이지는 않지만 반례에 대한 모든 시도가 실패했습니다. 여기있어:

  1. 설정S
  2. 하자 그래프에서 최대 학위 정점 수v
  3. 추가 에vS
  4. 인접한 모든 모서리를 삭제v
  5. 만약 2로 돌아 가기δ(S,S¯)<|E|/2

참고 5 단계는 원래의 그래프를 의미한다. 또한 4 단계를 건너 뛰었다면 분명히 잘못되었을 것입니다 (예 : 두 개의 고립 된 모서리가있는 삼각형의 결합).E

이제 간단한 증거는 다음과 같은 문제가 있습니다. 새로운 정점 추가 할 때 실제로 새 모서리 를 추가하는 동안 컷에서 모서리 ( 는 모서리가 삭제 된 그래프를 나타냅니다). 문제는 이것이 우리의 원인에 해로운 경우이 정점 의미한다는 것입니다.v|S|d(v)d(v)v "사용 된"정도가 훨씬 높아서 "선택 했어야한다"는 것을 의미합니다.

이것은 잘 알려진 알고리즘입니까? 그것에 대한 간단한 반례가 있습니까?


2
정점 표지에 대한 2 근사와 비슷합니다. 내가 생각하는 올바른 탐욕 알고리즘은 더 많은 이웃을 가진 정점을 고르고 다른 부분에서는 그런 정점이 없을 때까지 움직이고 그 시점에서 답이 최소한 라는 것을 보여주는 것은 어렵지 않다고 생각한다. . 그러나 그 알고리즘의 정확성은 다음과 같은 사실에 달려 있습니다. 우리는 최대 각도뿐만 아니라 컷의 양면에서 정점에 대한 이웃 수의 차이를보고 있습니다. 또한 올바른 알고리즘은 정점을 에서 뿐만 아니라 양방향으로 이동합니다 . ˉ S S|E|/2S¯S
Kaveh

3
@ Kaveh OP는 당신이 묘사 한 알고리즘을 알고 있다고 생각합니다 (그는 숙제로 할당했습니다). 그의 질문은 그가 설명하는 알고리즘이 근사치를 달성하는지 여부입니다.
Sasho Nikolov

2
@ MohammadAl-Turkistany는 Nikolov의 의견을 참조하십시오.
vb le

1
또한 16/17 근사값은 1/2이 아니라 NP-hard입니다. GW는 SDP를 사용하여 정액 용지에 ~ 0.878의 근사치를 제공합니다.
Yonatan

답변:


13

2의 나의 이전 주장 은그래프에 이미 존재하는크기n2/4의 컷을 고려하지 않았습니다. 다음과 같은 구조는O(1) (결과적으로 math.stackexchange.com에서 엄격한 증거를 위해 질문을 만들었습니다)로 나타납니다(12c+6n2/4분수.O(1logc)

이 알고리즘은 연결이 끊어지고 크기가 다른 여러 완전한 그래프의 결합에서 잘못 수행됩니다. 우리는 개의 꼭짓점 에 대한 완전한 그래프를 K n으로 표시 합니다. 알고리즘의 동작을 고려 K N : 이는 반복적으로 아직 임의의 꼭지점을 추가 SS - 순서는 중요하지 않도록 모든 이러한 정점과 동일. 알고리즘에 의해 S 에 아직 추가되지 않은 정점 수 설정 | ˉ S | = k , 그 순간 컷의 크기는 k ( n k )nKnKnSSS|S¯|=kk(nk) 입니다.

0에서 1 사이의 x i 상수를 가진 여러 개의 연결이 끊어진 그래프 에서 알고리즘을 실행하면 어떤 일이 발생하는지 고려하십시오 . k ii 번째 완전한 그래프 에서 S 에 아직없는 요소의 수인 경우 알고리즘은 반복적으로 추가됩니다. 가장 높은 k i를 가진 완전한 그래프에서 S 로의 정점은 임의로 관계를 끊습니다. 이 정점에 라운드 ''기초 추가 유도 할 것이다 S를 다음 알고리즘이 높은 모든 완전 그래프의 정점 부가 케이 = 케이 난을 모든 완전 그래프로부터 다음, KKxinxikiSiSkiSk=ki라운드에서에, 그 때마다 라운드마다 그렇게됩니다. (이전 라운드 이후에 업데이트 된 k i 등 ) 등. 완전한 그래프에 S에 정점이 추가되면ki=k1kiS

를 완전한 그래프의 수로 하자 . 하자 0 < X I10 I C - 1 이 될 크기 개질제 I 번째의 완전한 그래프. 이 크기 수정자를 큰 순서에서 작은 순서로 정렬하고 x 0 = 1로 설정 합니다. 우리는 지금이있는 경우가 있음 C ' 와 그래프 정확히 k는 아직 첨가하지 요소 S를 , 그 때의 절단 후, 크기는 Σ의 (C)는 ' - 1 I = 0 Kc0<xi10ic1ix0=1ckS . 총 모서리 수는 | 전자 | = c 1 i = 0 x i n ( x i n 1 )i=0c1k(xink)=kni=0c1(xi)ck2 .|E|=i=0c1xin(xin1)2n22i=0c1xi2

참고 의 이차 함수 K 따라서 최대를 갖는다. 그러므로 우리는 여러 지역에서 최대로 삭감을 할 것입니다. 예를 들어, c = 1 이면 최대 컷은 k = n입니다.kni=0c1xick2kc=1 크기의N2k=n2 . x1=1/2ε가되도록x1을 선택합니다. 이는 두 번째 완전한 그래프가k=n에서이 로컬 최대 컷의 크기를 변경하지 않음을 의미합니다n24x1x1=1/2εk=n2k=3/8nε Nx2=3/8nε ε X 1 = 1 / 2 , X 1 , N = Nε,ε,εεx1=1/2x1n=n21n 이 충분히 큰.

컷의 로컬 최대 값을 찾고 싶습니다. 우리 미분 하는 수득 . 동일시 범 크기의 컷을 제공 . k n c 1kni=0c1(xi)ck2k0k=nni=0c1(xi)2ck0n2k=n2ci=0c1xin24c(i=0c1xi)2

하자 수 이전 단락에서 결정된 경우 . 우리는 - 갖는 모든 완전한 그래프 가이 로컬 최대 절단 의 보다 작고 따라서 절단 크기를 증가시키지 않도록 요구함으로써 공식이 유지되도록 할 것 입니다. 이것은 우리 가이 에서 컷을 가지고 있음을 의미합니다 k c ' = i x i n < kkikc=iI ' I ' > 케이 c는 케이 난을xin<kiii>ikicki 에서 알고리즘에 의해 발견 된 다른 모든 컷보다 큰 합니다.

채우면 , 재귀 (및 일부 작은 )에 됩니다. 이 문제를 해결하면 : @Daniel Fisher의 파생에 대한 math.stackexchange.com의 내 질문을 참조하십시오 . 이것을 재발에 대한 통찰력을 사용하면 크기가 . 사용 이 중앙 이항 계수의 특성을 , 우리는이x i = 1xin<kiεx0=1xi=12ci=0c1xiεx0=1 N2xi=(2ii)4in2n24c(i=0c1xi)2n24c(2c(2cc)4c)2=n2c((2cc)4c)2limcc((2cc)4c)2=1π (또한 참조 math.stackexchange.com에서 내 질문 ).

가장자리 수는 대략 . 알려진 속성으로 는 있습니다. 제출하면 최소한 이것은 무조건 로1n22i=0c1xi2=n22i=0c1((2ii)4i)2 N214i(2ii)4i n2n22i=0c1(14i)2=n28i=0c11icn28logcc 간다 무한대.

따라서 는 무한대로 갈 때 는 무조건 와 같습니다. 임의로 낮은 비율의 리턴 컷.8δ(S,S¯)|E| c| 전자|8πlogcc|E|


3
약간만 수정하면 구성이 됩니다. 수정 하고 충분히 큰 선택했습니다 . 이라고하자 . 두 정점을 모두 모서리와 연결합니다. 그런 다음 wp 두 정점을 모두 연결하십시오 . 총 모서리 수는 대략 입니다. 알고리즘은 상처를 발견 한 컷 약 에지 (최대의 차항 낮추기 위해 ). ε N V = { 1 , ... , N } { 1 , ... , ε N } V ε 2 ( ε N ) 2 / 2 + ε 2( N 2 / 2 ) = ε 2 N 2 ε 2 N 2 / 4 ε1/4εNV={1,,N}{1,,εN}Vε2(εn)2/2+ε2(n2/2)=ε2n2ε2n2/4ε
Yury

나는 지금 조금 엉망인 최종 결과 (자세한 내용)를 곧 포함하도록 답변을 다시 작성할 것이라고 생각합니다.
Alex ten Brink

1
합계 , 각 항은 이므로, 합은 합산되는 고조파 계열 이며, 총 . Θ(1/(i+1))Θ(logc)Θ(n22i=0c1((2ii)4i)2Θ(1/(i+1))Θ(logc)Θ(n2logc)
Yuval Filmus

12

잠시 동안 생각하고 둘러 본 후에 Ami Paz가 제공 한 반례가 있습니다 .

을 짝수로하고 를 꼭짓점 (즉, 과 일치)과 의 합집합 인 그래프 라고 합시다.G K n n + 2 n / 2 + 1nGKnn+2n/2+1 에지).

이 그래프에서 알고리즘은 어떻게 실행됩니까? 임의의 순서로 클릭 부분에서 정점을 가져옵니다. clique에서 개의 정점 을 취한 후 , 컷의 크기는 입니다. 최대 값으로 , 크기를 그래프의 가장자리 수는k ( n k ) k = n / 2 n 2kk(nk)k=n/2 N2n24n22+1 입니다.

규정 된 알고리즘은 도당에서 정점을 계속 추가하여 도당에서 남아있는 것이 단일 모서리 일 때까지 컷을 가로 지르는 모서리 수를 줄입니다. 현재로서는 보다 나은 것을 얻을 수 없습니다 .n2+2


1
좋은 반례.
Kaveh

그래도 여전히 매우 가깝습니다 . 알고리즘이 더 나빠지는 예제를 보는 것이 좋을 것입니다|E|/2
Sasho Nikolov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.