Bài viết trình bày việc cải tiến hai thuật toán dạng heuristic giải bài toán clique lớn nhất; Các thuật toán cải tiến của chúng tôi dựa trên hai thuật toán heuristic hiệu quả hiện biết. Đã cài đặt và thực nghiệm các thuật toán này trên 78 bộ dữ liệu trong hai hệ thống dữ liệu thực nghiệm chuẩn DIMACS và BHOSLIB.
Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XII Nghiên cứu ứng dụng Công nghệ thông tin (FAIR); Huế, ngày 07-08/6/2019 DOI: 10.15625/vap.2019.0009 CẢI TIẾN MỘT SỐ THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN CLIQUE LỚN NHẤT Phan Tấn Quốc1, Huỳnh Thị Châu Ái2 Khoa Cơng nghệ thơng tin, Trường Đại học Sài Gịn Khoa Kỹ thuật công nghệ, Trường Đại học Văn Hiến quocpt@sgu.edu.vn, aihtc@vhu.edu.vn TÓM TẮT: Clique lớn (maximum clique problem) tốn tối ưu tổ hợp có nhiều ứng dụng khoa học kỹ thuật mạng xã hội, máy học, mã hóa, thị giác máy tính, mạng viễn thông, lập lịch, thu hồi thông tin, tin sinh học, tài chính, hóa học,… clique lớn tốn thuộc lớp NP-hard Hiện có nhiều hướng tiếp cận giải toán clique lớn thuật toán tìm lời giải xác, thuật tốn heuristic, thuật tốn metaheuristic,… Trong báo này, chúng tơi cải tiến hai thuật toán dạng heuristic giải toán clique lớn nhất; thuật tốn cải tiến chúng tơi dựa hai thuật toán heuristic hiệu biết Chúng cài đặt thực nghiệm thuật toán 78 liệu hai hệ thống liệu thực nghiệm chuẩn DIMACS BHOSLIB Kết thực nghiệm cho thấy thuật toán cải tiến cho chất lượng lời giải phần lớn tốt so với thuật toán gốc Các thuật toán cải tiến kết thực nghiệm tương ứng thơng tin hữu ích cho nghiên cứu toán clique lớn Từ khóa: Maximum clique problem, community detection in social networks, heuristic algorithm, metaheuristic algorithm, NP-hard problem I GIỚI THIỆU A Một số định nghĩa Mục trình bày số định nghĩa sở cho toán clique lớn [2] Định nghĩa Clique Cho đồ thị vô hướng liên thơng G=(V,E); V tập đỉnh, E tập cạnh Tập đỉnh C V gọi clique đồ thị G cặp đỉnh (u,v) C cạnh thuộc tập E Số lượng đỉnh (hay cịn gọi kích thước) clique C ký hiệu |C| Nếu clique C chứa đỉnh v |C| deg(v) + Định nghĩa Clique cực đại C gọi clique cực đại C clique C không thuộc clique khác có số đỉnh nhiều Định nghĩa Clique lớn C gọi clique lớn đồ thị G C clique C có số đỉnh lớn số clique G Số lượng đỉnh clique lớn đồ thị G ký hiệu (G) gọi số clique đồ thị G Một clique lớn clique cực đại clique cực đại chưa clique lớn Rõ ràng đồ thị có nhiều clique có kích thước clique lớn Định nghĩa Bài toán clique lớn Cho đồ thị vơ hướng liên thơng G=(V,E); V tập đỉnh, E tập cạnh Bài toán clique lớn (Maximum Clique Problem-MCP) tốn tìm clique lớn đồ thị cho Trong trường hợp tổng quát, toán clique lớn chứng minh thuộc lớp NP-hard Nếu G = (V,E) đồ thị khơng có trọng số (G) =max{|C|: C clique đồ thị G}; G = (V,E) đồ thị có trọng số (trên đỉnh) kích thước clique C lớn (clique weight) G ký hiệu w(C) tổng trọng số đỉnh C; w(G) =max{|C|: C clique đồ thị G} [9][28] Trong phạm vi báo này, giới hạn xem xét toán clique lớn trường hợp đồ thị khơng có trọng số Ví dụ: Cho đồ thị vơ hướng liên thơng có đỉnh 26 cạnh Hình 1; clique lớn tìm ứng với đồ thị đỉnh {2,4,5,7,8} Phan Tấn Quốc, Huỳnh Thị Châu Ái 65 Hình Minh họa đồ thị clique lớn với đỉnh {2,4,5,7,8} B Ứng dụng toán Clique lớn Bài tốn MCP ứng dụng số lĩnh vực khoa học kỹ thuật; chẳng hạn mạng xã hội, mạng viễn thông, tin sinh học, tài chính, hóa học, mã hóa, thị giác máy tính, máy học, lập lịch [7], [14], [26] Ví dụ mạng xã hội facebook: thành viên kết nối với nhiều thành viên khác (tiêu chí kết nối sở thích chẳng hạn) Vấn đề đặt cần tìm cộng đồng có nhiều thành viên (hoặc cần tìm cộng đồng có k-thành viên) mà thành viên có kết nối (trực tiếp) đến với tất thành viên lại Trong hệ thống mạng: Tìm kiếm thơng tin gọi, tần suất gọi, tìm nhóm người gọi có mối liên kết cao Việc tìm kiếm thu thập thơng tin quan trọng đánh giá mẫu khách hàng tối ưu hoá hoạt động hệ thống Trong tin sinh học: Thuật toán clique lớn sử dụng để tìm kiếm cộng đồng cho mạng sinh học, toán so khớp cấu trúc phân tử hóa học,… C Một số nghiên cứu liên quan toán MCP vấn đề đặt cần giải báo Bài toán MCP thu hút quan tâm nghiên cứu liên tục, sâu rộng nhà khoa học giới hàng chục năm qua; đặc biệt vài năm trở lại [1], [9], [10], [11], [14], [16], [17], [20], [24] Ngồi cơng trình khảo sát chi tiết MCP [23], có hàng loạt thuật tốn giải tốn MCP đề xuất chia thành ba hướng tiếp cận sau đây: Hướng thứ giải thuật tìm lời giải với thuật toán nhánh cận [2], [13], [18], [21], quy hoạch động [23], [32] Ưu điểm hướng tiếp cận tìm lời giải xác, nhược điểm hướng tiếp cận giải tốn ứng với đồ thị có kích thước nhỏ Hướng tiếp cận sở quan trọng để đánh giá mức độ xác thuật toán giải gần Việc giải toán MCP thách thức lớn lý thuyết tối ưu tổ hợp [1] Hướng thứ hai thuật toán heuristic Thuật toán heuristic kinh nghiệm riêng biệt để tìm kiếm lời giải cho tốn tối ưu cụ thể Thuật tốn heuristic thường tìm lời giải chấp nhận thời gian cho phép khơng lời giải xác; chí thuật tốn heuristic khơng hiệu loại liệu toán cụ thể Ưu điểm bật thuật toán heuristic việc giải toán MCP cho thời gian chạy nhanh Một số thuật toán heuristic sử dụng làm điều kiện cắt nhánh thuật toán nhánh cận giải toán MCP Một số cơng trình tiêu biểu cho hướng tiếp cận thuật toán tham lam [5], [12], [14], [25] Hướng thứ ba thuật toán metaheuristic Thuật toán metaheuristic sử dụng nhiều heuristic kết hợp với kỹ thuật phụ trợ nhằm khai phá khơng gian tìm kiếm; metaheuristic thuộc lớp thuật tốn tìm kiếm tối ưu Một số cơng bố tiêu biểu giải tốn MCP theo hướng thuật toán di truyền [6], [23], thuật toán tabu search [23], thuật toán bầy ong [33], thuật toán tối ưu bầy kiến [19], [27], thuật toán tìm kiếm lân cận biến đổi [22], thuật tốn tìm kiếm địa phương [8], [15], [29], [31] Cho đến tại, hướng tiếp cận metaheuristic giải toán MCP cho kết tốt số thuật toán giải gần Do toán thuộc lớp NP-hard nên ứng dụng toán MCP cần xem xét góc độ tốn thiết kế hay góc độ tốn thực thi: Nếu góc độ tốn thiết kế cần ưu tiên chất lượng lời giải hơn; cịn góc độ tốn thực thi cần ưu tiên thời gian chạy Ưu điểm thuật toán heuristic cho thời gian chạy nhanh thuật toán metaheuristic; nhiên chất lượng lời giải thuật toán heuristic thường chất lượng so với metaheuristic Bài báo cải tiến hai thuật toán heuristic tốt biết: Thứ heuristic nhóm tác giả Vũ Đình Hịa cộng [30] thứ hai heuristic nhóm tác giả Bharath Pattabiraman cộng [5] CẢI TIẾN MỘT SỐ THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN CLIQUE LỚN NHẤT 66 II CẢI TIẾN MỘT SỐ THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN CLIQUE LỚN NHẤT Ý tưởng chung heuristic giải toán clique lớn clique rỗng; sau lặp lại việc thêm dần đỉnh để tạo thành clique lớn đến thêm đỉnh để tạo thành clique lớn dừng Các thuật tốn heuristic dạng tham lam dựa vào thơng tin quan trọng bậc đỉnh ứng viên Điểm mấu chốt cải tiến dựa vào yếu tố ngẫu nhiên lời giải tiềm đồng thời cho chạy nhiều lần liệu thực nghiệm để hy vọng tìm lời giải có chất lượng tốt A Thuật tốn heuristic Trước hết chúng tơi trình bày ngun thuật tốn heuristic giải tốn clique lớn nhóm tác giả Vũ Đình Hịa cộng [30] sau: procedure MAXCLIQUEHEU1 (G=(V,E)) // viết tắt HEU1 begin Đặt U = ∅; while (V ∅) begin Duyệt đỉnh thuộc tập V; tìm đỉnh v U v có bậc lớn nhất; U=U {v}; V=V \ {v}; Xóa tất đỉnh u khơng kề với đỉnh v khỏi tập V; 10 Cập nhật bậc đỉnh liên quan đến đỉnh u vừa bị xóa; 11 end; 12 Xuất kết U; 13 end; HEU1 thuật tốn dạng tham lam dùng để tính cận thường sử dụng thuật toán nhánh cận giải toán MCP [30], [32] HEU1 thuật tốn điển hình sử dụng nhiều thuật toán dạng heuristic, metaheuristic giải toán MCP Chúng tơi cải tiến thuật tốn HEU1 điểm sau đây: Thứ nhất, dịng thuật tốn gốc, thay chọn đỉnh v thuộc tập V v đỉnh có bậc lớn nhất, thuật tốn cải tiến (HEU1_improve) chọn v đỉnh ngẫu nhiên chưa chọn trước tập Q chứa số đỉnh có số bậc cao tập V Thứ hai, cho thuật toán thực nhiều lần ghi nhận lời giải tốt lần chạy; biểu thị dòng 2-4 16-23 thuật toán HEU1_improve 10 11 12 13 14 15 16 17 18 19 20 21 22 23 procedure MAXCLIQUEHEU1_improve(G = (V,E)) begin // viết tắt HEU1_improve Bestsolution=0; T=∅; while (điều kiện dừng chưa thỏa) begin Đặt U = ∅; while (V ∅) begin Đặt tập Q={k đỉnh thuộc tậpV có bậc lớn nhất}; Chọn ngẫu nhiên đỉnhv Q; U=U {v}; V=V \ {v}; Xóa tất đỉnh u không kề với đỉnh v khỏi tập V; Cập nhật bậc đỉnh liên quan đến đỉnh u vừa bị xóa; end; if |U|> Bestsolution then begin Bestsolution=|U|; Cập nhậtT=U; end; end; Xuất kết Bestsolution đỉnh clique T tương ứng có kích thước Bestsolution; end; B Thuật tốn heuristic Tiếp theo chúng tơi trình bày ngun thuật tốn heuristic giải tốn clique lớn nhóm tác giả Bharath Pattabiraman cộng [5] (chúng chọn algorithm nhóm tác giả này) procedure MAXCLIQUEHEU2 (G=(V,E)) // viết tắt HEU2 for i: to n begin if d(vi) max then // max kích thước clique begin Phan Tấn Quốc, Huỳnh Thị Châu Ái 67 U =∅; for vj N(vi) if d(vj) max then U = U {vj}; 10 while (U ∅) 11 begin 12 Chọn đỉnh v có bậc lớn từ tập U; 13 U=U \{v}; 14 Chỉ giữ lại đỉnh u U cho u kề với đỉnh v d(u) max) 15 max=max+1; 16 end; 17 if (|U| >max) then 18 max=|U|; 19 end; 20 Xuất kết max đỉnh clique tương ứng có kích thước max; 21 end; Chúng tơi cải tiến thuật tốn HEU2 điểm sau: Thứ nhất, dịng thuật tốn gốc, thay chọn đỉnh theo thứ tự định sẵn, thuật toán cải tiến (HEU2_improve) chọn vi đỉnh ngẫu nhiên chưa chọn trước Thứ hai, dịng 12 thuật tốn gốc, thay chọn đỉnh v có bậc lớn từ tập U; thuật toán cải tiến chọn đỉnh v ngẫu nhiên từ tập Q chứa k đỉnh có bậc lớn thuộc tập U Thứ ba, cho thuật toán thực nhiều lần ghi nhận lời giải tốt lần chạy; biểu thị dòng 2-4, 15 22-29 thuât toán HEU2_improve 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 procedure MAXCLIQUEHEU2_improve(G = (V,E)) // viết tắt HEU2_improve Bestsolution=0; T=∅; while (điều kiện dừng chưa thỏa) begin Chọn vi đỉnh ngẫu nhiên thuộc tập V; if d(vi) max then begin U =∅; for vj N(vi) if d(vj) max then U = U {vj}; while (U ∅) begin Chọn ngẫu nhiên đỉnh v Q với Q chứa k đỉnh có bậc lớn thuộc tập U ; U=U \{v} Chỉ giữ lại đỉnh u U cho u kề với đỉnh v d(u) max) max=max+1; end; if |U| >max then max=|U|; end; if |max|> Bestsolution then begin Bestsolution=max; Cập nhậtT=U; với U ứng với clique có kích thước Bestsolution; end; Xuất kết Bestsolution đỉnh clique T tương ứng có kích thước Bestsolution; end; III THỰC NGHIỆM VÀ ĐÁNH GIÁ Trong phần mô tả chi tiết việc thực nghiệm thuật toán gốc HEU1, HEU2 thuật toán cải tiến tương ứng HEU1_improve HEU2_improve; đồng thời đưa số đánh giá kết đạt A Dữ liệu thực nghiệm Để thực nghiệm thuật toán HEU1, HEU2, HEU1_improve, HEU2_improve sử dụng hai hệ thống liệu thực nghiệm chuẩn gồm 78 liệu; hệ thống DIMACS [3] có 37 hệ thống BHOSLIB [4] có 41 Các đồ thị hệ thống DIMACS có số đỉnh phạm vi từ 125 đến 4000 có số cạnh phạm vi từ 6963 đến 5506380; đồ thị hệ thống BHOSLIB có số đỉnh phạm vi từ 450 đến 4000 có số cạnh phạm vi từ 83151 đến 7425226 Trong 78 liệu này, hệ thống DIMACS có 27 37 liệu mà kỷ lục biết lời giải tối ưu, hệ thống BHOSLIB có 41/41 liệu mà kỷ lục biết lời giải tối ưu; kích thước clique cột Best known Bảng Bảng có ghi kèm dấu* Bài tốn MCP thách thức lớn nhà khoa học; với hệ thống CẢI TIẾN MỘT SỐ THUẬT TOÁN HEURISTIC GIẢI BÀI TỐN CLIQUE LỚN NHẤT 68 DIMACS kỷ lục thời gian chạy mục đích cần hướng tới, với hệ thống BHOSLIB thời gian chạy mục đích cần hướng tới Đồ thị thưa đồ thị có số cạnh thỏa mãn bất đẳng thức m ≥ 6n; theo tiêu chuẩn đồ thị hai hệ thống liệu thực nghiệm đồ thị dày; hệ thống DIMACS thỏa m ≥ 35n hệ thống BHOSLIB thỏa m ≥180n; tức hệ thống BHOSLIB chứa đồ thị dày nhiều so với hệ thống DIMACS Chúng thấy 78 đồ thị hai hệ thống DIMACS, BHOSLIB khơng có đồ thị có đỉnh có bậc nhỏ kích thước clique tìm thuật tốn tham lam HEU1; rút gọn đồ thị theo cách sử dụng thuật tốn tham lam để tìm clique lớn nhất; sau duyệt qua đỉnh đồ thị loại bỏ đỉnh có bậc nhỏ kích thước clique lớn khơng khả thi; với hai hệ thống DIMACS, BHOSLIB B Mơi trường thực nghiệm Các thuật tốn HEU1, HEU2, HEU1_improve, HEU2_improve cài đặt ngôn ngữ C++ sử dụng môi trường DEV C++ 5.9.2; thực nghiệm máy tính Hệ điều hành Microsoft Windows 10 Pro, 64bit, RAM 4GB Intel(R) Core(TM) i3-2330M CPU @ 2.20GHz, 2200 Mhz, Core(s) C Kết thực nghiệm Kết thực nghiệm thuật toán HEU1, HEU2, HEU1_improve, HEU2_improve liệu DIMACS ghi nhận Bảng 1; bảng có cấu trúc sau: Cột (Instance) ghi tên gọi liệu hệ thống liệu thực nghiệm chuẩn, cột (NODES, EDGES, DEGREEmin, DEGREEmax, Best known) ghi thông tin số đỉnh, số cạnh, số bậc nhỏ nhất, lớn đỉnh đồ thị, kích thước clique tốt biết đồ thị (đây kỷ lục tốt cập nhật website cập nhật kỷ lục thực nghiệm toán MCP [3], [4]; đến năm 2018, luận án tiến sĩ Yi Zhou toán MCP [32] chưa kỷ lục liệu thuộc DIMACS mà liệt kê Bảng 1); bốn cột cuối ghi kích thước clique tìm ứng với thuật tốn HEU1, HEU2, HEU1_improve, HEU2_improve Chúng tơi đề xuất tham số cho hai thuật toán HEU1 improve, HEU2_improve sau: Điều kiện dừng cho lặp lại 30 lần; Số lượng phần tử tập Q cho k 10% số đỉnh có bậc lớn thuộc tập đỉnh ứng viên Do cơng trình [30] khơng thực nghiệm hai hệ thống liệu thực nghiệm cơng trình [5] thực nghiệm 17 số 37 liệu hệ thống DIMACS (đó liệu mà kết cột HEU2 có đánh dấu*) Do chúng tơi cài đặt hai thuật toán HEU1, HEU2; với test mà thuật tốn HEU2 có kết chúng tơi ghi nhận báo gốc [5] Bảng Kết thực nghiệm thuật toán đồ thị hệ thống DIMACS Instance C125.9 C250.9 C500.9 C1000.9 C2000.9 DSJC1000_5 DSJC500_5 C2000.5 C4000.5 MANN_a27 MANN_a45 MANN_a81 brock200_2 brock200_4 brock400_2 brock400_4 brock800_2 brock800_4 gen200_p0.9_44 gen200_p0.9_55 gen400_p0.9_55 gen400_p0.9_65 gen400_p0.9_75 hamming10-4 hamming8-4 NODES EDGES 125 250 500 1000 2000 1000 500 2000 4000 378 1035 3321 200 200 400 400 800 800 200 200 400 400 400 1024 256 6963 27984 112332 450079 1799532 499652 125248 999836 4000268 70551 533115 5506380 9876 13089 59786 59765 208166 207643 17910 17910 71820 71820 71820 434176 20864 DEGREEmin DEGREEmax 102 203 431 868 1751 447 220 919 1895 364 1012 3280 78 112 274 275 472 481 165 164 334 333 335 848 163 119 236 468 925 1848 551 286 1074 2123 374 1031 3317 114 147 328 326 566 565 190 190 375 378 380 848 163 HEU1_ HEU2_ Best HEU1 HEU2 improve improve known 34* 44* 57 68 80 15* 13* 16 18 126* 345* 1100 12* 17* 29* 33* 24* 26* 44* 55* 55* 65* 75* 40* 16* 32 40 50 58 66 11 12 14 125 342 1096 13 21 20 15 15 37 39 46 45 43 32 16 31 40 48 57 63 14 12 14 15 125* 341* 1096 10* 14* 20* 22* 18* 17* 35 39 46 43 47 32 16* 34 42 53 60 66 13 13 14 16 126 343 1096 11 16 24 24 19 19 38 43 50 48 52 34 16 34 43 54 64 62 14 13 16 16 125 342 1096 12 17 24 33 20 19 42 51 50 50 54 33 16 Phan Tấn Quốc, Huỳnh Thị Châu Ái keller4 keller5 keller6 p_hat300-1 p_hat300-2 p_hat300-3 p_hat700-1 p_hat700-2 p_hat700-3 p_hat1500-1 p_hat1500-2 p_hat1500-3 171 776 3361 300 300 300 700 700 700 1500 1500 1500 9435 225990 4619898 10933 21928 33390 60999 121728 183010 284923 568960 847244 69 102 560 2690 23 59 168 75 157 408 157 335 912 124 638 2952 132 229 267 286 539 627 614 1153 1330 11* 27* 59 8* 25* 36* 11* 44* 62 12* 65 94 10 22 44 21 33 42 57 60 86 11* 22* 45* 8* 24* 26* 9* 26* 57 11 59 81 11 23 43 25 35 11 44 60 11 64 91 11 27 49 25 35 11 43 62 11 53 70 Tương tự, kết thực nghiệm thuật toán HEU1, HEU2, HEU1_improve, HEU2_improve liệu BHOSLIB ghi nhận Bảng Bảng Kết nghiệm thuật toán đồ thị hệ thống BHOSLIB Instance frb30-15-1 frb30-15-2 frb30-15-3 frb30-15-4 frb30-15-5 frb35-17-1 frb35-17-2 frb35-17-3 frb35-17-4 frb35-17-5 frb40-19-1 frb40-19-2 frb40-19-3 frb40-19-4 frb40-19-5 frb45-21-1 frb45-21-2 frb45-21-3 frb45-21-4 frb45-21-5 frb50-23-1 frb50-23-2 frb50-23-3 frb50-23-4 frb50-23-5 frb53-24-1 frb53-24-2 frb53-24-3 frb53-24-4 frb53-24-5 frb56-25-1 frb56-25-2 frb56-25-3 frb56-25-4 frb56-25-5 frb59-26-1 frb59-26-2 frb59-26-3 frb59-26-4 frb59-26-5 frb100-40 NODES EDGES DEGREEmin DEGREEmax 450 450 450 450 450 595 595 595 595 595 760 760 760 760 760 945 945 945 945 945 1150 1150 1150 1150 1150 1272 1272 1272 1272 1272 1400 1400 1400 1400 1400 1534 1534 1534 1534 1534 4000 83198 83151 83216 83194 83231 148859 148868 148784 148873 148572 247106 247157 247325 246815 246801 386854 387416 387795 387491 387461 580603 579824 579607 580417 580640 714129 714067 714229 714048 714130 869624 869899 869921 869262 869699 1049256 1049648 1049729 1048800 1049829 7425226 327 333 327 339 321 462 460 429 444 460 581 588 600 595 585 756 753 739 732 764 941 922 945 941 922 1039 1039 1037 1045 1065 1162 1162 1160 1158 1158 1256 1268 1275 1259 1295 3553 407 404 400 401 403 544 541 549 560 550 703 702 702 692 691 876 870 872 875 874 1065 1074 1078 1071 1080 1185 1182 1183 1189 1199 1311 1327 1301 1307 1311 1439 1433 1455 1435 1452 3864 Best known 30* 30* 30* 30* 30* 35* 35* 35* 35* 35* 40* 40* 40* 40* 40* 45* 45* 45* 45* 45* 50* 50* 50* 50* 50* 53* 53* 53* 53* 53* 56* 56* 56* 56* 56* 59* 59* 59* 59* 59* 100* HEU1 HEU2 25 25 23 25 24 30 28 29 30 29 33 35 34 33 33 37 38 34 37 36 43 41 42 41 40 43 44 44 42 42 45 46 46 46 46 47 48 49 48 49 81 24 24 24 26 25 29 29 29 30 29 33 34 34 32 33 36 36 36 37 36 40 40 39 40 41 41 42 43 42 42 44 45 44 43 44 47 48 47 46 47 78 HEU1_ HEU2_ improve improve 26 26 26 26 26 30 30 30 31 30 34 35 34 34 34 38 38 37 38 37 42 42 42 43 42 43 44 44 44 44 46 46 46 47 46 49 48 47 48 48 77 27 28 27 27 28 31 33 32 32 33 36 36 36 36 37 40 40 40 41 40 44 45 45 45 45 48 47 47 47 47 47 46 46 46 46 49 48 48 48 48 78 CẢI TIẾN MỘT SỐ THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN CLIQUE LỚN NHẤT 70 D Đánh giá kết thực nghiệm Các thuật toán heuristic đánh giá dựa chất lượng lời giải (độ tốt lời giải) thời gian tính tương ứng để có lời giải thơng qua việc thực nghiệm số liệu mẫu Mục đưa số phân tích đánh giá chất lượng lời giải thời gian chạy tương ứng Chất lượng lời giải Với 37 liệu hệ thống DIMACS, thuật toán HEU1_improve cho chất lượng lời giải tốt hơn, bằng, thuật toán HEU1 89,2%; 8,1%; 2,7%; thuật toán HEU2_improve cho chất lượng lời giải tốt hơn, bằng, thuật toán HEU2 73,0%; 18,9%; 8,1% Thuật toán HEU1 cho kết đạt từ 57,0% đến 100,0% so với kết tối ưu; thuật toán HEU1_improve cho kết đạt từ 69,0% đến 100,0% so với kết tối ưu; thuật toán HEU2 cho kết đạt từ 59,0% đến 100,0% so với kết tối ưu; thuật toán HEU2_Improve cho kết đạt từ 72,0% đến 100,0% so với kết tối ưu Với 41 liệu hệ thống BHOSLIB, thuật toán HEU1_improve cho chất lượng lời giải tốt hơn, bằng, thuật toán HEU1 58,5%; 31,7%; 9,8%; thuật toán HEU2_improve cho chất lượng lời giải tốt hơn, bằng, thuật toán HEU2 97,6%; 2,4%; 0,0% Thuật toán HEU1 cho kết đạt từ 75,6% đến 87,5% so với kết tối ưu; thuật toán HEU1_improve cho kết đạt từ 77,0% đến 88,6% so với kết tối ưu; thuật toán HEU2 cho kết đạt từ 76,8% đến 86,7% so với kết tối ưu; thuật toán HEU2_improve cho kết đạt từ 78,0% đến 94,3% so với kết tối ưu Chúng minh họa chất lượng thuật toán Quy hoạch động (OPTIMAL), HEU1, HEU2, HEU1_improve, HEU2_improve liệu brock200_4, brock400_4, hamming8-4, keller5, p_hat700-2 Hình Hình Minh họa kích thước clique lớn thuật toán qua số liệu Thời gian chạy thuật tốn Tiếp theo, chúng tơi ghi nhận thời gian chạy thuật toán Quy hoạch động (cột OPTIMAL), HEU1, HEU2, HEU1_improve, HEU2_improve qua liệu Bảng Trong cặp thuật toán liệu mà sau 7200 giây chạy chương trình khơng tìm kết tương ứng ghi ký hiệu „-„ Bảng Thời gian chạy chương trình ứng với thuật toán liệu Instance OPTIMAL HEU1 HEU2 HEU1_improve HEU2_improve 0.78 brock200_4 0.03 0.02 0.02 0.09 brock400_4 0.14 0.06 0.14 1.00 0.01 hamming8-4 0.06 0.02 0.08 0.17 keller5 0.55 0.31 0.44 4.78 p_hat700-2 0.27 0.25 0.33 2.09 Ghi chú: Thời gian tính đơn vị giây, lấy đến số lẻ thập phân Chúng thực nghiệm thuật toán quy hoạch động 37 liệu hệ thống DIMACS với file nguồn chương trình công bố [34]; nhận thấy 11 liệu cho kết sau 7200 giây thực hiện; liệu C125.9, keller4, brock200_2, brock200_4, gen200_p0.9_55, hamming8-4, p_hat300-1, p_hat300-2, DSJC500_5, p_hat700-1, p_hat1500-1 Từ cột cuối Bảng cho nhận xét thuật toán HEU1_improve có thời gian chạy từ 0,52 đến 1,24 lần so với thuật tốn HEU1; thuật tốn HEU2_improve có thời gian chạy từ 6,25 đến 15,87 lần so với thuật tốn HEU2 Thời gian chạy chương trình ngồi việc phụ thuộc vào độ phức tạp thời gian tính thuật tốn; cịn phụ thuộc vào mơi trường thực nghiệm, kỹ thuật lập trình, cấu trúc liệu chọn cài đặt, tham số,… Tuy vậy, thời gian chạy thuật toán Bảng cho thông tin tham khảo cần thiết thuật toán Phan Tấn Quốc, Huỳnh Thị Châu Ái 71 IV KẾT LUẬN Trong báo cải tiến hai thuật toán heuristic để giải toán clique lớn nhất; cải tiến dựa hai thuật tốn heuristic hiệu biết Chúng tơi cài đặt thuật toán gốc, thuật toán cải tiến thực nghiệm chúng 78 liệu hệ thống liệu thực nghiệm chuẩn Kết thực nghiệm cho thấy thuật toán cải tiến HEU1_improve cho chất lượng lời giải tốt hơn, bằng, thuật toán gốc HEU1 73,1%; 20,5%; 6,4%; thuật toán cải tiến HEU2_improve cho chất lượng lời giải tốt hơn, bằng, thuật toán gốc HEU2 85,9%; 10,3%; 3,8% Các cải tiến hiệu đồ thị có kích thước lớn Các kết đạt báo thơng tin hữu ích cho nghiên cứu toán clique lớn TÀI LIỆU THAM KHẢO [1] Alessio Conte and et al, “Finding all maximal cliques in very large social networks”, ISSN: 2367-2005, pp.173-184, Bordeaux, France, 2016 [2] Atul Srivastava and et al, “Maximum clique finder: MCF ”, IJITEE, Volume 7, Issue 2,2018 [3] Benchmark maximum_clique problem, http://iridia.ulb.ac.be/~fmascia/maximum_clique/DIMACS-benchmark,(last update, 26 Oct 2015) [4] Benchmark maximum_clique problem, http://sites.nlsde.buaa.edu.cn/~kexu/benchmarks/graph-benchmarks.htm,(last updated: Dec 1, 2014) [5] Bharath Pattabiraman and et al, “Fast algorithms for the maximum clique problem on massive graphs with applications to overlapping community detection”, 2014 [6] Bo Huang, “Finding maximum clique with a genetic algorithm, the pennsylvania state university”, Master of Science, 2002 [7] Đàm Thanh Phương, Ngơ Mạnh Tưởng, Khoa Thu Hồi, “Bài tốn clique lớn - ứng dụng thách thức tính tốn”, Tạp chí Khoa học & Cơng nghệ - Chuyên san Khoa học Tự nhiên - Kỹ thuật, Trường Đại học Thái Nguyên, ISSN: 1859-2171, Tập 102, Số 2, pp.13-17, 2013 [8] Elena Marchiori, “Genetic, Iterated and multistart local search for the maximum clique Problem”, University Amsterdam, The Netherlands, 2001 [9] Emmanuel Hebrard, George Katsirelos, “Conflict directed clause learning for the maximum weighted clique problem”, IJCAI, 2018 [10] George Manoussakis, “New algorithms for cliques and related structures in k-degenerate graphs”, Elsevier, 2018 [11] Giannis Nikolentzos and et al, “K-clique-graphs for dense subgraph discovery”, 2016 [12] Golkar Mohammad Javad and et al, “Maximum clique problem solving using imperialist competitive algorithm and a greedy method for generating initial population”, ISSN: 0976-2876, 2014 [13] José Angel Riveaux Merino, “An exact algorithm for the maximum quasi-clique problem”, Universidade Federal Fluminense, 2017 [14] Jose L Walteros, Austin Buchanan, “Why is maximum clique often easy in practice ?”, University at Buffalo, pp.1-28,2018 [15] Kengo Katayama, Akihiro Hamamoto, Hiroyuki Narihisa, “An effective local search for the maximum clique problem”, Elsevier, 2005 [16] Krishna Kumar Singh, Ajeet Kumar Pandey, “Survey of algorithms on maximum clique problem”, IARJSET, Vol 2, Issue 2, pp.15-20, 2015 [17] Melisew Tefera Belachew, Nicolas Gillis, “Solving the maximum clique problem with symmetric rank-one nonnegative matrix approximation”, Universit´e de Mons, Belgium, 2015 [18] Mochamad Suyudi, Sukono and et al, “Branch and bound algorithm for finding the maximum clique problem”, IEOM Society International, 2018 [19] Mohammad Soleimani-Pouri and et al, “Finding a maximum clique using ant colony optimization and particle swarm optimization in social networks”, IEEE, 2012 [20] Muhammad Fayaz and et al, “Approximate maximum clique algorithm (amca): a clever technique for solving the maximum clique problem through near optimal algorithm for minimum vertex cover problem”, IJCA, Australia, 2018 [21] NGUYEN CANH Nam, “On globally solving the maximum weighted clique problem”, Nafosted,Viet Nam, 2013 [22] Pierre Hansen and et al, “Variable neighborhood search for the maximum clique”, Elsevier, 2004 [23] Qinghua Wua, Jin-Kao Hao, “A review on algorithms for maximum clique problems”, Elsevier, 2014 [24] Rachel Behar, Sara Cohen, “Finding all maximal connected s-cliques in social networks”, ISBN 978-3-89318-078-3, 2018 [25] Ryan A Rossi and et al, “Fast maximum clique algorithms for large graphs”, ACM, 2014 [26] Ryan A Rossi and et al, “Parallel maximum clique algorithms with applications to network analysis and storage”, 2013 [27] Serge Fenet, Christine Solnon, “Searching for maximum cliques with ant colony optimization”, Springer-Verlag Berlin Heidelberg, pp.236-245,2003 [28] Shaowei Cai, Jinkun Lin, “Fast solving maximum weight clique problem in massive graphs”, IJCAI, 2016 [29] Una Benlic, Jin-Kao Hao, “Breakout local search for maximum clique problems”, Elsevier, 2012 [30] Vũ Đình Hịa, Đỗ Trung Kiên, “Thuật tốn song song giải toán xác định clique cực đại đồ thị”, Hội thảo Quốc gia: “Một số vấn đề chọn lọc Công nghệ thông tin truyền thông”, pp.426-442, 2009 72 CẢI TIẾN MỘT SỐ THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN CLIQUE LỚN NHẤT [31] Wayne Pullan, Franco Mascia, Mauro Brunato, “Cooperating local search for the maximum clique problem”, Springer, 2010 [32] Yi Zhou, “Optimization algorithms for clique problems“, grade de Docteur de l‟Université d‟Angers, pp.1-122, 2018 [33] Yuquan Guo and et al, “Heuristic artificial bee colony algorithm for uncovering community in complex networks”, Mathematical Problems in Engineering, pp.1-12,2017 [34] https://github.com/bobogei81123/bcw_codebook/blob/master/codes/Graph/Maximum_Clique/Maximum_Clique.cpp IMPROVED HEURISTIC ALGORITHMS FOR SOLVING MAXIMUM CLIQUE PROBLEM Phan Tan Quoc, Huynh Thi Chau Ai ABSTRACT: The maximum clique problem (MCP) is known as NP-hard problem It is also one of the most important combinatorial optimization problems with practical applications in numerous fields such as social network, machine learning, cryptography and coding, telecommunication network, scheduling, information retrieval, finance, signal transmission analysis, economics, biomedical engineering, chemistry, so on.s Many approaches have been developed to solve the MCP such as algorithms for finding exact solutions, heuristic algorithms, metaheuristic algorithms, so on In this study, we propose two improved heuristic algorithms that are based on the effective well-known heuristic algorithms We experiments on the proposed approaches by using 78 datasets from two standard database, DIMACS and BHOSLIB The experiment results claim that our approaches outperform baseline approaches This proves that the proposed approach is effective and promising approach for solving the MCP ... TIẾN MỘT SỐ THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN CLIQUE LỚN NHẤT 66 II CẢI TIẾN MỘT SỐ THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN CLIQUE LỚN NHẤT Ý tưởng chung heuristic giải toán clique lớn clique rỗng; sau... 48 48 48 78 CẢI TIẾN MỘT SỐ THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN CLIQUE LỚN NHẤT 70 D Đánh giá kết thực nghiệm Các thuật toán heuristic đánh giá dựa chất lượng lời giải (độ tốt lời giải) thời gian... cần thiết thuật toán Phan Tấn Quốc, Huỳnh Thị Châu Ái 71 IV KẾT LUẬN Trong báo chúng tơi cải tiến hai thuật tốn heuristic để giải toán clique lớn nhất; cải tiến dựa hai thuật toán heuristic hiệu