Burada sorunun NP-tamamlanmış olduğunu gösteriyorum.
Bir CNF'yi aşağıdaki gibi sorununuzun bir örneğine dönüştürüyoruz. CNF değişkenlerinin 've yan tümce değerleri ' ; burada . Let birliğe bütün setleri tamamen ayrık nerede. Aslında, ve , ise kardinalitesidir . Ayrıca göstermektedirler ve her ilgili düzeltme uzunluğu artan bir aile ile gösterilir içine, içinx i m C j n < m U = ∪ i ( A i ∪ B i ∪ Z i ) A i = { a i , j ∣ x i ∈ C j } ∪ { a i , 0 } B i = { b i , j ∣ x i ∈ C j } ∪n xbenm Cjn < mU= ∪ben( Aben∪ Bben∪ Zben)birben= { ai , j,∣ xben∈ Cj} ∪ { aben , 0}Z i k = 2 n + 1 Z = ∪ i Z i Z i k Z i , l l = 1 .. k x i 2 k F A i ∪ Z i , l B i ∪ Z i , l C j F Z x i ∈ C j { aBben= { bi , j,∣ xben∈ Cj} ∪ { bben , 0}Zbenk = 2 n + 1Z= ∪benZbenZbenkZben , benl = 1 .. k . Her değişken için , biz eklemek için setler , formun her sette ve . Her yantümcesi için içeren bir küme ve öğesindeki her için ve öğesindeki her .xben2 kFbirben∪ Zben , benBben∪ Zben , benCjFZxben∈ Cj ˉ x i ∈ C j { b i , j }{ ai , j,}x¯ben∈ Cj{ bi , j,}
Formülün tatmin edilebilir olduğunu varsayalım ve tatmin edici bir ödev düzeltin. Daha sonra çekme formunun setleri veya , olmadığına bağlı olarak doğru ya da değildir. Bunlar artımlı kümelerdir. Şimdi cümlelere karşılık gelen kümelerini ekleyin . Cümleler tatmin edilebilir olduğu için bunlar da boyutu artırmaya devam ediyor. Son olarak, dizi kapağı yapmak için daha fazla set (her değişken için bir tane) ekleyebiliriz .A i ∪ Z i , l B i ∪ Z i , l x i n k m k Ukbirben∪ Zben , benBben∪ Zben , benxbenn kmkU
Şimdi setlerinin artımlı bir sıraya konduğunu varsayalım . Her için karşılık gelen en fazla setinin seçilebileceğine dikkat edin . Bu nedenle, artımlı sekansta hiçbir yan tümce kümesi yoksa , çok az olan en fazla seçilebilir. Bir cümle kümesi seçildiğinde, her karşılık gelen en fazla iki , toplamda en fazla kümesini seçebileceğimize dikkat edin . Bu nedenle, herhangi bir cümle kümesi seçilmeden önce en az değişken kümesini seçmeliyiz. Ancak her için en fazla için, her biri için en azındank + 1 x i x i n ( k + 1 ) x i 2 n n ( k - 1 ) k + 1 x i 1 k = 2 n + 1n(k+1)+mk+1xixin ( k + 1 )xben2 nn ( k - 1 )k + 1xben1 , . Bu, değişkenin "değerini" belirler, bu nedenle yalnızca "doğru" maddeleri seçebiliriz.k = 2 n + 1
Güncelleme: Değiştirilen değeri dan için Marzio tarafından sivri out gibi.n 2 n + 1kn2 n + 1