Pencocokan pola tingkat tinggi adalah masalah yang tidak dapat ditentukan. Itu berarti tidak ada algoritma yang, diberikan persamaan a => b
, di mana a
dan b
adalah istilah terbuka pada kalkulus lambda yang diketik sederhana, menemukan substitusi S
sehingga aS => bS
, di mana =>
singkatan "memiliki bentuk normal Bn yang sama". Namun, manusia dapat menyelesaikan masalah itu secara efisien. Misalnya, diberikan masalah berikut:
a = (λt . t
(F (λ f x . (f (f (f x)))))
(F (λ f x . (f (f x)))))
b = (λ t . t
(λ f x . (f (f (f (f (f (f x)))))))
(λ f x . (f (f (f (f x))))))
Setiap manusia dengan pengetahuan yang cukup tentang kalkulus lambda akan dapat memperhatikan F
adalah fungsi "ganda" untuk jumlah gereja, dengan cepat datang dengan solusi yang
F = (λ a b c . (a b (a b c)))
Pertanyaan saya adalah: jika masalah itu tidak dapat dipastikan, bagaimana manusia dapat dengan cepat dan mudah menyelesaikannya?
computability
Viktor Maia
sumber
sumber
Jawaban:
Manusia dapat menyelesaikan beberapa contoh dari masalah itu secara efisien, tetapi tidak ada alasan untuk percaya bahwa manusia dapat menyelesaikan semua kejadian secara efisien. Menunjukkan satu contoh yang dapat diselesaikan manusia dengan efisien tidak berarti bahwa manusia dapat menyelesaikan semua kejadian secara efisien.
Tidak dapat ditentukan berarti "tidak ada algoritma yang dapat menyelesaikan semua instance dan yang selalu berakhir". Mungkin masih ada algoritme yang dapat memecahkan beberapa kasus , bahkan untuk masalah yang tidak dapat ditentukan .
Jadi tidak ada kontradiksi.
sumber
F = (λ a b c . (a b (a b c)))
dan hentikan". Itu adalah algoritma komputer yang memecahkan masalah untuk beberapa kasus (khususnya, untuk tepat 1 kasus). Ya, tidak apa-apa - mengajukan pertanyaan baru seperti itu sepertinya hal yang tepat untuk dilakukan. Seperti biasa, tolong beri tahu kami penelitian apa yang telah Anda lakukan dalam pertanyaan (Anda harus melakukan beberapa sebelum bertanya).Seperti yang dicatat oleh salah satu komentar, orang harus sadar bahwa ada beberapa algoritma yang cukup bagus untuk menyelesaikan Pencocokan Pola Pesanan Tinggi dalam praktiknya (seperti pencarian cepat google akan mengungkapkan).
Saya tidak tahu ada yang memecahkan masalah khusus ini, tetapi masalah "penggandaan" ini terasa lebih dekat dengan bidang sintesis program . Saya percaya bahwa ada sistem sintesis program yang dapat mengatasi masalah semacam ini.
Sangat mudah untuk membuat contoh yang membuat sistem tersebut tersedak, dan tampaknya manusia sangat pandai dalam masalah-masalah seperti ini. Menciptakan algoritma yang lebih dekat dengan manusia dalam kemampuan mereka untuk memecahkan masalah-masalah semacam ini adalah bidang pembuktian teorema otomatis dan kecerdasan buatan (untuk upaya yang lebih ambisius / tidak realistis).
sumber
Manusia selalu berusaha memecahkan masalah dengan pengetahuan mereka sendiri, sehingga manusia mengembangkan beberapa algoritma untuk memecahkan masalah dengan beberapa contoh masalah. Jadi manusia mengembangkan suatu algoritma, tetapi tidak ada jaminan bahwa algoritma tertentu dapat menyelesaikan setiap masalah. Jadi tidak ada algoritma yang dapat menyelesaikan setiap masalah, tetapi masih ada beberapa masalah yang dapat diselesaikan oleh manusia meskipun tidak ada algoritma yang sempurna untuk itu seperti kita dapat mengatakan bahwa kita tahu bagaimana menyelesaikan masalah tetapi kita tidak memiliki algoritma .
sumber