Clique NP-Tam'dır.



giriş

i̇fadenin ispatına geçmeden önce izleyeceğimiz yoldan kısaca bahsedelim. clique probleminin np olduğunu biliyoruz ve ispatımızda bunu böyle kabul etmekteyiz. geriye np-tam probleminin clique problemine indirgenebildiğini göstermek kalıyor. bunu da sat problemini clique problemine indirgeyerek ifade edeceğiz. sat problemi nedir önce buna bir göz atalım. ayrıca aynı şekilde np-tam sınıfını da aşağıdaki kısımda açıklamaktayız ve daha sonra clique ifadesinin np-tam olduğunun kanıtına geçeceğiz.

sat problemi 

sat (doğrulanabilirlik) probleminin ne olduğundan bahsedelim. sat problemi verilen bir boolean ifadenin sonucunun doğru olup olmayacağıyla problemidir. yani boolean ifadeyi doğru kılacak, boolean ifadenin değişkenlerinin bir “doğru,yanlış” kombinasyonunun oluştup oluşturmayacağıyla ilgilenir. dolayısıyla sat problemi aşağıdaki gibi ifade edilebilir:

örneğin  gibi herhangi bir boolean ifadenin sonucunun doğru olmasını inceleyen probleme sat problemi denir. bu örnekte x=doğru, y=yanlış, z= doğru için problem doğrulanabilirdir.

np-tam sınıfı 

bir b dili np-tam ise şu iki şartı sağlamalıdır:
 b dili np sınıfındadır.
 np sınıfındaki her dil b diline polinom zamanda indirgenebilir.

burada yeni bir kavramla karşılaşıyoruz; “polinom zamanda indirgemek”. bunu fazla derine inmeden şöyle özetleyebiliriz; eğer bir problemin çözümünü bilmiyorsak ya da çözümü bulmakta çok zorlanıyorsak asıl problemimizi çözmeye yardımcı olacak yeni bir probleme indirgeriz ve çözüme yeni indirgenmiş problem aracılığıyla ulaşırız. eğer bu indirgememiz polinom zamanda gerçekleştirilirse buna da “polinom zamanda indirgemek” adını veririz. buna şöyle bir örnek verebiliriz: bilmediğiniz bir yere gitmek istediğinizi farz edelim ve bu problemin sizin için zor bir problem olduğunu düşünelim. bu durumda gideceğiniz yere ulaşmak için bir yardımcıya ihtiyacınız olacaktır. bu yardımcılar taksiye binmek, harita elde etmek ya da bilen birine sormak bunlar arasında sayılabilir. böylelikle bizim için zor olan problemimiz taksi ya da harita bulmak kadar basit bir probleme indirgenmiş oldu. kısaca buna da değindikten sonra artık teoremimize dönelim.

i̇spat 
giriş bölümünde de bahsettiğimiz üzere artık göstermemiz gereken şey sat probleminin k-clique problemine indirgenebiliyor olduğudur.

teorem: sat, k-clique problemine indirgenebilir.

kanıt a :

f ifadesini boolean bir ifade olarak kabul edelim.

k=r ve g=(v,e) olarak tanımlayalım.

v={<xi,fj> (xi fj içinde bir değişken)}

e={<xi,fj> (<ys,ft> | j!=t ve <xi != yş} yş ifadesi ys ifadesinin tersidir.

öncelikle f ifadesinin karşılanabilir olduğunu ispatlayalım ve sonrasında bir k-clique elde edeceğiz.

f ifadesinin karşılanabilir olduğunu varsayalım.

bu, f ifadesini 1'e eşitleyen bir atamanın olduğu anlamına gelmektedir.

bu da açıklar ki f ifadesini oluşturan tüm alt f fonksiyonarı da 1'e eşitlenmiş olur.

böylece anlarız ki her fi ifadesinde en az bir değişkenin değeri mutlaka 1'e eşit olur.

kanıt b :

eğer g çizgesi bir k-clique'e sahip ise f ifadesi karşılanabilirdir diyebiliriz.

şimdi de g çizgesinin k-clique içerdiğini varsayalım. <u1,f1>,<u2,f2>,.......,<uk,fk> değerleri birbirine komşudur.

buna ilaveten <ui> ve <uj> birbirinin tersi olamaz çünkü <ui,fi> ve <uj,fj> birbirine komşu iki köşeyi göstermektedir.

dolayısıyla artık her <ui> değerine artık 1 değeri ataması yapabiliriz.

bu atama her fi değerini 1'e eşitler.

böylece f ifadesini 1'e eşitlemiş olduk.

sonuç 
f=1 karşılamasını gerçekleştirdik. böylece sat problemini click problemine indirgemiş olduk.

kaynakça 

michael sipser: "introduction to the theory of computation" course technology press second edition, 2005.

karmaşıklık teorisi
matematik teoremleri