Bu problem NP zor . Bunu göstermek için, önce bu (optimizasyon) problemini bir karar problemine dönüştüreceğim. Daha sonra, bu problemi, herhangi bir için NP-zor olan renklendirme probleminden bir azalma elde etmenin oldukça basit olduğu eşdeğer bir soruna dönüştürüyorum .k ≥ 3kk≥3
Sorunun kısa bir formülasyonu şudur:
kişi ve 'hediye verme' ilişkilerini kodlayan bir grafik göz önüne alındığında , tüm hediyelerin sürprizleri bozmadan satın alınabilmesi için gereken minimum gezi miktarını bulun.GnG
Ancak bu bir optimizasyon problemidir. NP sınıfı genellikle karar sorunları için tanımlanır (her örneğe verilen cevap EVET veya HAYIR). Bunun bir karar çeşidi:
Verilen kişi ve 'hediye verme' ilişkilerini ve bir tam sayı kodlayan bir grafiği göz önüne alındığında , en fazla seyahatini herhangi bir sürprizi bozmadan tüm hediyeleri almak için yeterli yapıyor mu?G t tnGtt
Bir bulma problemi tanımlayan uygun yönlendirilmiş -multicoloringt bir grafiğin bir bulgu olarak , çok renkli fonksiyonu ise uygun , bazı dizi 'renk' (yani ) ve güç kümesidir (her alt kümelerinin yani grubu ). Çok renkli bir işlev, yalnızca her kenar için varsa, .c : V → P ( C ) C t | C | = t P ( C ) C C ( u → v ) ∈ E c ( u ) ⊈ c ( v )G=(V,E) c:V→P(C)Ct|C|=tP(C)CC(u→v)∈Ec(u)⊈c(v)
Alışveriş gezisi sorununun aynı grafik çok yönlü bir renginint G varlığına karar verme sorununa eşdeğer olduğunu iddia ediyorum .G
Korumalı : bir uygun yönlendirilmiş varsa -multicoloring için böyle bu renk adlandırmak, sonra dizisini dikkate trips , burada bir vertex , sadece ve eğer ise seyahatinde alışverişe gider . Daha sonra, her bir kenar için , bir yolculuk var olduğunu var öyle ki ve , çünkü . Bu nedenle, gezileric G C = { 1 , … , t } t T 1 , … , T t v T i i ∈ c ( v ) ( u → v ) ∈ E T i u ∈ T i v ∉ T i c ( u ) ⊈ c ( v ) T ıtcGC={1,…,t}tT1,…,TtvTii∈c(v)(u→v)∈ETiu∈Tiv∉Tic(u)⊈c(v)Ti tüm hediyeleri almak için yeterlidir.
Seyahatlerimizde bir dizi varsa , daha sonra, çok renkli fonksiyonu oluşturmak renk kümesi üzerinde , öyle ki . Daha sonra, her bir kenar için , bir gezi vardır şekilde ve (itibaren için bir hediye almak için bir gezi), burada araçlarının ve , bu nedenle . c C = { 1 , … , t } c ( u ) = { i ∈ N | u ∈ T i } ( u → v ) ∈ E T i u ∈ T i v ∉ T i u v i ∈ c ( u ) i ∉ c (T1,…,TtcC={1,…,t}c(u)={i∈N|u∈Ti}(u→v)∈ETiu∈Tiv∉Tiuvi∈c(u)c ( u ) ⊈ c ( v ) ◻i∉c(v)c(u)⊈c(v)□
Uygun bir yönlendirilmiş -multicoloring bulmak , temel olarak belirli bir coloring vakasının garip bir yeniden formülasyonudur . Bu nedenle, renklendirme probleminden bir polinom zaman azalması gösterebilirim : Önceden yönlendirilmemiş bir grafik verildiğinde , önce bu grafiği yönlendirilmiş grafiktir , öyle ki ve ancak ve ancak veya ( başka bir deyişle, yönlendirilmemiş kenarları iki yönlendirilmiş kenara dönüştürüyoruz).k ( ttk(t⌊t/2⌋)G′=(V′,E′)G=(V,E)V=V′(u→v)∈E(u,v)∈E′(v,u)∈E′
En büyük bir düşünün , böylece , olmayacak , böylece . boyutundaki tüm alt kümelerinin kümesi , burada, böyle bir kümedir. Bu nedenle, böyle bir alt kümenin maksimum boyutu .K⊂P(C)a,b∈Ka≠ba⊂bC⌊t/2⌋t=|C|(t⌊t/2⌋)
için uygun bir -multicoloring varsa , (*) eşit olmayan öğeden fazlasını kullanmayan uygun bir renklendirme vardır. bu nedenle bu, için geçerli bir renklendirmesidir .tG(t⌊t/2⌋)P(C) (t⌊t/2⌋)G′
Uygun ise -Renklendirme için var , daha sonra bir dizi vardır , , öyle ki ve herhangi , , öyle ki . Yani, uygun bir yönü var.(t⌊t/2⌋)G′K⊂P(C)|C|=t|K|≥(t⌊t/2⌋)a,b∈Ka≠ba⊂bGt
Bu nedenle, bu -renklemeden gezileri ile mevcut alışveriş problemine kadar geçerli bir polinom zaman azalmasıdır , bu da mevcut alışveriş sorununun NP-zor olduğu anlamına gelir. Mevcut alışveriş sorununun NP-eksiksiz olduğunu unutmayın, çünkü verilen en fazla seyahatinin bir listesinin sürprizleri bozmadan tüm hediyeleri satın almamıza izin verdiğini kolayca doğrulayabiliriz .(t⌊t/2⌋)tt
(*): Bir çok-boyama durumunda fazla maksimum bir daha renk setleri 'olmayan bir alt kümesi' çok-boyama kullanan , biz 'adlandırma' şekildedir ın bir üst kümesidir . öğelerin hiçbiri, uygun kalır farklı bir elemanına bitişik olarak her-diğerinde bitişik bir sorun ve renk-kümesinin yok edildi olan orijinal . Böylece, genelliği kaybetmeden olduğunu varsayabiliriz .CC∗CC∗CC∗C∗CC∗⊂C
Daha sonra, not bu 'adlandırma' herhangi bir alt dizisini renk setleri düğümler arasındaki kenarları mahvetmez , çünkü bir başkasının alt kümesi olan öğe içermiyor. Geriye kalan tek şey ve arasındaki kenarların renklendirmeyi 'mahvetmemesini' sağlamaktır.C∖C∗C∗C∖C∗C∗C∖C∗C∗
içindeki renk kümelerinde aşağıdaki ilişkisini göz önünde bulundurun : ve iki renk kümesi , yalnızca bir çift köşesi varsa bağlanır . renk kümesi ve renk kümesi ve . Bu ilişki yönlendirilmemiş grafik .RC∪C∗ABa,baAbB(a,b)∈EG=(C∪C∗,R)
İlk olarak, kenarı olmayan herhangi bir çifti tek bir renk setiyle değiştirerek 'azaltabiliriz' . Renk aynı kalır, çünkü bitişik olmayan iki renk setini aynı renge dönüştürmek geçersiz kenarlar getirmez. Sonuç olarak, tam bir grafiğe .C∖C∗GG
Bu demektir ki, eğer renk kümelerinin daha az ya da buna eşit bir miktarda olduğu gibi, gerekli renklendirme var. Aksi takdirde, hiç uygun çoklu renklendirme yoktur, çünkü en büyük 'alt küme dışı' kümesidir, bu nedenle bu klibi renklendiremeyiz. Bu nedenle, gerekli çoklu renklendirme mutlaka vardır.G|C∗|C∗
Hakkında tam grafik olarak düğümlerin ve biz en azından sahipseniz eğer renk yapabiliyor renkler, biz buna sahip insanlar birbirleri için hediyeler alışveriş gidebilirsiniz gezileri ve ancak eğer . Bu özellikle, , sadece yapılması yeterli olduğu anlamına gelir . Satın almak için daha az hediye varsa, daha fazla seyahat gerekli olmayacaktır, bu nedenle bu her çözümde genel bir üst sınırdır.nKnnnt(t⌊t/2⌋)≥nn≤1287016
Aşağıda, optimumun elde edilmesini garanti etmeyen, ancak polinom zamanında hesaplanabilen sezgisel bir algoritma veren daha önceki 'cevabım'.
Bu sorunu formüle için başka bir yol, bir kaplama bulmaktır bölümleri üzerinde bipartit grafiklerin bir yönlendirilmiş grafik için ile düğümleri , burada bölme (yani açma) miktarı, burada minimumdur.C={(S1,T1),…,(Sm,Tm)}(Si,Ti)Gnm
İlk olarak, kısmen diğer cevaplardan gelen bazı gözlemler:
- ile ortak kenar miktarının maksimuma çıktığı iki parçalı bir grafiğe sahip bir seçtiğimiz açgözlü strateji, optimal bir çözüme yol açmaz (Güçlü bir karşı örnek, düğümlü tam grafiktir , Hangi maksimum iki taraflı grafik seçilirse seçilsin, bu stratejinin başarısız olduğu yerler.).(Si,Ti)G6
- Açgözlü strateji keyfi asiklik grafikler için uygun değildir , aşağıdaki grafiği göz önünde bulundurun:
Hem hem de için iki taraflı grafik kenarı kaldırır en uygunudur.Si={3,5,6}Si={1,3,6}4{3,5,6}
- Herhangi bir (optimal) açgözlü algoritma, bölüm tarafından 'kaldırılan' döngü sayısı (seçilen herhangi bir boyutta) üzerinden seçilen bölümün boyutunu tercih edemez . Bunu anlamak için, Grafiği dikkate , bir döngü vardır düğümleri, düğümleri ve döngüsünde her düğüm olan doğru ek giden kenarları ek düğümler için aşağıdaki (bakınız şekil hiçbir giden kenarları vardır, olduğu bir örnek ). Uzunluk döngüleri boyunca kenar miktarını en üst düzeye çıkarmayı tercih eden açgözlü bir seçim , ilk yolculukta döngüdeki tüm köşeleri gönderecektir. Bu, döngünün herhangi bir kenarını kaldırmaz ve sadece sayarn+2n22A,Bn=4nA,Bve tüm kenarları döngüden çıkarmak, tüm kenarları doğru da kaldırır . Bu nedenle, bir döngüyü kaldırmak yerine bölümün boyutunu tercih eden herhangi bir açgözlü seçim optimal değildir.A,B
Bu gözlemlere dayanarak, şu açgözlü seçim öneriyorum: Seçim böyle, bu yolculuk 'kaldırır' o devir miktarı o ile maksimum örtüşme ile maksimal ve kravat durumunda ise, seçtiğiniz bir bölümü arasında (yani döngüleri olmayan kenarlara bakın).(Si,Ti)GG
Bu algoritma, döngüsel olmayan grafiklerdeki 'temel' açgözlü stratejiden farklı olmadığından (her yolculukta maksimum kenar miktarını kaldırma), bu nedenle bu açgözlü algoritma optimal değildir. Bununla birlikte, döngüleri kaldırma sezgisi hala mantıklı ve temel açgözlü strateji üzerinde bir gelişmedir, bu yüzden iyi bir sezgisel olabilir.