CNF'den DNF'ye dönüşümün NP-Hard olduğunu kanıtlamak


20

CNF'den DNF'ye dönüşümün NP-Hard olduğunu nasıl kanıtlayabilirim?

Bir cevap istemiyorum, sadece nasıl kanıtlanacağı konusunda bazı öneriler.


5
Derinlemesine bir analiz için "CNF'yi DNF'ye Dönüştürme Üzerine" adlı
Vor

@ A.Schulz: Steve Cook'un makalesindeki orijinal tanım, onu Cook indirgeme yöntemleriyle tanımlar. Görünüşe göre genel NP sertliği en.wikipedia.org/wiki/NP-hard
Kaveh

CNF <-> DNF dönüşümü bir dil değildir, dil olması gerekir. daha çok girdi ve çıktı ile bir fonksiyon ve NP vb onun karar vermeyen sorunun boyut olarak üstel patlamaya yol açtığı kanıtlanmış olduğunu düşünmek için bir karar sorununa dönüştürülmelidir [örneğin Vors ref] bu nedenle bir [Eğer dışarıda ise] karar sorununun NP tam versiyonu muhtemelen önemli bir basitleştirmedir. Ayrıca Vors ref CNF <-> DNF dönüşüm gerçek karmaşıklığını gösterir gibi aktif bir araştırma problemidir ... sıkıştırma algoritması verimliliği bazı benzerlik olduğunu unutmayın ...
vzn

2
's eğer @vzn soru sorar NP değil, -Sabit NP -tamamlamak. Bu, NP üyeliğinin gerekli olmadığı, dolayısıyla bir karar sorunu olması gerekmediği anlamına gelir .
David Richerby

Yanıtlar:


18

gayrı:

DNF'de, formülü doğru yapmak için herhangi bir maddeyi doğru olarak seçebilirsiniz . Bu, belirli bir CNF'ye eşdeğer bir DNF'nin temel olarak CNF'nin üzerinde bulunan boolean'a yönelik tüm çözümlerin bir numaralandırması olduğu anlamına gelir. Üstel sayıda çözüm olabileceğini unutmayın. Tek bir çözüm için CNF için boolean sat çözümlemesi NP-tam olduğundan, DNF'ye dönüştürmek temelde her çözüm için çözüm anlamına gelir . Bu yüzden en azından Boolean SAT kadar sert ve bu yüzden NP-sert.

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.