กลุ่มปัญหา NP

Download Report

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

CSE 221/ICT221
Analysis and Design of Algorithms
Lecture 14:
P and NP Problems
Dr.Surasak Mungsing
E-mail: [email protected]
Apr-15
1
Euler Circuit Problems
ลากเส้ นตามรูปโดยไม่ ซ้า มีรูปใดทาได้ บ้าง และ รู ปใดทาไม่ ได้ เลย
เป็ นไปได้ ถ้ ามี node degree
เป็ นคี่ = 2 โหนด
(Euler path)
4/8/2015
การจบที่จุดเริ่มต้ น จะเป็ นไปได้
เป็ นไปไม่ ได้ ถ้ ามี node degree
ถ้ ากราฟมี node degree ทั้งหมดเป็ นคู่ เป็ นคีม่ ากกว่า 2 โหนด
(Euler Circuit)
2
ความยากของปัญหา
 ปั ญหาแบ่งเป็ นกลุม
่ ได ้แก่
 กลุม
่ ปั ญหา P
 กลุม
่ ปั ญหา NP
 กลุม
่ ปั ญหา NP-hard
 กลุม
่ ปั ญหา NP-complete
 บางปั ญหามีความยากทีย่ ังไม่มใี ครในโลกออกแบบ
อัลกอริทม
ึ ทีใ่ ห ้ผลเฉลยได ้รวดเร็ว ซงึ่ ปั ญหาเหล่านี้
ว่า NP-complete problem
4/8/2015
3
ิ ธิภาพของอ ัลกอริทม
ประสท
ึ
ปัญหา
เวลาทางานของ
อัลกอริ ทึม
Sorting
O(n log n)
Closest point 2D
O(n log n)
Single source shortest
path
O(e + v log v)
Minimum spanning tree
O(e log e)
Matrix multiplication
O(n3)
All pair shortest path
O(v3)
Sum of subset
O(2n)
Assignment
O(n!)
Apr-15
อัลกอริทึมทีม่ ปี ระสิ ทธิภาพ
หมายถึงอัลกอริทมึ ทีจ่ ะทางานได้
รวดเร็วและมีอตั ราการเติบโตของ
เวลาทางานทีย่ อมรับได้ คือ
O(nk)
อัลกอริทมึ ทีไ่ ม่ มปี ระสิ ทธิภาพ
หมายถึงอัลกอริทมึ ทีม่ เี วลาการ
ทางานโตเร็วกว่ าฟังก์ ชันพหุนาม
เช่ น O(n log n) O(2n) หรือ O(n!)
4
ปัญหาง่ายหรือยาก
 เป็ นปั ญหาง่าย (Tractable problem) ก็ตอ่ เมือ่ มีอล
ั กอริทม
ึ ที่
ิ ธิภาพซงึ่ ใชแก
้ ้ปั ญหานีไ
มีประสท
้ ด้
 เป็ นปั ญหายาก (Intractable problem) ก็ตอ
่ เมือ
่ พิสจ
ู น์ได ้ว่า
ิ ธิภาพแน่ๆในแก ้ปั ญหานี้
ต ้องใชอั้ ลกอริทม
ึ ทีไ่ ม่มป
ี ระสท
ิ ธิภาพอัลกอริทม
 ปั ญหาในตารางประสท
ึ ข ้างต ้น ยกเว ้น 2
ิ้ เพราะได ้พบอัลกอริทม
รายการสุดท ้ายเป็ นปั ญหาง่ายทัง้ สน
ึ ที่
ิ ธิภาพซงึ่ ใชแก
้ ้ปั ญหาเหล่านีแ
มีประสท
้ ล ้ว
ิ ธิภาพอัลกอริทม
 สองปั ญหาสุดท ้ายในตารางประสท
ึ ข ้างต ้น
ิ ธิภาพซงึ่
เป็ นปั ญหายากเพราะอาจมีอล
ั กอริทม
ึ ทีม
่ ป
ี ระสท
แก ้ปั ญหาเหล่านีไ
้ ด ้ทีเ่ รายังไม่รู ้จักก็ได ้
4/8/2015
5
มีปญ
ั หาอะไรบ้างทีร่ ว
ู้ า
่ ยากแน่ๆ
ั ซอนอยู
้
 ปั ญหาแจกแจงทุกกรณี เซตย่อย ซงึ มีความซบ
ใ่ น




4/8/2015
O(2n)
ปั ญหาย ้ายจานหอคอยฮานอย ซงึ่ ต ้องทาการย ้าย 2n -1 ครัง้
ปั ญหายากทีส
่ นใจกันสว่ นใหญ่เป็ นปั ญหาทีค
่ ด
ิ คาตอบนานๆ
่ ด
ไม่ใชค
ิ คาตอบยาวๆ
ปั ญหาประเภททีพ
่ ส
ิ จ
ู น์ได ้เลยว่าไม่มอ
ี ล
ั กอริทม
ึ ใดๆหาคาตอบ
่ Hilbert’s Tenth
ได ้ (เรียกกันว่าปั ญหา non-computable) เชน
Problem ซงึ่ ต ้องการหาคาตอบของสมการ Diphantine
่ จงหาว่ามีคาตอบจานวนเต็มของตัวแปร x, y และ
ตัวอย่างเชน
z ในสมการ 42x2y +34xz = 112 หรือไม่ ?
ปั ญหา Halting problem ซงึ่ Alan Turing เป็ นผู ้พิสจ
ู น์วา่ เป็ น
ปั ญหาแบบคานวณไม่ได ้ในปี ค.ศ. 1937
6
ิ ใจ
ปัญหาการต ัดสน
 ปั ญหาการตัดสนิ ใจคือปั ญหาทีใ่ ห ้คาตอบว่า ใช/่ ไม่ใช่ ได ้/
ไม่ได ้ มี/ไม่ม ี จริง/ไม่จริง มีเพียงสองคาตอบ
่
 ตัวอย่างของปั ญหาประเภทนี้ เชน
 Satisfiability (SAT)
 Hamilton Circuit (HAM)
 Traveling Salesperson Problem (TSP)
4/8/2015
7
ตัวอย่ างปัญหา Satisfiability (SAT)
4/8/2015
8
ต ัวอย่างปัญหา Hamilton Circuit
กราฟนี้มีวงจร Hamilton หรื อไม่ (วงจรที่ผา่ นจุดยอดทุกจุดๆละหนึ่ งัรั้ง)
10
1
5
3
2
1
2
13
4
5
4
7
3
กราฟที่มีวงจร Hamilton
6
11
8
9
12
กราฟที่ไม่มีวงจร Hamilton
4/8/2015
9
Traveling Salesperson Problem (TSP)
 กาหนดให ้ G คือกราฟ อยากทราบว่ามีวงจรในกราฟนีซ
้ งึ่ ผ่านจุด
ยอด (Vertex) ทุกจุดในกราฟจุดละหนึง่ ครัง้ โดยความยาวรวม
ของวงจรนีม
้ ค
ี า่ ไม่เกิน k หรือไม่
 เป็ น NP-hard Problem
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
ต้ องการคาตอบทีเ่ ป็ นไปได้ หรือคาตอบทีด่ ที สี่ ุ ด
เป้าหมายการแก้ปัญหานั้น ต้องการจะให้ได้ัาตอบที่ดีที่สุดหรื อต้องการ
แั่ัาตอบที่เป็ นไปได้
ตัวอย่ างปัญหา
Travelling Salesperson: บุรุษไปรษณี ยต
์ อ้ งการเดินส่ งจดหมายให้
ัรบทุกเมืองโดยให้มีระยะทางรวมสั้นที่สุด
• ัาตอบที่ดีที่สุดในปั ญหานี้ัือัาตอบของระยะทางที่ส้ นั ที่สุด จะใช้
เวลาสาหรับการหาัาตอบเป็ น O(n!)
• ัาตอบที่พอใช้ได้อาจอยูใ่ นเทอมของ O(na)
• ทั้งนี้ระยะเวลาที่ใช้ในการทาัาตอบที่ดีที่สุดของแต่ละปั ญหาขึ้นกับ
ลักษณะธรรมชาติของปั ญหานั้นๆ
4/8/2015
12
ปัญหาเป็นแบบ P หรือ NP
 ปั ญหาแบ่งเป็ น 2 กลุม
่
 กลุม
่ แรกคือปั ญหาทีแ
่ ก ้ไขได ้ในเวลา Polynomial
 กลุม
่ ทีส
่ องคือปั ญหาที่ ไม่ สามารถแก ้ไขได ้ในเวลา
Polynomial
 ปั ญหาในกลุม
่ ทีส
่ องอาจแก ้ได ้ในเวลา Polynomial ถ ้าใชวิ้ ธ ี
เดา (guess) คาตอบ โดยกาหนดระยะเวลาในการเดา
คาตอบให ้อยูใ่ นรูปของเวลา P
 ปั ญหาทีแ่ ก ้ไขได ้ในเวลา Polynomial เรียกว่าปั ญหาแบบ P
้
 ปั ญหาทีแ่ ก ้โดยใชเวลา
P ในการเดาคาตอบ เป็ นปั ญหาแบบ
NP หรือ Non-Deterministic Polynomial
4/8/2015
13
เครือ
่ งคานวณแบบ Turing
 เสนอโดย Alan Turing ในปี ั.ศ. 1936 เป็ นแบบจาลองของเัรื่ อง
ัานวณที่มีโัรงสร้างง่ายๆ แต่สามารถใช้แก้ปัญหาส่ วนใหญ่ได้
 มีปัญหาบางประเภทที่ไม่วา่ จะใช้เัรื่ องัานวณแบบใดก็ตาม ก็ไม่
สามารถจะใช้หาัาตอบของปั ญหาเหล่านั้นได้ เช่น ปั ญหาที่วา่ จะรู ้ได้
อย่างไรว่าโปรแกรมที่ให้มาจะหยุดทางาน (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.
4/8/2015
14
Deterministic Turing Machine (DTM)
เครื่องคานวณ DTM แบบพืน้ ฐานประกอบด้ วย
1. เทปทีม่ คี วามยาวไม่จากัด แบ่ งออกเป็ นช่ องๆ เท่าๆ กัน เพือ่ ไว้บรรจุข้อมูล ซึ่งอาจเป็ น
ตัวเลขหรือตัวหนังสื อก็ได้
2. หัวสาหรับอ่านและเขียนตัวอักษรทีอ่ ยู่บนเทป หัวนีอ้ ่านตัวอักษรครั้งละหนึ่งตัวอักษร
และสามารถเลือ่ นไปมาทางซ้ ายหรือขวาได้ หรือไม่ เลือ่ นเลย ทั้งนีจ้ ะขึน้ กับส่ วน
ควบคุมหรือลาดับการทางานของเครื่องคานวณ
3. ส่ วนควบคุม ทาหน้ าทีต่ ดั สินใจว่า จะให้ หัวอ่าน/เขียนบันทึกตัวอักษรอะไรลงไปบน
เทป เมือ่ อ่ านตัวอีกษรหนึ่งตัวบนเทป จะเป็ นผู้กาหนดว่ าจะให้ ไปทาขั้นตอนไหน
ต่ อไปในลาดับการทางนของเครื่อง
....
....
ส่ วนควบคุม
4/8/2015
หัวอ่าน/เขียน
15
เทปทีม่ คี วามยาว
ไม่ จากัด
Non- deterministic Turing Machine (NDTM)
เครื่องคานวณ NDTM แบบพืน้ ฐานประกอบด้ วย
1. เทปทีม่ คี วามยาวไม่ จากัด แบ่ งออกเป็ นช่ องๆ เท่ าๆ กัน เพือ่ ไว้ บรรจุข้อมูล ซึ่งอาจป็ น
ตัวเลขหรือตัวหนังสื อก็ได้
2. หัวสาหรับอ่ านและเขียนตัวอักษรทีอ่ ยู่บนเทป หัวนีอ้ ่ านตัวอักษรครั้งละหนึ่งตัวอักษร
และสามารถเลือ่ นไปมาทางซ้ ายหรือขวาได้ หรือไม่ เลือ่ นเลย ทั้งนีจ้ ะขึ้นกับส่ วน
ควบคุมหรือลาดับการทางานของเครื่องคานวณ
3. ส่ วนควบคุมแน่ ชัดและส่ วนเดา ทาหน้ าทีต่ ดั สิ นใจว่ า จะให้ หัวอ่ าน/เขียนบันทึก
ตัวอักษรอะไรลงไปบนเทป เมือ่ อ่ านตัวอีกษรหนึ่งตัวบนเทป จะเป็ นผู้กาหนดว่ าจะให้
ไปทาขั้นตอนไหนต่ อไปในลาดับการทางนของเครื่อง
4/8/2015
16
DTM and NDTM with k tapes
DTM with k tapes
NDTM with k tapes
4/8/2015
17
โปรแกรมสาหรบเครื่องคานวณแบบ Turing
 กลุ่มตัวอักษรที่มีจานวนแน่นอนบนเทป แทนด้วย T
 กลุม่ ขั้นตอนการทางานของส่วนัวบัุม แทนด้วย Q
q0 ัือขั้นตอนเริ่ มต้น qF ัือขั้นตอนสุ ดท้าย {qi} ัือขั้นตอนระหว่าง q0 และ qF
 ฟังก์ชนั การเปลี่ยนขั้นตอนการทางานและเลื่อนหัวอ่าน/เขียน
แทนฟังก์ชนั เมื่ออ่านตัวอักรเข้ามา
ตาแหน่งหัวอ่าน/เขียน เลื่อนได้ 3 แบบ ัือ L (ไปทางซ้าย) R (ไปทางขวา)
และ S (ไม่เลื่อน)
: (Q – {qF} x T  Q x T x {L, R, S}
4/8/2015
18
การลดรูปของปัญหา
 กาหนดให ้ Q1 และ Q2 เป็ นปั ญหาการตัดสนิ ใจ 2 ปั ญหา
ถ ้าเราลดรูปปั ญหา Q1ไปเป็ นปั ญหา Q2 ก็แสดงว่าเราสามารถเปลีย
่ นตัว
อย่างปั ญหาใดๆของ Q1 ไปเป็ นตัวอย่างปั ญหาของ Q2 ได ้
จากนัน
้ ใชอั้ ลกอริทม
ึ Q2 หาคาตอบ ก็จะเป็ นคาตอบของตัวอย่างปั ญหา
ของ Q1 นัน
้
 การลดรูปของปั ญหาเป็ นกลวิธใี นการแก ้ปั ญหาแบบหนึง่
สมมติวา่ เราต ้องการแก ้ปั ญหา Q1 สงิ่ ทีน
่ ักออกแบบอัลกอริทม
ึ ต ้องคิดคือ
ึ คล ้ายๆกับปั ญหาอืน
Q1 เป็ นปั ญหาทีร่ ู ้สก
่ ทีเ่ ราเคยรู ้จักวิธแ
ี ก ้ไขหรือไม่
ึ ว่าคล ้ายปั ญหา Q2 แล ้ว คิดต่อว่าจะมีวธิ ต
ถ ้ารู ้สก
ี ค
ี วามปั ญหา Q1 ให ้อยู่
ในรูปแบบของปั ญหา Q2 ทีเ่ รารู ้จักวิธแ
ี ก ้ไขนัน
้ ได ้อย่างไร
4/8/2015
19
กลุม
่ ปัญหา NP-Complete
 P  NP
ิ้ เพราะมีอล
ปั ญหาในกลุม
่ P เป็ นปั ญหาง่ายทัง้ สน
ั กอริทม
ึ หาคาตอบได ้อย่างมี
ิ ธิภาพ ในขณะทีป
ั
ประสท
่ ั ญหาในกลุม
่ NP นัน
้ ยังไม่เด่นชด
 ในปี ค.ศ. 1971 Cook ได ้แสดงให ้เห็นว่าปั ญหา SAT เป็ นปั ญหาทีย่ ากทีส
่ ด
ุ ใน
NP โดยการพิสจ
ู น์วา่ ทุกๆปั ญหาใน NP สามารถลดรูปแบบพหุนามไปเป็ น SAT
ได ้หมด
 ในปี ค.ศ. 1972 Karp ได ้อาศยั กลวิธกี ารลดรูปเพือ่ แสดงให ้เห็นว่ามีปัญหา
อืน
่ ๆอีกมากมายหลากหลายรูปแบบทีม
่ ค
ี วามยากง่ายเทียบเท่ากับ SAT นั่นก็
คือกลุม
่ ปั ญหาทีเ่ รียกว่า NP-Complete ซงึ่ เป็ นกลุม
่ ปั ญหาทีย
่ ากทีส
่ ด
ุ ใน NP
หมายความว่าเป็ นกลุม
่ ปั ญหาทีม
่ ค
ี วามยากง่ายทัดเทียมกันหมด (อันเป็ นทีม
่ า
ของคาว่า Complete หรือ บริบรู ณ์)
4/8/2015
20
NP-Complete (ต่อ)
ิ ธิภาพทีแ
 ดังนัน้ หากใครพบอัลกอริทมึ ทีม่ ป
ี ระสท
่ ก ้เพียง 1
ปั ญหาใน NP-Complete ก็ยอ
่ มหมายความว่าทุกปั ญหาใน NPC
ิ้ (นั่นคือพิสจ
เป็ นปั ญหาง่ายทัง้ สน
ู น์ได ้ว่า P = NP)
 ในทางกลับกัน ถ ้ามีใครสามารถพิสจู น์เพียง 1 ปั ญหาใดใน
NPC เป็ นปั ญหายาก ก็สรุปได ้ว่าทุกปั ญหาในกลุม
่ นีเ้ ป็ นปั ญหา
ิ้ (นั่นคือ พิสจ
ยากทัง้ สน
ู น์ได ้ว่า P  NP หรือ P  NP)
4/8/2015
21
สรุป
If any NP-Complete can be
solved in polynomial time, then
all NP problems can be solved
in polynomial time.
NP
NP-Complete
Or, if any NP-complete problem
can be solved in polynomial time,
then NP = P
P
กลุ่มปั ญหา NP-Hard
Q เป็ นปัญหา NP-Hard ถ้ าทุกปัญหาใน NP สามารถลดรูปแบบพหุนามไปเป็ น Q ได้
NP-Complete คือกลุ่มของปัญหาการตัดสิ นใจทีเ่ ป็ น NP-Hard และอยู่ในกลุ่ม NP
ปัญหา NP-Hard ไม่ จาเป็ นต้ องเป็ นปัญหาตัดสิ นใจ
4/8/2015
22
สรุป
 SAT เป็ น NP Problem
 NP problem ทัง้ หลายแปลงให ้เป็ นปั ญหา SAT ได ้ในเวลา
Polynomial
 การแก ้ปั ญหาทีเ่ ป็ น NP สามารถทาได ้ในเวลาทีเ่ ป็ น
้ อ
Polynomial โดยใชเครื
่ ง NDTM
4/8/2015
23
8-Apr-15
24