ผลต่างระหว่างรุ่นของ "204512-53/lecture13"
G521455030 (คุย | มีส่วนร่วม) |
|||
(ไม่แสดง 10 รุ่นระหว่างกลางโดยผู้ใช้ 2 คน) | |||
แถว 81: | แถว 81: | ||
|} | |} | ||
+ | |||
แถว 86: | แถว 87: | ||
'''Ex.''' <br> | '''Ex.''' <br> | ||
<math>(x_1 \or \lnot x_2 \or \ x_3 ) \and (\lnot x_1 \or \lnot \ x_3 \or x_4) \and (\ x_3 \or \ x_2 \or \lnot x_4)</math> <br> | <math>(x_1 \or \lnot x_2 \or \ x_3 ) \and (\lnot x_1 \or \lnot \ x_3 \or x_4) \and (\ x_3 \or \ x_2 \or \lnot x_4)</math> <br> | ||
+ | [[ไฟล์:11.png]] | ||
+ | |||
จะกล่าวว่าปัญหา A สามารถตรวจคำตอบได้อย่างมีประสิทธิภาพ (Efficiently certifiable) | จะกล่าวว่าปัญหา A สามารถตรวจคำตอบได้อย่างมีประสิทธิภาพ (Efficiently certifiable) | ||
ถ้ามี Algorithm V ที่ทำงานใน Polynomial time | ถ้ามี Algorithm V ที่ทำงานใน Polynomial time | ||
แถว 92: | แถว 95: | ||
* ที่ทุกๆ No - instance x ของ A สำหรับทุกๆ Certificate C ที่ | * ที่ทุกๆ No - instance x ของ A สำหรับทุกๆ Certificate C ที่ | ||
V(x,c) = 0 | V(x,c) = 0 | ||
+ | |||
+ | |||
+ | [[ไฟล์:22.png]] | ||
''' Decision Problems (ปัญหาที่ตอบ yes/no) ''' | ''' Decision Problems (ปัญหาที่ตอบ yes/no) ''' | ||
แถว 141: | แถว 147: | ||
1 A ต้องเป็น NP | 1 A ต้องเป็น NP | ||
2 A เป็น NP-hard | 2 A เป็น NP-hard | ||
+ | |||
+ | |||
+ | [[ไฟล์:33.png]] | ||
แถว 149: | แถว 158: | ||
*ถ้า A เป็น NP-Complete และ A <math>\leqslant</math>p B ได้ B เป็น NP-Hard | *ถ้า A เป็น NP-Complete และ A <math>\leqslant</math>p B ได้ B เป็น NP-Hard | ||
+ | |||
+ | จะพิสูจน์ ปัญหา A เป็น NP-Complete (มี 2 ขั้น) | ||
+ | 1 พิสูจน์ว่า A เป็น NP | ||
+ | 2 หาปัญหา NP-Complete B , แล้วพิสูจน์ B <math>\leqslant</math>p A | ||
+ | |||
+ | [[ไฟล์:44.png]] |
รุ่นแก้ไขปัจจุบันเมื่อ 19:22, 8 ตุลาคม 2553
จดบันทึกคำบรรยายโดย:
นายเสกสิทธิ์ สุวรรณ รหัสนักศึกษา 5214550332
นางสาวสลิตตา นกขุนทอง รหัสนักศึกษา 5214550308
NP Complete
ปัญหา A P (Polynomail time to) ปัญหา B ถ้า มี poly-time algo ที่สำหรับทุกๆ instance x ของ A
x' = T(x) , | x' | = poly (| x |)
และถ้า x เป็น yes instance ของ A , x' เป็น yes-instance ของ B
x เป็น no instance ของ A , เป็น no-instance ของ B
THM: 3-SAT p INDEP-SET
Proof: ให้ เป็น 3-CNF ใดๆ
และ m clause เรียกเป็น จะสร้างกราฟได้ดังนี้
- ในแต่ละ clause สร้างสามเหลี่ยมที่ประกอบไปด้วยโหนดตัวแปรที่ปรากฎใน C ได้กราฟที่มี 3 โหนด ตามรูป
สำหรับทุกตัวแปร เชื่อมทุกโหนดที่แทนตัวแปร กับทุกโหนดที่แทน
สังเกตุว่าขั้นตอนดังกล่าวสามารถทำให้เป็น polynomial time ได้และกราฟที่ได้มีขนาดเป็น poly ในขนาด
พิสูจน์
1. ถ้า Satisfiable ,G มี independent set ขนาด m นั้นคือ มี assignment ให้กับตัวแปร
ที่ทำให้ทุก clause เป็นจริงพร้อมกัน
เนื่องจาก Ci เป็นจริงจะมีตัวแบ่งอย่างน้อย 1 ตัวใน Ci เป็นจริง,เลือกโหนดใน G ที่สอดคล้องกับตัวแปรตัวนั้นใส่ Set I โดยที่ Set I ที่มีสมาชิก M ตัว
จะพิสูจน์ว่า I เป็น Independent set ใน G
assume ว่า I ไม่เป็น independent Set นั้นคือเชื่อมระหว่างบางคู่ของโหนด u,v I
เนื่องจากเชต I มีโหนดเพียงโหนดเดียวจากแต่ละสามเหลี่ยมดังนั้นไม่มีทางที่เส้นเชื่อมดังกล่าวจะเป็นเส้นเชื่อมในสามเหลี่ยมได้
ดังนั้น ต้องเป็นเส้นเชื่อมระหว่างตัวแปร Xi บางตัวกับ เนื่องจากเราเลือกตัวแปรจาก assign ที่เป็นจริง กรณีที่ป็นไปไม่ได้
นั้นคือ I เป็น Independent set ในกราฟมีขนาด m
x1 = T , x2 = T ,x3 = F , x4 = T
Ex สมมุติมี formular
วาดกราฟได้ดังรูป
พิสูจน์ x1= T, x2=T , x3 = F ,x4 = T ให้เป็นจริง
สูจน์ให้ได้ว่า clause 1.เป็นจริง
2.เป็นจริง
3.เป็นจริง
2.ถ้า G มี independent Set ขนาด m แล้ว Satisfiable
SUBSET SUM
ในเซต A = {x1,x2,x3,..,xn} จำนวนเต็ม
มี subset B \subseteq A ที่
ต้องการพิสูจน์ว่า
thm: 3-SAT subset-sum
Ex.
จะได้ว่า
C | ||
---|---|---|
x1 | 1 0 0 0 0 | 1 |
x1 | 1 0 0 0 0 | 0 |
x2 | 0 1 0 0 0 | 0 |
x2 | 0 1 0 0 0 | 1 |
x3 | 0 0 1 0 0 | 1 |
x3 | 0 0 1 0 0 | 0 |
1 1 1 0 0 | 4 |
จะกล่าวว่าปัญหา A สามารถตรวจคำตอบได้อย่างมีประสิทธิภาพ (Efficiently certifiable) ถ้ามี Algorithm V ที่ทำงานใน Polynomial time
- ที่ทุกๆ Yes - instance x ของ A มี Certificate C ที่
|C| = poly (|X|) และ V (x,c) = 1
- ที่ทุกๆ No - instance x ของ A สำหรับทุกๆ Certificate C ที่
V(x,c) = 0
Decision Problems (ปัญหาที่ตอบ yes/no)
P (Polynomial)
ปัญหา A จะอยู่ในกลุ่ม P
ถ้ามี Algorithm ที่ทำงานใน Polynomial time ที่แก้ ปัญหา A
NP (Nondeterministic Polynomial)
ปัญหา A จะอยู่ในกลุ่ม NP
ถ้า A สามารถตรวจคำตอบได้อย่างมีประสิทธิภาพ
ตัวอย่าง SAT อยู่ใน NP
Algorithm V ที่รับ CNF
และ assignment เป็น certificate จะสามารถตรวจคำตอบของปัญหาได้โดย
ถ้า ทำให้เป็นจริงได้ จะมี assignment ที่ทำให้ V ตอบ Yes
แต่ ถ้า ไม่สามารถทำให้เป็นจริงได้ ไม่ว่าจะใช้ assignment ได้ V จะตอบ No เสมอ
ปัญหา Composite
ให้จำนวนเต็ม N , N เป็นจำนวนประกอบหรือไม่
พิสูจน์ว่า Composite เป็น NP
(ต้องมี 2 อย่าง คือ Certificate , Verificate)
- ให้ตัวประกอบ 2 ตัว x,y ของ N เป็น Certificate
- Algorithm V ที่ตรวจคำตอบ คำนวน x,y และ ตรวจว่าเท่ากับ N หรือไม่
นิยาม ปัญหา A เป็น NP - hard ก็ต่อเมื่อ
สำหรับทุกๆ ปัญหา B ที่เป็น NP
B P A
นิยาม ปัญหา A เป็น NP - Complete ก็ต่อเมื่อ
1 A ต้องเป็น NP 2 A เป็น NP-hard
Cook - Lavin
SAT เป็น NP-Complete
- ถ้า A p B และ B p C แล้ว A p C ด้วย
- ถ้า A เป็น NP-Complete และ A p B ได้ B เป็น NP-Hard
จะพิสูจน์ ปัญหา A เป็น NP-Complete (มี 2 ขั้น)
1 พิสูจน์ว่า A เป็น NP
2 หาปัญหา NP-Complete B , แล้วพิสูจน์ B p A