ผลต่างระหว่างรุ่นของ "204512-53/lecture11"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
แถว 1: แถว 1:
 
'''จดบันทึกคำบรรยายโดย:''
 
'''จดบันทึกคำบรรยายโดย:''
  นายชัชพล      นุโยค รหัส 5214550049 (Part I)
 
 
   นายชัชพล      นุโยค รหัส 5214550049 (Part I)
 
   นายชัชพล      นุโยค รหัส 5214550049 (Part I)
 
   นายสุรเดช      วัฒนอุดมโรจน์ รหัส 5214550324 (Part I)
 
   นายสุรเดช      วัฒนอุดมโรจน์ รหัส 5214550324 (Part I)

รุ่นแก้ไขปัจจุบันเมื่อ 06:42, 12 ตุลาคม 2553

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

 นายชัชพล      นุโยค รหัส 5214550049 (Part I)
 นายสุรเดช      วัฒนอุดมโรจน์ รหัส 5214550324 (Part I)
 นายชัยณรงค์   เหมือนรุ่ง รหัส 5214550057 (Part II)
 นายศศิน         เทียนดี รหัส 5214550278 (Part II)
 น.ส.นันทณัฏฐ์ ภูทอง รหัส 5214550171 (Part II)
 น.ส.ชนาพร    คุรุรัตน์พันธ์  รหัส 5214550031 (Part II)

Part I NP Completeness


NP: Non-deterministic Polynomial time คือ เซตของ Algorithm ที่ไม่สามารถแก้ไขปัญหาได้ในเวลาที่เป็น polynomial โดยการนิยามเซตของปัญหาเพื่อประโยชน์ในการเปรียบเทียบระดับความยาก-ง่ายของ Algorithm ซึ่งเซตของปัญหาสามารถแบ่งเป็นเซต P, NP, NP-hard และ NP-complete

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

ปัญหา A สัมพันธ์ ปัญหา B

ปัญหา A ไม่ยากไปกว่า ปัญหา B

ปัญหา A NPComplete7.gif ปัญหา B

โดยมีความหมายว่า ถ้ามี Algorithm ที่สามารถแก้ปัญหา B ได้ ปัญหา A ก็จะสามารถแก้ได้เช่นกัน


ปัญหาที่ 1 : Independent Set เป็นปัญหากลุ่ม Decision Problem

นิยาม : ให้ Undirected graph G = (V, E) จะกล่าวว่า I NPComplete1.gif V เป็น Independent Set ก็ต่อเมื่อ สำหรับทุกๆโหนด U,V NPComplete1.gif I, U NPComplete5.gif V ไม่มีเส้นเชื่อมระหว่าง U และ V

ปัญหา : ให้กราฟ G = (V, E) และ integer k, มี Independent set ขนาด ≥ k หรือไม่

NPComplete8.gif

ในภาพทำการเลือกโหนด (k) เท่ากับ 1 จะกล่าวว่ามี Independent set ขนาด 1

สามารถนำไปใช้แก้ปัญหา หาคนที่ไม่รู้จักกันในห้อง หรือ การเปิด-ปิดไฟแดงที่แยก


ปัญหาที่ 2 : Vertex Cover

นิยาม : C NPComplete1.gif V เป็น Vertex Cover ก็ต่อเมื่อ NPComplete4.gif(U,V)NPComplete6.gif E,U NPComplete6.gif C หรือ V NPComplete6.gif C

ปัญหา : ให้กราฟ G = (V, E) และ จำนวนเต็ม k ถามว่ามี vertex cover ขนาด ≤ k หรือไม่

NPComplete9.gif


ถ้าสมมติให้ Independent Set NPComplete7.gif Vertex Cover

Lemma : พิจารณาเซต A NPComplete1.gif V ใดๆ ให้ A เป็น imdenpendent set โดย V-A เป็น Vertec Cover

Proof : Indenpendent set NPComplete2.gifVertex Cover

นิยาม : ปัญหา A เป็น Polynomial time เพื่อลดปัญหา B ถ้ามี Algorithm T ที่ทำงานใน Polynomial time สำหรับทุกๆ instance X ของ A จะได้ T(x) เป็น instance ของ B

NPComplete3.gif

X' = T(x) เป็น instance ของ B และ |X'| = Poly (|X|)

   ถ้า x เป็น instance ตอบ "Yes" ใน A
  => x' เป็น instance ตอบ "Yes" ใน B
   ถ้า x เป็น instance ตอบ "No" ใน A
  => x' เป็น instance ตอบ "No" ใน B

Lemma : ถ้า A NPComplete2.gifB และมี Algorithm ที่แก้ปัญหา B ได้ใน Polynomial time จะมี Algorithm ที่แก้ปัญหา A ใน Polynomial time ได้ด้วย

Proof : ให้ M เป็น Polynomial time Algorithm ที่แก้ปัญหา B จะได้ว่า A NPComplete2.gif B นั้นคือ มี Polynomial time Algorithm T ที่ NPComplete4.gifinstance x ของ A x' = T(x) มีขนาด poly(|x|) และคำตอบของ x ในปัญหา A ตรงกับของ x' ในปัญหา B

สำหรับ Algorithm M' ดังนี้

  M'(x) :
  x' = T(x)
  return M(x')


แต่เนื่องจาก |x'| = poly(|x|) ดังนั้น เวลาในการคำนวณ M(x')คือ poly(|x'|) = poly(poly(|x|)) = poly(|x|)

จากนิยาม M'(x) เป็นคำตอบของ x ใน A เหลือแต่ต้องตรวจสอบว่า M' ทำงานใน Polynomial time หรือ poly(|x|)



Part II

Np1.jpg

พิจารณา กราฟ G = (V,E) , C NPComplete6.gif V เรียกว่า Clique
ก็ต่อเมื่อ NPComplete4.gif u,v NPComplete6.gif C ที่ uNPComplete5.gifs
(u,v)NPComplete6.gif E


CLIQUE

ให้กราฟ G = (V,E) และจำนวนเต็ม K
กราฟ G clique = (V,E') เป็น Complement ของ G
ถ้า
 (u,v)NPComplete6.gif E <--> (u,v)Np-notnot.jpg E'
Lemma  กราฟ G = (V,E) มี Independent Set ขนาด K ใน G clique = (V,E') มี Clique ของ K
Proof (->)
       ให้ I เป็น Independent Set ขนาด K ใน G
       พิจารณาโหนด u,v NPComplete6.gif I ใดๆ ที่ uNPComplete5.gifv เนื่องจาก ณ เป็น Indep ใน G(u,v)Np-notnot.jpg E
       จากนิยามของ G clique , จะได้ว่า (u,v) NPComplete6.gif E clique
       ดังนั้นทุกๆ u,v NPComplete6.gif I ที่ uNPComplete5.gifv ,(u,v)NPComplete6.gif E Clique
       นั้นคือ I เป็น Clique ใน  G clique
              เนทาองจาก |I| = K , G plus  มี Clique ขนาด k 9k,9hv'dki

Proof (<-)

 TB-CLIQUE1.jpg


SAT

 TB-SAT.jpg Note : Clause ที่เป็นการ OR กับของตัวแปรหรือนิเสธของตัวแปร เรียกว่า Disjunction ตัวอย่างเช่น 

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

TB-3SAT.jpg

รับค่า CNF Formula  ที่แต่ละ clause มีตัวแปร  3 ตัว
ถามว่าทำให้  เป็นจริงได้หรือไม่ ?
กรณี

ในกรณีนี้เป็นจริงอยู่แล้วเพราะ 3-SAT เป็นกรณีเฉพาะของ SAT แต่เราต้องการพิสูจน์ว่า

plan: แสดงว่าสำหรับ CNF ใดๆ มีวิธีการสร้าง ที่เป็น 3-CNF ที่

ถ้า
และถ้า

ในเวลา Polynomial time
ตัวอย่างที่ 1

ให้ใช้วิธีการเพิ่มตัวแปร จะเปลี่ยนไปอยู่ในรูป

ตัวอย่างที่ 2

ให้ใช้วิธีการเพิ่มตัวแปร จะเปลี่ยนไปอยู่ในรูป


  Note : การเติมตัวแปร Z จะต้องเติมแล้วทำให้ค่าความจริงของ  equivalence กับค่าความจริงของ 

ปัญหา Independent Set

นิยาม ให้ Undirected graph G = (V,E) จะกล่าวว่า เป็น Independent Set ถ้าทุกๆ คู่ของโหนด ไม่มีเส้นเชื่อมกัน
Independenset.jpg
ปัญหา Independent set ให้กราฟ G = (V,E) และ integer k, มี Independent set I ใน G ที่ หรือไม่ ?
เราสามารถลดรูปปัญหา 3-SAT ไปเป็นปัญหา Independent set ได้

Independent set
ให้ 3-CNF Formular ที่ประกอบด้วย clauses จะสร้างกราฟ G ดังนี้

  • พิจารณา clause C1 สร้างโหนด V11,V12,V13 สำหรับแต่ละตัวแปรหรือนิเสธของตัวแปรใน C1
  • เพิ่มเส้นเชื่อม (V11,V12),(V11,V13),(V13,V11)
  • สำหรับโหนดที่แทนตัวแปรกับนิเสธของตัวแปรเดียวกับเพิ่มเส้นเชื่อมระหว่างโหนดเหล่านี้

3-SAT.jpg

ถ้า จะมี independence set ขนาด m ใน G
ถ้ามี independence set ขนาด m ใน G

Class NP (Non-deterministic Polynomial time)

ปัญหา L จะอยู่ใน ถ้ามี polynomail time algorithm V ที่ มี certificate P ที่ และ V(x,p) = 1
แล้ว , และ ,
สรุป ปัญหา NP คือกลุ่มปัญหาที่สามารถตรวจคำตอบได้ภายใน polynomial time ซึ่งปัญหาง่ายๆ ก็อยู่ใน NP ด้วย
ปัญหา NP-Complete : ปัญหา NP-Complete ถ้าสำหรับทุกปัญหา แล้ว
Cook-Lavin Theorem -> Proof ว่า SAT เป็น NP-Complete


สรุป ทั้ง 3-SAT และ independent set เป็น NP-Complete

  Note : Steps ในการแสดงว่าปัญหา X เป็น NP-Complete คือ 
1. Proof ว่า 2. Proof ว่ามีปัญหา Y ที่เป็น NP-Complete ที่


ปัญหา Vertex Cover

เซต เป็น Vertex Corver ของกราฟ ถ้า และทุกๆ edge หรือ
ปัญหา Vertex Corver จะให้กราฟ , integer k ถามว่า มี vertex corver ที่มีขนาด k หรือไม่ ?<br\>

  • Independent set Vertex Corver<br\>
    • Lemma พิจารณากราฟ เป็น Independent Set

(รูปภาพ)
รับกราฟ ถามว่ามี independent set k ? สร้าง instance ของ Vertex Corver ที่มีกราฟ ถามว่าใน มี Vertex Corver ขนาด n-k หรือไม่ ? เมื่อ n = จำนวนโหนดใน <br\>
Vertex Corver เป็น NP Complete เนื่องจากสามารถตรวจได้ว่ากราฟมี Vertex Corver ขนาดไม่เกิน k โดยใช้ Certificate เป็น Vertex Corver นั้น

ปัญหา 3-Color บทเรียนเก่า(เพิ่มเติม)

ให้กราฟ ต้องการกำหนดสีให้กับแต่ละโหนด โดยที่คู่ของโหนดที่มีเส้นเชื่อมถึงกันห้ามใช้สีเดียวกัน สามารถทำได้โดยใช้สี 3 สีหรือไม่ ?
3-Color.jpg
จะแสดงว่า 3-Color เป็น NP Complete
1. แสดงว่า

ใช้การกำหนดสีให้กับแต่ละโหนดเป็น Certificate ตรวจว่า
1) ใช้สีไม่เกิน 3 สี
2)ไม่มี edge เติมโหนดที่มีปัญหาทำได้ polynomial time
ซึ่งสามารถทำได้ใน polynomial time

2. แสดงว่า

กำหนดโหนด 3 โหนดแทนสี 3 สี จากนั้นสร้างกราฟดังนี้

3-Color2.jpg

ถ้าให้ clause ต้องสร้างกราฟให้มีตัวใดตัวหนึ่งเป็นจริงและอีก 2 ตัวเป็น false ได้กราฟดังนี้

3-Color3.jpg

กราฟนี้จะบังคับให้ต้องมีตัวใดตัวหนึ่งเป็น True นั่นคือ