Wikipedia mendefinisikannya sebagai
Algoritma dikatakan sebagai waktu polinomial jika waktu berjalannya dibatasi oleh ekspresi polinomial dalam ukuran input untuk algoritma, yaitu, untuk beberapa konstanta k.
Algoritme berjalan dalam waktu yang sangat polinomial jika [8]
jumlah operasi dalam model perhitungan komputasi dibatasi oleh polinomial dalam jumlah bilangan bulat dalam instance input; dan
ruang yang digunakan oleh algoritma dibatasi oleh polinomial dalam ukuran input.
Di Bernhard Korte, Jens Vygen, Optimalisasi Kombinasi :
Definisi 1.4.
Algoritma dengan input rasional dikatakan berjalan dalam waktu polinomial jika
- ada bilangan bulat k sehingga berjalan dalam waktu , di mana n adalah ukuran input, dan
- semua angka dalam perhitungan menengah dapat disimpan dengan bit .
Algoritma dengan input arbitrer dikatakan berjalan dalam waktu yang sangat polinomial jika
- ada bilangan bulat k sedemikian sehingga berjalan dalam waktu untuk setiap input yang terdiri dari n angka dan
- ini berjalan dalam waktu polinomial untuk input rasional.
Tolong koreksi saya jika saya salah. Berikut ini adalah perbedaan harfiah yang saya perhatikan:
Untuk algoritma waktu polinomial, definisi Korte dan Vygen adalah "definisi Wikipedia + ruang penyimpanan polinomial".
Untuk algoritma waktu sangat polinomial, definisi Korte dan Vygen dan definisi Wikipedia keduanya membutuhkan waktu polinomial dalam ukuran penyimpanan input. Tetapi K dan V juga membutuhkan waktu polinomial dalam jumlah angka dalam input apa pun, sementara Wikipedia juga membutuhkan ruang penyimpanan polinomial dalam ukuran input.
Jadi, apakah definisi K dan V dan Wikipedia untuk kedua konsep ini setara? Apa perbedaan dan hubungan lain di antara mereka?
Terima kasih dan salam!
sumber
Jawaban:
Sebelum definisi formal, pertimbangkan apa yang ingin dibedakan dengan klasifikasi "kuat / lemah".
Pertama, pertimbangkan untuk menjalankan keduanya di Mesin Turing. Keduanya akan berjalan dalam sejumlah langkah polinomial dalam panjang input biner yang disandikan. Akibatnya, jumlah operasi aritmatika yang dilakukan oleh keduanya harus polinomial dalam panjang input biner-encoded . Oleh karena itu, untuk kedua mesin Turing, waktu yang berjalan akan tumbuh secara polinomi ketika jumlah nilai input atau besaran mereka bertambah. Untuk menekankan yang terakhir, perhatikan bahwa bahkan yang kuat akan mengambil lebih banyak langkah TM pada besaran yang lebih besar (setidaknya perlu membaca bit tambahan). Dalam keadaan apa pun seseorang tidak menjadi eksponensial (seperti halnya dengan waktu pseudo-polinomial yang tidak berhubungan). Dengan mesin Turing saja, perbedaan mendasar tampaknya tidak terdeteksi.
Sekarang pertimbangkan menjalankan masing-masing pada mesin aritmatika di mana operasi apa pun adalah operasi aritmatika pada bilangan bulat dan operasi aritmatika adalah . Ketika Anda meningkatkan besaran angka-angka input, panjang input biner-encode tumbuh, dan waktu berjalan dari algoritma yang lemah akan tumbuh, namun waktu berjalan dari algoritma yang kuat tidak akan berubah, karena dapat diikat oleh angka nomor input, yang tidak Anda ubah (mis. perkalian matriks vs GCD Euclid).O ( 1 )
Himpunan algoritma yang berjalan dalam jumlah operasi aritmatika polinomial dalam jumlah angka input didefinisikan dengan baik, tetapi tumpang tindih dengan kelas algoritma yang mengambil sejumlah langkah TM eksponensial dalam panjang input biner yang dikodekan (lihat contoh ). Oleh karena itu, untuk set ini, properti di paragraf kedua tidak akan berlaku. Untuk mengecualikan persimpangan yang tidak diinginkan, kami menambahkan kondisi untuk ruang polinomial TM [*].
Dalam [1] ini dinyatakan dalam dua cara:
[*] Kondisi kedua dinyatakan di mana-mana sebagai ruang polinom, sedangkan membutuhkan waktu polinom lebih masuk akal bagi saya. Yang pertama lebih inklusif, tetapi aneh. Apakah ada algoritma polinomial kuat yang membutuhkan lebih dari waktu polinomial? Perhatikan bahwa contoh kuadrat ulang tidak membutuhkan waktu polinom atau ruang polinomial.
[1] Grötschel, Martin; László Lovász, Alexander Schrijver (1988). "Kompleksitas, Nubuat, dan Komputasi Angka". Algoritma Geometris dan Optimalisasi Kombinatorial. Peloncat. ISBN 0-387-13624-X.
sumber