TQBF Problemi: Revizyonlar arasındaki fark
[kontrol edilmemiş revizyon] | [kontrol edilmemiş revizyon] |
İçerik silindi İçerik eklendi
Superyetkin (mesaj | katkılar) Düzenleme |
|||
1. satır:
'''Boolean Formülü''' içerisinde; [[boolean]] değişkenleri, sabitler {0,1} ve işlemler {<math>\land</math>, <math> \lor</math>, <math> \lnot</math>} içeren formüllerdir. Bu formüller :<math> \forall </math>(bütün hepsi) ve <math> \exists</math> (en az bir) belirleyicileri ekleyerek daha genel bir yapıya sokabiliriz. <math> \forall x Q </math> ifadesi bütün ''x'' değişkenleri için ''Q'' formülü doğrudur anlamı taşımaktadır. Benzer bir şekilde; <math>\exists x Q </math> ifadesi ise bazı ''x'' değişkenleri için ''Q'' formülü doğrudur anlamı taşımaktadır.
Satır 31 ⟶ 30:
T= <Q> verisini kullanan bir ''tamamen belirlenmiş boolean formül''.
▲3- Eğer <math>Q = \forall x G</math> 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 <math>O(m)</math>, m = toplam değişken sayısı, dır. Buradan ''T'' nin [[Lineer zaman]]da bittiğini gözlemleriz.
A, M [[Turing Makinesi]] tarafından <math>n^k</math> 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. c<sub>1</sub> ve c<sub>2</sub> iki tane değişken listesi olsun. ve t>0 olan bir sayı. Öncelikle Q<sub>c<sub>1</sub>,c<sub>2</sub>,t</sub> formülü kurarız. Eğer c<sub>1</sub> ve c<sub>2</sub> yi doğru bir şekilde kurarsak; formül, M makinası c<sub>1</sub> den c<sub>2</sub> ye en fazla t stepte giderse doğru olur. Bu durumda, Q<sub>c<sub>start</sub>,c<sub>accept</sub>,h</sub>, <math>h=2^df(n)</math> alırız. Böylece ''M'' ''n'' verisi üzerinde en fazla <math>2^df(n)</math> değişik konfigürasyona sahip olur. Burada <math>f(n)=n^k</math> ve ''t'' 2 nin katı olacak şekilde alalım.
Eğer t=1 ise, Q<sub>c<sub>1</sub>,c<sub>2</sub>,t</sub> kolayca oluşturulabilir. Böyle bir durumda, ya c<sub>1</sub> c<sub>2</sub> ye eşittir yada c<sub>1</sub> den c<sub>2</sub> ye M makinasında bir step vardır.
Eğer t>1 ise, Q<sub>c<sub>1</sub>,c<sub>2</sub>,t</sub> formülü tekrarlarla kurulur. Şöyleki:
Q<sub>c<sub>1</sub>,c<sub>2</sub>,t</sub> = <math>\exists</math>m<sub>1</sub>[
Satır 65 ⟶ 57:
Yeni değikenlerin eklenmesi, iki tekrarlayan formülü teke indirdi. <math>\forall</math> (c<sub>3</sub>,c<sub>4</sub>) <math>\in</math> {(c<sub>1</sub>,m<sub>1</sub>),(m<sub>1</sub>,c<sub>2</sub>)} ifadesiyle, c<sub>3</sub> ve c<sub>4</sub> değişkenleri sırasıyla c<sub>1</sub>,m<sub>1</sub> veya m<sub>1</sub>,c<sub>2</sub> değerleri alabilir. Ve Q<sub>c<sub>3</sub>,c<sub>4</sub>,t/2</sub>] her iki durumda da doğrudur.
Q<sub>c<sub>start</sub>,c<sub>accept</sub>,h</sub>, <math>h=2^df(n)</math> 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.
Satır 72 ⟶ 63:
==Kaynakça==
[[Kategori:Karmaşıklık kuramı]]
[[Kategori:Matematik teoremleri]]
[[de:Erfüllbarkeitsproblem für quantifizierte boolesche Formeln]]
[[en:True quantified Boolean formula]]
[[es:Problema de la fórmula booleana cuantificada]]
|