Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SATTìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT v v Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SATTìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT Tìm hiểu những bài toán SAT
TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN PHÂN TÍCH VÀ THIẾT KẾ GIẢI THUẬT BÀI TẬP LỚN Người hướng dẫn: TS NGUYỄN MINH TUẤN Người thực hiện: THÁI TRUNG TÍN - 51503315 Lớp : 15050301 Khóa : 19 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2017 TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN PHÂN TÍCH VÀ THIẾT KẾ GIẢI THUẬT BÀI TẬP LỚN Người hướng dẫn: TS NGUYỄN MINH TUẤN Người thực hiện: THÁI TRUNG TÍN - 51503315 Lớp : 15050301 Khóa : 19 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2017 LỜI CẢM ƠN Trong suốt trình làm tập lớn, em gặp nhiều khó khăn từ cách tiếp cận trình bày ý tưởng nhờ có TS Nguyễn Minh Tuấn - Khoa Cơng nghệ thông tin Trường đại học Tôn Đức Thắng - tận tình hướng dẫn giúp em nhìn nhận vấn đề cụ thể, tiếp cận đề tài dễ dàng Em xin chân thành cảm ơn thầy lời bảo vô quý báu thầy giúp em có thu hoạch q giá để hồn thành q trình làm tập lớn Bài thu hoạch thực khoảng thời gian gần 10 tuần Do vậy, khơng tránh khỏi thiếu sót điều chắn, em mong nhận ý kiến đóng góp q báu q Thầy Cơ bạn học lớp để kiến thức em lĩnh vực hoàn thiện Một lần em xin chân thành cảm ơn TP.Hồ Chí Minh,ngày 23 tháng 11 năm 2017 Tác giả Thái Trung Tín ĐỒ ÁN ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Tôi xin cam đoan sản phẩm đồ án riêng hướng dẫn TS Nguyễn Minh Tuấn Các nội dung nghiên cứu, kết đề tài trung thực chưa cơng bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngoài ra, đồ án sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hồn tồn chịu trách nhiệm nội dung đồ án Trường đại học Tôn Đức Thắng không liên quan đến vi phạm tác quyền, quyền gây q trình thực (nếu có) TP.Hồ Chí Minh,ngày 23 tháng 11 năm 2017 Tác giả Thái Trung Tín PHẦN XÁC NHẬN, ĐÁNH GIÁ CỦA GIẢNG VIÊN Phần xác nhận giáo viên hướng dẫn TP.Hồ Chí Minh,ngày 23 tháng 11 năm 2017 Thái Trung Tín Phần đánh giá giáo viên chấm TP.Hồ Chí Minh,ngày 23 tháng 11 năm 2017 Thái Trung Tín TĨM TẮT Tìm hiểu chứng minh số vấn đề liên quan toán SAT, 3SAT, k-clique, Independent Set, Vertex Cover số khái niệm NP NPC Mục lục Câu 1: Chứng minh 3-CNF-SAT thuộc lớp NP-Đầy đủ 1.1 3-CNF-SAT ? 1.2 3SAT thuộc lớp NP-Đầy đủ 1.3 3SAT thuộc lớp NP 1.4 3SAT thuộc lớp NP khó 1.5 Kết luận Câu 2.1 Thu giảm Independent Set, k-Clique, Vertex Cover cho 2.2 Independent Set ≤P Vertex Cover Vertex Cover ≤P Independent Set 2.3 Independent Set ≤P k-Clique k-Clique ≤P Independent Set 2.4 Clique ≤P Vertex Cover Vertex Cover ≤P Clique 2.5 Chứng minh Independent Set, k-Clique, Vertex Cover NP-Đầy đủ 2.6 Independent Set NP-Đầy đủ 2.7 Chứng minh k-Clique NP-Đầy đủ 2.8 Chứng minh Vertex Cover NP-Đầy đủ 9 9 10 11 11 11 11 12 12 13 13 14 17 Câu 3: Chứng minh k-coloring thuộc lớp NP đầy đủ 19 Câu 24 4.1 Câu 4a: Mã giả giải thuật tô màu tham lam 24 4.2 Câu 4b: Đề xuất giải thuật ngẫu nhiên cho tô màu Tài liệu tham khảo 24 26 Câu 1: Chứng minh 3-CNF-SAT thuộc lớp NP-Đầy đủ 1.1 3-CNF-SAT ? Bài tốn 3-CNF-SAT gọi tốn tính khả thỏa mãn mạch dạng chuẩn CNF toán 3-SAT Mỗi mệnh đề (clause) cơng thức có đơn tử (literal) Ta gọi 3-CNF-SAT 3SAT hay 3-satisfiability Ví dụ: (x1 ∪ x2 ∪ ¬x6 ) ∩ (x3 ∪ ¬x5 ∪ ¬x7 ) ∩ (¬x1 ∪ x4 ∪ x6 ) ∩ (x2 ∪ x4 ∪ x3 ) 1.2 3SAT thuộc lớp NP-Đầy đủ Để chứng minh 3SAT thuộc lớp NP-Đầy đủ, ta cần chứng minh điều sau: 3SAT thuộc lớp NP 3SAT thuộc lớp NP khó 1.3 3SAT thuộc lớp NP NP (nondeterministic polynomial time) tập hợp toán định mà trường hợp câu trả lời ”có”, tồn chứng minh có độ dài đa thức kiểm chứng thời gian đa thức máy Turing tất định Đối với tốn 3SAT sau, ta tìm lời giải để φ = khoảng thời gian đa thức: φ = (x1 ∪ x2 ∪ ¬x6 ) ∩ (x3 ∪ ¬x5 ∪ ¬x7 ) ∩ (¬x1 ∪ x4 ∪ x6 ) ∩ (x2 ∪ x4 ∪ x3 ) Với giá trị từ x1 đến x7 , tồn tập hợp giá trị true false cho φ = ta xác định thời gian đa thức thuật toán Khi x1 , x2 , x5 , x4 = true , x3 , x6 , x7 = false Ta có φ = 1, từ ta tìm thời gian thực thi φ theo tham số độ dài tập hợp x Vậy 3SAT thuộc lớp NP (∗) 1.4 3SAT thuộc lớp NP khó Để chứng minh 3SAT thuộc lớp NP khó, ta cần thu giảm tốn A tốn 3SAT Ở đây, thu giảm từ CNF-SAT 3SAT khoảng thời gian đa thức Với C biểu thức Boolean CNF Ta biểu diễn thay clause Ci C: • if Ci = (a), đây, Ci có hạng tử, hạng tử biến phủ định, sau ta thay Ci với Si = (a∪b∪c)∩(a∪¬b∪c)∩(a∪b∪¬c)∩(a∪¬b∪¬c), b c biến khơng sử dụng nơi • if Ci = (a ∪ b), đây, Ci có hai hạng tử, sau ta thay Ci với Si = (a ∪ b ∪ c) ∩ (a ∪ b ∪ ¬c), c biến khơng sử dụng nơi • if Ci = (a ∪ b ∪ c), đây, Ci có ba hạng tử, ta đặt Si = Ci • if Ci = (a ∪ a2 ∪ a3 ∪ ∪ ak ), đây, Ci có k> hạng tử, sau ta thay Ci với Si = (a1 ∪ a2 ∪ b1 ) ∩ (¬b1 ∪ a3 ∪ b2 ) ∩ (¬b2 ∪ a4 ∪ b3 ) (¬bk−3 ∪ ak−1 ∪ ak ), b1 , b2 , , bk biến khơng sử dụng nơi Để ý giá trị thừa nhận với biến thêm vào hồn tồn độc lập Khơng vấn đề 10 ⇒ S Independent Set G Do G chứa Independent Set kích thước k ⇔ G chứa Vertex Cover với kích thước |V | - k Vậy Independent Set ≤P Vertex Cover Vertex Cover ≤P Independent Set 2.3 Independent Set ≤P k-Clique k-Clique ≤P Independent Set Nếu có Independent Set với kích thước k đồ thị bù G , ngụ ý khơng có hai đỉnh share cạnh G , ngụ ý tất đỉnh share chung cạnh với phần lại G hình thành clique Đó có tồn clique với kích thước k G Nếu có clique với kích thước k đồ thị G, ngụ ý tất đỉnh share cạnh với phần lại G, ngụ ý khơng có hai đỉnh share chung cạnh G hình thành Independent Set Đó có tồn Independent Set với kích thước k G Từ suy Independent Set ≤P k-Clique kClique ≤P Independent Set 2.4 Clique ≤P Vertex Cover Vertex Cover ≤P Clique Kết nối trường hợp clique x = (G,k) với trường hợp vertex cover x = (¬G, |G.V | − k) ¬G phần bù G C clique G G.V - C vertex cover ¬G if C clique G với kích thước size k, ¬G khơng có cạnh C x C G.V - C vertex 12 cover of ¬G với kích thước size |G.V| - k if G khơng có clique kích thước k, với tập hợp đỉnh C với kích thước k nào, C khơng clique mà ngụ ý ¬G có cạnh C x C, G.V - C khơng vertex cover ¬G Từ suy Clique ≤P Vertex Cover Vertex Cover ≤P Clique 2.5 Chứng minh Independent Set, k-Clique, Vertex Cover NP-Đầy đủ 2.6 Independent Set NP-Đầy đủ Để chứng minh Independent Set NP-Đầy đủ cần chứng điều sau: Independent Set (IS) NP IS NP Khó • NP: Để chứng minh IS ∈ NP, phải chứng minh có thuật tốn thời gian đa thức mà lấy trường hợp vấn đề chứng tham số, xác minh chứng trường hợp có vấn đề đầu vào cụ thể Như vậy, trường hợp đồ thị không trọng số G, tập đỉnh xác thực Thuật toán thực bước: Kiểm tra tất đỉnh tập xác thực đỉnh đồ thị Kiểm tra khơng có cạnh hai đỉnh tập xác thực Thuật toán chạy O(V + E), rõ ràng khoảng thời gian đa thức Vì IS ∈ NP (*) • NP-Khó: Để chứng minh IS ∈ NP-Khó, ta thu giảm 3SAT IS 13 ⇒ Nếu công thức thỏa mãn, có đơn tử true clause S tập hợp đơn tử true từ clause.|S| =k hai nút S kết nối cạnh ⇒ Nếu đồ thị có tập độc lập S có kích thước k, biết có nút từ "tam giác mệnh đề" Đặt chúng true Điều khơng có hai nút phủ nhận Khi đồ thị có independent set với kích thước k công thức thỏa mãn Ta thu giảm 3SAT IS (**) • Từ (*)(**) Vậy Independent Set thuộc lớp NP-Đầy đủ 2.7 Chứng minh k-Clique NP-Đầy đủ Hướng chứng minh: k-Clique thuộc lớp NP Cần chứng minh 3SAT ≤P k-Clique k-Clique thuộc lớp NP-Đầy đủ k-Clique thuộc NP Nghĩa tồn đồ thị đầy đủ (“giấy chứng nhận”) giải thuật xác nhận bác bỏ giấy chứng nhận phải thực thời gian đa thức.Thật vậy, với đồ thị G = (V, E) cho trước “giấy chứng nhận“ tập đỉnh V’ Nếu V’ đồ thị đầy đủ V’ có tối đa |V | đỉnh (|V |(|V2 |−1)) cạnh Do đó, thuật tốn cần kiểm tra cặp đỉnh diễn tối đa O(|V |2 ) Thời gian đa thức Vậy k-Clique thuộc 14 NP 3SAT ≤P k-Clique Gọi công thức mệnh đề φ = C1 ∩ C2 ∩ ∩ Ck cơng thức dạng 3CNF-SAT có k mệnh đề (C) Mỗi mệnh đề Cr có đơn tử phân biệt dạng l1r ∪ l2r ∪ l3r Ta xây dựng đồ thị G cho công thức mệnh đề φ khả thỏa mãn G có đồ thị đầy đủ có k đỉnh Quá trình xây dựng đồ thị G (cần tập đỉnh V tập cạnh E) sau: - Với mệnh đề Cr = l1r ∪ l2r ∪ l3r công thức mệnh đề φ ta thêm vào V ba đỉnh tương ứng v1r ∪ v2r ∪ v3r Sau đó, ta thêm cạnh hai đỉnh vir ∪ vjs thỏa hai điều sau: • vir ∪ vjs thuộc hai ba khác nhau, tức r khác s, • Hai đỉnh tương ứng với đơn tử tên hai ba phải quán, nghĩa không nối cạnh lir khơng dạng phủ định ljs - Q trình xây dựng G diễn thời gian đa thức O(|V |∗|E|) Bởi vì, cơng thức mệnh đề φ có tối đa k mệnh đề C nên đồ thị G có số đỉnh tối đa V = 3k , có tối đa 3k(3k−1) cạnh Ví dụ: φ = (x1 ∪ ¬x2 ∪ ¬x3 ) ∩ (¬x1 ∪ x2 ∪ x3 ) ∩ (x1 ∪ x2 ∪ x3 ) đồ thị G 15 Hình 1: Ta cần chứng minh φ khả thỏa mãn G có đồ thị đầy đủ có k đỉnh • Nếu φ khả thỏa mãn G có đồ thị đầy đủ có k đỉnh Vì φ khả thỏa mãn nên tồn giá trị đơn tử làm cho φ = Nên mệnh đề Cr φ phải Suy Cr có đơn tử 1, ta gọi đơn tử lir Suy Do cách xây dựng đỉnh G, nên lir tương ứng với vir G Với Cr φ chọn đơn tử Suy Tập V’ có k đỉnh tương ứng Ta thấy hai đỉnh vir vjs (r khác s) V’ tương ứng với đơn tử lir ljs (đã gán trong, hiển nhiên hai đơn tử không trái dấu 16 nhau) Do đó, cạnh (vir , vjs ) ∈ E Vậy G = (V ) đồ thị đầy đủ • Nếu G có đồ thị đầy đủ có k đỉnh thi φ khả thỏa mãn Giả sử G có đồ thị đầy đủ G = (V , E ) có k đỉnh.Trong ba đỉnh G’ không tồn cạnh nào.Do đó, G = (V , E ) chứa xác đỉnh ba Đơn tử lir ương ứng với vjs ∈ V gán (ta yên tâm việc gán không xảy tình đơn tử lir phủ định đơn tử ¬lir G khơng chứa cạnh nối hai đơn tử trái dấu nhau) Lúc này, Cr φ Vậy φ khả thỏa mãn Do đó, k-clique thuộc lớp NP-Khó Kết luận: k-clique thuộc NP-Đầy đủ 2.8 Chứng minh Vertex Cover NP-Đầy đủ Hướng chứng minh: Chúng ta biết 3SAT thuộc lớp NP-Đầy đủ Cần chứng minh 3SAT ≤P Vertex Cover Vertex Cover thuộc lớp NP-Đầy đủ Chúng ta cần chứng minh thu giảm 3SAT Vertex Cover đúng, nghĩa Vertex Cover kích thước k = m + 2l tồn φ khả thỏa mãn Giả sử có biểu thức khả thỏa mãn φ Với biến, thêm nút tương ứng cho đơn tử true Vertex Cover Sau đó, với clause, chọn đơn tử true clause thêm đơn tử lại vào Vertex Cover Chúng ta sử dụng hai 17 đỉnh clause tiện ích đỉnh biến tiện ích để bao phủ Mỗi cạnh biến tiện ích bao phủ nút chọn từ tiện ích Tất ba cạnh clause bao phủ nút chọn clause gadget Một đơn tử true clause gadget bị bỏ ngồi, đơn tử true, kết nối cạnh đến nút tương ứng với đơn tử true biến clause Vì nút bao phủ tất cạnh đồ thị có Vertex Cover có giá trị Chúng ta tiếp tục chứng minh hướng khác ngụ ý Nếu có Vertex Cover với kích thước k đồ thị G, phải chứa nút biến gadget nút clause gadget để bao phỉ cạnh gadget Nó u cầu xác k = m+2l nút Giả sử lấy đơn tử tương ứng cho nút bao phủ biến gadget true Thì làm khả thỏa mãn φ với clause gadget, cạnh kết nối clause gadget đến biến gadget bao phủ, có nút clause gadget nằm bao phủ Vì clause-gadget cạnh phải bao phủ nút biến gadget, biểu thức đơn tử biến gadget bao phủ true φ khả thỏa mãn clause Nó với tất clause gadget clause, biểu thức khả thỏa mãn φ Dẫn đến k-covering đồ thị tương ứng với khả thỏa mãn biểu thức với φ , biểu thức khả thỏa mãn φ tương ứng đến k-covering đồ thị thu giảm Từ suy 3SAT ≤P Vertex Cover (**) Mà 3SAT thuộc lớp NP-Đầy đủ (*) Từ (*)(**) kết luận Vertex Cover thuộc lớp NP-Đầy 18 đủ Câu 3: Chứng minh k-coloring thuộc lớp NP đầy đủ Cho đồ thị G k màu, chứng câu trả lời có đơn giản k-coloring: Một xác minh thời gian đa thức mà hầu hết k màu sắc sử dụng, khơng có cặp nút nối cạnh nhận màu Giống vấn đề khác phần này, 3-Coloring vấn đề khó để liên quan đến mức độ không sâu sắc với vấn đề NP-complete khác mà thấy Vì lần nữa, đạt tất cách trở lại 3-SAT Cho ví dụ 3-SAT, với biến x1, , xn khoản C1, , Ck, giải cách sử dụng hộp màu đen cho 3-Coloring Sự bắt đầu việc giảm trực quan Có lẽ sức mạnh màu cho mã hóa biểu thức Boolean nằm thực tế liên kết nút biểu đồ với thuật ngữ cụ thể, cách nối chúng với cạnh đảm bảo chúng có màu sắc khác nhau; điều sử dụng để thiết lập thật sai khác Vì với điều tâm trí, định nghĩa nút vi vi tương ứng cho biến xi phủ định xi Chúng ta xác định ba "nút đặc biệt" T, F, B, gọi True, False, Base Để bắt đầu, nối cặp nút vi, vi với cạnh, kết hợp hai nút với Base (Điều tạo thành tam giác vi, vi, Base, cho i.) Chúng tham gia True, False, Base vào 19 tam giác Biểu đồ đơn giản G định nghĩa mô tả hình 8.11, có số tài sản hữu ích Hình 2: Hình 8.11 • Trong màu G, nút vi vi phải có màu khác nhau, hai phải khác với Base • Trong màu G, nút True, False Base phải có tất ba màu sắc số hốn vị Như tham khảo ba màu sắc Màu True, màu False, màu Base, dựa màu ba nút màu sắc Đặc biệt, điều có nghĩa với i, vi vi có màu True, màu màu False Cho phần lại cơng trình, xem xét biến xi thiết lập để trường hợp nêu 3-SAT nút vi được giao màu True Vì vậy, tóm tắt, có đồ thị 20 G, 3-coloring ngầm xác định phân bố chân lý cho biến ví dụ 3-SAT Chúng tơi cần phải phát triển G để đáp ứng tập mở rộng để màu đồ thị đầy đủ Giống phép thu giảm 3-SAT khác, xem xét mệnh đề x1 v x2 v x3 Trong ngôn ngữ màu G, nói, Ít nút v1, v2, v3 nên có màu True Vì vậy, cần subgraph nhỏ mà cắm vào G, cho màu màu kéo dài vào subgraph phải có tài sản việc gán màu True cho v1, v2 v3 Phải số thử nghiệm để tìm subgraph, cơng trình mơ tả hình 8.12 Hình 3: Hình 8.12 Chuỗi phụ nút "gắn kết" với phần lại G năm nút có: True, False, điều tương ứng 21 với ba điều khoản điều khoản mà cố gắng để đại diện (trong trường hợp này, v1, v2, v3) Bây giả sử số 3- màu G ba v1, v2 v3 gán màu False Sau đó, hai nút bóng tối đồ thị phụ phải nhận màu Base, ba nút tơ bóng chúng phải nhận được, tương ứng, False, Base, True màu sắc, khơng có màu sắc gán cho phần tơ bóng nút Nói cách khác, 3-coloring, khơng có v1, v2 v3 gán màu True mở rộng đến 3-coloring subgraph Cuối cùng, ngược lại, số kiểm tra tay trường hợp cho thấy như v1, v2 v3 gán màu True, đồ thị đầy đủ 3-colored Từ đó, hồn thành việc xây dựng: Chúng ta bắt đầu với định nghĩa trên, cho mệnh đề ví dụ 3-SAT, đính kèm s subgraph thể hình 8.12 Hãy gọi biểu đồ kết G’ Bây chúng tayêu cầu bồi thường trường hợp 3SAT cho satisfiable G’ có 3-coloring Thứ nhất, giả sử có phân cơng thỏa mãn cho trường hợp 3-SAT Chúng ta xác định màu G’ màu đầu tiên, True, False tùy ý với ba màu sắc, sau đó, i, gán vi the True màu xi = màu False xi = Sau gán cho vi có sẵn màu Cuối cùng, nói trên, mở rộng 3-coloring thành subgraph sáu nút, kết 3-coloring tất G’ Ngược lại, giả sử G’ có 3-coloring Trong màu này, nút vi gán màu True màu False; đặt biến xi tương ứng Bây tuyên bố 22 khoản trường hợp 3-SAT, điều kiện mệnh đề có giá trị thật Nếu khơng, tất ba số nút tương ứng có màu False màu G’ và, thấy trên, khơng có 3-coloring khoảng tương ứng subgraph phù hợp với điều - mâu thuẫn Khi k> 3, dễ dàng để giảm vấn đề 3-coloring cho kColoring Về bản, tất làm lấy ví dụ 3-Coloring, đại diện biểu đồ G, thêm k - nút mới, nối nút với để nút G Biểu đồ kết k-colorable gốc đồ thị G có 3-coloring Do k-Coloring cho k> NP-complete 23 4.1 Câu Câu 4a: Mã giả giải thuật tô màu tham lam function tomauthamlam(Array listVertex) Sắp xếp listVertex theo bậc giảm dần while(listVertex.size khác 0) tô màu đỉnh đầu listVertex, gọi v color = 1; while(true) if(các đỉnh kề đỉnh tô khác với color) tô đỉnh v màu color xóa đỉnh v khỏi listVertex break else color = color + end end 4.2 Câu 4b: Đề xuất giải thuật ngẫu nhiên cho tô màu Thuật tốn Monte-Carlo tìm giá trị "đúng" khoảng thời gian r = ∞ để tìm kết Nên tìm kết xấp xỉ gần với kết t r Giả sử mincoloring = tất ca thi tuần Trong trường hợp này, quy tốn tìm số màu nhỏ thành toán chọn lựa Nếu giải thuật Monte-Carlo cho đáp án sai , cần phải thay đổi giá trị ti = t + ∆ giảm mincoloring = mincoloring − để giải thuật không sai Lặp lại khoảng thời gian t lần (thời gian chạy độc lập tuyến tính) đến giải thuật cho kết "true" Nếu kết 24 "true" phải đảm bảo thoả điều kiện sau: ≤ mincoloring ≤ số lượng ca thi diễn Thiết kế giải thuật: Lặp lại ek lần đảm bảo tất đỉnh tô màu, c: V → {1, 2, 3, , k} Định nghĩa: Gọi đường tô màu đỉnh có tơ màu khác đỉnh kề với Một ví dụ đơn giản: • Chọn ngẫu nhiên đỉnh c tô màu G, c: → V → [k] • Gọi p đường dài G • Nếu |p| ≥ k − 1, xuất kết Thời gian chạy: ek có bước lặp O(2k ∗ E ) Tổng cộng O((2e)k ∗ E ) Kết xác suất đường p = k-1 số màu tối thiểu cần tô 1/ek nhiều − 1/ek Vậy nên trình lặp lại ek lần cho kết sai số tối đa 1/e 25 Tài liệu tham khảo [1] J Kleinberg, E Tardos, [2005], Algorithm Design, AddisonWesley, USA [2] T H Cormen et al., [2009], Introduction to Algorithms, Prentice Hall, Cambridge [3] Harel, [2004], Algorithms: The Spirit of Computing, Pearson Education, USA [4] A Levitin, [2011], Introduction to The Design and Analysis of Algorithms, Pearson 26