เหตุใดมนุษย์จึงสามารถแก้ปัญหา“ ที่ไม่อาจตัดสินใจได้” บางอย่างได้


44

การจับคู่รูปแบบที่มีลำดับสูงเป็นปัญหาที่ไม่สามารถตัดสินใจได้ นั่นหมายความว่าไม่มีอัลกอริธึมที่ให้สมการa => bที่ไหนaและbเป็นคำเปิดบนแคลคูลัสแลมบ์ดาเพียงพิมพ์พบการทดแทนSเช่นนั้นaS => bSซึ่ง=>ย่อมาจาก "มีรูปแบบปกติ Bn เดียวกัน" แต่มนุษย์สามารถแก้ไขปัญหานั้นได้อย่างมีประสิทธิภาพ ตัวอย่างเช่นให้ปัญหาต่อไปนี้:

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

มนุษย์คนใดที่มีความรู้เพียงพอเกี่ยวกับแคลคูลัสแลมบ์ดาจะสามารถสังเกตเห็นได้ว่าFเป็นฟังก์ชั่น "สองเท่า" สำหรับหมายเลขโบสถ์

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

คำถามของฉันคือ: หากปัญหานั้นไม่สามารถตัดสินใจได้มนุษย์จะสามารถแก้ไขได้อย่างรวดเร็วและง่ายดายได้อย่างไร?


24
"มนุษย์สามารถแก้ปัญหานั้นได้อย่างมีประสิทธิภาพ" - หลักฐานของคุณคืออะไร การแสดงตัวอย่างหนึ่งที่คุณสามารถแก้ไขได้อย่างมีประสิทธิภาพไม่ได้หมายความว่าคุณสามารถแก้ไขได้อย่างมีประสิทธิภาพสำหรับทุกกรณีของปัญหา คุณไม่สามารถพิสูจน์ได้ว่า "X เป็นจริงสำหรับ X ทั้งหมด" โดยแสดงตัวอย่างหนึ่งของ X โดยที่ X เป็นจริง
DW

33
ปัญหาคือ undecidable หมายความว่าไม่มีอัลกอริทึมที่ตอบ "ใช่" หรือ "ไม่" อย่างถูกต้องสำหรับทุกอินสแตนซ์ของปัญหา ไม่ได้หมายความว่าเราสามารถหาอัลกอริทึมที่สามารถแก้ปัญหาอินสแตนซ์ของปัญหาได้ [หึ ดังที่ DW ตอบขณะที่ฉันกำลังเขียนข้อความนี้]
Rick Decker

23
แก้ปัญหานี้? ฉันไม่เข้าใจปัญหานี้ด้วยซ้ำ
MikeTheLiar

2
วิธีที่ฉันเข้าใจคือ: วิธีการแก้ปัญหานี้เป็นแบบเฉพาะกิจ อินสแตนซ์ของปัญหาแต่ละอย่างมีหนึ่ง - ในกรณีส่วนใหญ่ไม่ได้รับแรงบันดาลใจได้ง่ายเหมือนในตัวอย่างของคุณ แต่คุณสามารถพูดว่า 'ถ้าคุณได้รับอินสแตนซ์ X, เอาต์พุต Y' เนื่องจากอัลกอริทึมสามารถตัดสินได้บนพื้นฐานของความถูกต้องเท่านั้น แต่การเข้ารหัสอย่างหนักโซลูชั่นดังกล่าวทั้งหมดในวิธีนี้ไม่ได้สร้างกระบวนการ จำกัด (ซึ่งเป็นชนิดที่สมเหตุสมผลเท่านั้นและดังนั้นสิ่งที่มักจะหมายถึง) ระบุอีกวิธีหนึ่งเพื่อให้ปัญหาที่จะตัดสินใจได้คุณไม่ได้รับอนุญาตให้ดูอินสแตนซ์ที่ได้รับก่อนที่จะเลือกกลยุทธ์ของอัลกอริทึม
Vandermonde

และนี่คือสาเหตุที่ทำให้เกิดปัญหาเฉพาะกับอินสแตนซ์จำนวนอนันต์เท่านั้นที่จะถูกพิจารณาหรือเรียกโดยทั่วไปเนื่องจากคุณสามารถระบุวิธีแก้ปัญหาทั้งหมดได้ตามที่กล่าวไว้
Vandermonde

คำตอบ:


78

มนุษย์สามารถแก้บางกรณีของปัญหาที่มีประสิทธิภาพ แต่มีเหตุผลที่จะเชื่อว่ามนุษย์สามารถแก้ไม่ทุกกรณีอย่างมีประสิทธิภาพ การแสดงตัวอย่างหนึ่งที่มนุษย์สามารถแก้ไขได้อย่างมีประสิทธิภาพไม่ได้หมายความว่ามนุษย์สามารถแก้ปัญหาได้อย่างมีประสิทธิภาพทั้งหมด

Undecidable หมายถึง "ไม่มีอัลกอริทึมที่สามารถแก้ปัญหาอินสแตนซ์ทั้งหมดและที่จะยุติ" อาจยังมีอัลกอริทึมที่สามารถแก้ไขบางกรณีแม้สำหรับปัญหา undecidable

ดังนั้นจึงไม่มีความขัดแย้ง


23
@srvm, yup มันไม่ได้หมายความว่า ตัวอย่างเช่นนี่คือตัวอย่างโง่ ๆ ของอัลกอริธึมคอมพิวเตอร์: "ถ้าอินพุตเป็นตัวอย่างที่กำหนดในคำถามของคุณอย่างแน่นอนจากนั้นเอาต์พุตF = (λ a b c . (a b (a b c)))และหยุด" นั่นเป็นอัลกอริทึมคอมพิวเตอร์ที่แก้ปัญหาสำหรับบางกรณี (โดยเฉพาะอย่างยิ่งสำหรับ 1 กรณี) ใช่มันก็โอเค - การถามคำถามใหม่ ๆ แบบนี้ดูเหมือนจะเป็นสิ่งที่ถูกต้อง ตามปกติโปรดบอกเราว่าคุณทำวิจัยอะไรในคำถาม (คุณควรทำก่อนถาม)
DW

10
ที่จริงๆฮาร์ดปัญหาการเรียกร้องว่าแม้ในปัญหา NP สมบูรณ์กรณีส่วนใหญ่สามารถแก้ไขได้อย่างง่ายดาย สิ่งนี้ตรงกับประสบการณ์ของฉัน มักจะมีคุณสมบัติของปัญหาที่ทำให้ (อย่างน้อยส่วนหนึ่ง) การแก้ปัญหาชัดเจน ยากที่คนที่มีความสมดุลอย่างระมัดระวังระหว่างความสำเร็จและความล้มเหลว แต่มีไม่มากของคนเหล่านั้น
Ross Millikan

3
@srvm ถ้าคุณคิดเกี่ยวกับมันการแก้ปัญหาที่ยากเช่นนี้ในกรณีพิเศษคือสิ่งที่เครื่องมือเพิ่มประสิทธิภาพต้องทำ
Cort Ammon

2
@srvm: ตัวอย่างที่ยอดเยี่ยมของปัญหา undecidable ที่เราทำให้คอมพิวเตอร์แก้เกือบทุกวันคือปัญหาการหยุดทำงาน เรารู้ว่าปัญหาการหยุดชะงักนั้นไม่สามารถตัดสินใจได้ แต่เรายังคงมีอยู่ในการเขียน linters, static analyzers และ compilers ที่พยายามตรวจจับลูปที่ไม่มีที่สิ้นสุดที่ไม่ต้องการ เราทำได้อย่างไรโดย "กฎแห่งหัวแม่มือ" นั่นคือเรารู้จากประสบการณ์ของมนุษย์ (ไม่ใช่อัลกอริทึม) ว่าโค้ดบางประเภทเข้าสู่วงวนไม่สิ้นสุด ดังนั้นเราขอให้คอมพิวเตอร์ค้นหากรณีที่เรารู้ เรารู้ว่าโปรแกรมดังกล่าวจะไม่จับข้อบกพร่องทั้งหมด แต่มันก็ยังดีกว่าไม่มีอะไร
slebetman

2
สำหรับลูกหลานลิงก์ใหม่ไปยัง: Where The Hard problems Are
Alex Moore-Niemi

3

ในฐานะที่เป็นส่วนหนึ่งของการบันทึกความคิดเห็นหนึ่งควรจะทราบว่ามีบางขั้นตอนวิธีการที่ดีงามในการแก้ปัญหาการสั่งซื้อสูงกว่ารูปแบบการจับคู่ในการปฏิบัติ (ในฐานะที่รวดเร็วค้นหาของ Googleจะเปิดเผย)

ฉันไม่รู้ว่าสิ่งใดที่แก้ปัญหานี้โดยเฉพาะ แต่ปัญหา "การเสแสร้ง" นี้ให้ความรู้สึกใกล้ชิดกับการสังเคราะห์รายการมากขึ้น ฉันเชื่อว่ามีระบบการสังเคราะห์โปรแกรมที่สามารถจัดการกับปัญหาแบบนี้ได้

มันง่ายที่จะสร้างตัวอย่างที่ทำให้ระบบเหล่านั้นหายใจไม่ออกและดูเหมือนว่ามนุษย์เป็นคนที่ดีในปัญหาประเภทนี้ การสร้างอัลกอริทึมที่ใกล้เคียงกับมนุษย์มากขึ้นในความสามารถในการแก้ปัญหาประเภทนี้คือขอบเขตของการพิสูจน์ทฤษฎีบทอัตโนมัติและปัญญาประดิษฐ์ (สำหรับความพยายามที่ทะเยอทะยาน / ไม่สมจริงมากขึ้น)


1

มนุษย์พยายามที่จะแก้ปัญหาด้วยความรู้ของตัวเองดังนั้นมนุษย์จึงพัฒนาอัลกอริทึมเพื่อแก้ปัญหาด้วยบางกรณีของปัญหาดังนั้นมนุษย์จึงพัฒนาอัลกอริทึม แต่ไม่มีความมั่นใจว่าอัลกอริทึมเฉพาะสามารถแก้ปัญหาทุกปัญหาได้ ดังนั้นอัลกอริทึมไม่สามารถแก้ปัญหาทุกปัญหาได้ แต่ยังมีปัญหาบางอย่างที่มนุษย์สามารถแก้ไขได้แม้ว่าจะไม่มีอัลกอริธึมที่สมบูรณ์แบบสำหรับอย่างนั้นเราสามารถพูดได้ว่าเรารู้วิธีแก้ปัญหา แต่ไม่มีอัลกอริธึม .


8
นี่เป็นเพียงการถอดความคำตอบที่มีอยู่ไม่ใช่หรือ ฉันรู้ว่าฉันวิพากษ์วิจารณ์คำตอบส่วนใหญ่ของคุณดังนั้นสิ่งต่อไปนี้อาจฟังดูไม่จริงใจ แต่ไม่ใช่ เป็นเรื่องที่ดีมากที่คุณต้องการมีส่วนร่วมในเว็บไซต์ มันจะดีมากถ้าคุณสามารถช่วยเราตอบคำถามที่ยังไม่ได้รับคำตอบบางคำถามของ เราได้ 2500 คำถามแทนที่จะเป็นคำถามที่เรามีคำตอบอยู่แล้วซึ่งบอกว่าทุกสิ่งที่คุณต้องการพูด ขอบคุณ!
David Richerby
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.