2SAT'ı çözen polinom algoritmasına rastladım. 2SAT’in, SAT örneklerinin hepsinin (veya birçoğunun) NP-Tamam olduğu P’de olduğunu övünç buldum. Bu sorunu farklı yapan nedir? Bu kadar kolay kılan şey nedir (NL-Complete - P'den bile daha kolay)?
2SAT'ı çözen polinom algoritmasına rastladım. 2SAT’in, SAT örneklerinin hepsinin (veya birçoğunun) NP-Tamam olduğu P’de olduğunu övünç buldum. Bu sorunu farklı yapan nedir? Bu kadar kolay kılan şey nedir (NL-Complete - P'den bile daha kolay)?
Yanıtlar:
İşte MGwynne'nin cevabı boyunca başka bir sezgisel ve iddiasız açıklama.
İle -SAT, sadece formun etkilerini ifade edebilen bir ⇒ b , a ve değişmezdir. Daha doğrusu, her fıkra , bir çift sonuç olarak anlaşılabilir: ve . Eğer ayarlarsanız true, de doğru olması gerekir. Eğer ayarlarsanız false, de false olmalıdır. Bu tür imalar basittir: başka seçenek yok, sadece2 L 1 ∨ l 2 ¬ l 1 ⇒ l 2 ¬ l 2 ⇒ l 1 a b b bir 1 ¬ l l l ¬ l lolasılık, vaka çarpımına yer yoktur. Sadece olası her iması zincirini takip edin ve hiç hem türetmek eğer görebilirsiniz dan ve den bazıları için yaparsanız: aksi takdirde karşılanabilir olduğunu, daha sonra 2-SAT formülü edilemezdir olduğunu. Muhtemel uygulama zincirlerinin sayısının giriş formülünün boyutunda polinom bağlı olduğu durumdur.
İle -SAT, formun etkilerini ifade edebilen , , ve değişmezdir. Şimdi başınız dertte: eğer doğruyu ayarlarsanız , veya doğru olmalı, ama hangisi? Bir seçim yapmalısın: 2 ihtimalin var. İşte vaka çarpımının mümkün olduğu ve birleştirici patlamanın ortaya çıktığı yerdir.a ⇒ b ∨ c a b c a b c
Başka bir deyişle, -SAT, birden fazla ihtimalin varlığını ifade edebilirken, 2 -SAT böyle bir yeteneğe sahip değildir. Bu tam birden fazla olasılık (böyle varlığıdır 2 durumunda olasılık 3 -SAT, k - 1 durumunda olasılıklar k NP-tam problemlerin tipik birleştiirlebilen patlaması neden -SAT).
3-SAT'a ulaştığınızda daha büyük ve daha büyük çözünürlükler elde edersiniz, bu yüzden hepsi armut biçimlidir :).
Bir sorunu 2-SAT'ye çevirmeyi deneyin. 3 boyut cümleciklerine sahip olamadığınız için, (genel olarak), 3 değişken veya daha fazlasını içeren sonuçları kodlayamazsınız, örneğin bir değişken, diğer ikisinin ikili işleminin sonucudur. Bu çok büyük bir kısıtlama.
Walter'ın dediği gibi, 2-SAT cümlelerinin özel bir şekli var. Bu, çözümleri hızlı bir şekilde bulmak için kullanılabilir.
Polinom zamanında karar verilebilecek birkaç SAT örneği sınıfı vardır ve 2-SAT bu izlenebilir sınıflardan sadece bir tanesidir . İzlenebilirliğin üç geniş nedeni vardır:
(Yapısal izlenebilirlik) Değişkenlerin ağaç benzeri bir şekilde etkileşime girdiği herhangi bir SAT sınıfı sınıfı polinom sürede çözülebilir. Polinomun derecesi, bir örneğin bir ağaçtan ne kadar uzak olduğunu ölçen sınıftaki örneklerin maksimum genişliğine bağlıdır . Daha kesin olarak, Marx, örneklerin submodüler genişliğe bağlı olması durumunda, sınıfa bir böl ve fethet yaklaşımı kullanarak polinom zamanında karar verilebileceğini gösterdi.
(Dil izlenebilirliği) Doğru-yanlış değişkenlerin modelinin "güzel" olduğu herhangi bir SAT örneği sınıfı, polinom zamanında çözülebilir. Daha doğrusu, değişmezler kalıbı bir ilişki dili tanımlar ve Schaefer her biri kendi algoritmasıyla izlenebilirliğe yol açan altı dili sınıflandırır. 2-SAT altı Schaefer sınıfından birini oluşturur.
(Karma izlenebilirlik) Diğer iki kategoriye girmeyen, ancak diğer nedenlerle polinom zamanında çözülebilen bazı örnek sınıfları da vardır.
2SAT için algoritmayı anlıyorsanız, neden P'de olduğunu zaten biliyorsunuz - bu tam olarak algoritmanın gösterdiği şey. Bence bu çizgi roman benim açımdan gösteriyor. 2SAT'ın neden P'de olduğunu zaten bildiğiniz gibi, muhtemelen bilmek istediğiniz şey 2SAT'ın neden NP-sert olmadığıdır.
2SAT'ın neden NP zor olmadığını anlamak için, NP'deki diğer sorunları azaltmanın ne kadar kolay olduğunu göz önünde bulundurmalısınız. Bunu sezgisel bir şekilde anlamak için SAT'ın 3SAT'a nasıl düşürüldüğüne bakın ve SAT'ı 2SAT'a düşürmek için aynı teknikleri uygulamaya çalışın. 2SAT, 3SAT ve diğer SAT değişkenleri kadar anlamlı değildir.