Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
682 KB
Nội dung
NP - ĐẦY ĐỦ Ch 12: NP-Completeness Vài khái niệm ª ª Bài toán – tham số – tính chất mà lời giải cần phải thỏa mãn Một thực thể (instance) toán toán mà tham số có trị cụ thể Ch 12: NP-Completeness Hình thức hóa khái niệm toán ª Ví dụ: toán SHORTEST-PATH – “không hình thức”: toán tìm đường ngắn hai đỉnh cho trước đồ thị vô hướng, trọng số G = (V, E) – “hình thức”: ° Một thực thể toán cặp ba gồm đồ thị cụ thể hai đỉnh cụ thể ° Một lời giải dãy đỉnh đồ thị ° Bài toán SHORTEST-PATH quan hệ kết hợp thực thể gồm đồ thị hai đỉnh với đường ngắn (nếu có) đồ thị nối hai đỉnh: SHORTEST-PATH I S Ch 12: NP-Completeness Bài toán trừu tượng ª Định nghóa: toán trừu tượng Q quan hệ nhị phân tập I, gọi tập thực thể (instances) toán, tập S, gọi tập lời giải toán: QIS Ch 12: NP-Completeness Bài toán định ª Một toán định Q toán trừu tượng mà quan hệ nhị phân Q hàm từ I đến S = {0, 1}, tương ứng với “no”, tương ứng với “yes” ª Ví dụ: toán định PATH Cho đồ thị G = (V, E), hai đỉnh u, v V, số nguyên dương k Đặt i = G, u, v, k, thực thể toán định PATH, – PATH(i) = (yes) tồn đường u v có chiều dài k – PATH(i) = (no) trường hợp khác Ch 12: NP-Completeness Bài toán tối ưu ª ª Một toán tối ưu toán ta cần xác định trị lớn hay trị nhỏ đại lượng Đối tượng lý thuyết NP-đầy đủ toán định, nên ta phải ép (recast) toán tối ưu thành toán định Ví dụ: ta ép toán tối ưu đường ngắn thành toán định PATH cách làm chận k thành tham số toán Ch 12: NP-Completeness Mã hoá (encodings) ª ª Để chương trình máy tính giải toán trừu tượng thực thể toán cần biểu diễn cho chương trình máy tính đọc “hiểu” chúng Ta mã hóa (encode) thực thể toán trừu tượng để chương trình máy tính đọc chúng – Ví dụ: Mã hoá tập N 01234thành tập chuỗi Trong mã hoá này, e17 = 10001 – Mã hóa đối tượng đa hợp (chuỗi, tập, đồ thị, ) cách kết hợp mã hóa thành phần Ch 12: NP-Completeness Mã hoá (tiếp) ª ª ª Một toán cụ thể toán mà tập thực thể tập chuỗi nhị phân Một giải thuật giải toán cụ thể thời gian OTn nếu, đưa thực thể i có độ dài n i , cho lời giải thời gian OTn Một toán cụ thể giải thời gian đa thức tồn giải thuật giải thời gian Onk với số k Ch 12: NP-Completeness Lớp P ª Định nghóa: Lớp P (complexity class P) tập toán định cụ thể giải thời gian đa thức Ch 12: NP-Completeness Bài toán trừu tượng toán cụ thể ª Ta dùng mã hoá để ánh xạ toán trừu tượng đến toán cụ thể – Cho toán định trừu tượng Q, Q ánh xạ tập thực thể I đến {0, 1}, ta dùng mã hóa e : I {0, 1} để sinh toán định cụ thể tương ứng, ký hiệu e(Q) Mã hóa e phải thõa điều kiện ° Nếu Q(i) {0, 1} lời giải cho i I, lời giải cho thực Qthể e(i) {0, 1} toán định Q(i) I cụ thể {0, e(Q) 1} e(Q) {0, 1}* Ch 12: NP-Completeness 10 Bài toán thỏa mãn mạch ª Cổng logic x x y z Cổng NOT ª z Cổng AND x y z Cổng OR Mạch tổ hợp bool x1 x2 x5 x8 x6 x9 x3 x10 x7 x4 Ch 12: NP-Completeness 34 Baøi toán thỏa mãn mạch (tiếp) ª Tính chất thỏa mãn mạch – Một cách gán trị bool (truth assignment) cho mạch tổ hợp bool tập trị input bool – Một mạch tổ hợp bool với output thoả mãn (satisfiable) có cách gán thỏa mãn (satisfying assignment), tức cách gán trị bool x x5 mạch 1 khiến cho output x2 x3 x6 x7 x4 x8 0 x9 1 1 Ch 12: NP-Completeness x10 35 Baøi toaựn thoỷa maừn maùch (tieỏp) ê ã ê ã ê • ª • Bài toán thỏa mãn mạch “Cho mạch tổ hợp bool tạo cổng AND, OR, NOT, thỏa mãn không?” CIRCUIT-SAT C : C mạch tổ hợp bool thỏa mãn được Lemma 36.5 Bài toán thỏa mãn mạch thuộc lớp NP Lemma 36.6 Bài toán thỏa mãn mạch NP-khó Theorem 36.7 Bài toán thỏa mãn mạch NP-đầy đủ Ch 12: NP-Completeness 36 Caựch chửựng minh NP-ủay ủuỷ ê ã Lemma 36.8 Nếu L ngôn ngữ cho L’ P L với L’ NPC, L NP-khó Thêm vào đó, L NP, L NPC Ch 12: NP-Completeness 37 Bài toán thỏa mãn biểu thửực bool ê ê ã ê ã Bieồu thửực bool = ((x1 x2) ((x1 x3) x4 )) x2 – Một cách gán trị bool (truth assignment) cho biểu thức bool tập trị cho biến – Một cách gán thoả mãn (satisfying assignment) cách gán trị bool khiến cho biểu thức bool có trị – Một biểu thức bool có cách gán thỏa mãn gọi biểu thức thỏa mãn Bài toán thỏa mãn biểu thức bool SAT = { : biểu thức bool thỏa mãn được} Theorem 36.9 Bài toán thỏa mãn biểu thức bool NP-đầy đủ Ch 12: NP-Completeness 38 Bài toán thỏa mãn biểu thức bool dạng 3CNF ê ê ã ê ã Bieồu thửực bool daïng 3-CNF (3-conjunctive normal form) = (x1 x1 x2) (x3 x2 x4) (x1 x3 x4 ) Bài toán thỏa mãn biểu thức bool dạng 3-CNF 3-CNF-SAT = { : biểu thức bool dạng 3-CNF thỏa mãn được} Theorem 36.9 Bài toán thỏa mãn biểu thức bool dạng 3-CNF NP-đầy đủ Ch 12: NP-Completeness 39 Bài toán clique ª Các định nghóa – Một clique đồ thị vô hướng G V, E đồ thị đầy đủ G – Kích thước clique số đỉnh mà chứa Ch 12: NP-Completeness 40 Bài toán clique (tiếp) ª ª • ª • Bài toán clique toán tối ưu tìm clique có kích thước lớn đồ thị Bài toán định tương ứng với toán clique CLIQUE { G, k : G đồ thị có clique có kích thước k} Theorem 36.11 Bài toán clique NP-đầy đủ Ch 12: NP-Completeness 41 Bài toán che phủ đỉnh ª Các khái niệm – Một che phủ đỉnh (vertex cover) đồ thị vô hướng G V, Elà tập V’ V cho u, v E u V’ v V’ (hoặc hai) – Kích thước che phủ đỉnh số đỉnh Ch 12: NP-Completeness 42 Bài toán che phủ đỉnh (tiếp) ª ª • ª • Bài toán che phủ đỉnh tìm che phủ đỉnh có kích thước nhỏ đồ thị cho trước Bài toán định tương ứng dạng ngôn ngữ là: VERTEX-COVER { G, k : đồ thị G có che phủ đỉnh có kích thước k} Theorem 36.12 Bài toán che phủ đỉnh NP-đầy đủ Ch 12: NP-Completeness 43 Bài toaựn toồng cuỷa taọp ê ê ê ã ê • Cho tập hữu hạn S N trị đích t N Bài toán tổng tập hỏi có tồn tập S’ S cho tổng phần tử t hay không – Ví dụ: với S = {1, 3, 5, 7, 11, 13}, vaø t = 12 tập S’ = {1, 11} lời giải Bài toán tổng tập dạng ngôn ngữ: SUBSET-SUM S, t : tồn tập S’ S cho • t s S’ s Theorem 36.13 Bài toán tổng tập NP-đầy đủ Ch 12: NP-Completeness 44 Baứi toaựn chu trỡnh Hamilton ê ã ê ã Bài toán chu trình Hamilton HAM-CYCLE G : G đồ thị hamilton Theorem 36.14 Bài toán chu trình hamilton NP-đầy đủ Ch 12: NP-Completeness 45 Bài toán người bán hàng rong ª Các khái niệm – Cho đồ thị đầy đủ G Mỗi cạnh (i, j) nối hai đỉnh i j G có chi phí số nguyên c(i, j) – Ta định nghóa tua (tour) chu trình hamilton G, chi phí tua tổng chi phí cạnh tua Ch 12: NP-Completeness 46 Bài toán người bán hàng rong (tieỏp) ê ê ã ê Baứi toaựn ngửụứi baựn haứng rong (TSP, travellingsalesperson problem) tìm tua có chi phí nhỏ Ngôn ngữ hình thức cho toán định tương ứng TSP { G, c, k : G V, E đồ thị đầy đủ, • c hàm số V V Z, • k Z, • G có tua với chi phí k} Theorem 36.15 Bài toán người bán hàng rong NP-đầy đủ Ch 12: NP-Completeness 47 P NP? Bài toán mở quan trọng khoa học máy tính lý thuyết Ch 12: NP-Completeness 48 ... thỏa.) “Mọi toán NP không khó toán L” Ta định nghóa NPC lớp ngôn ngữ NP- đầy đủ “NPC lớp toán khó NP? ?? ª ª Ch 12: NP- Completeness 32 NP- đầy đủ (tiếp) ª • Định lý 36.4 – Nếu có toán NP- đầy đủ giải thời... Neáu L2 P L1 P Ch 12: NP- Completeness 31 NP- đầy đủ • Một ngôn ngữ L 0, 1 NP- đầy đủ (NPcomplete) L NP • L’ P L với L’ NP ª Một ngôn ngữ L 0, 1 NP- khó (NP- hard) tính chất thỏa... toán thỏa mãn mạch thuộc lớp NP Lemma 36.6 Bài toán thỏa mãn mạch NP- khó Theorem 36.7 Bài toán thỏa mãn mạch NP- đầy đủ Ch 12: NP- Completeness 36 Cách chứng minh NP- ủay ủuỷ ê ã Lemma 36.8 Neỏu