Thuật toán lập trình phần 12

48 339 0
Thuật toán lập trình phần 12

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

là tài liệu lập trình dành cho các lập trình viên muốn nâng cao tay nghề.. là tài liệu lập trình dành cho các lập trình viên muốn nâng cao tay nghề.. là tài liệu lập trình dành cho các lập trình viên muốn nâng cao tay nghề.. là tài liệu lập trình dành cho các lập trình viên muốn nâng cao tay nghề.. là tài liệu lập trình dành cho các lập trình viên muốn nâng cao tay nghề.. là tài liệu lập trình dành cho các lập trình viên muốn nâng cao tay nghề.. là tài liệu lập trình dành cho các lập trình viên muốn nâng cao tay nghề..

NP-Đầy Đủ 13.11.2004 Ch 12: NP-Complete 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ể 13.11.2004 Ch 12: NP-Complete 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 13.11.2004 Ch 12: NP-Complete 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: Q⊆I×S 13.11.2004 Ch 12: NP-Complete 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 13.11.2004 Ch 12: NP-Complete 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 13.11.2004 Ch 12: NP-Complete 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 = {0, 1, 2, 3, 4, } thành tập chuỗi {0, 1, 10, 11, 100, } Trong mã hoá này, e(17) = 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 13.11.2004 Ch 12: NP-Complete 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 O(T(n)) nếu, đưa thực thể i có độ dài n = | i | , cho lời giải thời gian O(T(n)) 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 O(nk) với số k 13.11.2004 Ch 12: NP-Complete 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 13.11.2004 Ch 12: NP-Complete 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 thể e(i) ∈ {0, 1}∗ toán đònh cụ thể e(Q) Q(i) Q I {0, 1} e(Q) {0, 1}* 13.11.2004 Ch 12: NP-Complete 10 Bài toán thỏa mãn mạch ª Cổng logic x x y z Cổng NOT ª z x y Cổng AND z Cổng OR Mạch tổ hợp bool x1 x2 x5 x8 x6 x9 x3 13.11.2004 x10 x7 x4 Ch 12: NP-Complete 34 Bà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 khiến cho output mạch x1 x2 x3 x5 x6 x7 13.11.2004 x4 x8 0 x9 1 1 Ch 12: NP-Complete x10 35 Bài toán thỏa mãn mạch (tiế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 đủ 13.11.2004 Ch 12: NP-Complete 36 Cách chứng minh NP-đầy đủ ª • 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 13.11.2004 Ch 12: NP-Complete 37 Bài toán thỏa mãn biểu thức bool ª ∀ ª • ª • Biể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 đủ 13.11.2004 Ch 12: NP-Complete 38 Bài toán thỏa mãn biểu thức bool dạng 3-CNF ª ∀ ª • ª • Biểu thức bool dạ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 đủ 13.11.2004 Ch 12: NP-Complete 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 13.11.2004 Ch 12: NP-Complete 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 đủ 13.11.2004 Ch 12: NP-Complete 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, E) tập V’ ⊆ V cho (u, v) ∈ E u ∈ V’ v ∈ V’ (hoặc hai) – Kích thước che phủ đỉnh số đỉnh 13.11.2004 Ch 12: NP-Complete 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 đủ 13.11.2004 Ch 12: NP-Complete 43 Bài toán tổng tậ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}, 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 đủ 13.11.2004 Ch 12: NP-Complete 44 Bài toá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 đủ 13.11.2004 Ch 12: NP-Complete 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 13.11.2004 Ch 12: NP-Complete 46 Bài toán người bán hàng rong (tiếp) ª ª • ª Bài toán người bán hàng rong (TSP, travelling-salesperson 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 đủ 13.11.2004 Ch 12: NP-Complete 47 P = NP? Bài toán mở quan trọng khoa học máy tính lý thuyết 13.11.2004 Ch 12: NP-Complete 48 ... 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 13.11.2004 Ch 12: NP-Complete... so sánh “độ khó” toán? Ví dụ – Bài toán Q: Giải phương trình bậc ax + b = – Bài toán Q’: Giải phương trình bậc hai px2 + qx + r = Giải phương trình bậc ax + b = cách giải phương trình bậc hai:... 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ể 13.11.2004 Ch 12: NP-Complete Hình thức hóa khái niệm toán ª Ví dụ: toán

Ngày đăng: 25/05/2017, 18:33

Từ khóa liên quan

Mục lục

  • NP-Đầy Đủ

  • Vài khái niệm cơ bản

  • Hình thức hóa khái niệm bài toán

  • Bài toán trừu tượng

  • Bài toán quyết đònh

  • Bài toán tối ưu

  • Mã hoá (encodings)

  • Mã hoá (tiếp)

  • Lớp P

  • Bài toán trừu tượng và bài toán cụ thể

  • Các mã hoá

  • Liên quan giữa các mã hóa

  • Mã hóa chuẩn (standard encoding)

  • Mã hóa chuẩn (tiếp)

  • Một khung ngôn ngữ hình thức

  • Bài toán quyết đònh và ngôn ngữ tương ứng

  • Bài toán quyết đònh và ngôn ngữ tương ứng (tiếp)

  • Ngôn ngữ và giải thuật

  • Chấp nhận và quyết đònh ngôn ngử trong thời gian đa thức

  • Slide 20

  • Chứng thực trong thời gian đa thức

  • Chứng thực trong thời gian đa thức (tiếp)

  • Kiểm tra trong thời gian đa thức

  • Giải thuật chứng thực

  • Lớp NP

  • Slide 26

  • Tính có thể rút gọn được (reducibility)

  • Tính có thể rút gọn được (tiếp)

  • Slide 29

  • Slide 30

  • Rút gọn trong thời gian đa thức

  • NP-đầy đủ

  • NP-đầy đủ (tiếp)

  • Bài toán thỏa mãn mạch

  • Bài toán thỏa mãn mạch (tiếp)

  • Slide 36

  • Cách chứng minh NP-đầy đủ

  • Bài toán thỏa mãn biểu thức bool

  • Bài toán thỏa mãn biểu thức bool dạng 3-CNF

  • Bài toán clique

  • Bài toán clique (tiếp)

  • Bài toán che phủ đỉnh

  • Bài toán che phủ đỉnh (tiếp)

  • Bài toán tổng của tập con

  • Bài toán chu trình Hamilton

  • Bài toán người bán hàng rong

  • Bài toán người bán hàng rong (tiếp)

  • P  NP?

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan