งงงวยโดยทฤษฎีบทของข้าว


37

สรุป:ตามทฤษฎีบทของไรซ์ทุกอย่างเป็นไปไม่ได้ แต่ถึงกระนั้นฉันก็ทำสิ่งนี้เป็นไปไม่ได้ตลอดเวลา!


แน่นอนทฤษฎีบทของไรซ์ไม่เพียงแค่พูดว่า "ทุกอย่างเป็นไปไม่ได้" มันบอกอะไรบางอย่างที่ค่อนข้างเฉพาะเจาะจง: "คุณสมบัติของโปรแกรมคอมพิวเตอร์ทุกโปรแกรมไม่สามารถคำนวณได้"

(ถ้าคุณต้องการที่จะแยกเส้นผมคุณสมบัติ "ไม่สำคัญ" ทุกอย่างนั่นคือคุณสมบัติที่โปรแกรมทั้งหมดมีหรือไม่มีโปรแกรมที่มีการคำนวณได้เล็กน้อย แต่คุณสมบัติอื่น ๆ นั้นไม่สามารถคำนวณได้)

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

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

  • โปรแกรมใช้หน่วยความจำมากกว่าหรือน้อยกว่าหน่วยในขั้นตอนการเอ็มครั้งแรกหรือไม่ คำนวณได้เล็กน้อยnm

  • ข้อความของโปรแกรมพูดถึงตัวแปรที่ชื่อหรือไม่? การวิเคราะห์ข้อความเล็กน้อยจะเปิดเผยคำตอบk

  • โปรแกรมเรียกใช้คำสั่งหรือไม่ สแกนข้อความของโปรแกรมอีกครั้งเพื่อค้นหาชื่อคำสั่งนั้นσ

ฉันสามารถเห็นความอุดมสมบูรณ์ของคุณสมบัติที่ทำดูไม่ใช่คำนวณเช่นกัน; เช่นการเติมเต็มจำนวนของโปรแกรมทำงานเป็นจำนวนเท่าใด? เกือบจะเหมือนกันกับการถามว่ามีกี่ขั้นตอนในการทำงานของโปรแกรมซึ่งเป็นปัญหาการหยุดชะงัก แต่ดูเหมือนว่ามีคุณสมบัติโปรแกรมจำนวนมากซึ่งง่ายต่อการคำนวณ ทฤษฎีบทของไรซ์ยังยืนยันว่าไม่มีใครสามารถคำนวณได้

สิ่งที่ฉันหายไปที่นี่?


8
"ตามทฤษฎีของไรซ์ทุกอย่างเป็นไปไม่ได้" - ไม่ "คุณสมบัติทั้งหมดของโปรแกรมคอมพิวเตอร์ไม่สามารถคำนวณได้" - ไม่ คุณไม่ได้อยู่คนเดียว: นักเรียนส่วนใหญ่พบกับความเข้าใจผิดนี้
กราฟิลส์

คำตอบ:


36

fgnf(n)g(n)

PfgP

นี่คือตัวอย่างของคุณสมบัติที่ไม่ใช่มิติ:

  1. n
  2. nm
  3. kข้อความที่กล่าวถึงโปรแกรมชื่อตัวแปร (เราสามารถเปลี่ยนชื่อตัวแปร)
  4. σσσ

ฉันแน่ใจว่าคุณสังเกตเห็นว่าฉันระบุตัวอย่างที่ถูกกล่าวหาของคุณอย่างชัดเจนถึงทฤษฎีบทของไรซ์ซึ่งกล่าวว่า:

ทฤษฎีบท (ข้าว):คำนวณextensionalคุณสมบัติของโปรแกรมทั้งถือของโปรแกรมทั้งหมดหรือของใคร

มีอีกวิธีในการอธิบายสิ่งนี้: คุณต้องแยกความแตกต่างระหว่างโปรแกรมและฟังก์ชันที่คำนวณ โปรแกรมที่แตกต่างกันมากมายคำนวณฟังก์ชั่นเดียวกัน ทฤษฎีบทของข้าวเป็นเรื่องเกี่ยวกับคุณสมบัติของฟังก์ชั่นไม่ใช่เกี่ยวกับคุณสมบัติของโปรแกรมที่คำนวณได้


ฉันไม่ได้รับคำตอบนี้ .. (ขออภัยถ้าฉันถามเหมือนกัน แต่จะเป็นการดีที่จะชี้แจงประเด็นนี้) มันบอกว่าคุณสามารถปรับเปลี่ยนโปรแกรมเหล่านั้นของพวกเขาโดยการเปลี่ยนไวยากรณ์ที่จะได้รับ extensional เทียบเท่าแต่วิธีการตรวจสอบเหล่านี้จะเทียบเท่า extensional ในสถานที่แรก? คุณไม่สามารถใช้โปรแกรมเพื่อเปรียบเทียบว่าโปรแกรมเหล่านั้นฟังก์ชั่นโดยทั่วไปมีทั้งคุณสมบัตินั้นดังนั้นเมื่อคุณพูดว่า "แก้ไขมัน" ฉันคิดว่าเป็นไปได้เพราะเป็นตัวอย่างง่ายๆ (คุณจะเพิ่ม "แก้ไขอย่างระมัดระวัง" หรือใช้ "ดี" IDE สำหรับมัน "? .. ) ฉันคิดว่าเมื่อมีการแก้ไขคุณไม่สามารถตรวจสอบทั่วไปดังนั้นบางทีข้าวถือ
Hernan_eche

1
n+m=m+n

นอกจากนี้คุณกำลังก้าวกระโดดด้วยเหตุผลแปลก ๆ ในการให้เหตุผลของคุณ: เนื่องจากความเสมอภาคในมิติไม่สามารถตัดสินได้ทฤษฎีบทของข้าวอาจเป็นเท็จ งั้นเหรอ และเนื่องจากความเท่าเทียมกันของมิติไม่สามารถบอกได้นั่นไม่ได้หมายความว่าไม่มีกรณีใด ๆ ที่เราสามารถตัดสินใจได้ สิ่งที่ฉันพูดถึง - เราสามารถตัดสินใจได้
Andrej Bauer

36

ความเข้าใจผิดขั้นพื้นฐาน:

คุณสมบัติทั้งหมดของโปรแกรมคอมพิวเตอร์ไม่สามารถคำนวณได้

PRE

{MfMP}

P

ทฤษฎีบทของข้าวเกี่ยวข้องกับคุณสมบัติเชิงความหมาย (คุณสมบัติของฟังก์ชันที่คำนวณโดยโปรแกรมเช่นช่วงของโดเมนหรือค่า) สิ่งที่คุณอ้างถึงคือคุณสมบัติวากยสัมพันธ์ (คุณสมบัติของโปรแกรมเช่นรันไทม์หรือจำนวนตัวแปรที่ใช้)

ดูเหมือนจะไม่ค่อยเป็นที่รู้จักสำหรับคุณสมบัติวากยสัมพันธ์; ดูคำถามนี้


1
ฉันหลงทางหลังจากประโยคแรกหรือประมาณนั้น ขอโทษ ใครบางคนสามารถอธิบายรายละเอียดเกี่ยวกับความแตกต่างระหว่างความหมายและคุณสมบัติทางไวยากรณ์ได้ไหม
MathematicalOrchid

@MathematicalOrchid: คุณสามารถละเว้นประโยคนั้นได้อย่างปลอดภัย ย่อหน้าแรกมีข้อมูลทั้งหมดที่คุณต้องการ ฉันจะทำอย่างละเอียด
Raphael

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