Tiểu luận môn Thuật Toán và Phương Pháp Giải Quyết Vấn Đề GIẢI PHÁP CHO BÀI TOÁN CLIQUE CỰC ĐẠI

38 1.6K 12
Tiểu luận môn Thuật Toán và Phương Pháp Giải Quyết Vấn Đề GIẢI PHÁP CHO BÀI TOÁN CLIQUE CỰC ĐẠI

Đ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

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  PHÒNG ĐÀO TẠO SAU ĐẠI HỌC TIỂU LUẬN THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ GIẢI PHÁP CHO BÀI TOÁN CLIQUE CỰC ĐẠI Giảng viên hướng dẫn: PGS. TS. ĐỖ VĂN NHƠN Học viên thực hiện: NGUYỄN VĂN KIỆT Khóa: CAO HỌC KHÓA 08 Mã số học viên: CH1301095 HVTH: NGUYỄN VĂN KIỆT Trang 1 TP. Hồ Chí Minh, tháng 10 năm 2014 Mục Lục HVTH: NGUYỄN VĂN KIỆT Trang 2 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS. TS. ĐỖ VĂN NHƠN LỜI MỞ ĐẦU Tôi xin chân thành gửi lời cám ơn chân thành đến PGS. TS. Đỗ Văn Nhơn, người thầy nghiên cứu khoa học nghiêm túc và nhiệt tâm. Thầy là người đã truyền đạt cho tôi những kiến thức quý báu trong môn học “Thuật toán và phương pháp giải quyết vấn đề”. Nhờ có những kiến thức của thầy mà tôi có thể có đủ kiến thức cùng những công cụ cần thiết để thực hiện được bài tiểu luận của môn học này. Sau một thời gian học tập môn Thuật toán và phương pháp giải quyết vấn đề và cùng với sự tìm hiểu từ các tài liệu từ các bài báo khoa học và các luận văn trên Internet. Tôi xin chọn vấn đề nghiên cứu về Giải pháp cho bài toán Clique cực đại để làm tiểu luận cho môn học này. Nội dung của tiểu luận này gồm: Chương 1: Giới thiệu tổng quan về lý thuyết đồ thị Chương 2: Bài toán Maximal Clique và giải pháp Chương 3: Giới thiệu một thuật toán Polynominal – time áp dụng cho bài toán tìm Maximal Clique Do thời gian nghiên cứu có hạn và bản thân tôi cũng có một số hạn chế nên không tránh khỏi những thiếu sót trong báo cáo này. Kính mong nhận được sự thông cảm và góp ý của PGS. TS. Đỗ Văn Nhơn để hướng nghiên cứu của tôi sắp tới sẽ hoàn thiện và đạt hiệu quả hơn. Tôi xin chân thành cảm ơn! HVTH: NGUYỄN VĂN KIỆT Trang 3 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS. TS. ĐỖ VĂN NHƠN DANH MỤC HÌNH TỔNG QUAN VỀ ĐỒ THỊ Lý thuyết đồ thị (Graph Theory) là một ngành khoa học được phát triển từ lâu nhưng lại có nhiều ứng dụng hiện đại. Những ý tưởng cơ bản của nó được đưa ra từ thế kỷ 18 bởi nhà toán học Thụy Sĩ tên là Leonhard Euler. Ông đã dùng đồ thị để giải quyết bài toán 7 chiếc cầu Konigsberg nổi tiếng. Đồ thị cũng được dùng để giải các bài toán trong nhiều lĩnh vực khác nhau. Thí dụ, dùng đồ thị để xác định xem có thực hiện một mạch điện trên một bảng điện phẳng được không. Chúng ta cũng có thể phân biệt hai hợp chất hóa học có cùng công thức phân tử nhưng có cấu trúc khác nhau nhờ đồ thị. Chúng ta cũng có thể xác định xem hai máy tính có được nối với nhau bằng một đường truyền thông hay không nếu dùng mô hình đồ thị mạng máy tính. Đồ thị với các trọng số được gán cho các cạnh của nó có thể dùng để giải các bài toán như bài toán tìm đường đi ngắn nhất giữa hai thành phố trong một mạng giao thông. Chúng ta cũng có thể dùng đồ thị để lập lịch thi và phân chia kênh cho các đài truyền hình. 1.1. Nhắc lại một số định nghĩa 1.1.1. Đồ thị Đồ thị (Graph) là một cấu trúc dữ liệu rời rạc bao gồm các đỉnh và các cạnh nối các cặp đỉnh này. Chúng ta phân biệt đồ thị thông qua kiểu và số lượng cạnh nối giữa các cặp đỉnh của đồ thị. HVTH: NGUYỄN VĂN KIỆT Trang 4 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS. TS. ĐỖ VĂN NHƠN Định nghĩa 1: Một đơn đồ thị G = (V, E) gồm một tập khác rỗng V mà các phần tử của nó gọi là các đỉnh và một tập E mà các phần tử của nó gọi là các cạnh, đó là các cặp không có thứ tự của các đỉnh phân biệt. Định nghĩa 2: Một đồ thị có hướng G = (V, E) gồm một tập khác rỗng V mà các phần tử của nó gọi là các đỉnh và một tập E mà các phần tử của nó gọi là các cung, đó là các cặp có thứ tự của các phần tử thuộc V. 1.1.2. Bậc của đỉnh Định nghĩa 3: Hai đỉnh u và v trong đồ thị (vô hướng) G=(V,E) được gọi là liền kề nếu (u,v) ∈ E. Nếu e = (u,v) thì e gọi là cạnh liên thuộc với các đỉnh u và v. Cạnh e cũng được gọi là cạnh nối các đỉnh u và v. Các đỉnh u và v gọi là các điểm đầu mút của cạnh e. Định nghĩa 4: Bậc của đỉnh v trong đồ thị G=(V,E), ký hiệu deg(v), là số các cạnh liên thuộc với nó, riêng khuyên tại một đỉnh được tính hai lần cho bậc của nó. Đỉnh v gọi là đỉnh treo nếu deg(v)=1 và gọi là đỉnh cô lập nếu deg(v)=0. 1.1.3. Biểu diễn đồ thị bằng ma trận Định nghĩa 5: Cho đồ thị G=(V,E) (vô hướng hoặc có hướng), với V={v 1 ,v 2 , , v n }. Ma trận liền kề của G ứng với thứ tự các đỉnh v 1 ,v 2 , , v n là ma trận ij 1 , ( ) ( , ), i j n A a M n Z ≤ ≤ = ∈ trong đó a ij là số cạnh hoặc cung nối từ v i tới v j . Như vậy, ma trận liền kề của một đồ thị vô hướng là ma trận đối xứng, nghĩa là a ji = a ji , trong khi ma trận liền kề của một đồ thị có hướng không có tính đối xứng. HVTH: NGUYỄN VĂN KIỆT Trang 5 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS. TS. ĐỖ VĂN NHƠN Định nghĩa 6: Cho đồ thị vô hướng G=(V,E), v 1 , v 2 , , vn là các đỉnh và e 1 , e 2 , , e m là các cạnh của G. Ma trận liên thuộc của G theo thứ tự trên của V và E là ma trận ij 1 1 ( ) ( , ), i n j m M m M n m Z ≤ ≤ ≤ ≤ = ∈ × m ij bằng 1 nếu cạnh e j nối với đỉnh v i và bằng 0 nếu cạnh e j không nối với đỉnh v i . 1.1.4. Tính liên thông Định nghĩa 7: Đường đi độ dài n từ đỉnh u đến đỉnh v, với n là một số nguyên dương, trong đồ thị G=(V,E) là một dãy các cạnh (hoặc cung) e 1 , e 2 , , e n của đồ thị sao cho e 1 = (x 0 , x 1 ), e 2 = (x 1 ,x 2 ), , e n = (x n-1 ,x n ), với x 0 =u và x n =v. Khi đồ thị không có cạnh (hoặc cung) bội, ta ký hiệu đường đi này bằng dãy các đỉnh x 0 , x 1 , , x n . Đường đi được gọi là chu trình nếu nó bắt đầu và kết thúc tại cùng một đỉnh. Đường đi hoặc chu trình gọi là đơn nếu nó không chứa cùng một cạnh (hoặc cung) quá một lần. Một đường đi hoặc chu trình không đi qua đỉnh nào quá một lần (trừ đỉnh đầu và đỉnh cuối của chu trình là trùng nhau) được gọi là đường đi hoặc chu trình sơ cấp. Rõ ràng rằng một đường đi sơ cấp là đường đi đơn. Định nghĩa 8: Một đồ thị (vô hướng) được gọi là liên thông nếu có đường đi giữa mọi cặp đỉnh phân biệt của đồ thị. Một đồ thị không liên thông là hợp của hai hay nhiều đồ thị con liên thông, mỗi cặp các đồ thị con này không có đỉnh chung. Các đồ thị con liên thông rời nhau như vậy được gọi là các thành phần liên thông của đồ thị đang xét. Như vậy, một đồ thị là liên thông khi và chỉ khi nó chỉ có một thành phần liên thông. HVTH: NGUYỄN VĂN KIỆT Trang 6 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS. TS. ĐỖ VĂN NHƠN 1.2. Giới thiệu về CLIQUE của đồ thị Trong lý thuyết đồ thị, một Clique trong đồ thị vô hướng G là tập các đỉnh V (V là tập con của tập các đỉnh của G) thỏa mãn điều kiện: với mỗi cặp đỉnh thuộc V luôn tồn tại một cạnh của G nối chúng. Do vậy một đồ thị con được tạo ra từ V sẽ là một đồ thị đầy đủ. Kích thước của một clique là số đỉnh của nó. Định nghĩa 9: Đồ thị đầy đủ n đỉnh, kí hiệu là K n , là là đồ thị đơn vô hướng mà giữa hai đỉnh bất kỳ nó luôn có cạnh nối. Đồ thị K n có tất cả n(n-1)/2 cạnh. Nó là đồ thị đơn có nhiều cạnh nhất, đồng thời là đồ thị chính quy bậc n-1. Ví dụ 2.1: Một đồ thị đầy đủ K 7 (7 đỉnh). Nếu đây là một đồ thị con thì tập đỉnh của nó sẽ tạo nên một clique kích thước 7. Hình 1.1: Đồ thị đầy đủ K 7 Bài toán xác định có tồn tại hay không một clique với một kích thước cho trước trong một đồ thị (Bài toán clique) là một bài toán NP-Complete. Đối với một clique là một tập độc lập, với nghĩa rằng mỗi clique tương ứng với một tập độc lập của đồ thị nghịch đảo. Thuật ngữ này xuất phát từ ý tưởng rằng giải sử mỗi đỉnh biểu diễn một người và mỗi cạnh biểu diễn mối quan hệ quen biết, thì hai người bất kì đều quen lẫn nhau, do vậy tạo nên một clique. HVTH: NGUYỄN VĂN KIỆT Trang 7 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS. TS. ĐỖ VĂN NHƠN Định nghĩa 10: Clique cực đại (maximal clique) của G là clique không thuộc bất cứ một clique nào khác rộng hơn nó, nói cách khác là không thể thêm bất cứ đỉnh nào vào một clique cực đại để tạo ra clique có số đỉnh lớn hơn. Định nghĩa 11: Clique lớn nhất (maximum clique) của G là clique có số đỉnh lớn nhất của G. Một clique lớn nhất đồng thời là một clique cực đại, nhưng điều ngược lại chưa chắc đã đúng. Định nghĩa 12: Chỉ số clique (clique number) của đồ thị G là số đỉnh của clique lớn nhất trong G. Chỉ số clique của đồ thị G được ký hiệu là ω(G). Định nghĩa 13: Phần bù của đồ thị G (kí hiệu là ) có tập đỉnh giống với tập đỉnh của G và tập cạnh không nằm trong tập cạnh của G. Định nghĩa 14: Đồ thị đầy đủ (Complete Graph): với mỗi cặp đỉnh được nối với nhau bằng một cạnh. HVTH: NGUYỄN VĂN KIỆT Trang 8 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS. TS. ĐỖ VĂN NHƠN Hình 1.2: Đồ thị G, phần bù đồ thị , đồ thị đầy đủ và Clique 1.3. Ứng dụng của bài toán Clique cực đại Thuật toán tìm kiếm Clique lớn nhất có nhiều ứng dụng trong khoa học máy tính như mô tả và giải quyết bài toán lập lịch, lý thuyết mã, thị giác máy tính và nhận dạng mẫu, … HVTH: NGUYỄN VĂN KIỆT Trang 9 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS. TS. ĐỖ VĂN NHƠN Chương 2 BÀI TOÁN MAXIMAL CLIQUE VÀ GIẢI PHÁP Hình 2.1: Các loại thức ăn và thực phẩm Hình 2.1 minh họa các loại thức ăn và thực phẩm. Vấn đề đặt ra là tìm ra một tập hợp thức ăn lớn nhất mà chúng có thể dùng chung được với nhau? Chúng ta có các lựa chọn sau: HVTH: NGUYỄN VĂN KIỆT Trang 10 [...]... Trang 16 Thuật toán và Phương pháp giải quyết vấn đề HVTH: NGUYỄN VĂN KIỆT GVHD: PGS TS ĐỖ VĂN NHƠN Trang 17 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS TS ĐỖ VĂN NHƠN Chương 3 GIỚI THIỆU MỘT THUẬT TOÁN POLYNOMIAL – TIME ÁP DỤNG CHO BÀI TOÁN TÌM CLIQUE CỰC ĐẠI 3.1 Mở rộng bài toán Maximal Clique phù hợp với thực tế Trong thực tế, các ứng dụng Clique của đồ thị thường với số đỉnh lớn và phức... thiệu trong chương 2, thuật toán Bron Kerbosch giải quyết bài toán tìm Clique cực đại với độ phức tạp O(3n/3) Thực tế, các bài toán ứng dụng Clique thường với số đỉnh rất lớn, khi đó bài toán sẽ có thời gian chạy rất lớn Để giải quyết vấn đề này, chúng ta phải xây dựng một giải thuật mới tìm clique cực đại với thời gian đa thức Một thuật toán là một phương pháp giải quyết vấn đề phù hợp để thực thi... ra: Clique cực đại của G; 2.2.3 Mô hình cho mục tiêu: Clique cực đại của G 2.3 - Xây dựng giải pháp cho bài toán Bài toán này có một số giải pháp như: Sử dụng các thuật toán Non polynomial-time algorithm Sử dụng các thuật toán polynomial-time algorithm Hai thuật toán hiệu quả với việc thực hiện các bài toán NP-Complete: quay lui và nhánh – cận Ở đây, tôi sẽ trình bày giải thuật Bron Kerbosch cho bài toán. .. một cạnh Để giải quyết bài toán trên, chúng ta quy về về bài toán tìm Clique cực đại Và bây giờ, chúng ta tìm hiểu qua bài toán tìm kiếm Clique cực đại trên đồ thị 2.1 Bài toán Maximal Clique 2.1.1 Phát biểu bài toán Cho đồ thị G = (V, E) và số k∈N* thỏa mãn |k|≤|V| Tồn tại hay không một tập con V’ của V sao cho |V’|≥k mà mọi cặp đỉnh trong V’ đều được nối bởi một cạnh trong E Ví dụ 2.1: Cho đồ thị... cứu này, bài toán xử lý trên các đơn đồ thị vô hướng Hình ảnh về đồ thị cỡ lớn như Hình 3.1 Hình 3.1: Đồ thị 12 đỉnh và Clique cực đại với k = 5 HVTH: NGUYỄN VĂN KIỆT Trang 18 Thuật toán và Phương pháp giải quyết vấn đề 3.2 GVHD: PGS TS ĐỖ VĂN NHƠN Giới thiệu hướng tiếp cận thuật giải Năm 1972, Karp [9], đã giới thiệu danh sách 21 bài toán NP-complete, một trong số đó là bài toán tìm clique cực đại trên... quả cao hơn Tuy nhiên, trong thực tế, vấn đề tìm Clique cực đại không chỉ dừng lại ở các đồ thị có kích thước nhỏ, … Vì vậy, cần tối ưu hơn trong việc giải quyết vấn đề này Qua sự tìm hiểu và sưu tầm các tài liệu, em xin giới thiệu một thuật toán có thể áp dụng hiệu quả hơn để giải quyết vấn đề tìm Clique cực đại phù hợp với thực tiễn Nội dung giải pháp và thuật toán kèm theo được trình bày chi tiết... Thuật toán tìm kiếm clique cực đại kích thước k = 3 - File input: 3_turan_graph.txt 8 HVTH: NGUYỄN VĂN KIỆT Trang 27 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS TS ĐỖ VĂN NHƠN 00011111 00011111 00011111 11100111 11100111 11111000 11111000 11111000 - File output: 3_turan _clique. txt Clique ( 3 ): 2 4 7 - Minh họa kết quả: HVTH: NGUYỄN VĂN KIỆT Trang 28 Thuật toán và Phương pháp giải quyết vấn. .. 11111010100 - File output: 4_herschel _clique. txt Clique ( 5 ): 1 3 6 8 10 Clique ( 6 ): 2 4 5 7 9 11 - Minh họa kết quả: HVTH: NGUYỄN VĂN KIỆT Trang 30 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS TS ĐỖ VĂN NHƠN Hình 3.7: Phần bù của đồ thị Herschel với Clique cực đại (n=11, k=6) HVTH: NGUYỄN VĂN KIỆT Trang 31 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS TS ĐỖ VĂN NHƠN  Đồ thị Icosahedron... 11111011111000 11011111011100 - File output: 6_bondy_murty _clique. txt Clique ( 7 ): 1 3 5 7 9 11 13 - Minh họa kết quả: HVTH: NGUYỄN VĂN KIỆT Trang 34 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS TS ĐỖ VĂN NHƠN Hình 3.9: Phần bù của đồ thị Bondy-Murty G3 với clique cực đại (n=14, k=7) HVTH: NGUYỄN VĂN KIỆT Trang 35 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS TS ĐỖ VĂN NHƠN  Phần bù của đồ thị... thiết kế thuật toán thường phải đối mặt với một số phương pháp khác nhau Tuy nhiên, có nhiều vấn đề mà các thuật toán chỉ giải quyết được phải mất nhiều thời gian để tính toán các giải pháp, nhưng thực tế thì không cho phép điều này Một thuật toán có thời gian đa thức là một thuật toán có số lượng bước tính toán luôn được xác định bởi một hàm đa thức theo kích thước đầu vào Do đó, một thuật toán có . ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  PHÒNG ĐÀO TẠO SAU ĐẠI HỌC TIỂU LUẬN THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ GIẢI PHÁP CHO BÀI TOÁN CLIQUE CỰC ĐẠI . Trang 17 Thuật toán và Phương pháp giải quyết vấn đề GVHD: PGS. TS. ĐỖ VĂN NHƠN Chương 3 GIỚI THIỆU MỘT THUẬT TOÁN POLYNOMIAL – TIME ÁP DỤNG CHO BÀI TOÁN TÌM CLIQUE CỰC ĐẠI 3.1. Mở rộng bài toán. vấn đề nghiên cứu về Giải pháp cho bài toán Clique cực đại để làm tiểu luận cho môn học này. Nội dung của tiểu luận này gồm: Chương 1: Giới thiệu tổng quan về lý thuyết đồ thị Chương 2: Bài toán

Ngày đăng: 24/05/2015, 09:20

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦU

  • DANH MỤC HÌNH

  • TỔNG QUAN VỀ ĐỒ THỊ

    • 1.1. Nhắc lại một số định nghĩa

    • 1.2. Giới thiệu về CLIQUE của đồ thị

    • 1.3. Ứng dụng của bài toán Clique cực đại

    • Chương 2

    • BÀI TOÁN MAXIMAL CLIQUE VÀ GIẢI PHÁP

      • 2.1. Bài toán Maximal Clique

      • 2.2. Xây dựng mô hình của bài toán

      • 2.3. Xây dựng giải pháp cho bài toán

      • 2.4. Chứng minh tính đúng đắn của thuật toán

      • 2.5. Đánh giá độ phức tạp của thuật toán

      • 2.6. Đánh giá thực nghiệm

      • Chương 3

      • GIỚI THIỆU MỘT THUẬT TOÁN POLYNOMIAL – TIME ÁP DỤNG CHO BÀI TOÁN TÌM CLIQUE CỰC ĐẠI

        • 3.1. Mở rộng bài toán Maximal Clique phù hợp với thực tế

        • 3.2. Giới thiệu hướng tiếp cận thuật giải

        • 3.3. Các thủ tục sử dụng trong polynomial-time algorithm

        • 3.4. Chứng minh tính đúng đắn của thuật toán

        • 3.5. Phân tích độ phức tạp

        • 3.6. Cài đặt thuật toán và thực hiện một số demo chương trình

        • TÀI LIỆU THAM KHẢO

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

Tài liệu liên quan