Waktu konstan adalah kompleksitas akhir waktu mutlak yang rendah. Orang mungkin bertanya-tanya: adakah sesuatu yang nontrivial yang dapat dihitung dalam waktu yang konstan? Jika kita berpegang pada model mesin Turing, maka tidak banyak yang dapat dilakukan, karena jawabannya hanya dapat bergantung pada panjang segmen awal input, karena bagian input yang lebih jauh bahkan tidak dapat dicapai dalam waktu konstan.
Di sisi lain, jika kita mengadopsi model RAM unit-cost yang agak lebih kuat (dan lebih realistis), di mana operasi dasar pada -bilangan bit dihitung sebagai langkah tunggal, maka kita mungkin dapat menyelesaikan nontrivial tugas, bahkan dalam waktu yang konstan. Berikut ini sebuah contoh:
Instance: Integer , masing-masing diberikan dalam format biner oleh bit.O ( log n )
Pertanyaan: Apakah ada grafik -vertex, sehingga konektivitas verteksnya adalah , konektivitas tepinya adalah , dan derajat minimumnya adalah d ?k l
Perhatikan bahwa dari definisi itu bahkan tidak jelas bahwa masalahnya ada di NP . Alasannya adalah bahwa saksi alami (grafik) mungkin perlu -bit panjang deskripsi, sedangkan input hanya diberikan oleh bit. Di sisi lain, teorema berikut (lihat Teori Grafik Ekstrimal oleh B. Bollobas) datang untuk menyelamatkan.
Teorema: Biarkan menjadi bilangan bulat. Ada grafik n -vertex dengan konektivitas vertex k , konektivitas edge l , dan derajat minimum d , jika dan hanya jika salah satu dari kondisi berikut dipenuhi:
- ,
Karena kondisi ini dapat diperiksa dalam waktu konstan (dalam model RAM unit-cost), Teorema mengarah ke algoritma waktu konstan dalam model ini.
Pertanyaan: Apa sajakah contoh nontrivial lain dari algoritma waktu konstan?
sumber
Jawaban:
Makalah Algoritma Perkiraan Konstan-Waktu melalui Perbaikan Lokal oleh Nguyen dan Onak memberikan banyak contoh skema perkiraan waktu konstan acak: Pencocokan Maksimum (waktu berjalan hanya bergantung pada tingkat maksimum grafik), Atur penutup, dll. Penulis menyajikan metode untuk merancang algoritma tersebut.
sumber
Ada banyak contoh gim yang dipelajari dalam teori gim kombinatorial di mana keadaan gim dapat digambarkan dengan jumlah nilai integer yang konstan. Untuk beberapa di antaranya, strategi kemenangan untuk permainan dapat dihitung dalam waktu yang konstan. Tetapi mereka juga mengajukan pertanyaan tentang apa sebenarnya model perhitungan Anda.
Salah satu permainan kombinatorial yang paling sederhana dan paling dasar adalah nim: satu memiliki jumlah tumpukan kacang yang konstan, dan dalam satu gerakan Anda dapat menghilangkan sejumlah biji dari satu tumpukan, baik menang atau kalah (tergantung pada pilihan aturan Anda) jika Anda mengambil kacang terakhir. Strategi optimal dapat dihitung dalam waktu konstan jika Anda mengizinkan operasi bitor Boolean xor (yaitu operator ^ dalam bahasa pemrograman seperti C / C ++ / Java / dll.) Apakah ini algoritma waktu konstan dalam model Anda?
Inilah salah satu di mana diketahui bahwa ada algoritma deterministik tepat waktu konstan yang konstan (dalam model perhitungan yang mungkin tidak realistis yang memungkinkan Anda untuk menguji keutamaan angka dalam waktu yang konstan) tetapi tidak diketahui apa algoritma itu: diberi permulaan bergerak dalam permainan koin Sylver , tentukan apakah itu langkah menang atau kalah. Diagram alir untuk masalah ini diberikan dalam Berlecamp, Conway, dan Guy, Winning Ways , tetapi itu tergantung pada seperangkat contoh tandingan hingga karakterisasi umum dari langkah-langkah kemenangan, dan tidak diketahui apa set itu (atau bahkan apakah itu adalah kosong).
Contoh lain yang menarik dari teori permainan kombinatorial adalah permainan Wythoff. Setiap posisi permainan dapat digambarkan oleh sepasang bilangan bulat (yaitu, ruang konstan, dalam model perhitungan Anda), gerakan dalam permainan melibatkan pengurangan salah satu dari dua bilangan bulat ini ke nilai yang lebih kecil, dan strategi yang menang melibatkan pindah ke posisi di mana rasio antara kedua bilangan bulat ini sedekat mungkin dengan rasio emas. Tetapi dalam banyak posisi permainan ada pilihan: Anda dapat mengurangi yang lebih besar dari dua bilangan bulat baik ke titik di mana itu (hampir) bilangan bulat lebih kecil kali rasio emas, atau bilangan bulat yang lebih kecil dibagi dengan rasio emas. Hanya satu dari dua pilihan ini yang akan menjadi langkah kemenangan. Jadi strategi optimal dapat didefinisikan dalam hal jumlah konstan operasi aritmatika, tetapi operasi ini melibatkan bilangan irasional, rasio emas. Apakah itu algoritma waktu yang konstan dalam model Anda? Mungkin itu'n logn
sumber
sumber