1 / 24

CSE 221/ICT221 Analysis and Design of Algorithms Lecture 14: P and NP Problems

CSE 221/ICT221 Analysis and Design of Algorithms Lecture 14: P and NP Problems. Dr.Surasak Mungsing E-mail: Surasak.mu@spu.ac.th. Euler Circuit Problems. ลากเส้นตามรูปโดยไม่ซ้ำ มีรูปใดทำได้บ้าง และ รูปใดทำไม่ได้เลย. เป็นไปได้ ถ้ามี node degree เป็นคี่ = 2 โหนด (Euler path).

milo
Download Presentation

CSE 221/ICT221 Analysis and Design of Algorithms Lecture 14: P and NP Problems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 221/ICT221 Analysis and Design of AlgorithmsLecture 14:P and NP Problems Dr.SurasakMungsing E-mail: Surasak.mu@spu.ac.th

  2. Euler Circuit Problems ลากเส้นตามรูปโดยไม่ซ้ำ มีรูปใดทำได้บ้าง และ รูปใดทำไม่ได้เลย เป็นไปได้ ถ้ามี node degree เป็นคี่ =2 โหนด (Euler path) การจบที่จุดเริ่มต้น จะเป็นไปได้ ถ้ากราฟมี node degree ทั้งหมดเป็นคู่ (Euler Circuit) เป็นไปไม่ได้ ถ้ามี node degree เป็นคี่มากกว่า 2 โหนด

  3. ความยากของปัญหา • ปัญหาแบ่งเป็นกลุ่มได้แก่ • กลุ่มปัญหาP • กลุ่มปัญหาNP • กลุ่มปัญหาNP-hard • กลุ่มปัญหาNP-complete • บางปัญหามีความยากที่ยังไม่มีใครในโลกออกแบบอัลกอริทึมที่ให้ผลเฉลยได้รวดเร็ว ซึ่งปัญหาเหล่านี้ว่า NP-complete problem

  4. ประสิทธิภาพของอัลกอริทึม อัลกอริทึมที่มีประสิทธิภาพ หมายถึงอัลกอริทึมที่จะทำงานได้รวดเร็วและมีอัตราการเติบโตของเวลาทำงานที่ยอมรับได้ คือ O(nk) อัลกอริทึมที่ไม่มีประสิทธิภาพ หมายถึงอัลกอริทึมที่มีเวลาการทำงานโตเร็วกว่าฟังก์ชันพหุนามเช่น O(n log n) O(2n) หรือ O(n!)

  5. ปัญหาง่ายหรือยาก • เป็นปัญหาง่าย (Tractable problem) ก็ต่อเมื่อมีอัลกอริทึมที่มีประสิทธิภาพซึ่งใช้แก้ปัญหานี้ได้ • เป็นปัญหายาก (Intractable problem) ก็ต่อเมื่อพิสูจน์ได้ว่าต้องใช้อัลกอริทึมที่ไม่มีประสิทธิภาพแน่ๆในแก้ปัญหานี้ • ปัญหาในตารางประสิทธิภาพอัลกอริทึมข้างต้น ยกเว้น 2 รายการสุดท้ายเป็นปัญหาง่ายทั้งสิ้น เพราะได้พบอัลกอริทึมที่มีประสิทธิภาพซึ่งใช้แก้ปัญหาเหล่านี้แล้ว • สองปัญหาสุดท้ายในตารางประสิทธิภาพอัลกอริทึมข้างต้นเป็นปัญหายากเพราะอาจมีอัลกอริทึมที่มีประสิทธิภาพซึ่งแก้ปัญหาเหล่านี้ได้ที่เรายังไม่รู้จักก็ได้

  6. มีปัญหาอะไรบ้างที่รู้ว่ายากแน่ๆมีปัญหาอะไรบ้างที่รู้ว่ายากแน่ๆ • ปัญหาแจกแจงทุกกรณี เซตย่อย ซึงมีความซับซ้อนอยู่ใน O(2n) • ปัญหาย้ายจานหอคอยฮานอย ซึ่งต้องทำการย้าย 2n -1 ครั้ง • ปัญหายากที่สนใจกันส่วนใหญ่เป็นปัญหาที่คิดคำตอบนานๆ ไม่ใช่คิดคำตอบยาวๆ • ปัญหาประเภทที่พิสูจน์ได้เลยว่าไม่มีอัลกอริทึมใดๆหาคำตอบได้ (เรียกกันว่าปัญหา non-computable) เช่น Hilbert’s Tenth Problem ซึ่งต้องการหาคำตอบของสมการDiphantine ตัวอย่างเช่น จงหาว่ามีคำตอบจำนวนเต็มของตัวแปร x, y และ z ในสมการ 42x2y +34xz = 112 หรือไม่ ? • ปัญหา Halting problem ซึ่ง Alan Turing เป็นผู้พิสูจน์ว่า เป็นปัญหาแบบคำนวณไม่ได้ในปี ค.ศ. 1937

  7. ปัญหาการตัดสินใจ • ปัญหาการตัดสินใจคือปัญหาที่ให้คำตอบว่า ใช่/ไม่ใช่ ได้/ไม่ได้ มี/ไม่มี จริง/ไม่จริง มีเพียงสองคำตอบ • ตัวอย่างของปัญหาประเภทนี้ เช่น • Satisfiability (SAT) • Hamilton Circuit (HAM) • Traveling Salesperson Problem (TSP)

  8. ตัวอย่างปัญหา Satisfiability(SAT)

  9. ตัวอย่างปัญหา Hamilton Circuit กราฟนี้มีวงจรHamiltonหรือไม่ (วงจรที่ผ่านจุดยอดทุกจุดๆละหนึ่งครั้ง) 10 1 3 2 1 5 2 5 6 13 4 11 7 8 3 4 9 กราฟที่มีวงจรHamilton 12 กราฟที่ไม่มีวงจรHamilton

  10. Traveling Salesperson Problem (TSP) • กำหนดให้ G คือกราฟ อยากทราบว่ามีวงจรในกราฟนี้ซึ่งผ่านจุดยอด (Vertex) ทุกจุดในกราฟจุดละหนึ่งครั้ง โดยความยาวรวมของวงจรนี้มีค่าไม่เกิน k หรือไม่ • เป็น NP-hard Problem

  11. Other Problems • Partition • Partition n positive integers s1, s2, s3, …, sn into two groups A and B such that the sum of the numbers in each group is the same. [9, 4, 6, 3, 5, 1,8] A = [9, 4, 5] and B = [6, 3, 1, 8] • เป็นNP-hard Problem • Subset Sum Problem • Does any subset of n positive integers s1, s2, s3, …, sn have a sum exactly equal to c? [9, 4, 6, 3, 5, 1,8] and c = 18 A = [9, 4, 5] • เป็น NP-hard Problem

  12. ต้องการคำตอบที่เป็นไปได้หรือคำตอบที่ดีที่สุดต้องการคำตอบที่เป็นไปได้หรือคำตอบที่ดีที่สุด เป้าหมายการแก้ปัญหานั้น ต้องการจะให้ได้คำตอบที่ดีที่สุดหรือต้องการแค่คำตอบที่เป็นไปได้ • ตัวอย่างปัญหา • TravellingSalesperson:บุรุษไปรษณีย์ต้องการเดินส่งจดหมายให้ครบทุกเมืองโดยให้มีระยะทางรวมสั้นที่สุด • คำตอบที่ดีที่สุดในปัญหานี้คือคำตอบของระยะทางที่สั้นที่สุด จะใช้เวลาสำหรับการหาคำตอบเป็นO(n!) • คำตอบที่พอใช้ได้อาจอยู่ในเทอมของO(na) • ทั้งนี้ระยะเวลาที่ใช้ในการทำคำตอบที่ดีที่สุดของแต่ละปัญหาขึ้นกับลักษณะธรรมชาติของปัญหานั้นๆ

  13. ปัญหาเป็นแบบ P หรือ NP • ปัญหาแบ่งเป็น 2 กลุ่ม • กลุ่มแรกคือปัญหาที่แก้ไขได้ในเวลา Polynomial • กลุ่มที่สองคือปัญหาที่ ไม่ สามารถแก้ไขได้ในเวลา Polynomial • ปัญหาในกลุ่มที่สองอาจแก้ได้ในเวลา Polynomial ถ้าใช้วิธีเดา (guess) คำตอบ โดยกำหนดระยะเวลาในการเดาคำตอบให้อยู่ในรูปของเวลา P • ปัญหาที่แก้ไขได้ในเวลา Polynomial เรียกว่าปัญหาแบบ P • ปัญหาที่แก้โดยใช้เวลา P ในการเดาคำตอบ เป็นปัญหาแบบ NPหรือ Non-Deterministic Polynomial

  14. เครื่องคำนวณแบบ Turing • เสนอโดย Alan Turingในปี ค.ศ. 1936เป็นแบบจำลองของเครื่องคำนวณที่มีโครงสร้างง่ายๆ แต่สามารถใช้แก้ปัญหาส่วนใหญ่ได้ • มีปัญหาบางประเภทที่ไม่ว่าจะใช้เครื่องคำนวณแบบใดก็ตาม ก็ไม่สามารถจะใช้หาคำตอบของปัญหาเหล่านั้นได้ เช่น ปัญหาที่ว่าจะรู้ได้อย่างไรว่าโปรแกรมที่ให้มาจะหยุดทำงาน (the Halting Problem) A TuringMachine was a specific mechanical device that could carry out some specific task in a systematic way. Each Turing Machine would work in a similar manner, using mechanisms related to the computer concepts of input, output and a program.

  15. . . . . . . . . เทปที่มีความยาว ไม่จำกัด ส่วนควบคุม หัวอ่าน/เขียน Deterministic Turing Machine(DTM) เครื่องคำนวณ DTM แบบพื้นฐานประกอบด้วย • เทปที่มีความยาวไม่จำกัด แบ่งออกเป็นช่องๆ เท่าๆ กัน เพื่อไว้บรรจุข้อมูล ซึ่งอาจเป็นตัวเลขหรือตัวหนังสือก็ได้ • หัวสำหรับอ่านและเขียนตัวอักษรที่อยู่บนเทป หัวนี้อ่านตัวอักษรครั้งละหนึ่งตัวอักษรและสามารถเลื่อนไปมาทางซ้ายหรือขวาได้ หรือไม่เลื่อนเลย ทั้งนี้จะขึ้นกับส่วนควบคุมหรือลำดับการทำงานของเครื่องคำนวณ • ส่วนควบคุม ทำหน้าที่ตัดสินใจว่า จะให้หัวอ่าน/เขียนบันทึกตัวอักษรอะไรลงไปบนเทป เมื่ออ่านตัวอีกษรหนึ่งตัวบนเทป จะเป็นผู้กำหนดว่าจะให้ไปทำขั้นตอนไหนต่อไปในลำดับการทำงนของเครื่อง

  16. Non- deterministic Turing Machine(NDTM) เครื่องคำนวณ NDTM แบบพื้นฐานประกอบด้วย 1. เทปที่มีความยาวไม่จำกัด แบ่งออกเป็นช่องๆ เท่าๆ กัน เพื่อไว้บรรจุข้อมูล ซึ่งอาจป็นตัวเลขหรือตัวหนังสือก็ได้ 2. หัวสำหรับอ่านและเขียนตัวอักษรที่อยู่บนเทป หัวนี้อ่านตัวอักษรครั้งละหนึ่งตัวอักษรและสามารถเลื่อนไปมาทางซ้ายหรือขวาได้ หรือไม่เลื่อนเลย ทั้งนี้จะขึ้นกับส่วนควบคุมหรือลำดับการทำงานของเครื่องคำนวณ 3. ส่วนควบคุมแน่ชัดและส่วนเดา ทำหน้าที่ตัดสินใจว่า จะให้หัวอ่าน/เขียนบันทึกตัวอักษรอะไรลงไปบนเทป เมื่ออ่านตัวอีกษรหนึ่งตัวบนเทป จะเป็นผู้กำหนดว่าจะให้ไปทำขั้นตอนไหนต่อไปในลำดับการทำงนของเครื่อง

  17. DTM and NDTM with k tapes DTM with k tapes NDTM with k tapes

  18. โปรแกรมสำหรบเครื่องคำนวณแบบTuringโปรแกรมสำหรบเครื่องคำนวณแบบTuring • กลุ่มตัวอักษรที่มีจำนวนแน่นอนบนเทป แทนด้วย T • กลุ่มขั้นตอนการทำงานของส่วนควบคุม แทนด้วย Q q0คือขั้นตอนเริ่มต้น qFคือขั้นตอนสุดท้าย {qi} คือขั้นตอนระหว่าง q0และ qF • ฟังก์ชันการเปลี่ยนขั้นตอนการทำงานและเลื่อนหัวอ่าน/เขียน  แทนฟังก์ชันเมื่ออ่านตัวอักรเข้ามา ตำแหน่งหัวอ่าน/เขียน เลื่อนได้ 3 แบบ คือ L (ไปทางซ้าย) R (ไปทางขวา) และ S (ไม่เลื่อน) : (Q – {qF} x T  Q x T x {L, R, S}

  19. การลดรูปของปัญหา • กำหนดให้ Q1และ Q2 เป็นปัญหาการตัดสินใจ 2 ปัญหา ถ้าเราลดรูปปัญหา Q1ไปเป็นปัญหา Q2 ก็แสดงว่าเราสามารถเปลี่ยนตัวอย่างปัญหาใดๆของ Q1ไปเป็นตัวอย่างปัญหาของ Q2 ได้ จากนั้นใช้อัลกอริทึม Q2 หาคำตอบ ก็จะเป็นคำตอบของตัวอย่างปัญหาของ Q1นั้น • การลดรูปของปัญหาเป็นกลวิธีในการแก้ปัญหาแบบหนึ่ง สมมติว่าเราต้องการแก้ปัญหา Q1สิ่งที่นักออกแบบอัลกอริทึมต้องคิดคือ Q1เป็นปัญหาที่รู้สึกคล้ายๆกับปัญหาอื่นที่เราเคยรู้จักวิธีแก้ไขหรือไม่ ถ้ารู้สึกว่าคล้ายปัญหา Q2แล้ว คิดต่อว่าจะมีวิธีตีความปัญหา Q1 ให้อยู่ในรูปแบบของปัญหา Q2 ที่เรารู้จักวิธีแก้ไขนั้นได้อย่างไร

  20. กลุ่มปัญหาNP-Complete • P  NP ปัญหาในกลุ่ม P เป็นปัญหาง่ายทั้งสิ้น เพราะมีอัลกอริทึมหาคำตอบได้อย่างมีประสิทธิภาพ ในขณะที่ปัญหาในกลุ่ม NP นั้นยังไม่เด่นชัด • ในปี ค.ศ. 1971 Cook ได้แสดงให้เห็นว่าปัญหา SAT เป็นปัญหาที่ยากที่สุดใน NP โดยการพิสูจน์ว่าทุกๆปัญหาใน NP สามารถลดรูปแบบพหุนามไปเป็น SAT ได้หมด • ในปี ค.ศ. 1972 Karp ได้อาศัยกลวิธีการลดรูปเพื่อแสดงให้เห็นว่ามีปัญหาอื่นๆอีกมากมายหลากหลายรูปแบบที่มีความยากง่ายเทียบเท่ากับ SAT นั่นก็คือกลุ่มปัญหาที่เรียกว่า NP-Complete ซึ่งเป็นกลุ่มปัญหาที่ยากที่สุดใน NP หมายความว่าเป็นกลุ่มปัญหาที่มีความยากง่ายทัดเทียมกันหมด (อันเป็นที่มาของคำว่า Complete หรือ บริบูรณ์)

  21. NP-Complete (ต่อ) • ดังนั้นหากใครพบอัลกอริทึมที่มีประสิทธิภาพที่แก้เพียง 1 ปัญหาใน NP-Complete ก็ย่อมหมายความว่าทุกปัญหาใน NPC เป็นปัญหาง่ายทั้งสิ้น (นั่นคือพิสูจน์ได้ว่า P = NP) • ในทางกลับกัน ถ้ามีใครสามารถพิสูจน์เพียง 1 ปัญหาใดใน NPC เป็นปัญหายาก ก็สรุปได้ว่าทุกปัญหาในกลุ่มนี้เป็นปัญหายากทั้งสิ้น (นั่นคือ พิสูจน์ได้ว่า P  NP หรือ P  NP)

  22. P NP-Complete สรุป If any NP-Complete can be solved in polynomial time, then all NP problems can be solved in polynomial time. NP Or, if any NP-complete problem can be solvedin polynomial time, then NP = P กลุ่มปัญหา NP-Hard Q เป็นปัญหา NP-Hard ถ้าทุกปัญหาใน NP สามารถลดรูปแบบพหุนามไปเป็น Q ได้ NP-Complete คือกลุ่มของปัญหาการตัดสินใจที่เป็น NP-Hard และอยู่ในกลุ่ม NP ปัญหา NP-Hard ไม่จำเป็นต้องเป็นปัญหาตัดสินใจ

  23. สรุป • SAT เป็น NP Problem • NP problem ทั้งหลายแปลงให้เป็นปัญหา SAT ได้ในเวลา Polynomial • การแก้ปัญหาที่เป็น NP สามารถทำได้ในเวลาที่เป็น Polynomial โดยใช้เครื่อง NDTM

More Related