3SAT-KLIK indirgemesi; P sınınfında problemlerini çözmek için de, aynı şekilde indirgemeye başvurulur ama bu defa ne zaman indirge olur?
Polinom zamanda
3SAT ve KLIK problemleri, Turing makinasından polinom zamanda kararlaştırılabilen NP problemleri arasında yer alır. Bu problemlerin birbirinin cinsine çevrilmesine indirgeme denilir. Giriş: İndirgeme: A problemi B problemine indirgenebiliyorsa, B problemin çözümü A’nın çözümü için kullanılabilir. Karmaşıklık, parçaları ve onların düzeni kavraması zor olan bir sistemdir. Karmaşıklık Kuramı sırasında ise, çözümleri zor olan problemerlerin birbirine indirgeyerk çözümlerini kolaylaştırılmaya çalışılıyor. Bununla ilgili olan P =? NP sorusunun cevabı da, aynı şekilde ilk başta problemleri indirgeyerek basitleştirmeye çalışılır, sonra da çözümleri olan problemleri kullanarak daha karmaşık olanların çözümlerine bakılır. Bu şekilde P ve NP sınıflarındaki problemleri arasında bir ilişki bulunursa, çözüme doğru gidebiliriz. NP sınınfında problemlerini çözmek için de, aynı şekilde indirgemeye başvurulur ama bu defa Polinom zamanda indirgeme olur. Polinom Zamanda İndirgeme: A dili B diline polinom zamanda indirgenebilir A \leq pB, ancak ve ancak f : \Sigma^* \to \Sigma^* diye polinom zamanda çalışan bir hesaplama funksiyonu varsa ve her w \, için w \in A \Leftrightarrow f(w) \in B geçerlidir. Dosya:Polinom_zamanda_funksiyon.png 3SAT ve Klik problemlerin Karmaşıklık Sınıflarındaki yeri: Dosya:Diller_sınıfı.png NP sıfında yer alan problemler arasında 3SAT ve Klik problemleri de bulunur. Okla gösterildiği gibi, 3SAT ve Klik arasında indirgeme işlemi yapılacak. 3SAT problemi, SAT karşılanabilir (satisfiable) proleminin cümlecikleri 3 harften oluşmuş özel bir halidir. :\begin{align} 3SAT &= \left \\{ \left \langle \phi \right \rangle \mid \phi \text{karşılanabilir bir 3CNF förmülüdür} \right \\} \\\ \text{ör.1)} ~\phi&=(a_1 \lor b_1 \lor c_1) \land (a_2 \lor b_2 \lor c_2) \land \ldots \land (a_k \lor b_k \lor c_k) \\\ \text{KLİK}&=\left \\{ \left \langle G,k \right \rangle   G \text{ k-klik içeren bir yönsüz çizgedir} \right \\} \end{align} Dosya:6n-graf-clique.svg Resimde görüldüğü gibi, {1,2,5} düğümler arasında klik oluyor. İspat fikri: Problemlerin tanımlarından da yola çıkarak 3SAT problemin bir formül, KLİK probleminin de bir çizge olduğunu fark ettik. Problemleri indirgemek ve çözümlemek için ilk başta birbirinin formatına gösterilmeleri ve çevirilmeleri gerekiyor. Örnek.1’den görüldüğü gibi, 3SAT cümlcikleri “ve” (\wedge) bağlacıyla bağlanmıs ve her cümlesi “veya” (\vee) bağlacıyla bağlanmış 3 harften oluşuyor. Klik problemi ise, resimde gösterildiği gibi bir çizgenin içinde, birbirine bağlanan düğümlerle ilgilidir. Bu iki problemi birbirine dönüştürmenin (indirgemenin) yolu, formülü çizge gibi, çizgeyi de formül haline dönüştürmekten geçer. Belirli çizgelerin içinde k-büyüklükteki klikleri, belirli karşılanabilir formüllerle uyuşuyor. Sürülen bu fikirler üzerinden yola çıkarak, NP sınınfında olan iki problemin arasında, birbirinin cinsine taklitini kullanarak polinom zamanda indirgemeyi başarmaya çalışacağız. İspat: \phi \, k cümlecikten oluşan bir formül olsun. f indirgemesinin sonucu olarak, G yönsüz çizge olmak üzere \langle G,k \rangle katarı üretilmesi bekleniyor. Bunun yapısı şöyle, Çizgedeki düğümler, aralarında 3-lü olacak şekilde gruplanıyor ve sırayla t_1, t_2, t_3, \ldots, t_k. Her bir 3-lü formüldeki bir cümleciğe, her bir düğüm de cümlecikteki bir harfe denk geliyor. Dolayısıyla G çizgesideki her düğüm \phi \,’nın bir literaline karşılık gelir. Bu çevirmeyi yaparken, förmülde “ve”, “veya” bağlaçları göz önüne alarak, çizgedeki düğümler arasında alttaki kurallar uygulanması gerekiyor. * Aynı 3-lü grup içinde yer alan düğümler arasında bağlantı yok. * Birbirinin tümleyeni olan iki düğüm arasında bağlantı yok, ör, x1 ve x1'. Şu ana kadar indirgemenin zeminini hazırlamaya çalıştık, bundan sonra problemleri çevirmeye çalışacağız. Aşağıda, karşılanabilir bir örnek funksiyonu verilmiştir. \phi = (x_1 \vee x_1 \vee x_2) \wedge (\overline{x_1} \vee \overline{x_2} \vee \overline{x_2}) \wedge (\overline{x_1} \vee x_2 \vee x_2) Belirlenen kurallar çerçevesinde formülden çizgeye dönüşüme başlarsak, alttaki G çizgeyi elde etmiş olacağız. Dosya:Grafsat.jpg İndirgemeyi açıkça bir şekilde gördükten sonra, yöntemin tutarlığını ispatlamak için iki tane varsayım üzerinde yorum yapılacak: # \phi \,’nin karşılanabilir (satisfying) olduğunu varsayalım, Son değerin doğru olduğuna göre, her cümlecikte en azında bir tane harfin değeri doğru (1) olması gerekiyor ki, “ve” işleminin sonucu olarak 1 elde edilsin. G dizgesinde her üçlü için doğru değerli harfi temsil eden bir düğüm seçiliyor. Eğer bir cümlecikte birden fazla doğru değerli harf varsa, keyfi olarak doğru olanlar aradında bir tane seçiliyor. Seçilen düğümler k-klik şeklini oluşturuyorlar. Dikkatli bakarsak, her (sayısı k olan) cümlecikten birer harf aldığımızdan dolayı seçili düğüm sayısı k’dır. K-klik içindeki düğümler aynı 3-lü gruptan olamazlar çünkü her 3-lü den sadece bir tane düğüm seçmiş olduk.