Di bawah ini saya memperluas sedikit pada titik dalam jawaban Peter dengan mencoba melakukan penghapusan kuantifikasi untuk lebih dari jumlah langkah yang konstan untuk melihat di mana ia gagal dan jika ada yang bisa diselamatkan dari upaya seperti itu.
Mari kita coba untuk memperkuat P=NP untuk lebih dari jumlah kali konstan.
Asumsikan bahwa P=NP . Oleh karena itu ada mesin waktu polinomial yang memecahkan Ext-Circuit-SAT (adakah ekstensi yang memuaskan untuk rangkaian yang diberikan dan penugasan sebagian untuk inputnya?).
Lebih formal, kami memiliki algoritma polytime A dengan polinomial running time p(n)∈poly(n) st
Diberikan sirkuit Boolean φ , dan penugasan sebagian τ ke input,
A mengembalikan "ya" jika ada ekstensi τ yang memenuhi φ , dan mengembalikan "tidak" sebaliknya.
Untuk melewati waktu yang konstan, kita perlu melakukan penghapusan quantifier secara efektif. Kita bisa melakukan ini karena Masak-Levin Teorema adalah teorema yang konstruktif, sebenarnya itu memberikan waktu polinomial algoritma Cook st
Mengingat DTM M menerima dua input, dan tiga angka unary n , m , dan t ,
Cook(M,n,m,t) mengembalikan sirkuit Boolean ukuran O(t2) yang mensimulasikan M masukan panjang (n,m) untuk t langkah.
Mari kita coba gunakan ini untuk memperluas argumen untuk P=PH untuk mendapatkan algoritma penyelesaian TQBF (sebenarnya TQBCircuit, yaitu masalah Sirkuit Boolean Totally Quantified).
Ide dari algoritma ini adalah sebagai berikut: kita berulang kali menggunakan Cook pada A untuk menghapus bilangan dari rangkaian diukur diberikan. Ada sejumlah linear dari bilangan jadi kami berharap untuk mendapatkan algoritma waktu polinomial (kami memiliki algoritma dengan polynomially banyak langkah menggunakan polinomial waktu subroutine Cook ). Pada akhir proses ini pembilang eliminasi kita akan memiliki sirkuit quantifier bebas yang dapat dievaluasi dalam waktu polinomial (Circuit Nilai masalah adalah di P , biarkan CV menjadi algoritma waktu polinomial untuk menghitung nilai rangkaian sirkuit yang diberikan) .
Namun kita akan melihat bahwa gagasan ini tidak berhasil (karena alasan yang sama ditunjukkan oleh Peter).
Algoritma yang dihasilkan terlihat waktu polinomial: kami memiliki banyak langkah polinomial, setiap langkah dihitung waktu polinomialnya. Namun ini tidak benar, algoritma ini bukan waktu polinomial.
Menggunakan waktu polinomial subrutin dalam algoritma waktu polinomial adalah waktu polinomial. Masalahnya adalah bahwa secara umum ini tidak perlu benar jika nilai-nilai yang dikembalikan oleh subrutin tidak dari ukuran polinomial dalam input asli dan kami menganggap bahwa kami melakukan penugasan tentang nilai-nilai yang kembali dari subrutin. (Dalam model TM kita harus membaca output dari setiap polinomial sedikit waktu subrutin demi sedikit.) Berikut ukuran nilai kembali dari algoritma Cook yaitu meningkatkan (dapat menjadi kekuatan dari ukuran masukan yang diberikan untuk itu , daya yang tepat tergantung pada waktu menjalankan A dan sekitar p2(|input|), jadi karena kita tahu bahwa A tidak boleh kurang dari waktu linier, |output|setidaknya |input|2 ).
Masalahnya mirip dengan kode sederhana di bawah ini:
- Diberikan x ,
- Biarkan n=|x|,
- Biarkan y=x ,
- Untuk i dari 1 sampai n lakukan
- Biarkan y=y|y|, (yaitu gabungan dari |y| salinan y )
- Kembali y
Setiap kali kita mengeksekusi y=y|y|kami menguadratkan ukuran y . Setelah eksekusi n kita akan memiliki y yang x2n dan memiliki ukuran n2n , jelas bukan polinomial dalam ukuran input.
Mari kita asumsikan bahwa kita hanya mempertimbangkan rumus terkuantisasi dengan k(n) alternatif kuantifikasi (di mana n adalah ukuran total dari rumus terkuantifikasi).
Asumsikan bahwa A berjalan dalam waktu p (misalnya linear waktu yang tidak dikesampingkan begitu jauh), dan memiliki mungkin lebih efisien Cook algoritma keluaran sirkuit yang lebih kecil dari ukuran l(t) di tempat t2 , maka kita mendapatkan sebuah algoritma untuk ExtCircuitSat yang berjalan dalam waktu (l∘p)O(k)(n)=l(p(l(p(…(l(p(n)))))))O(k) compositions . Bahkan dalam kasus yang kedualdanpadalah linier (tapi dengan jumlah koefisiena≥2) kita akan mendapatkan sebuah algoritma yang berjalan dalam waktuΩ(n2k(n))dan jikak(n)=Θ(n)itu akan menjadiΩ(n2n) mirip dengan algoritma brute-force (dan bahkan ini didasarkan pada asumsi Cook-Levin dapat dilakukan pada algoritma yang menghasilkan sirkuit ukuran linier dalam waktu berjalan dari algoritma).