มีความคิดที่สมเหตุสมผลเกี่ยวกับอัลกอริทึมการประมาณสำหรับปัญหาที่ไม่สามารถตัดสินใจได้หรือไม่?


48

ปัญหาบางอย่างเป็นที่ทราบกันว่าไม่สามารถตัดสินใจได้ แต่ก็เป็นไปได้ที่จะดำเนินการแก้ไข ตัวอย่างเช่นปัญหาการหยุดชะงักไม่สามารถตัดสินใจได้ แต่ความคืบหน้าในทางปฏิบัติสามารถทำได้ในการสร้างเครื่องมือสำหรับการตรวจจับลูปไม่สิ้นสุดที่อาจเกิดขึ้นในรหัสของคุณ ปัญหาในการปูกระเบื้องมักจะไม่สามารถตัดสินใจได้ (เช่นกระเบื้องโพลีโอมิโนนี้เป็นรูปสี่เหลี่ยมผืนผ้าหรือไม่) แต่ก็เป็นไปได้ที่จะพัฒนาสถานะของศิลปะในพื้นที่นี้

สิ่งที่ฉันสงสัยคือถ้ามีวิธีการทางทฤษฎีที่เหมาะสมในการวัดความก้าวหน้าในการแก้ปัญหาที่ไม่สามารถตัดสินใจได้ซึ่งคล้ายกับเครื่องมือเชิงทฤษฎีที่ได้รับการพัฒนาขึ้นสำหรับการวัดความก้าวหน้าของปัญหา NP-hard หรือดูเหมือนว่าเราติดอยู่กับเฉพาะกิจการประเมินความรู้เมื่อฉันเห็นมันว่าการค้นพบความก้าวหน้าที่เฉพาะเจาะจงมากขึ้นทำให้เราเข้าใจปัญหาที่ไม่อาจคาดเดาได้หรือไม่

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


3
.. นำเสนอทฤษฎีการตีความนามธรรม
Jagadish

1
[พร้อมกับความคิดเห็นของ Jagadish]: คุณอาจจะดูที่เอ็มไอทีแน่นอน16.399: การตีความบทคัดย่อ โดยเฉพาะอย่างยิ่งการบรรยาย 3อาจมีประโยชน์สำหรับกรณีของคุณ
MS Dousti

6
การวัดที่ชัดเจนซึ่งคุณอาจไม่ชอบคือการสั่งซื้อโซลูชั่นบางส่วนตามโดเมนของพวกเขา (เช่นชุดของอินพุตที่ใช้งานได้) คุณต้องการใช้มาตรการเพื่ออะไร
Andrej Bauer

3
@ Andrej: ให้ฉันตอบคำถามของคุณทางอ้อม ในขอบเขตของปัญหา NP-hard บางครั้งเรามีผลลัพธ์ที่ดีมากของรูปแบบ "และอัตราส่วนการประมาณดังกล่าวสามารถบรรลุได้และการปรับปรุงใด ๆ ที่เป็นไปไม่ได้นอกจาก P = NP" ความสามารถในการพิสูจน์ผลลัพธ์ที่คล้ายคลึงกันสำหรับปัญหาที่ไม่อาจตัดสินใจได้ที่น่าสนใจน่าจะดี มันจะให้ความรู้สึกกับเราว่ามีสิ่งกีดขวางที่แท้จริงในการพัฒนาต่อไปหรือไม่
Timothy Chow

เสนอแนวคิดของ"ขั้นตอนวิธี"กับการวิจัยบางอย่างในพื้นที่
vzn

คำตอบ:


30

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

สถานะของศิลปะในการวิเคราะห์การยุติการใช้งานจริงของโปรแกรมบังคับคือสิ่งที่เรียกว่า "การสังเคราะห์อันดับฟังก์ชัน" (Byron Cook มีหนังสือเตรียมพร้อมการสิ้นสุดโปรแกรมการพิสูจน์ในเรื่องจาก CUP) แนวคิดคือการคำนวณฟังก์ชันเชิงเส้นของค่าตัวแปรของโปรแกรมในตอนนี้และในขั้นตอนก่อนหน้าซึ่งทำหน้าที่เป็นตัวชี้วัดการเลิกจ้าง (สิ่งหนึ่งที่ยอดเยี่ยมเกี่ยวกับวิธีนี้คือการใช้บทแทรกของ Farkas ซึ่งให้มุมมองทางเรขาคณิตที่เรียบร้อยกับสิ่งที่เกิดขึ้น) สิ่งที่น่าสนใจคือเครื่องมือที่สร้างขึ้นบนวิธีการนี้สามารถทำสิ่งต่าง ๆ เช่นแสดงการยุติฟังก์ชัน Ackerman (ซึ่ง ไม่ใช่แบบเรียกซ้ำแบบดั้งเดิม) แต่คุณสามารถสร้างแบบไม่ซ้อนกันในขณะที่ลูปสามารถเอาชนะได้ (ซึ่งต้องการเพียงเพื่อแสดงการสิ้นสุด)ω

ซึ่งหมายความว่าไม่มีความสัมพันธ์ที่เรียบร้อยระหว่างความแข็งแรงในการพิสูจน์เชิงทฤษฎีของ metalogic ที่คุณแสดงถึงการเลิกจ้าง (นี่เป็นสิ่งสำคัญมากในการเขียนทฤษฎีใหม่) และฟังก์ชั่นที่เทคนิคเช่นการสังเคราะห์อันดับฟังก์ชันสามารถแสดงการสิ้นสุดสำหรับ .

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


6

จากการพูดคุยที่น่าจดจำของบุคคลที่ใช้อัลกอริทึมที่แก้ปัญหาที่ไม่อาจตัดสินใจได้: "ใช้เวลา 2-3 วินาทีสำหรับอินพุตทั้งหมดที่ฉันลอง"


2

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

ความคิดของโปรแกรม "เกือบทั้งหมด" นั้นสมเหตุสมผลถ้ารูปแบบการคำนวณของคุณเหมาะสมที่สุด (ในแง่เดียวกับความซับซ้อนของ Kolmogorov ) เพื่อหลีกเลี่ยงสถานการณ์ที่โปรแกรมส่วนใหญ่ของคุณไม่สำคัญ

เมื่อกำหนดให้เครื่องดีที่สุดและจำนวนเต็มคุณสามารถให้คำตอบที่ถูกต้องสำหรับปัญหาการหยุดทำงานของโปรแกรมทั้งหมดที่มีขนาดยกเว้นเศษส่วนสำหรับขนาดเล็กโดยพลการหรือไม่? ลินช์พิสูจน์ในยุค 70 ที่ไม่มีคุณไม่สามารถ ไม่กี่ปีที่ผ่านมาเพื่อนร่วมงานและฉันได้พิสูจน์ผลลัพธ์ที่แข็งแกร่งกว่านี้ทำให้อัลกอริทึมทำผิดพลาดหรือไม่หยุดในสัดส่วนที่น้อยของอินพุตหรือเพียงต้องการความน่าจะเป็นประมาณ (อนุญาตให้อัลกอริทึม เหรียญพลิก)n < n ϵ ϵ p > 0Mn<nϵϵp>0

ระหว่างทางเราได้พิสูจน์สิ่งต่าง ๆ ที่น่าสนใจเกี่ยวกับคุณสมบัติของลำดับโดยที่คืออัตราส่วนของโปรแกรมขนาดที่หยุด (ปรากฏออกลำดับนี้แปลกมาก ) หากกระดาษด้านบนมีความหนาแน่นสูงเกินไปคุณสามารถตรวจสอบสไลด์ของฉันจากเมื่อเราแสดงผลลัพธ์ที่ ICALPρ n < nρnρn<n

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.