Mengapa P dan P / poly tidak sama?

10

Definisi P adalah bahasa yang dapat diputuskan oleh algoritma waktu polinomial. Definisi P / poli dapat diartikan sebagai bahasa yang dapat diputuskan oleh sirkuit ukuran polinomial (lihat http://pages.cs.wisc.edu/~jyc/02-810notes/lecture09.pdf ). Sekarang, mengapa sirkuit ukuran polinomial tidak dapat disimulasikan dalam waktu polinomial?

Sial
sumber
4
P / poli dapat menghitung bahasa yang tidak dapat ditentukan (latihan).
Yuval Filmus
Terima kasih, tetapi apa yang salah dengan argumen saya - bahwa sirkuit ukuran polinom dapat disimulasikan dalam waktu polinomial?
dcw
3
Itu salah. Sirkuit ukuran polinomial untuk panjang input yang berbeda dapat sangat berbeda, sehingga tidak semua dapat dijelaskan oleh mesin Turing tunggal.
Yuval Filmus
Terima kasih, tetapi di mana dalam definisi P katanya kita terbatas pada mesin Turing tunggal? Semua definisi yang saya lihat seperti di mathworld.wolfram.com/PolynomialTime.html
dcw
3
@dcw Sebuah bahasa di P jika ada sebuah mesin Turing seperti itu ...
David Richerby

Jawaban:

19

Intinya tentang rangkaian adalah bahwa rangkaian memiliki jumlah input yang tetap. Ini berarti bahwa, untuk mendefinisikan suatu bahasa, kita memerlukan rangkaian keluarga sedemikian rupa sehingga sirkuit  memberi tahu Anda string panjang mana  berada dalam bahasa, untuk setiap  . Ini tidak mengharuskan bahwa harus ada hubungan antara sirkuit dan  : mereka bisa sangat berbeda. Secara khusus, untuk setiap set  , Anda bisa mengatur declare jika dan untuk . Bahkan jikaC0,C1,C2,...CsayasayasayaCsayaCsaya+1SNCsaya=trkamuesayaSCsaya=fSebuahlsesayaSS tidak dapat diputuskan!

Sebaliknya, sebuah bahasa ada di  jika ada mesin Turing tunggal yang memberi tahu Anda apakah setiap input yang mungkin dari setiap panjang yang mungkin ada dalam bahasa. Sekarang, Anda tidak dapat memainkan game lucu tentang input dengan panjang berbeda.P

Anda benar bahwa kami dapat mengevaluasi sirkuit tetap apa pun di  . Tapi itu belum cukup untuk memutuskan bahasa di . Untuk melakukan itu, pertama-tama kita perlu menghitung panjang input, kemudian menggunakannya untuk menentukan sirkuit  perlu kita evaluasi, dan kemudian mengevaluasi sirkuit. Seperti yang ditunjukkan contoh di atas, bagian "tentukan sirkuit mana" mungkin bahkan tidak dapat dihitung, apalagi yang dapat dihitung dalam waktu polinomial.PP/halHailyCsaya

David Richerby
sumber
1
Sudah bertahun-tahun sejak saya mempelajari semua ini dan saya (hampir) lupa definisi , tetapi membaca jawaban ini membawa semuanya kembali: Saya ingat memiliki kebingungan yang sama ketika saya pertama kali menemukan definisi dan tiba di resolusi / pemahaman yang sama. :-)P/halHaily
ShreevatsaR