Dapatkah affine lambda calculus menyelesaikan setiap masalah dalam P?

10

Dalam Topik Lanjutan dalam Jenis dan Bahasa Pemrograman disebutkan, dalam bab tentang sistem tipe sub-struktural, bahwa kalkulus affine lambda "dibuat dengan hati-hati" dengan kombinator rekursi untuk daftar hanya dapat mengetik istilah yang memiliki waktu berjalan polinomial (tidak menyajikan buktinya karena kerumitan). Ini akan sangat menarik jika kita juga bisa menyelesaikan setiap masalah dalam P. Saya bisa mencoba menemukan solusi untuk masalah P-lengkap menggunakan kalkulus yang disajikan oleh saya tidak yakin ini benar-benar akan membuktikan apa pun. Bagi saya itu tidak berarti bahwa hal itu dapat membentuk sebelumnya semua pengurangan yang diperlukan untuk menggunakan solusi untuk masalah P-lengkap (meskipun tampaknya memang mungkin).

Jika kalkulus affine lambda tidak diketahui mampu menyelesaikan masalah dengan tepat di P, adakah kalkulus yang dikenal yang dapat menyelesaikan dengan tepat masalah di P?

Jake
sumber
1
Maafkan ketidaktahuan saya, tapi apa contoh dari masalah lengkap, dan yang lebih penting, apa pengertian pengurangan yang Anda gunakan? P
Andrej Bauer
Saya menemukan beberapa di wikipedia: en.wikipedia.org/wiki/P-complete#P-complete_problems . Yang menarik adalah masalah nilai rangkaian dan horn-SAT. Pemrograman linier juga tampaknya -complete. Slide ini menggambarkan masalah nilai rangkaian dengan baik cs.cornell.edu/courses/CS6820/2012sp/Handouts/cvp.pdf . Tampaknya reduksi L atau N C digunakan, reduksi L lebih lemah dari reduksi N C. Saya akan puas dengan keduanya; Saya tidak yakin apa konsekuensinya menggunakan L vs N C persis. PLNCLNCLNC
Jake
6
Ada bahasa linear yang lengkap untuk P. Menariknya, mereka umumnya lengkap untuk masalah, tetapi tidak untuk algoritma. Artinya, Anda dapat menulis program waktu poli untuk setiap masalah dalam P, tetapi tidak setiap algoritma politime dapat diekspresikan.
Neel Krishnaswami
Apakah pernyataan itu kira-kira setara dengan "mereka umumnya lengkap untuk P tetapi tidak untuk FP"? Juga jika Anda bisa memberikan beberapa contoh, ini akan menjadi jawaban yang luar biasa.
Jake
3
Neel Krishnaswami, dapatkah Anda memberikan referensi? Ini terdengar menarik.
Mateus de Oliveira Oliveira

Jawaban:

12

Sunting: tebakan saya pada paragraf pertama di bawah ini salah! Ugo Dal Lago menunjukkan kepada saya sebuah makalah kemudian oleh Martin Hofmann (muncul dalam POPL 2002), yang saya tidak sadari, menunjukkan (sebagai akibat wajar dari hasil yang lebih umum) bahwa sistem dari buku ATTPL sebenarnya lengkap untuk ( meskipun tidak dapat menghitung setiap fungsi dalam F P ). Jadi, yang mengejutkan saya, jawaban untuk pertanyaan utama adalah ya.PFP


Mengenai sistem yang Anda maksud (dari buku ATTPL), saya cukup yakin itu tidak dapat memutuskan setiap bahasa di . Ini tentu tidak bisa menghitung setiap fungsi di F P : seperti yang disebutkan dalam catatan bab itu, bahwa sistem diambil dari Lics Martin Hofmann 1999 kertas ( "jenis Linear dan non-size meningkat jumlahnya banyak waktu komputasi"), di mana ia ditampilkan bahwa fungsi yang diwakili adalah polytime dan non-size-meningkatPFP, yang mengecualikan banyak fungsi polytime. Ini juga tampaknya memberikan batasan serius pada ukuran kaset dari mesin Turing yang dapat Anda simulasikan dalam bahasa itu. Dalam makalahnya, Hofmann menunjukkan bahwa Anda dapat menyandikan perhitungan ruang linear; Dugaan saya adalah bahwa Anda tidak akan dapat melakukan lebih banyak lagi, yaitu , kelas yang sesuai dengan sistem itu kira-kira merupakan masalah yang dapat dipecahkan secara simultan dalam ruang polytime dan linear.

Mengenai pertanyaan kedua, ada beberapa -calculi yang dapat memecahkan persis masalah dalam P . Beberapa dari mereka disebutkan dalam catatan bab ATTPL yang Anda maksudkan (Bagian 1.6): Leivant's λ -calculus (lihat makalahnya POPL 1993, atau makalah dengan Jean-Yves Marion "Lambda Calculus Characterizations of Poly-Time) ", Fundamenta Informaticae 19 (1/2): 167-184, 1993), yang berkaitan dengan Bellantoni dan Cook karakterisasi F P ; dan λ -kalki yang berasal dari logika linier cahaya Girard ( Informasi dan Komputasi , 143: 175–204, 1998) atau dari logika linear lunak Lafont ( Ilmu Komputer TeoritisλPλFPλ318 (1-2): 163-180, 2004). Ketik sistem yang muncul dari dua sistem logis yang terakhir ini dan memastikan penghentian polytime (sambil tetap menikmati kelengkapan) dapat ditemukan di:

Patrick Baillot, Kazushige Terui. Jenis cahaya untuk perhitungan waktu polinomial dalam kalkulus lambda. Informasi dan Perhitungan 207 (1): 41-62, 2009.

Marco Gaboardi, Simona Ronchi Della Rocca. Dari logika ringan ke tugas mengetik: studi kasus. Jurnal Logika IGPL 17 (5): 499-530, 2009.

Anda akan menemukan banyak referensi lain di kedua makalah itu.

Sebagai penutup, izinkan saya memperluas komentar Neel Krishnaswami. Situasinya agak halus. Semua di atas -calculi dapat dilihat sebagai pembatasan bate lebih umum, di mana Anda dapat menghitung lebih dari sekedar fungsi polytime, mengatakan untuk sistem misalnya F. Dengan kata lain, Anda mendefinisikan properti Φ sistem F program P : stringbool sedemikian rupa sehingga:λΦP:stringbool

tingkat kesehatan: menyiratkan bahwa bahasa yang diputuskan oleh P adalah dalam P ;Φ(P)PP

kelengkapan: untuk setiap , ada sistem F program P yang memutuskan L sedemikian rupa sehingga Φ ( P ) .LPPLΦ(P)

Yang menarik adalah bahwa properti yang diungkapkan oleh murni sintaksis dan, khususnya, dapat ditentukan. Oleh karena itu, kelengkapan hanya dapat bertahan dalam arti ekstensional: jika L adalah bahasa favorit Anda dalam P dan jika P adalah algoritma favorit Anda untuk menentukan L yang diekspresikan dalam sistem F, mungkin Φ ( P ) tidak berlaku. Yang Anda tahu adalah bahwa ada beberapa sistem lain program F P memutuskan L dan sedemikian rupa sehingga Φ ( P ) berlaku. Sayangnya, mungkin saja P ΦLPPLΦ(P)PLΦ(P)Pjauh lebih dibuat dari Anda . Memang, kelengkapan terbukti dengan mengkodekan mesin Turing clock polinomi sebagai persyaratan sistem F memuaskan Φ . Oleh karena itu, satu-satunya cara dijamin untuk menyelesaikan L menggunakan algoritma favorit Anda adalah mengimplementasikan algoritma itu pada mesin Turing dan kemudian menerjemahkannya dalam sistem F menggunakan pengkodean yang diberikan dalam bukti kelengkapan (pengkodean Anda sendiri mungkin tidak berfungsi!). Bukan solusi yang paling elegan dalam hal pemrograman ... Tentu saja, dalam banyak kasus program "alami" P memuaskan Φ . Namun, dalam banyak kasus lain itu tidak: dalam makalah LICS 1999 yang disebutkan di atas, Hofmann memberikan semacam penyisipan sebagai contoh.PΦLPΦ

Sistem tipe yang sengaja lengkap , yang dapat mengetik persis program-program polytime dari bahasa yang lebih luas (sistem F dalam contoh saya di atas) memang ada. Tentu saja, mereka tidak dapat diputuskan secara umum. Lihat

Ugo Dal Lago, Marco Gaboardi. Jenis Ketergantungan Linear dan Kelengkapan Relatif. Metode Logis dalam Ilmu Komputer 8 (4), 2011.

Damiano Mazza
sumber
1
Saya tidak mengerti apa yang ingin Anda katakan di babak kedua. Berdasarkan uraian Anda, ada tranformasi sintaksis mesin Turing clock poly-time ke F-program yang memecahkan masalah yang sama. Sejauh yang saya bisa lihat, ini adalah yang terbaik yang bisa diharapkan ketika menerjemahkan dari satu model komputasi ke model lainnya.
Emil Jeřábek
3
ΦNat:=X.(XX)XXλmNat.λnNat.ΛX.λsXX.mX(nXs)
3
for
Saya pikir ini baik-baik saja. Saya terutama tertarik pada pencarian fungsi (menemukan fungsi yang memaksimalkan properti tertentu) jadi saya tidak harus menjadi programmer, komputer tidak. Malam ini saya akan memiliki waktu untuk melihat referensi ini. Terima kasih!
Jake