Cook-Levin teoremi

Teoremin ispatına geçmeden önce teoremin çıkış noktası üzerinde duralım. Polinom zamanda kararlaştırılan problem (P sınıfı problemleri) ile polinom zamanda doğrulanabilen problem (NP sınıfı problemleri) sınıflarının birbirine denk olup olmadığı güncel matematik ve teorik bilgisayar biliminin bir türlü çözemediği bir sorun olagelmiştir. Eğer bu sınıflar birbirine denk olduğu gösterilirse herhangi polinom zamanda doğrulanabilen bir problemin (NP sınıfı problemi) artık polinom zamanda kararlaştırılabiliyor olacağı kesin olarak söylenmiş olacaktır.

1970’lerde P ve NP sınıflarının arasındaki ilişkiye Stephen Cook ve Leonid Levin adındaki iki bilim adamı farklı bir açıdan yaklaşmışlardır; bazı NP sınıfı problemlerinin karmaşıklıklarının tek başlarına tüm NP sınıfının karmaşıklığına eşit olduğunu fark etmişler. Eğer bu tip problemlerin polinom zamanda bir çözümü bulunursa NP sınıfındaki tüm problemler polinom zamanda çözülebilir. Bu tip problemlere ileride değineceğiz ve bun tip problemlere NP-tam sınıfı problemleri diyeceğiz. Dolayısıyla Cook-Levin yaklaşımının bir sonucu olarak P sınıfıyla NP sınıfının eşitliğini iddia eden biri NP-tam bir problemi polinom zamanda çözmesi iddiasını ispatlamak için yeterli olacaktır.

Ö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.

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.

N: “ ∅ ’nin Boolean ifade, x1, x2, x3,...., xk’nin de bu ifadenin bir değişkeni olsun ve makine girdi olarak < ∅, x1, x2, x3,...., xk > katarını alsın.

Elde edilen kombinasyonla boolean formülün doğru cevap üretip üretmediğini kontrol et. Eğer cevap doğruysa kabul ver. Eğer cevap yanlışsa ve tüm kombinasyonlar denenmişse ret ver, eğer cevap yanlış ve tüm kombinasyonlar denenememişse 1’e dön.

Şimdi sıra NP’deki her dilin SAT diline polinom zamanda indirgemekte. A dilini nk zamanda kararlaştıran determinist olmayan bir N Turing Makinesi düşünelim. Aşağıda anlatacağım yöntem aracılığıyla N makinesini SAT diline indirgeyeceğiz.

Bir pencerenin geçerli olması ne demek onu inceleyelim. Tablonun 3×2’lik parçasına pencere diyoruz ve bu pencere geçiş fonksiyonuna uygunsa buna geçerli pencere diyoruz.

Dolayısıyla problemimiz ∅ = ∅hücre ∧ ∅ başlangıç ∧ ∅ kabul ∧ ∅ hareket probleminin doğrulanmasına indirgendi. Diğer bir deyişle A dilini SAT diline indirgemiş olduk.

İndirgemeyi yaptık şimdi bunun polinom zamanda olduğunu ispatlamaya geldi sıra. İndirgemenin karmaşıklığını göstermek için ∅ formülünün boyutu göstermek yeterli olacaktır. Tablonun boyutu nk ×nk olup n2k hücreye sahiptir ve bu hücrelerde l farklı değişken bulunabilir. (l∈C ). l değeri N makinesine verilen w katarından bağımsız olduğu için ∅ formülündeki değişken sayısı O(n2k) olacaktır. Dolayısıyla bu indirimin polinom zamanda yapılmış olduğu anlamına geliyor. Böylelikle SAT probleminin NP-tam olduğunu göstermiş olduk.

Farz edelim ki SAT problemine polinom zaman da bir çözüm bulunmuş olsun ("SAT ∈ P"). Bu bize şunu ifade eder SAT problemi hem NP sınıfının içinde (Cook-Levin teoreminden) hem de P sınıfının (varsayımdan) içinde ve diğer yandan her NP dili SAT problemine polinom zamanda indirgenebiliyor (Cook-Levin teoreminden) dolayısıyla bu NP sınıfı ile P sınıfın denk olduğu anlamına geliyor. Aslında Cook-Levin ikilisinin bu teorem ile amaçladıkları şey de tam olarak buydu yani P ile NP sınıfının eşitliğini iddia eden biri NP-tam sınıfından bir probleme polinom zamanda çözüm bulması iddiasını kanıtlamak için yeterli olacaktır.