งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

CSC201 Analysis and Design of Algorithms CSC201 Analysis and Design of Algorithms P and NP Problems Dr.Surasak Mungsing Aug-141.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "CSC201 Analysis and Design of Algorithms CSC201 Analysis and Design of Algorithms P and NP Problems Dr.Surasak Mungsing Aug-141."— ใบสำเนางานนำเสนอ:

1 CSC201 Analysis and Design of Algorithms CSC201 Analysis and Design of Algorithms P and NP Problems Dr.Surasak Mungsing Aug-141

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

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

4 ประสิทธิภาพของอัลกอริทึม Aug-144 ปัญหาเวลาทำงาน ของ อัลกอริทึม SortingO(n log n) Closest point 2DO(n log n) Single source shortest path O(e + v log v) Minimum spanning treeO(e log e) Matrix multiplicationO(n 3 ) All pair shortest pathO(v 3 ) Sum of subsetO(2 n ) AssignmentO(n!) อัลกอริทึมที่มี ประสิทธิภาพ หมายถึงอัลกอริทึมที่ จะทำงานได้รวดเร็ว และมีอัตราการ เติบโตของเวลา ทำงานที่ยอมรับได้ คือ O(n k ) อัลกอริทึมที่ไม่มี ประสิทธิภาพ หมายถึงอัลกอริทึมที่ มีเวลาการทำงานโต เร็วกว่าฟังก์ชันพหุ นามเช่น O(n log n ) O(2 n ) หรือ O(n!)

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

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

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

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

9 8/1/20149 ตัวอย่างปัญหา Hamilton Circuit กราฟที่มีวงจร Hamilton กราฟที่ไม่มีวงจร Hamilton กราฟนี้มีวงจร Hamilton หรือไม่ ( วงจรที่ผ่านจุดยอด ทุกจุดๆละหนึ่งครั้ง )

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

11 Other Problems  Partition  Partition n positive integers s 1, s 2, s 3, …, s n 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 s 1, s 2, s 3, …, s n 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 8/1/ ต้องการคำตอบที่เป็นไปได้หรือ คำตอบที่ดีที่สุด เป้าหมายการแก้ปัญหานั้น ต้องการจะให้ได้ คำตอบที่ดีที่สุดหรือต้องการแค่คำตอบที่เป็นไป ได้ ตัวอย่างปัญหา Travelling Salesperson: บุรุษไปรษณีย์ต้องการเดิน ส่งจดหมายให้ครบทุกเมืองโดยให้มีระยะทาง รวมสั้นที่สุด คำตอบที่ดีที่สุดในปัญหานี้คือคำตอบของ ระยะทางที่สั้นที่สุด จะใช้เวลาสำหรับการหา คำตอบเป็น O(n!) คำตอบที่พอใช้ได้อาจอยู่ในเทอมของ O(n a ) ทั้งนี้ระยะเวลาที่ใช้ในการทำคำตอบที่ดีที่สุด ของแต่ละปัญหาขึ้นกับลักษณะธรรมชาติ ของปัญหานั้นๆ

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

14 8/1/ เครื่องคำนวณแบบ Turing  เสนอโดย Alan Turing ในปี ค. ศ เป็น แบบจำลองของเครื่องคำนวณที่มีโครงสร้าง ง่ายๆ แต่สามารถใช้แก้ปัญหาส่วนใหญ่ได้  มีปัญหาบางประเภทที่ไม่ว่าจะใช้เครื่องคำนวณ แบบใดก็ตาม ก็ไม่สามารถจะใช้หาคำตอบของ ปัญหาเหล่านั้นได้ เช่น ปัญหาที่ว่าจะรู้ได้ อย่างไรว่าโปรแกรมที่ให้มาจะหยุดทำงาน (the Halting Problem) A Turing Machine 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 8/1/ Deterministic Turing Machine (DTM) เครื่องคำนวณ DTM แบบพื้นฐานประกอบด้วย 1. เทปที่มีความยาวไม่จำกัด แบ่งออกเป็นช่องๆ เท่าๆ กัน เพื่อไว้บรรจุข้อมูล ซึ่งอาจเป็นตัวเลขหรือ ตัวหนังสือก็ได้ 2. หัวสำหรับอ่านและเขียนตัวอักษรที่อยู่บนเทป หัวนี้ อ่านตัวอักษรครั้งละหนึ่งตัวอักษรและสามารถเลื่อน ไปมาทางซ้ายหรือขวาได้ หรือไม่เลื่อนเลย ทั้งนี้จะ ขึ้นกับส่วนควบคุมหรือลำดับการทำงานของเครื่อง คำนวณ 3. ส่วนควบคุม ทำหน้าที่ตัดสินใจว่า จะให้หัวอ่าน / เขียนบันทึกตัวอักษรอะไรลงไปบนเทป เมื่ออ่านตัว อีกษรหนึ่งตัวบนเทป จะเป็นผู้กำหนดว่าจะให้ไปทำ ขั้นตอนไหนต่อไปในลำดับการทำงนของเครื่อง.. หัวอ่าน / เขียน ส่วนควบคุม เทปที่มี ความยาว ไม่จำกัด

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

17 8/1/ DTM and NDTM with k tapes DTM with k tapes NDTM with k tapes

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

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

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

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

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

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

24 1-Aug-14 24


ดาวน์โหลด ppt CSC201 Analysis and Design of Algorithms CSC201 Analysis and Design of Algorithms P and NP Problems Dr.Surasak Mungsing Aug-141.

งานนำเสนอที่คล้ายกัน


Ads by Google