İnsanlar neden “kararsız” sorunları çözebilir?


44

Yüksek dereceli desen eşleşmesi kararsız bir sorundur. Vasıtasıyla orada bir denklem verilen hiçbir algoritma a => b, ave bsadece yazılmış lambda hesabı açık terimlerdir bir ikame bulur S, böylece aS => bSburada, =>"aynı Bn, normal formu vardır" anlamına gelir. Ancak insanlar bu sorunu etkili bir şekilde çözebilir. Örneğin, aşağıdaki sorun göz önüne alındığında:

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))))))

Lambda matematiği hakkında yeterli bilgiye sahip olan herhangi bir insan, farkedebilecek Fkilisenin sayıları için "çift" işlevdir.

 F = (λ a b c . (a b (a b c)))

Sorum şu: eğer bu sorun çözülemezse, insanlar çabuk ve zahmetsizce nasıl çözebilir?


24
"insanlar bu sorunu etkili bir şekilde çözebilir" - kaynak gösterilmeli. Bunun için kanıtınız nedir? Etkili bir şekilde çözebileceğiniz bir örnek göstermek, sorunun tüm örnekleri için verimli bir şekilde çözebileceğiniz anlamına gelmez. X'in doğru olduğu bir X örneği göstererek "X'in tümü için X'in doğru olduğunu" ispat edemezsiniz.
DW

33
Bir problemin çözülemez olduğu , sorunun her örneği için "evet" veya "hayır" ı doğru bir şekilde cevaplayan bir algoritma olmadığı anlamına gelir . Sorunun bazı (veya birçok) örneğini çözen bir algoritma bulabileceği anlamına gelmez. [Hah. DW bu sözleri oluştururken cevap verirken.]
Rick Decker

23
Bu problemi çöz? Bu sorunu bile anlamadım .
MikeTheLiar

2
Bunu anladığım gibi: Bu çözüm geçici bir çözümdür. Sorunun her örneği bir örneğe sahiptir - çoğu durumda örneğinizde olduğu kadar kolay motive olmaz, ancak bir algoritma yalnızca doğruluk temelinde değerlendirilebileceğinden daima 'X örneğini alırsanız, Y çıktısı' diyebilirsiniz - ancak tüm bu çözümleri bu şekilde kodlamak, sonlu bir prosedür üretmez (bu tek makul türdür ve bu nedenle genellikle kastedilmektedir). Alternatif olarak, bir sorunun çözülebilmesi için algoritmanın stratejisini seçmeden önce hangi örneğin verildiğini görmenize izin verilmemektedir.
Vandermonde

Ayrıca, bu nedenle yalnızca sınırsız sayıda vakayla ilgili sorunların genel olarak düşünülmesinin ya da çağrılmasının nedeni budur, çünkü yukarıdaki tüm çözümleri başka şekilde sıralayabilirsiniz.
Vandermonde

Yanıtlar:


78

İnsanlar bu problemin bazı örneklerini verimli bir şekilde çözebilir , ancak insanların tüm örnekleri verimli bir şekilde çözebileceğine inanmak için hiçbir neden yoktur . Bir insanın verimli bir şekilde çözebileceği bir örneği göstermek, insanların tüm örnekleri verimli bir şekilde çözebilecekleri anlamına gelmez.

Kararsız, "tüm örnekleri çözebilecek ve her zaman sonlanan bir algoritma yok" anlamına gelir. Hala çözülemeyen bir sorun için bile bazı örnekleri çözebilecek bir algoritma olabilir .

Öyleyse hiçbir çelişki yok.


23
@srvm, evet, bu demek oluyor. Örneğin, burada bir bilgisayar algoritması için aptal bir örnek verilmiştir: "girdi tam olarak sorunuzda verilen örnek ise, çıktı F = (λ a b c . (a b (a b c)))ve durdur". Bu, bazı vakalar için problemi çözen bir bilgisayar algoritmasıdır (özellikle, tam olarak 1 vaka için). Evet, sorun değil - böyle yeni bir soru sormak, yapılacak doğru şey gibi görünüyor. Her zamanki gibi, lütfen soruda ne tür bir araştırma yaptığınızı söyleyin (sormadan önce biraz yapmalısınız).
DW

10
Gerçekten Zor Sorunların Nerede Olduğunu NP'nin tamamladığı problemlerde bile çoğu durumda kolayca çözülebilir. Bu benim deneyimlerime uyuyor. Genellikle, problemin çözümü ((en azından bir kısmını) belirgin kılan özellikleri vardır. Sert olanları dikkatle başarı ve başarısızlık arasındaki dengeli, ancak bunlardan pek yok.
Ross Millikan

3
Eğer düşünürseniz @srvm , özel durumlarda bunlar gibi zor problemleri çözmek , bir optimize edicinin yapması gereken şeydir.
Cort Ammon

2
@srvm: Bilgisayarların hemen hemen her gün çözdüğü çözülemez bir sorunun mükemmel bir örneği durma problemidir. Durma sorununun çözülemez olduğunu biliyoruz, ancak istenmeyen sonsuz döngüleri algılamaya çalışan linerler, statik analizörler ve derleyiciler yazmaya devam ediyoruz. Nasıl yapıyoruz "kurallar" ile. Yani, insan deneyiminden (algoritma değil) belirli kod türlerinin sonsuz döngüye girdiğini biliyoruz. Bu yüzden bilgisayardan bildiğimiz davaları aramasını istiyoruz. Bu tür programların hiçbir zaman tüm hataları yakalayamayacağını biliyoruz. Ama hiç yoktan iyidir.
slebetman

2
gelecek için yeni bir bağlantı: Gerçekten Zor Sorunların Nerede Olduğunu
Alex Moore-Niemi

3

Yorumlardan birinin notunda olduğu gibi, Yüksek Sıralı Desen Eşleşmesini çözmek için pratikte bazı iyi algoritmalar bulunduğuna dikkat edilmelidir (hızlı bir google araması ortaya çıkacaktır).

Bu özel sorunu çözen hiçbir şey bilmiyorum, ancak bu "iki katına çıkma" sorunu program sentezi alanına daha yakın geliyor . Bu tür bir problemi çözebilecek program sentez sistemleri olduğuna inanıyorum.

Bu sistemin boğulmasına neden olan örnekler oluşturmak kolaydır ve bu tür problemlerde insanların özellikle iyi olduğu görülmektedir. Bu tür problemleri çözme yeteneklerinde insanlara daha yakın olan algoritmalar oluşturmak, otomatik teorem kanıtlama ve yapay zekanın (daha iddialı / gerçekçi olmayan girişimler için) görüşüdür.


1

İnsanlar her zaman problemi kendi bilgileri ile çözmeye çalışırlar, bu yüzden insanlar problemi çözmek için bazı algoritmalar geliştirirler. Dolayısıyla bir algoritma geliştirir, ancak belirli bir algoritmanın her problemi çözebileceği konusunda bir güvence yoktur. Böylece hiçbir algoritma her problemi çözemez, fakat bunun için mükemmel bir algoritma olmasa da insan tarafından çözülebilecek bazı problemler vardır, ancak bir problemin nasıl çözüleceğini bildiğimizi söyleyebileceğimiz gibi bir algoritma yoktur. .


8
Bu sadece mevcut cevabın bir ifadesi değil mi? Cevaplarınızın çoğunu eleştirdiğimi biliyorum, bu nedenle aşağıdakiler samimiyetsiz gibi gelebilir, ama değil. Siteye katkıda bulunmak istemeniz gerçekten harika. Bize söylemek istediğiniz her şeyi söyleyen bir cevaba sahip olduğumuz sorular yerine, cevapsız 2500 sorudan bazılarına cevap vermemize yardımcı olmanız gerçekten harika olurdu . Teşekkürler!
David Richerby
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.