Jika saya memahaminya dengan benar, sebuah algoritma yang menghitung nilai fungsi nyata memiliki kompleksitas komputasi jika yang berikut ini berlaku: Ketika kita menghitung ke presisi memerlukan urutan langkah .
Namun, bagaimana jika kita memiliki algoritma yang pertama "menemukan algoritma yang lebih efisien untuk menghitung ", dan kemudian menghitung ?
Dengan kata lain, bagaimana jika kita memiliki algoritma yang melakukan hal berikut:
Temukan algoritma efisien untuk komputasi .
gunakan untuk menghitung .
Dalam hal ini, kita tidak lagi dapat berbicara tentang waktu komputasi yang dibutuhkan untuk menghitung misalnya, karena sepenuhnya tergantung pada apakah Algoritma telah menemukan algoritma . Dengan kata lain, waktu komputasi yang diperlukan untuk menghitung jika adalah angka komoputasi pertama jauh lebih besar daripada waktu komputasi yang diperlukan untuk menghitung setelah sudah dihitung.
Pertanyaan saya adalah, adakah konsep / teori tentang algoritma semacam ini yang pertama kali menemukan algoritma lain sebelum menghitung suatu fungsi? Secara khusus saya bertanya-tanya tentang analisis kompleksitas komputasi dari algoritma tersebut.
sumber
Jawaban:
Meskipun algoritma Levin tidak praktis (karena konstanta besar yang terlibat), sangat menarik secara teoritis. Lihat artikel Scholarpedia untuk lebih lanjut tentang pencarian universal.
sumber
Misalkan kita memiliki fungsi
f
yang mengambil argumenx
tipeA
, dan menampilkan fungsi lain yang mengambil argumeny
tipeB
dan mengembalikan hasil tipeC
. Dalam kata-kata Anda,f
ambil argumenx
dan kembalikan "algoritma" yang mengambil input tipeB
dan hasil dari tipeC
.Fungsi
f
memiliki tipeMemang, dibutuhkan
x : A
dan mengembalikan fungsi tipeB → C
. Namun demikian,f
ekuivalen dengan fungsig : A × B → C
yang membutuhkan keduanyax
dany
sekaligus dan memberi Anda hasil akhir. Memang, ada isomorfisme di antara kedua tipe itudan
karena kita dapat menentukan
g
dalam half
sebagaidan kita dapat mendefinisikan
f
dalam halg
sebagaiOperasi passing dari
g
kef
disebut currying dan programmer fungsional menggunakannya setiap saat. Dalam teori komputabilitas, gagasan untuk mengambil satu input dan mengeluarkan suatu fungsi (algoritma) diwujudkan dalam teorema smn .Jawaban atas pertanyaan Anda adalah "ya, orang-orang melakukan ini sepanjang waktu". Tetapi ada juga yang bermoral: suatu algoritma yang menemukan suatu algoritma masih hanya sebuah algoritma.
sumber