Çözüm
Önerisi TQBF'in bir PSPACE-Complete olduğunu göstermek için, cümle içindeki değişkenlere değer atan bir formül bulup tekrarlayan bir şekilde değişken değerlerini inceleyip formülün doğru ya da yanlış olacağı bulunur. PSPACE de tanımlı bütün A dillerinin TQBF e indirgendiğini göstermek için, polinomial yer ile sınırlı A ya ait bir Turing makinesi ile başlayacağız. Daha sonra, boolean formül ile kodlanarak ve A diline ait makina ile çalışacak bir kelime ile polynomial zamana indirgemeye çalışacağız. Şöyle ki, formül ancak ve ancak makina gönderilen kelimeyi kabul ederse doğru olacak. Burada formülü oluştutmak için Savitch Teoremi kullanacağız. Yaratılacak yeni formül, ana formülü parçalara bölecek ve her bir belirleyiciyi formülde yerine koyarak daha küçük formüller yaratacak. Çözüm TQBF i belirleyen bir polinomsal yer algoritması oluşturacağız. T=verisini kullanan bir tamamen belirlenmiş boolean formül. # Q hiç belirleyici içemiyorsa, bu durumda Q sadece sabitlerden oluşur. Q yu işleriz eğer doğruysa kabul et. Yoksa reddet. # Eğer ye eşitse, tekrarlarla T yi G üzerinde çalıştır. Önce x değişkeni yerine 0 koy, daha sonrada x değişkeni yerine 1 koy. Eğer iki sonuçtan biri doğruysa kabul et yoksa reddet. # Eğer ye eşitse, tekrarlarla T yi Q üzerinde çağır. Önce x değişkeni için 0 koy sonra 1 koy. Eğer iki sonuçta doğruysa kabul et yoksa reddet. T algoritması TQBF i belirler. Bu algoritmanın yer karmaşıklığını analiz ettiğimizde şunu gözlemleriz: Formül, içerisindeki değişken sayısı kadar çağrılır. Her seviyede sadace bir değişken değerini tutarız. Bu yüzden toplam kullanılacak yer , m = toplam değişken sayısı, dır. Buradan T nin Lineer zamanda bittiğini gözlemleriz. A, M Turing Makinesi tarafından polinomsal yerde tanımlanan bir dil olsun. Şimdi A'dan TQBF e Polinomsal zaman indirgemeye çalışacağız. Bu indirgeme için bir 'w' kelimesi kullanılsın. Söyle ki; Q ancak, M makinası 'w' yi kabul ettiğinde doğru olsun. Q yu nasıl oluşturacağımızı göstermek için daha genel bir problemi çözülür. c1 ve c2 iki tane değişken listesi olsun. ve t>0 olan bir sayı. Öncelikle Qc1,c2,t formülü kurarız. Eğer c1 ve c2 yi doğru bir şekilde kurarsak; formül, M makinası c1 den c2 ye en fazla t stepte giderse doğru olur. Bu durumda, Qcstart,caccept,h, alırız. Böylece M n verisi üzerinde en fazla değişik konfigürasyona sahip olur. Burada ve t 2 nin katı olacak şekilde alalım. Eğer t=1 ise, Qc1,c2,t kolayca oluşturulabilir. Böyle bir durumda, ya c1 c2 ye eşittir ya da c1 den c2 ye M makinasında bir step vardır. Eğer t>1 ise, Qc1,c2,t formülü tekrarlarla kurulur. Şöyleki: Qc1,c2,t = m1 Qc1,m1,t/2Qm1,c2,t/2 m1 buarada M ye ait bir konfigurasyonu temsil eder. m1: x1,......,xl in kısaca yazılmış halidir. ve x1,.....,xl m1 yi kodlayan değişkenlerdir. Qc1,c2,t nin yaratılması şunu belirtir: M makinası c1 den c2 ye en fazla t stepte gider. Ve eğer m1 ara stepi varsa, şöyleki M c1 den m1 e t/2 stepte gidsin ve m1 dan c2 e t/2 stepde gidsin. Bu durumda, Qc1,m1,t/2 ve Qm1,c2,t/2 formülleri oluşturulabilir. Fakat bu şekilde genel formülü çıkarmaya kalkarsak, çıkacak formül çok uzun olur. Çünkü, her tekrarda biz formülü 2'ye bölüyoruz. Ve her step geçtikten sonra genel formül 2 ye katalanıyor. Başlangıçta t= aldığımız için exponential bir formül ortaya çıkar. Formülün boyutunu kısaltmak için in yanına birde ekleriz.Şöyleki: Qc1,c2,t = m1 (c3,c4) [1] Yeni değikenlerin eklenmesi, iki tekrarlayan formülü teke indirdi. (c3,c4) ifadesiyle, c3 ve c4 değişkenleri sırasıyla c1,m1 veya m1,c2 değerleri alabilir. Ve Qc3,c4,t/2] her iki durumda da doğrudur. Qcstart,caccept,h, nin uzunluğunu hesaplarken şunu söyleyebiliriz: tekrarlayan her step genel formüle bir eleman ekler bu yüzden formülün tamamı lineer uzunluktadır. Toplam uzunluk ise: dır. Tekrarlardaki step sayısı: log(), dır. Bu yüzden sonuç formülü: O dır. * Michael Sipser: "Introduction to the Theory of Computation" Course Technology Press Second Edition, 2005.Kaynaklar
Vikipedi