Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Cook-Levin teoremi

bullvar_katip

Administrator
Katılım
21 Mayıs 2024
Mesajlar
532,105
SAT problemi bir NP-tam sınıfı problemidir. Giriş 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. 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şturup 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. İspat SAT probleminin NP-tam sınıfına ait bir problem olduğunu göstermek için öncelikle SAT dilinin NP sınıfında olduğunu göstermemiz lazım. SAT probleminin NP sınıfında olduğunu göstermenin iki farklı yolu vardır: SAT problemini polinom zamanda doğrulayan bir Turing Makinesi(TM) tasarlamalıyız. Ya da SAT problemini polinom zamanda kararlaştıran bir deterministik olmayan Turing Makinesi (NTM) tasarlamalıyız. Biz burada 2. yolla bunu ispatlayalım: Deterministik olmayan N Turing Makinesi, SAT dilini polinom zamanda aşağıdaki gibi kararlaştırsın: N: “ ∅ ’nin Boolean ifade, x, x, x,...., x’nin de bu ifadenin bir değişkeni olsun ve makine girdi olarak < ∅, x, x, x,...., x > katarını alsın. Deterministik olmayacak şekilde boolean ifadedeki değişkenlere “doğru ve yanlış” değerlerini ata. 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 n 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. sol|453 × 337px Bu tabloda her bir satır N makinesinin konfigürasyonunu ifade ediyor. Kolaylık olsun diye her konfigürasyonun "#" ile başlayıp "#" ile bittiğini farz edelim. Her konfigürasyondan bir sonrakine N makinesinin geçiş fonksiyonu aracılığıyla ulaşılmaktadır yani konfigürasyonlar arasındaki geçişlerde N makinesinin kurallarına uyulmak zorundadır. Tüm satırlar bu kurallara uygun olarak doldurulduktan sonra tablo N makinesi için herhangi bir kabul durumu içeriyorsa A tablosu kabul verir yoksa ret verir. Böylelikle A dili bu tablo aracılığıyla simüle edilebilir. Böylelikle N makinesinin w’yı kabul etmesi artık tablonun qkabul durumunu içerip içermemesine indirgenmiş oldu. Şimdi sıra elde ettiğimiz tablodan SAT problemine geçmek için bir boolean formül (∅) elde etmeye geldi. F formülüne geçmeden önce kullanacağımız birkaç önemli terimi ifade edelim: Q: N makinesinin durumları kümesi Γ: N makinesinin alfabesi C = Q ∪ Γ ∪ {#}: Tablodaki değişkenler kümesix: ∅ formülünün değişkeni olup tablonun [i,j] gözünde s değeri varsa doğru yoksa yanlış değerini alır. Şimdi F ifadesinin ne gibi koşulları sağlaması gerektiğine bakalım. Tablonun her hücresinde tek bir boolean değişken olmalıdır. Bunu göstermek için şu iki şart sağlanmalıdır. a. Tablonun her hücresinde en az bir değişken olmalıdır. b. Tablonun her hücresinde en fazla bir adet değişken olmalıdır. 2. Tablonun başlangıç konfigürasyonu N makinesinin başlangıç konfigürasyonu olmalıdır. doğrulanmalıdır. 3. Tabloda en az bir tane N makinesine ait kabul durumu (q ) bulunmalıdır. Dolayısıyla doğrulanmalıdır. 4. Tablodaki konfigürasyonlar arasındaki geçiş N makinesinin kurallarına uygun olmalıdır. doğrulanmalıdır. 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 ∅ = ∅ ∧ ∅ ∧ ∅ ∧ ∅ 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 n ×n olup n 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(n) 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. Sonuç Şimdi bunun bize ne katacağını ifade edelim: 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. Kaynakça Kategori:Karmaşıklık teorisi Kategori:Matematik teoremleri
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Izgara yada normal mod

Temanızda forum listeleme yapısını ızgara yapısında yada normal yapıda listemek için kullanabilirsiniz.

Forum arkaplan resimleri

Forum arkaplanlarına eklenmiş olan resimlerinin kontrolü senin elinde, resimleri aç/kapat

Sidebar blogunu kapat/aç

Forumun kalabalığında kurtulmak için sidebar (kenar çubuğunu) açıp/kapatarak gereksiz kalabalıklardan kurtula bilirsiniz.

Yapışkan sidebar kapat/aç

Yapışkan sidebar ile sidebar alanını daha hızlı ve verimli kullanabilirsiniz.

Radius aç/kapat

Blok köşelerinde bulunan kıvrımları kapat/aç bu şekilde tarzını yansıt.

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Geri