ผลต่างระหว่างรุ่นของ "204512/บรรยาย 13"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 8: แถว 8:
  
 
=== ปัญหา Halting Problem ===
 
=== ปัญหา Halting Problem ===
ให้โปรแกรม P และ input X ถามว่า P(x)
+
Description : ให้โปรแกรม P และ input X ถามว่า P(x) ทำงานจบหรือไม่
 +
จะพบว่าเราไม่สามารถออกแบบอัลกอริทึมที่แก้ปัญหานี้ได้ ซึ่งสามารถพิสูจน์โดย contradiction ได้ดังนี้
 +
 
 +
Proof: สมมติให้มีอัลกอริทึม Q ที่แก้ปัญหา Halting Problem ได้
 +
โดยมี Q(program P, input X) จะ return True ถ้า P(x) halt และ return False เมื่อ P(x) ติด loop
 +
เพราะฉะนั้นเราจะสามารถสร้าง procedure Q' ที่มีอัลกอริทึมดังนี้ได้
 +
 
 +
Procedure Q'(program P)
 +
  If Q(P, P) then
 +
      loop forever
 +
  Else
 +
      halt
 +
 
 +
จาก procedure Q' พิจารณา
  
 
=== ปัญหา Program Equivalence ===
 
=== ปัญหา Program Equivalence ===

รุ่นแก้ไขเมื่อ 14:14, 22 กันยายน 2550


จดบันทึกคำบรรยายโดย:

นายเกรียงไกร ลิ่มทอง   รหัส : 50653732
นายธีรวัฒน์ ตออำนวย   รหัส : 50653815



NP Completeness

ปัญหา Halting Problem

Description : ให้โปรแกรม P และ input X ถามว่า P(x) ทำงานจบหรือไม่ จะพบว่าเราไม่สามารถออกแบบอัลกอริทึมที่แก้ปัญหานี้ได้ ซึ่งสามารถพิสูจน์โดย contradiction ได้ดังนี้

Proof: สมมติให้มีอัลกอริทึม Q ที่แก้ปัญหา Halting Problem ได้ โดยมี Q(program P, input X) จะ return True ถ้า P(x) halt และ return False เมื่อ P(x) ติด loop เพราะฉะนั้นเราจะสามารถสร้าง procedure Q' ที่มีอัลกอริทึมดังนี้ได้

Procedure Q'(program P)

  If Q(P, P) then
     loop forever
  Else
     halt

จาก procedure Q' พิจารณา

ปัญหา Program Equivalence

Decision Problem

ปัญหา Satisfiability (SAT)

ปัญหา 3-Satisfiability (3-SAT)

ปัญหา Independent Set

Class NP

ปัญหา Vertex Cover

ปัญหา 3-Color