Çalışmaması gereken Max-Cut algoritması neden belli değil


21

Tamam, bu bir ev ödevi sorusu gibi görünebilir ve bir anlamda öyle. Bir lisans algoritmaları sınıfında bir ev ödevi olarak, aşağıdaki klasik verdim:

Bir yönsüz grafik verilen , bir kesim bulan bir algoritma elde bu şekilde , burada kesimi geçen kenarların sayısıdır. Zaman karmaşıklığı .G=(V,E)(S,S¯)δ(S,S¯)|E|/2δ(S,S¯)O(V+E)

Nedense aşağıdaki çözümü çok aldım. Şimdi, çok fazla zaman kullanıyor, bu yüzden not verme meselesi değil, ama merak ettim. Doğru görünmüyor, fakat karşı örneklere yönelik tüm denemelerim başarısız oldu. İşte burada:

  1. SetS
  2. Let grafikte bir en büyük ölçüde köşe olmasıv
  3. Ekle içinvS
  4. Bitişik tüm kenarları silmev
  5. Eğer ila 2 dönüşδ(S,S¯)<|E|/2

5. adımdaki orijinal grafiğe işaret ettiğini unutmayın . Ayrıca 4. adımı atladığımızı da unutmayın, bu açıkça yanlıştır (örneğin iki izole kenarı olan bir üçgenin birleşmesi).E

Şimdi, herhangi bir basit kanıt aşağıdaki problemi vardır - yeni bir tepe noktası eklediğimizde, aslında yeni kenarlar eklenirken kesilen kenarlar (burada silinmiş kenarları gösteren grafiği ifade eder). Mesele şu ki, bu bizim davamıza zarar veriyorsa, bu " " nin "daha yüksek bir dereceye sahip olması, yani daha önce" seçilmiş olması "gerektiği anlamına gelir .v|S|d(v)d(v)v

Bu iyi bilinen bir algoritma mı? Bunun için basit bir karşı örnek var mı?


2
Köşe kapağının 2-yaklaşımına benziyor. Bence doğru açgözlü algoritma, diğer kısımda olduğu gibi daha fazla komşusu olan tepe noktasını seçer ve böyle bir tepe noktası bulunmayana kadar hareket ettirir ve bu noktada cevabın en azından . Ancak bu algoritmanın doğruluğu şuna bağlıdır: kesimin iki tarafındaki tepe noktası için komşu sayısı ile sadece maksimum dereceye değil arasındaki farka bakıyoruz. Ayrıca doğru algoritma sadece dan değil, her iki yönde de köşeleri taşır . ˉ S S|E|/2S¯S
Kaveh

3
@Kaveh Bence OP tanımladığın algoritmayı biliyor (ev ödevi olarak verdi). Sorusu, tanımladığı algoritmanın herhangi bir yaklaşıma ulaşıp ulaşmadığıdır.
Sasho Nikolov,

2
@ Muhammed Al-Türkistan, Nikolov'un görüşüne bakınız.
vb le

1
Ayrıca, 16/17 yaklaşımının 1/2 değil NP-zor olduğunu not edin. GW, seminal makalelerinde SDP kullanılarak ~ 0.878 yaklaşım verir.
Yonatan

Yanıtlar:


13

Daha önce iddiam , grafikte zaten mevcut olan boyutundaki kesimi hesaba katmamıştı. Aşağıdaki yapı (emperically - math.stackexchange.com adresinde titiz bir kanıt için bir soru oluşturdum) bir kesirinde bir soru yarattım . , n2/42c+6n2/4O(1logc)

Algoritma, bağlantısı kesilmiş, farklı boyutta tam grafiklerin sendikalarında kötü performans gösterir. Bu komple grafiği ifade olarak köşe . Algoritmanın davranışını göz önünde : defalarca içinde henüz keyfi köşe ekler için - bu tür tüm köşe aynıdır ve bu yüzden sipariş önemli değildir. Henüz algoritmasına eklenmemiş köşe noktalarının sayısını ayarlama , o sırada kesimin boyutu .K n K n S S S | ˉ S | = k k ( n - k )nKnKnSSS|S¯|=kk(nk)

Biz birkaç bağlantısız üzerinde algoritmayı çalıştırmak ne olur düşünün ile grafikler 0 ile 1 arasında sabitler ise elemanlarının sayısı itibariyle henüz içinde inci tam grafiğin ardından algoritma tekrar tekrar katacak için tepe noktası yüksek tam grafikten keyfi bağları kırma. Bu, köşe ' 'yuvarlak tabanlı eklenen neden olacaktır : algoritma ile en yüksek tüm tam grafiklerden bir tepe ekler , daha sonra tüm tam grafiklerden ile ( x i k i S i S k i S K = k i k i = K - 1KxinxikiSiSkiSk=kiki=k1 Skiönceki turdan sonra güncellendi), vb. Tam bir grafik, bir turda eklenen bir tepe noktasına sahip olduğunda , o zamandan itibaren her tur için bunu yapacaktır.S

tam grafiklerin sayısı olsun . Let ile için boyut modifiye edici tam grafik inci. Bu boyut değiştiricileri küçüğe sipariş ediyoruz ve ayarlıyoruz . Şimdi, henüz eklenmemiş tam olarak elementleri olan grafikleri varsa , o zamanki kesimin büyüklüğü . Toplam kenar sayısı .0 < x i1 0 i c - 1 i x 0 = 1 c k S c - 1 i = 0 k ( x i n - k ) =c0<xi10ic1ix0=1ckS| Ei=0c1k(xink)=kni=0c1(xi)ck2|E|=i=0c1xin(xin1)2n22i=0c1xi2

Not bu bir ikinci dereceden bir fonksiyonudur ve dolayısıyla maksimum vardır. Bu nedenle birkaç tane yerel olarak maksimum kesinti yapacağız. Örneğin, , maksimum kesimimiz, boyutunda . seçeceğiz, böylece , yani ikinci tam grafik bu yerel olarak maksimal kesimin boyutunu değiştirmeyecek . Daha sonra yerel olarak azami bir kesim elde ederiz ve böylece ( k c =kni=0c1xick2kk = nc=1k=n2 x1x1=1/2-n24x1k = Nx1=1/2ε k=3/8N-ε'x2=3/8N-ε"ε,εk=n2k=3/8nεx2=3/8nε ε x 1 = 1 / 2ε,ε,εküçük sabitler). Biz göz ardı eder ler için anı ve sadece seçebilirsiniz varsayalım - biz sağlamalıdır , ama bu kesin sonuçları etkilemez eğer ise yeterince geniş.εx1=1/2nx1n=n21n

Kesintilerimizin yerel maksimatını bulmak istiyoruz. Bu ayırt etme için hasıl, . Denk verir boyutta bir kesme verir . k n c - 1kni=0c1(xi)ck2kni=0c1(xi)2ckk = n0n 2k=n2ci=0c1xin24c(i=0c1xi)2

Let edilecek önceki eğer paragrafta belirlenen . Formülün, - içeren tüm grafiklerin daha sonra bu yerel olarak maksimum kesimin değerinden daha küçük olmasını ve böylece kesimin boyutunu arttırmamasını ederek elde . Bu , bu algoritma tarafından bulunan diğer tüm kesimlerden daha büyük olan kesimlerinin olduğu anlamına gelir . k c = i x i n < k ikikc=ixin<kii > i k iii>ikik icki

Dolum biz tekrar elde (artı bazı küçük ) ile . Bu sonuçların çözümü : @Daniel Fisher tarafından türetme için math.stackexchange.com adresindeki soruma bakın. Bunu içine sokmak ve yinelemede kullanmak bize . Bu merkezi binom katsayısının özelliklerini kullanarak ,xin<ki ε x 0 = 1 x i =xi=12ci=0c1xiεx0=1xi=(2ii)4in 2n24c(i=0c1xi)2n24c(2c(2cc)4c)2=n2c((2cc)4c)2limcc((2cc)4c)2=1π (ayrıca math.stackexchange.com adresindeki soruma bakın ).

Kenarların sayısı yaklaşık olarak . Bilinen özelliklere göre , . Dosyalama en az asimptotik bir olarak gider sonsuzluk.1n22i=0c1xi2=n22i=0c1((2ii)4i)2 n, 214i(2ii)4i n,2n22i=0c1(14i)2=n28i=0c11icn28logcc

Bu nedenle, biz , asemptotik olarak eşittir , de algoritmanın yapabileceğini gösterir. keyfi olarak düşük kesirler olan geri dönüş kesintileri.8δ(S,S¯)|E| c| E|8πlogcc|E|


3
Hafif bir değişiklikle, yapınız verir . Fix ve yeterince büyük bir seçti . Let . Her iki köşeyi içindeki bir kenara bağlayın ; daha sonra wp her iki köşeyi de bağlayın . Toplam kenar sayısı yaklaşık olarak . Algoritma yaklaşık kenarları kesen bir kesim bulur ( daha düşük sıradaki terimlere kadar ). ε K 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

Sanırım şu an biraz karışık olduğu için kısa bir süre önce kesin sonuçları (daha detaylı) eklemek için cevabımı tekrar yazacağım.
Alex ten Brink,

1
Toplamla ilgili , her terim olduğu için, toplam, yı harmonik bir seridir ve toplamda . Θ(1/(i+1))Θ(logc)Θ(n2logc)n22i=0c1((2ii)4i)2Θ(1/(i+1))Θ(logc)Θ(n2logc)
Yuval Filmus,

12

Düşünerek ve etrafta dolaşıp durduktan sonra, işte karşınıza bir örnek, Ami Paz'ın izniyle :

Let da olabilir ve bir birlik bir çizge bir eşleme ile köşe (ile bir eşleştirme kenarları).G K n n + 2 n / 2 + 1nGKnn+2n/2+1

Algoritma bu grafik üzerinde nasıl çalışıyor? Sadece kısmi kısımdaki köşeleri rastgele sırayla alır. Kekten köşeleri alındıktan sonra , kesim boyutundadır . Bu için maksimumdur , bu da boyutunda bir kesim verirken, grafikteki kenarların sayısı .k ( n - k ) k = n / 2 n 2kk(nk)k=n/2 n2n24n22+1

Öngörülen algoritma, klikten köşeler eklemeye devam edecek, kesiği kesen kenarların sayısını azaltacak, klikten geriye kalanlar sadece tek bir kenar olacaktır. Bu noktada, den daha iyi bir şey elde edemez .n2+2


1
Güzel karşı örnek.
Kaveh

Bu yine de çok yaklaşıyor . algoritmanın daha kötüye gittiği bir örnek görmek güzel olurdu|E|/2
Sasho Nikolov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.