Tampak bagi saya bahwa argumen diagonalisasi yang dapat digunakan hanya sedikit berbeda dari yang standar, misalnya seperti dapat ditemukan dalam catatan kuliah ini tentang Teorema Baker – Gill – Solovay ( yaitu , bahwa ada oracle yang mana dan juga nubuat yang ). Pada dasarnya, Anda harus menjelaskan cara 'merekayasa' input permusuhan sedikit berbeda.APA=NPAAPA≠NPA
Berikut ini cara kita bisa menggunakan pendekatan ini untuk membuktikan keberadaan oracle yang . Untuk setiap oracle , tentukan bahasa
Jelas bahwa untuk alasan sederhana bahwa mesin Turing nondeterministik dapat memeriksa apakah input berbentuk untuk beberapa , dan kemudian menebak string yang jika ada. Tujuannya adalah untuk menunjukkanANPA⊈BQPAALA={1n∣∣∃z∈{0,1}n:A(z,0)=(z,1)}.
LA∈NPA1nnz∈{0,1}nA(z,0)=(z,1)zLAtidak dapat diputuskan dalam waktu polinomial, dengan kesalahan terikat, oleh keluarga rangkaian kesatuan yang seragam, menggunakan batas bawah lebih rendah pada masalah pencarian.O(2n/2)
Misalkan sedemikian rupa sehingga masalah pencarian pada oracle dengan input bit membutuhkan setidaknya query oracle untuk memutuskan dengan benar (dengan probabilitas setidaknya 2/3), untuk semua .c,N>0nc2n/2n>N
Biarkan,, menjadi penghitungan semua keluarga rangkaian oracle kesatuan , sedemikian rupa sehingga urutan gerbang dari sirkuitbekerja pada input bit dapat diproduksi dalam waktu kurang dari . (Batas waktu ini berkaitan dengan kondisi 'keseragaman', di mana kita akan tertarik pada rangkaian dapat dihitung dengan mesin Turing deterministik dalam waktu polinomial - suatu kondisi yang lebih kuat daripada yang kita memaksakan di sini. Pencacahan keluarga rangkaian ini dapat dilakukan, untuk Misalnya, dengan mewakili mereka secara tidak langsung oleh mesin Turing deterministikC(1)C(2)…C(k)={C(k)n}n⩾0C(k)nnc2n/2T(k) yang menghasilkan urutan gerbang mereka, dan menyebutkan mereka .) Kami menghitung keluarga sirkuit sehingga setiap keluarga sirkuit terjadi jauh sering dalam pencacahan.
Dari batas run-time pada deskripsi urutan gerbang, maka khususnya bahwa memiliki lebih sedikit dari gerbang untuk semua , dan khususnya membuat lebih sedikit dari pertanyaan ke oracle.C(k)nc2n/2kc2n/2
Untuk apa pun , pertimbangkan sirkuit. Dari batas bawah pada masalah pencarian, kita tahu bahwa untuk ada kemungkinan nilai fungsi oracle dievaluasi oleh oracle, seperti bahwa dengan probabilitas 2/3, output dihasilkan olehpada input bukan jawaban yang benar apakah .nC(n)nn>Nf:{0,1}n→{0,1}C(n)n1n∃z∈{0,1}n:f(z)=1
Untuk setiap , pilih fungsi yang "gagal" dengan cara ini.n>NfnC(n)n
Biarkan menjadi oracle yang, pada input ukuran , mengevaluasi .An>Nfn
Setelah dibangun cara ini, setiap keluarga sirkuit gagal untuk benar memutuskan dengan probabilitas paling sedikit 2/3, untuk beberapa (dan tak terhingga banyaknya seperti sebenarnya). Maka tidak ada keluarga rangkaian benar memutuskan dengan probabilitas keberhasilan dibatasi di bawah 2/3 pada semua input, sehingga tidak dapat diselesaikan dengan batas-batas seperti itu oleh setiap rangkaian keluarga rangkaian seragam yang dibangun dalam waktu .AC(n)LAn>NnC(k)LALAp(n)
Dengan demikian, , dari yang berikut bahwa .LA∉BQPANPA⊈BQPA