Dunia Relatif Yang “Tidak Terkalahkan” Tidak Ada

10

Generator kebal didefinisikan sebagai berikut:

Biarkan menjadi hubungan NP, dan menjadi mesin yang menerima . Secara tidak resmi, sebuah program adalah generator yang kebal jika, pada input , ia menghasilkan pasangan instance-saksi , dengan , menurut distribusi di mana setiap musuh waktu-polinomial yang diberikan gagal menemukan saksi bahwa , dengan probabilitas yang nyata, untuk panjang yang tak terhingga .M L ( R )RML(R) ( x , w ) R | x | = n x x S n1n(x,w)R|x|=nxxSn

Generator kebal, pertama kali didefinisikan oleh Abadi et al. , menemukan banyak aplikasi dalam kriptografi.

Keberadaan generator yang kebal didasarkan pada asumsi bahwa , namun ini mungkin tidak cukup (lihat juga topik terkait ).PNP

Teorema 3 dari Abadi et al. makalah, dikutip di atas, menunjukkan bahwa bukti keberadaan generator yang kebal tidak merelatifkan:

Teorema 3. Ada oracle sehingga , dan generator yang kebal tidak ada relatif terhadap B.P BN P BBPBNPB

Saya tidak mengerti bagian dari pembuktian teorema ini. Biarkan menunjukkan operasi serikat terpisah . Biarkan menjadi bahasa PSPACE-lengkap dari formula Boolean terukur yang memuaskan, dan biarkan menjadi serangkaian string dengan kompleksitas Kolmogorov maksimum yang sangat jarang. Secara khusus, berisi satu string dari setiap panjang , di mana urutan didefinisikan oleh: , adalah eksponensial dalam , untuk ; jika dan , laluK K n i n 1 , n 2 , n 1 = 2 n i n i - 1 i > 1 x K | x | = n x nQBFKKnin1,n2,n1=2nini1i>1xK|x|=nxmemiliki kompleksitas Kolmogorov .n

Makalah ini menyatakan bahwa relatif terhadap , menyatakan bahwa . Bisakah Anda jelaskan? (Juga, tolong jelaskan apakah bersifat rekursif.)PN P BB=QBFKPNPB

MS Dousti
sumber

Jawaban:

7

Jika mereka hanya berbicara tentang (tidak terbatas sumber daya) kompleksitas Kolmogorov, maka akan menjadi tidak dapat dihitung (jika tidak, Anda dapat menggunakan mesin komputasi untuk memberikan deskripsi singkat dari string , karena semua yang perlu Anda lakukan adalah menggambarkan mesin dan panjang dari , dan kami memiliki belum ), maka akan tidak dapat dihitung juga.K x K n x K ( x ) = n K ( n ) log n BKKxKnxK(x)=nK(n)catatannB

Namun, makalah Abadi et al. referensi ( Hartmanis. Kerumitan Kolmogorov yang digeneralisasi dan struktur perhitungan yang layak. FOCS 1983. ) menggunakan versi Kolmogorov yang terbatas sumber daya. Biarkan menjadi mesin Turing universal yang efisien. Tentukan menjadi himpunan string sedemikian sehingga ada string panjang sedemikian rupa sehingga dan perhitungan paling banyak memakan waktu . Di bagian atas kolom kedua pada hal. 444 dari makalah itu, Hartmanis menjelaskan bagaimana menggunakan konsep ini untuk membangun oracle (computable) relatif yangK U [ f ( n ) , g ( n ) ] x d | d | f ( | x | ) x = U ( d ) U ( d ) g ( | x | ) P N PUKU[f(n),g(n)]xd|d|f(|x|)x=U(d)U(d)g(|x|)PNP.

Inilah ide Hartmanis, yang disesuaikan dengan Abadi et al. hasil. Biarkan dan (yang saya percaya adalah fungsi yang Anda jelaskan). Dengan diagonalisasi standar (misalnya seperti dalam teorema hierarki waktu), buat himpunan himpunan nilai sehingga dan . Sekarang letakkan string pertama dengan panjang dari ke dalam iff . Karena , kami memiliki .t o w 3 ( n + 1 ) = 2 2 2 n C C { 1 t o w 3 ( n ) : n 1 } C T I M E [ n log n ] - P t o w 3 ( n ) KtHaiw3(1)=2tHaiw3(n+1)=222nCC{1tHaiw3(n):n1}CTsayaM.E[ncatatann]-PtHaiw3(n)K 1 t o w 3 ( n )C C = { 1 n : ( x ) [ | x | = n  dan  x K ] } C N P KK[catatann,ncatatann]-K[catatann,ncatatancatatann]K1tHaiw3(n)CC={1n:(x)[|x|=n dan xK]}CNPK

Kami juga memiliki , maka . Misalkan demi kontradiksi bahwa . Lalu ada mesin oracle poly-time sehingga . Saya mengklaim bahwa ini berarti (tanpa oracle!), Bertentangan dengan pembangunan . Berikut algoritma waktu poli: pada input : P KN P K C P K M C = L ( M K ) C P C x = 1 t o w 3 ( n 0 )CPKPKNPKCPKM.C=L(MK)CPCx=1tow3(n0)

  1. Hitung semua string dalam dengan panjang kurang dari. Ini dapat dilakukan dalam waktu polinomial karena semua string memiliki panjang paling banyak, dan kita hanya perlu menguji perhitungan pada string yang lebih kecil , untuk jumlah waktu yang masih sangat kecil dibandingkan dengan.| x | log log log | x | U ( d ) d | x |K|x|logloglog|x|U(d)d|x|

  2. Jalankan , simulasi kueri oracle ke string yang lebih kecil dengan hasil (1). Jika pernah menanyakan string dengan panjang, simulasikan kueri itu dengan jawaban "TIDAK".M ( x ) | x |M(x)M(x)|x|

Langkah alasan (2) berhasil karena, untuk panjang input yang cukup besar, jika ada string panjang itu, tidak dapat meminta , sehingga kami dapat mensimulasikan semua pertanyaan seperti itu dengan jawaban TIDAK. Jika memang query , maka kita akan memiliki (di mana membatasi run-time ), yang bertentangan dengan fakta bahwa kita memilih untuk tidak berada dalam .M K y y y K [ log n , n k ] n k M y K [ log n , n log log n ]yKMK yyyK[logn,nk]nkMy K[logn,nloglogn]

Joshua Grochow
sumber
Sangat detail dan ditulis dengan baik. Joshua terima kasih!
MS Dousti