Csc201 analysis and design of algorithms p and np problems
This presentation is the property of its rightful owner.
Sponsored Links
1 / 24

CSC201 Analysis and Design of Algorithms P and NP Problems PowerPoint PPT Presentation


  • 100 Views
  • Uploaded on
  • Presentation posted in: General

CSC201 Analysis and Design of Algorithms P and NP Problems. Dr.Surasak Mungsing E-mail: [email protected] Euler Circuit Problems. ลากเส้นตามรูปโดยไม่ซ้ำ มีรูปใดทำได้บ้าง และ รูปใดทำไม่ได้เลย. เป็นไปได้ ถ้ามี node degree เป็นคี่ = 2 โหนด (Euler path).

Download Presentation

CSC201 Analysis and Design of Algorithms 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Csc201 analysis and design of algorithms p and np problems

CSC201 Analysis and Design of AlgorithmsP and NP Problems

Dr.SurasakMungsing

E-mail: [email protected]


Euler circuit problems

Euler Circuit Problems

ลากเส้นตามรูปโดยไม่ซ้ำ มีรูปใดทำได้บ้าง และ รูปใดทำไม่ได้เลย

เป็นไปได้ ถ้ามี node degree เป็นคี่ =2 โหนด

(Euler path)

การจบที่จุดเริ่มต้น จะเป็นไปได้

ถ้ากราฟมี node degree ทั้งหมดเป็นคู่

(Euler Circuit)

เป็นไปไม่ได้ ถ้ามี node degree เป็นคี่มากกว่า 2 โหนด


Csc201 analysis and design of algorithms p and np problems

ความยากของปัญหา

  • ปัญหาแบ่งเป็นกลุ่มได้แก่

    • กลุ่มปัญหาP

    • กลุ่มปัญหาNP

    • กลุ่มปัญหาNP-hard

    • กลุ่มปัญหาNP-complete

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


Csc201 analysis and design of algorithms p and np problems

ประสิทธิภาพของอัลกอริทึม

อัลกอริทึมที่มีประสิทธิภาพ หมายถึงอัลกอริทึมที่จะทำงานได้รวดเร็วและมีอัตราการเติบโตของเวลาทำงานที่ยอมรับได้ คือ

O(nk)

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


Csc201 analysis and design of algorithms p and np problems

ปัญหาง่ายหรือยาก

  • เป็นปัญหาง่าย (Tractable problem) ก็ต่อเมื่อมีอัลกอริทึมที่มีประสิทธิภาพซึ่งใช้แก้ปัญหานี้ได้

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

  • ปัญหาในตารางประสิทธิภาพอัลกอริทึมข้างต้น ยกเว้น 2 รายการสุดท้ายเป็นปัญหาง่ายทั้งสิ้น เพราะได้พบอัลกอริทึมที่มีประสิทธิภาพซึ่งใช้แก้ปัญหาเหล่านี้แล้ว

  • สองปัญหาสุดท้ายในตารางประสิทธิภาพอัลกอริทึมข้างต้นเป็นปัญหายากเพราะอาจมีอัลกอริทึมที่มีประสิทธิภาพซึ่งแก้ปัญหาเหล่านี้ได้ที่เรายังไม่รู้จักก็ได้


Csc201 analysis and design of algorithms p and np problems

มีปัญหาอะไรบ้างที่รู้ว่ายากแน่ๆ

  • ปัญหาแจกแจงทุกกรณี เซตย่อย ซึงมีความซับซ้อนอยู่ใน O(2n)

  • ปัญหาย้ายจานหอคอยฮานอย ซึ่งต้องทำการย้าย 2n -1 ครั้ง

  • ปัญหายากที่สนใจกันส่วนใหญ่เป็นปัญหาที่คิดคำตอบนานๆ ไม่ใช่คิดคำตอบยาวๆ

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

  • ปัญหา Halting problem ซึ่ง Alan Turing เป็นผู้พิสูจน์ว่า เป็นปัญหาแบบคำนวณไม่ได้ในปี ค.ศ. 1937


Csc201 analysis and design of algorithms p and np problems

ปัญหาการตัดสินใจ

  • ปัญหาการตัดสินใจคือปัญหาที่ให้คำตอบว่า ใช่/ไม่ใช่ ได้/ไม่ได้ มี/ไม่มี จริง/ไม่จริง มีเพียงสองคำตอบ

  • ตัวอย่างของปัญหาประเภทนี้ เช่น

    • Satisfiability (SAT)

    • Hamilton Circuit (HAM)

    • Traveling Salesperson Problem (TSP)


Satisfiability sat

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


Hamilton circuit

ตัวอย่างปัญหา Hamilton Circuit

กราฟนี้มีวงจรHamiltonหรือไม่ (วงจรที่ผ่านจุดยอดทุกจุดๆละหนึ่งครั้ง)

10

1

3

2

1

5

2

5

6

13

4

11

7

8

3

4

9

กราฟที่มีวงจรHamilton

12

กราฟที่ไม่มีวงจรHamilton


Traveling salesperson problem tsp

Traveling Salesperson Problem (TSP)

  • กำหนดให้ G คือกราฟ อยากทราบว่ามีวงจรในกราฟนี้ซึ่งผ่านจุดยอด (Vertex) ทุกจุดในกราฟจุดละหนึ่งครั้ง โดยความยาวรวมของวงจรนี้มีค่าไม่เกิน k หรือไม่

  • เป็น NP-hard Problem


Other problems

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


Csc201 analysis and design of algorithms p and np problems

ต้องการคำตอบที่เป็นไปได้หรือคำตอบที่ดีที่สุด

เป้าหมายการแก้ปัญหานั้น ต้องการจะให้ได้คำตอบที่ดีที่สุดหรือต้องการแค่คำตอบที่เป็นไปได้

  • ตัวอย่างปัญหา

    • TravellingSalesperson:บุรุษไปรษณีย์ต้องการเดินส่งจดหมายให้ครบทุกเมืองโดยให้มีระยะทางรวมสั้นที่สุด

      • คำตอบที่ดีที่สุดในปัญหานี้คือคำตอบของระยะทางที่สั้นที่สุด จะใช้เวลาสำหรับการหาคำตอบเป็นO(n!)

      • คำตอบที่พอใช้ได้อาจอยู่ในเทอมของO(na)

      • ทั้งนี้ระยะเวลาที่ใช้ในการทำคำตอบที่ดีที่สุดของแต่ละปัญหาขึ้นกับลักษณะธรรมชาติของปัญหานั้นๆ


Csc201 analysis and design of algorithms p and np problems

ปัญหาเป็นแบบ P หรือ NP

  • ปัญหาแบ่งเป็น 2 กลุ่ม

    • กลุ่มแรกคือปัญหาที่แก้ไขได้ในเวลา Polynomial

    • กลุ่มที่สองคือปัญหาที่ ไม่ สามารถแก้ไขได้ในเวลา Polynomial

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

  • ปัญหาที่แก้ไขได้ในเวลา Polynomial เรียกว่าปัญหาแบบ P

  • ปัญหาที่แก้โดยใช้เวลา P ในการเดาคำตอบ เป็นปัญหาแบบ NPหรือ Non-Deterministic Polynomial


Turing

เครื่องคำนวณแบบ 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.


Deterministic turing machine dtm

. . . .

. . . .

เทปที่มีความยาว

ไม่จำกัด

ส่วนควบคุม

หัวอ่าน/เขียน

Deterministic Turing Machine(DTM)

เครื่องคำนวณ DTM แบบพื้นฐานประกอบด้วย

  • เทปที่มีความยาวไม่จำกัด แบ่งออกเป็นช่องๆ เท่าๆ กัน เพื่อไว้บรรจุข้อมูล ซึ่งอาจเป็นตัวเลขหรือตัวหนังสือก็ได้

  • หัวสำหรับอ่านและเขียนตัวอักษรที่อยู่บนเทป หัวนี้อ่านตัวอักษรครั้งละหนึ่งตัวอักษรและสามารถเลื่อนไปมาทางซ้ายหรือขวาได้ หรือไม่เลื่อนเลย ทั้งนี้จะขึ้นกับส่วนควบคุมหรือลำดับการทำงานของเครื่องคำนวณ

  • ส่วนควบคุม ทำหน้าที่ตัดสินใจว่า จะให้หัวอ่าน/เขียนบันทึกตัวอักษรอะไรลงไปบนเทป เมื่ออ่านตัวอีกษรหนึ่งตัวบนเทป จะเป็นผู้กำหนดว่าจะให้ไปทำขั้นตอนไหนต่อไปในลำดับการทำงนของเครื่อง


Non deterministic turing machine ndtm

Non- deterministic Turing Machine(NDTM)

เครื่องคำนวณ NDTM แบบพื้นฐานประกอบด้วย

1. เทปที่มีความยาวไม่จำกัด แบ่งออกเป็นช่องๆ เท่าๆ กัน เพื่อไว้บรรจุข้อมูล ซึ่งอาจป็นตัวเลขหรือตัวหนังสือก็ได้

2. หัวสำหรับอ่านและเขียนตัวอักษรที่อยู่บนเทป หัวนี้อ่านตัวอักษรครั้งละหนึ่งตัวอักษรและสามารถเลื่อนไปมาทางซ้ายหรือขวาได้ หรือไม่เลื่อนเลย ทั้งนี้จะขึ้นกับส่วนควบคุมหรือลำดับการทำงานของเครื่องคำนวณ

3. ส่วนควบคุมแน่ชัดและส่วนเดา ทำหน้าที่ตัดสินใจว่า จะให้หัวอ่าน/เขียนบันทึกตัวอักษรอะไรลงไปบนเทป เมื่ออ่านตัวอีกษรหนึ่งตัวบนเทป จะเป็นผู้กำหนดว่าจะให้ไปทำขั้นตอนไหนต่อไปในลำดับการทำงนของเครื่อง


Dtm and ndtm with k tapes

DTM and NDTM with k tapes

DTM with k tapes

NDTM with k tapes


Turing1

โปรแกรมสำหรบเครื่องคำนวณแบบTuring

  • กลุ่มตัวอักษรที่มีจำนวนแน่นอนบนเทป แทนด้วย T

  • กลุ่มขั้นตอนการทำงานของส่วนควบคุม แทนด้วย Q

    q0คือขั้นตอนเริ่มต้น qFคือขั้นตอนสุดท้าย {qi} คือขั้นตอนระหว่าง q0และ qF

  • ฟังก์ชันการเปลี่ยนขั้นตอนการทำงานและเลื่อนหัวอ่าน/เขียน

     แทนฟังก์ชันเมื่ออ่านตัวอักรเข้ามา

    ตำแหน่งหัวอ่าน/เขียน เลื่อนได้ 3 แบบ คือ L (ไปทางซ้าย) R (ไปทางขวา) และ S (ไม่เลื่อน)

    : (Q – {qF} x T  Q x T x {L, R, S}


Csc201 analysis and design of algorithms p and np problems

การลดรูปของปัญหา

  • กำหนดให้ Q1และ Q2 เป็นปัญหาการตัดสินใจ 2 ปัญหา

    ถ้าเราลดรูปปัญหา Q1ไปเป็นปัญหา Q2 ก็แสดงว่าเราสามารถเปลี่ยนตัวอย่างปัญหาใดๆของ Q1ไปเป็นตัวอย่างปัญหาของ Q2 ได้

    จากนั้นใช้อัลกอริทึม Q2 หาคำตอบ ก็จะเป็นคำตอบของตัวอย่างปัญหาของ Q1นั้น

  • การลดรูปของปัญหาเป็นกลวิธีในการแก้ปัญหาแบบหนึ่ง

    สมมติว่าเราต้องการแก้ปัญหา Q1สิ่งที่นักออกแบบอัลกอริทึมต้องคิดคือ

    Q1เป็นปัญหาที่รู้สึกคล้ายๆกับปัญหาอื่นที่เราเคยรู้จักวิธีแก้ไขหรือไม่

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


Np complete

กลุ่มปัญหาNP-Complete

  • P  NP

    ปัญหาในกลุ่ม P เป็นปัญหาง่ายทั้งสิ้น เพราะมีอัลกอริทึมหาคำตอบได้อย่างมีประสิทธิภาพ ในขณะที่ปัญหาในกลุ่ม NP นั้นยังไม่เด่นชัด

  • ในปี ค.ศ. 1971 Cook ได้แสดงให้เห็นว่าปัญหา SAT เป็นปัญหาที่ยากที่สุดใน NP โดยการพิสูจน์ว่าทุกๆปัญหาใน NP สามารถลดรูปแบบพหุนามไปเป็น SAT ได้หมด

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


Np complete1

NP-Complete (ต่อ)

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

  • ในทางกลับกัน ถ้ามีใครสามารถพิสูจน์เพียง 1 ปัญหาใดใน NPC เป็นปัญหายาก ก็สรุปได้ว่าทุกปัญหาในกลุ่มนี้เป็นปัญหายากทั้งสิ้น (นั่นคือ พิสูจน์ได้ว่า P  NP หรือ P  NP)


Csc201 analysis and design of algorithms p and np problems

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 ไม่จำเป็นต้องเป็นปัญหาตัดสินใจ


Csc201 analysis and design of algorithms p and np problems

สรุป

  • SAT เป็น NP Problem

  • NP problem ทั้งหลายแปลงให้เป็นปัญหา SAT ได้ในเวลา Polynomial

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


  • Login