sorunu. Tuplleri gruplara ayırmak, daha sonra uç noktaları paylaşmayan (daha sonra eşleştirmeler) kenar gruplarının bulunmasına karşılık gelir; Diğer bir deyişle, her bir kenar boyaması size bir küme sağlar ve her bir küme, size bir kenar boyama sağlar. Ne yazık ki, en iyi kenar renklendirme bulmak için NP -Zor, yani senin sorunun genel NP -Zor içindedir. Sabit faktör yaklaşımları üreten bu problem için yaklaşık algoritmalar vardır, ancak P = NP hiçbir kesin algoritma olmadıkça. Eğer başlığın başına elemanların herhangi bir sayıda izin vermek için bu sorunu genelleştirirsek
, o zaman bu sorun çok daha zor olur. Bu sorun genel versiyon gerçekten NP -Sert ve grafik boyama gelen bir azalma ile, yaklaştığı çok zordur. Belirli bir vakadaki azalmanın bir örneğini göstereceğim, ancak oldukça güzel bir şekilde genelleştiriyor.
bu gibi bir grafik verilen:
A -- B -- C
| | |
D -- E -- F
Biz dizilerini, bir dizi demet içinde her bir giriş bu düğüme bitişik kenarların grubu her düğüm için bir oluşturmak gerekir. Örneğin, yukarıdaki grafikte, bu dizilerini oluşturacak ediyorum:
(AB, AD)
(AB, BC, BE)
(CB, CF)
(AD, DE)
(BE, DE, EF)
(CF, EF)
Artık bu dizilerini iki örtüşmeyen düşünün. Bu, bu tupllere karşılık gelen iki düğümün bitişik olmaması gerektiği anlamına gelir, çünkü eğer öyleyse, aralarındaki kenar tupllerde ortak bir unsur olur ve bu nedenle kümelenemezler. Öte yandan, eğer iki düğüm bitişik değilse, o zaman onların tuplleri aynı kümede bir araya getirilebilir, çünkü bir tupüldeki hiçbir kenar diğerinde bulunmaz.
Bu kurulumda, orijinal grafiğin herhangi bir rengi, tuplleri kümelendirmenin bir yolunu verir (aynı renkte verilen düğümler için tüm tuplleri aynı kümeye yerleştirir; hiçbiri bitişik değildir, bu nedenle çakışma yapmazlar), ve tuplleri kümelemenin herhangi bir şekilde bir rengi (bir küme içindeki aynı renkteki her bir tuple karşılık gelen tüm düğümleri renklendirir) verir. Bu nedenle, asgari sayıda kümenin bulunması, orijinal grafiğin kromatik sayısını bulmakta, yani NP -hard'dır ve gerçek değere yakın olan herhangi bir yaklaşma algoritmasını kabul etmemektedir.
Daha uzun bir örnek gönderebilir veya gerçek girdinin boyutunu düşünebilir misiniz? Yinelenen tupl olabilir mi? Her elemanın az çok eşit sayıda görünmesini bekliyor musunuz? – m69
Girişin boyutu 20-60 (çiftler) aralığında bir yerde.Yinelenen tuple yoktur, yani (A, B) sette ise, başka (A, B) veya (B, A) yoktur. Bireysel unsurlar hakkında herhangi bir dağıtım bilgim yok (pratikte bazı unsurların diğerlerinden daha sık göründüğünden şüpheleniyorum, bunun problem için geçerli olduğunu bilmiyorum - problemin bazı olasılıksal bilgisi varsa) Daha iyi bir ortalama durum çözümü sağlar, bana bildirin ve sağlamaya çalışıyorum) –
Girdi ne kadar farklı harfler (veya bunları temsil ediyorsa) girer? Grafiklerinizin [tamamlayıcı grafikleri] (https: //en.wikipedia) [[asgari vertex-cover-size] (https://en.wikipedia.org/wiki/Vertex_cover#Approximate_evaluation)) denemeyi denediniz mi? org/wiki/Complement_graph)? Grafiklerinizin [treewidth'i yaklaştırmaya çalışın] (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.29.7198&rep=rep1&type=pdf) denediniz mi? –