280 likes | 552 Views
NP-completeness. Polynomial time Easy Exponential time Hard !!!. Traveling Salesman Problem (TSP). Find a round-trip route that visit all cities once. Decision (yes/no) problem. Find the shortest route Optimization problem Is there a route cheaper than x ? Decision problem.
E N D
NP-completeness Polynomial time EasyExponential time Hard !!! Traveling Salesman Problem (TSP) Find a round-trip route that visit all cities once.
Decision (yes/no) problem Find the shortest route Optimization problemIs there a route cheaper than x? Decision problem Same difficulty !!! Concrete problem An encodingof a problem Binary input(instance) ComputerAlgorithm Output(yes/no)
Complexity class NP Polynomial-time verification Binary input(instance) ComputerAlgorithm(verification) Output(yes/no) Binary input(certificate)
P != NP (เชื่อว่าอย่างนั้น) Decision problem คือมีหรือไม่มี Hamiltonian cycle? yes or no?
NP P ปัจจุบันยังพิสูจน์ไม่ได้ว่า P = NP หรือ P != NPแต่เชื่อว่าน่าจะเป็นอย่างหลัง
co-NP An example of an NP-complete problem is the subset sum problem: given a finite set of integers, is there a non-empty subset that sums to zero? To give a proof of a "yes" instance, one must specify a non-empty subset that does sum to zero. The complementary problem is in co-NP and asks: "given a finite set of integers, does every non-empty subset have a nonzero sum?" To give a proof of a "no" instance one must specify a non-empty subset that does sum to zero, which is easily verified. This problem is not obviously seen to be in NP (from Wikipedia).
Reducibility ใช้เปรียบเทียบความยากของปัญหา We say L2 is at least as hard as L1or L2 ≥ L1 (in terms of hardness).
An example of problem reduction Problem 1: มี subset sum = 5 หรือไม่ ? Problem 2: มี subset sum = 10 หรือไม่ ? Instance of problem 1(Algo 1) 1, 2, 3, 6, 7 x 2 Instance of problem 2(Algo 2) 2, 4,6, 12, 14 If Algo 1 says “Yes”, Algo 2 says “Yes”.If Algo 1says “No”, Algo 2 says “No”.
NP-completeness &NP-hard If any one NP-complete problem can be solved in polynomial time, then every problem in NP has a polynomial-time solution, that is, P = NP(not likely).
ทุกๆ ปัญหาใน NP ที่ verify ได้ใน poly. timeสามารถ reduce ไปเป็น circuit satisfiabilityได้โดยเขียนโปรแกรมเพื่อ verify โดยรับ input คือinstance (x) และ certificate(y) ว่าและ output 1 (accept) หรือ 0 (reject)M คือ วงจรหรือไมโครโพรเซสเซอร์ ที่จะ executeโปรแกรมที่เราเขียนขึ้นปกติมี M ชุดเดียว แต่ใช้หลาย clock cycle(เหมือนใช้ CPU คำนวณ) ถึงจะเสร็จแต่เราจะทำเป็น combinational circuitก็เลยใช้ M หลายๆ ชุดทำให้ได้วงจรที่ไม่ต้องใช้ clock ใส่ input แล้วก็รอ output ได้เลย
ไม่ได้สอนปัญหาในโซนนี้เป็น NP-Hard แต่ไม่เป็น NP-completeเช่น halting problem More likely
แปลงตรงๆ ไม่ได้ เทอมที่ซ้ำกันอาจจะทำให้ formula โตเกิน polynomail
NP-complete Problems NP-Hard & NP-Complete (verify ได้ใน poly. time) ≤ ≤ So far ≤ ≤ Next study ≤ ≤ ปัญหาในกลุ่ม NP-complete ยากเท่ากันหมด เพราะมัน reduce ไปหากันได้ทุกคู่ ≤
Clique เติม edge ให้ทุกคู่ที่1) ไม่อยู่ใน triple เดียวกัน 2) ไม่ใช่ negation ของกันและกัน เส้นเชื่อม หมายถึง ที่ปลายสองฝั่งมีค่าเป็น 1 พร้อมกันได้
Vertex-Cover ถ้ารูปซ้ายมี 4-clique รูปขวาจะมี 2-vertex-cover
Subset-Sum ที่ทำสีทึบ คือ ไม่อยู่ในคำตอบ k(vertex cover) Constant
Ham-Cycle ดูใน textbook
TSP ให้ cost เส้นเชื่อมละ 1 หน่วยแล้วโยนไปถาม TSP algo ว่ามี tour ที่ total cost ไม่เกิน |V| หรือไม่
Exercise • Reduce 3-colorable to 4-colorable • เพิ่ม a new vertex ที่เชื่อมไปยังทุก vertex ในกราฟเดิม • Reduce subset sum to formula satisfiability (ขอแค่ไอเดีย) • สร้าง circuit มา verify ปัญหา subset sum แล้วแปลง circuit เป็น boolean formula • Show that decision problem is as hard as optimization problems • Clique หา clique ที่ใหญ่ที่สุด (binary search+ ลบ vertex ออกทีละตัว แล้วถามว่า k-clique หรือไม่) • Graph coloring หาจำนวนสีที่น้อยที่สุด(binary search + วิธีการระบายสี ?) • Subset sum หาว่า subset มีตัวเลขอะไรบ้าง (ลบตัวเลขออกทีละตัว แล้วถาม yes/no)