Dalam teori kompleksitas, definisi kompleksitas waktu dan ruang keduanya merujuk pada mesin Turing universal: resp. jumlah langkah sebelum berhenti, dan jumlah sel pada kaset menyentuh.
Mengingat tesis Church-Turing, harus mungkin untuk mendefinisikan kompleksitas dalam hal kalkulus lambda juga.
Gagasan intuitif saya adalah bahwa kompleksitas waktu dapat dinyatakan sebagai jumlah β-reduksi (kita dapat menentukan konversi-a dengan menggunakan indeks De Brujin, dan η hampir tidak merupakan pengurangan), sedangkan kompleksitas ruang dapat didefinisikan sebagai jumlah simbol (λ, indeks-DB, "terapkan" -simbol) dalam pengurangan terbesar .
Apakah ini benar? Jika demikian, di mana saya bisa mendapatkan referensi? Jika tidak, bagaimana saya salah?
time-complexity
lambda-calculus
Karl Damgaard Asmussen
sumber
sumber
Jawaban:
Seperti yang Anda tunjukkan, kalkulus λ memiliki gagasan kompleksitas waktu yang tampaknya sederhana: cukup hitung jumlah langkah reduksi β. Sayangnya, semuanya tidak sederhana. Kita harus bertanya:
Untuk menjawab pertanyaan ini, pertama-tama kita harus menjelaskan apa yang kita maksud dengan ukuran kompleksitas. Satu jawaban yang baik diberikan oleh tesis Slot dan van Emde Boas : segala ukuran kompleksitas yang baik harus memiliki hubungan polinomial dengan gagasan kanonik kompleksitas waktu yang didefinisikan menggunakan mesin Turing. Dengan kata lain, harus ada tr penyandian yang masuk akal (.) Dari istilah λ-kalkulus ke mesin Turing, sehingga untuk setiap istilah ukuran: direduksi menjadi nilai dalam tepat saat direduksi menjadi nilai dalam .M. | M.| M. p o l y( | M| ) t r ( M) p o l y( | t r ( M) | )
Untuk waktu yang lama, tidak jelas apakah ini dapat dicapai dalam kalkulus λ. Masalah utama adalah sebagai berikut.
Ada istilah yang menghasilkan bentuk normal dalam jumlah langkah polinomial yang berukuran eksponensial. Lihat (1). Bahkan menuliskan bentuk normal membutuhkan waktu yang eksponensial.
Strategi reduksi yang dipilih memainkan peran penting juga. Sebagai contoh ada sekelompok istilah yang mengurangi dalam jumlah polinomial langkah-β paralel (dalam arti optimal λ-reduksi (2), tetapi yang kompleksitasnya non-elementer (3, 4).
Makalah (1) mengklarifikasi masalah dengan menunjukkan pengkodean yang masuk akal yang mempertahankan kelas kompleksitas PTIME dengan asumsi pengurangan Call-By-Name paling kiri. Wawasan utama tampaknya adalah bahwa ledakan eksponensial hanya dapat terjadi karena alasan yang tidak menarik yang dapat dikalahkan dengan pembagian sub-istilah yang tepat.
Perhatikan bahwa makalah seperti (1) menunjukkan bahwa kelas kompleksitas kasar seperti PTIME bertepatan, apakah Anda menghitung langkah-β, atau langkah-langkah mesin Turing. Itu tidak berarti kelas kompleksitas yang lebih rendah seperti O (log n) juga bertepatan. Tentu saja kelas kompleksitas seperti itu juga tidak stabil di bawah variasi model mesin Turing (misalnya 1-tape vs multi-tape).
D. Karya Mazza (5) membuktikan teorema Cook-Levin (𝖭𝖯-Kelengkapan SAT) menggunakan bahasa fungsional (varian dari λ-kalkulus) alih-alih mesin Turing. Wawasan utama adalah ini:
Saya tidak tahu apakah situasi mengenai kompleksitas ruang dipahami.
B. Accattoli, U. Dal Lago, Pengurangan Beta adalah Invarian, Memang .
J.-J. Retribusi, Pengurangan mengoreksi dan mengoptimalkan dan menghitung lambda.
JL Lawall, HG Mairson, Optimalitas dan inefisiensi: apa yang bukan model biaya kalkulus lambda ?
A. Asperti, H. Mairson, Pengurangan beta paralel tidak bersifat rekursif dasar .
D. Mazza, Gereja Bertemu Masak dan Levin .
sumber
sumber
sumber