1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

40 1,6K 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

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 3,47 MB

Nội dung

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 á

Trang 1

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

TP Hồ Chí Minh, tháng 10 năm 2014

Trang 2

LỜI MỞ ĐẦU……… 1

DANH MỤC HÌNH……… 2

Chương 1: TỔNG QUAN VỀ ĐỒ THỊ……….3

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

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

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

Chương 2: BÀI TOÁN MAXIMAL CLIQUE VÀ GIẢI PHÁP……… 9

2.1 Bài toán Maximal Clique 11

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

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

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

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

2.6 Đánh giá thực nghiệm 16

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……….17

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

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

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

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

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

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

Trang 3

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àitoá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ênkhô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ôngcả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!

Trang 4

DANH MỤC HÌNH

Hình 1.1: Đồ thị đầy đủ K7 6

Hình 1.2: Đồ thị G, phần bù đồ thị G, đồ thị đầy đủ và Clique 7

Hình 2.1: Các loại thức ăn và thực phẩm 9

Hình 2.2: Sự lựa chọn (cà chua, lạp xưởng, tỏi và tương ớt) 10

Hình 2.3: Sự lựa chọn (cà chua, tỏi, tương ớt và gà) 10

Hình 2.4: Đồ thị Octahedron với clique cực đại ( n=6, k=3) 12

Hình 2.5: Đồ thị 6 đỉnh 15

Hình 3.1: Đồ thị 12 đỉnh và Clique cực đại với k = 5 17

Hình 3.2: Phần bù của đồ thị Frutch 20

Hình 3.3: Clique cực đại 22

Hình 3.4: Đồ thị Tetrahedron với một clique cực đại (n=4, k=4) 25

Hình 3.5: Đồ thị Octahedron với clique cực đại ( n= 6, k = 3) 26

Hình 3.6: Đồ thị Turán T3,8 với clique cực đại (n=8, k=3) 28

Hình 3.7: Phần bù của đồ thị Herschel với Clique cực đại (n=11, k=6) 30

Trang 5

Hình 3.10: Phần bù của đồ thị Dodecahedron với một clique cực đại (n=20, k=8) .36

Chương 1 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âunhư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ệnphẳ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ùngcô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 haykhô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áncho 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ắnnhấ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ốigiữa các cặp đỉnh của đồ thị

Trang 6

Đị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áccung, đó 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={v1,v2, , vn} Ma trận liền kề của G ứng với thứ tự các đỉnh v1,v2, , vn là ma trận

Trang 7

Định nghĩa 6: Cho đồ thị vô hướng G=(V,E), v1, v2, , vn là các đỉnh và e1,

e2, , em 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

Đị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) e1, e2, , encủa đồ thị sao cho e1 = (x0, x1), e2 = (x1,x2), , en = (xn-1,xn), với x0=u và xn=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 x0,

x1, , xn Đườ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ặccung) 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ặcchu 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 nhaunhư 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

Trang 8

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 Vluô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à Kn, là là đồ thị đơn vô hướng

mà giữa hai đỉnh bất kỳ nó luôn có cạnh nối

Đồ thị Kn có tất cả n(n-1)/2 cạnh Nó là đồ thị đơn có nhiều cạnh nhất, đồngthời là đồ thị chính quy bậc n-1

Ví dụ 2.1: Một đồ thị đầy đủ K7 (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

Trang 9

Đị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ềungượ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à G) 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

Trang 10

Hình 1.2: Đồ thị G, phần bù đồ thị G´, đồ 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áytí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, …

Trang 13

Hình 2.2: Sự lựa chọn (cà chua, lạp xưởng, tỏi và tương ớt)

Hoặc lựa chọn:

Hình 2.3: Sự lựa chọn (cà chua, tỏi, tương ớt và gà)

Trang 14

Chúng ta xem mỗi thực phẩm là một đỉnh của đồ thị, và hai thực phẩm khácnhau kết hợp được với nhau được xem là 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 quabà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ộttậ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ộtcạnh trong E

Ví dụ 2.1: Cho đồ thị Octahedron với n = 6 đỉnh Tìm Clique cực đại với

kích thước k = 3

Trang 15

Hình 2.4: Đồ thị Octahedron với clique cực đại ( n=6, k=3)

2.1.2 Khảo sát, phân tích và giới hạn vấn đề

Khảo sát và thu thập dữ liệu, thông tin và tri thức (DIK)

- Tập đỉnh của đồ thị và hữu hạn;

- Tập cạnh của đồ thị là hựu hạn;

- Đồ thị có hướng hay vô hướng?

- Đồ thị liên thông hay không?

- Đơn đồ thị hay đa đồ thị?

- Đơn đồ thị vô hướng;

- Đồ thị phải liên thông;

- Không quan tâm đến trọng số

Xác định phạm vi gây giới hạn của vấn đề: Tính liên thông của đồ thị và số

đỉnh nhỏ hơn 2, số cạnh bằng 0;

Thu thập mẫu vấn đề và phân lớp (bỏ qua)

- Số đỉnh, số cạnh của đồ thị;

- Xác định bậc của mỗi đỉnh trong đồ thị;

- Đồ thị được biểu diễn dưới dạng ma trận kề;

Mô tả giả thiết của vấn đề

- Đầu vào: Đồ thị G là đơn đồ thị vô hướng, liên thông được biểu diễn dướidạng ma trận kề M;

- Đầu ra: Clique cực đại của đồ thị G;

Trang 16

Mục tiêu của vấn đề: Tìm ra Clique cực đại của đồ thị;

Các điều kiện hay ràng buộc liên quan:

- Phải là đơn đồ thị vô hướng, liên thông;

- Số đỉnh (>=2) và số cạnh (>=1) của đồ thị là hữu hạn;

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

2.2.1 Mô hình cho DIK

Được mô hình hóa bằng đơn đồ thị vô hướng Trong đó:

- Số đỉnh là số nguyên dương (>=2) và mỗi đỉnh được gán nhãn;

- Cạnh là một đường nối giữa đỉnh này với đỉnh khác trong đồ thị;

- Bậc của đỉnh x: là tổng số cạnh liên thuộc với đỉnh x, ký hiệu deg(x)

G = (V, E)

V = {x1, x2, …, xn}

E = {e1, e2, …, em}; e  E liên kết giữa xi và xj

2.2.2 Mô hình cho giả thiết

- Đầu vào: Đồ thị G được biểu diễn dưới dạng ma trận kề;

- Đầu 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

Trang 17

- Hai thuật toán hiệu quả với việc thực hiện các bài toán NP-Complete: quaylui và nhánh – cận.

Ở đây, tôi sẽ trình bày giải thuật Bron Kerbosch cho bài toán tìm Clique lớnnhất Thuật toán này được thiết kế và công bố vào năm 1973 bởi 2 nhà khoahoc người Hà Lan là Joep Kerbosch và Coenradd Bron Nó được biết như làmột thuật toán hiệu quả nhất cho việc sử dụng đệ qui quay lui để tìm cácClique Thuật toán như sau:

 Không có Pivoting Strategy

 Có Pivoting Strategy

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

Cho đồ thị như Hình 2.4, tìm các Clique cực đại của đồ thị?

Trang 18

 Tìm các giá trị Rnew, Pnew và Xnew

 Pnew = P  N(v); Rnew = R  v; Xnew = X  N(v)

 Rnew = 4; Pnew = (1,2,3,4,5,6); Xnew = 

Trang 19

Thông báo (4,6) là Maximal Clique.

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

Bất kì đồ thị nào có n đỉnh thì có nhiều nhất 3n/3các Clique cực đại và thờigian chạy trong trường hợp xấu nhất của thuật toán Bron–Kerbosch là O(3n/3)

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

Với thuật toán trên, nếu cho đồ thị cỡ nhỏ thì thuật toán mang lại hiệu 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ựctiễn Nội dung giải pháp và thuật toán kèm theo được trình bày chi tiết ở Chương 3

Trang 20

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ứctạp Trong nghiên 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

Trang 21

3.2 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ộttrong số đó là bài toán tìm clique cực đại trên đồ thị Như đã giới 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ạpO(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àitoá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ựngmộ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được trên máy tính Việc thiết kế thuật toán thường phải đối mặt với một số phươngpháp khác nhau Tuy nhiên, có nhiều vấn đề mà các thuật toán chỉ giải quyết đượcphả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 chophé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ượngbướ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ó thời gian đa thức là một trong những thuật toán hữu ích trongthực tế Các lớp bài toán có thời gian đa thức được kí hiệu là P Ý tưởng là chúng tatìm cách đưa các bài toán NP-complete về các bài toán P Thuật toán được thiết kế

và trình bày chi tiết trong mục 3.3

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

3.3.1 Các thủ tục

Procedure 1: Cho một đơn đồ thị G với n đỉnh và một clique Q của G

- Nếu Q không có các đỉnh có khả năng kề với đỉnh khác thì xuất ra Q

- Ngược lại, với mỗi đỉnh có khả năng kề v của Q,

Trang 22

Procedure 2: Cho một đồ thị G với n đỉnh và một clique cực đại Q của G

- Nếu không có đỉnh v nằm ngoài Q và có chính xác một đỉnh w nằm trong Q

và w không là hàng xóm của v thì xuất ra Q

- Ngược lại, tìm một đỉnh v nằm ngoài Q sao cho có chính xác một đỉnh w nằmtrong Q không là hàng xóm của v

- Định nghĩa Qv,w: Đưa đỉnh v vào Q và xóa w từ Q

- Thực hiện Procedure 1 trên Qv,w

- Xuất ta kết quả clique

3.3.2 Thuật toán

Cho đầu vào là một đồ thị đơn G với n đỉnh được gán nhãn 1,2, …, n, tìmkiếm một clique có kích cỡ nhỏ nhất là k Tại mỗi giai đoạn, nếu một clique thuđược có kích thước nhỏ nhất là k thì dừng lại

Part I: For i=1,2, …,n

 Khởi tạo clique Qi = {i};

 Thực hiện procedure 3.1 trên Qi;

 For r = 1,2, …, k

Thực hiện Procedure 2

 Kết quả là một clique cực đại Qi;

Part II: For mỗi cặp clique cực đại Qi, Qj được tìm trong Part I

 Khởi tạo clique Q, = Q Q

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] John David Eblen, “The Maximum Clique Problem: Algorithms, Applications, and Implementations”, University of Tennessee, Knoxville, 2010 Sách, tạp chí
Tiêu đề: The Maximum Clique Problem: Algorithms, Applications,and Implementations
[2] “Clique (Graph Theory)”, địa chỉ truy cập: http://en.wikipedia.org/wiki/Clique_%28graph_theory%29 Sách, tạp chí
Tiêu đề: Clique (Graph Theory)
[3] “Bron – Kerbosch algorithm”, địa chỉ truy cập:http://en.wikipedia.org/wiki/Bron%E2%80%93Kerbosch_algorithm Sách, tạp chí
Tiêu đề: Bron – Kerbosch algorithm
[4] “The Clique Algorithm”, địa chỉ truy cập: http://www.dharwadker.org/clique/ Sách, tạp chí
Tiêu đề: The Clique Algorithm
[6] P. Turán, An extremal problem in graph theory, Mat. Fiz. Lapok, 1941 Sách, tạp chí
Tiêu đề: An extremal problem in graph theory
[7] A.S. Herschel, Sir Wm. Hamilton's Icosian Game, Quart. J. Pure Applied Math., 1862 Sách, tạp chí
Tiêu đề: Sir Wm. Hamilton's Icosian Game
[8] J.A. Bondy and U.S.R. Murty, Graph Theory with Applications, Elsevier Science Publishing Co., Inc, 1976 Sách, tạp chí
Tiêu đề: Graph Theory with Applications
[9] R.M. Karp, Reducibility among combinatorial problems, Complexity of Computer Computations, Plenum Press, 1972 Sách, tạp chí
Tiêu đề: Reducibility among combinatorial problems
[10] R. Frucht, Graphs of degree three with a given abstract group, Canad. J. Math., 1949 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w