Thuật toán di truyền lai ghép thuật toán đàn kiến giải bài toán cực tiểu hóa độ trễ
Tóm tắt. Bài toán cực tiểu hóa độ trễ thuộc lóp bài toán tối ưu hóa tổ hợp có nhiều ứng dụng trong thực tiễn. Trong trường hợp tổng quát, bài toán được chứng minh thuộc lóp NP-khó và ngoại trừ P = NP, không tồn tại lược đồ xấp xỉ vói thời gian đa thức để giải nó. Bởi vậy, việc phát triển các thuật toán gần đúng là hưóng tiếp cận phù hợp để giải bài toán. Trong bài báo này sẽ trình bày một thuật toán meta-heuristic (ACO-GA) lai ghép giữa thuật toán di truyền (GA) và thuật toán đàn kiến (ACO). Thuật toán đàn kiến đóng vai trò khởi tạo quần thể cho thuật toán di truyền. Trong khi đó, thông tin di truyền từ thuật toán di truyền giúp định hưóng cá thể kiến chọn đường đi tốt hìn ở lần khởi tạo quần thể kế tiếp. Thêm vào đó, để duy trì tính đa dạng trong quần thể kiến, thuật toán sử dụng ba loại kiến vói các đặc tính tìm kiếm đường đi khác nhau. Thực nghiệm thuật toán đã được thực hiện trên các bộ dữ liệu chuẩn. Kết quả thực nghiệm cho thấy thuật toán đưa ra lời giải vói cận tỷ lệ tốt hìn so vói các thuật toán meta-heuristic hiện biết trên nhiều bộ dữ liệu.
Tóm tắt nội dung tài liệu: Thuật toán di truyền lai ghép thuật toán đàn kiến giải bài toán cực tiểu hóa độ trễ
Tạp chí Tin học và Điểu khiển học, T.29, S.3 (2013), 285-297 THUẬT TOÁN DI TRUYEN lai ghép thuật toán đàn KIEN GIẢI bài toán CỰC TIỂU HÓA độ tre BAN HÀ BẰNG, NGUYỄN ĐỨC NGHĨA Viện Công nghệ Thông tin và Truyền thông - Đại học Bách khoa Hà Nội Email: (BangBH, NghiaND) soict.hut.edu.vn Tóm tắt. Bài toán cực tiểu hóa độ trễ thuộc lóp bài toán tối ưu hóa tổ hợp có nhiều ứng dụng trong thực tiễn. Trong trường hợp tổng quát, bài toán được chứng minh thuộc lóp NP-khó và ngoại trừ P = NP, không tồn tại lược đồ xấp xỉ vói thời gian đa thức để giải nó. Bởi vậy, việc phát triển các thuật toán gần đúng là hưóng tiếp cận phù hợp để giải bài toán. Trong bài báo này sẽ trình bày một thuật toán meta-heuristic (ACO-GA) lai ghép giữa thuật toán di truyền (GA) và thuật toán đàn kiến (ACO). Thuật toán đàn kiến đóng vai trò khởi tạo quần thể cho thuật toán di truyền. Trong khi đó, thông tin di truyền từ thuật toán di truyền giúp định hưóng cá thể kiến chọn đường đi tốt hìn ở lần khởi tạo quần thể kế tiếp. Thêm vào đó, để duy trì tính đa dạng trong quần thể kiến, thuật toán sử dụng ba loại kiến vói các đặc tính tìm kiếm đường đi khác nhau. Thực nghiệm thuật toán đã được thực hiện trên các bộ dữ liệu chuẩn. Kết quả thực nghiệm cho thấy thuật toán đưa ra lời giải vói cận tỷ lệ tốt hìn so vói các thuật toán meta-heuristic hiện biết trên nhiều bộ dữ liệu. Từ khóa. Bài toán cực tiểu hóa độ trễ-MLP, meta-heuristic, ACO, GA. Abstract. Minimum Latency Problem is a class of combinatorial optimization problems that have many practical applications. In the general case, the problem is proven to be NP-hard. Therefore, using a meta-heuristic algorithm is a suitable approach for solving this problem. In this paper, we propose a meta-heuristic algorithm which combines Ant Colony (ACO) and Genetic Algorithm (GA). In our algorithm, ACO generates a population for GA. Meanwhile, the genetic information of GA helps ants to create a better population in the next step. In addition, to maintain the diversity of population, our algorithm uses three types of the ants which have different characteristics.We evaluate the algorithm on five benchmark datasets. The experimental results show that our algorithm gives a better solution than the state-of-the-art meta-heuristic algorithms on several instances of datasets. Key words. Minimum Latency Problem-MLP, meta-heuristic, ACO, GA. GIỚI THIÊU Bài toán cực tiểu hóa độ trễ (MLP) là một dạng khác của bài toán thợ sửa chữa lưu động (Traveling Repairman Problem). Bài toán MLP có nhiều ứng dụng trong thực tế, chẳng hạn khi một máy chủ hay một người thợ phải lập lịch thực thi một tập các yêu cầu sao cho tổng (trung bình) thời gian chờ đợi của các yêu cầu là cực tiểu [5, 11]. Do có thể quy bài toán MLP tổng quát về bài toán MLP trong trường hợp metric nhờ sử dụng một phép biến đổi đon giản (xem [15]), nên trong bài báo này, sẽ chỉ xét bài toán trong trường hợp metric. Bài toán MLP có thể phát biểu như sau: Cho đồ thị đầy đủ Kn với tập đỉnh V = {1, 2,..., ng và ma trận chi phí đối xứng không âm C = {Cj\i, j = 1, 2,..., ng, với cij là khoảng cách giữa hai đỉnh i và j. Giả sử T = v1,v2, ...,vn là một hành trình xuất phát từ v1 (đường đi xuất phát từ v1 đi qua mỗi đỉnh của đồ thị đúng một lần) trên Kn. Ký hiệu Path(v1, vk) là đoạn đường đi từ v1 đến Vk trên hành trình T. Ta gọi độ trễ của đỉnh Vk trên hành trình T, ký hiệu bởi lat(vk), là độ dài của đường đi Path(v1, vk) k-1 lat(vk) ^2 c(vi, vi+1), k = 2,3, i=1 Độ trễ của hành trình T, ký hiệu là L(T), được định nghĩa như tổng độ trễ của tất cả các đỉnh thuộc nó n L(T) = X lat(vk). k=2 Giả sử v1 là đỉnh cho trước, bài toán MLP yêu cầu tìm hành trình xuất phát từ v1 với độ trễ là nhỏ nhất. Trong trường hợp tổng quát, bài toán được chứng minh thuộc lớp NP-khó, và ngoại trừ P = NP, không tồn tại lược đồ xấp xỉ với thời gian đa thức để giải nó [11]. Hiện nay, hàng loạt thuật toán đã được đề xuất để giải bài toán MLP. Trong hướng tiếp cận giải đúng, các thuật toán trong [4, 13] có thể áp dụng giải bài toán MLP với kích thước nhỏ (đồ thị với ít hon 40 đỉnh). Trong không gian metric, nhiều thuật toán gần đúng cận tỷ lệ đã được đề xuất. Đầu tiên, Blum et al. [5] đưa ra thuật toán với cận tỷ lệ là 144, tiếp đến thuật toán của Goemans et al. [8] giảm cận tỷ lệ xuống còn 21.55. Công trình [2] của Arora et al. đề xuất thuật toán gần đúng với cận tỷ lệ 17.24. Thuật toán gần đúng của Archer et al. [1] có cận tỷ lệ 7.18 trong trường hợp metric và 3.01 trong bộ dữ liệu thực nghiệm TSPLIB. Gần đây, K.Chaudhuri et al. [6] đưa ra thuật toán gần đúng với cận tỷ lệ nhỏ nhất là 3.59. Trong hướng tiếp cận meta-heuristic, chúng tôi đề xuất một thuật toán dựa trên so đồ của thuật toán di truyền [3]. Kết quả thực nghiệm chỉ ra rằng chất lượng lời giải đạt được bởi thuật toán là tốt hon so với các thuật toán gần đúng cận tỷ lệ hiện biết trên bộ dữ liệu thực nghiệm TSPLIB [14]. Sau đó, các thuật toán meta-heuristic được xem xét trong các công trình của A. Salehipour et al. [10], M. Silva et al. [12]. Các kết quả thực nghiệm trong [3, 10, 12] cho thấy meta-heuristic là hướng tiếp cận tiềm năng cho bài toán MLP. Bài báo đề xuất thuật toán di truyền lai ghép với thuật toán đàn kiến (ACO-GA) để giải bài toán MLP. Trong thuật toán này, thuật toán đàn kiến đóng vai trò khởi tạo quần thể cho thuật toán di truyền. Ngược lại, thuật toán di truyền đóng vai trò định hướng cho đàn kiến ở lần khởi tạo quần thể kế tiếp. Thuật toán sử dụng ba loại kiến. Loại kiến thứ nhất sẽ sử dụng vết mùi và thông tin di truyền để tìm đường đi. Trong khi đó, loại kiến thứ hai chỉ sử dụng vết mùi, còn loại kiến thứ ba thực hiện một cách ngẫu nhiên việc lựa chọn đường đi. Tiến hành thực nghiệm thuật toán ACO-GA trên các bộ dữ liệu chuẩn đã được nhiều tác giả sử dụng. Kết quả thực nghiệm chỉ ra rằng, thuật toán ACO-GA đưa ra được lời giải với chất lượng tốt hon so với các thuật toán hiện biết trên nhiều bộ dữ liệu. Cấu trúc của bài báo gồm: Mục 2 trình bày thuật toán đề xuất. Thảo luận về thuật toán đề xuất được đề cập trong Mục 3 và kết quả thực nghiệm được trình bày ở Mục 4. Cuối cùng đưa ra các kết luận. THUẬT TOÁN ĐE XUAT Thuật toán di truyền áp dụng rất hiệu quả cho lớp bài toán tối ưu hóa tổ hợp. Tuy nhiên, một vấn đề mà các thuật toán di truyền thường gặp là thuật toán hội tụ sớm sau một số vòng lặp, khi quần thể mất đi tính đa dạng. Trong [3], chúng tôi áp dụng kỹ thuật hủy diệt (Social Disaster Technique) nhằm duy trì tính đa dạng của quần thể. Tuy nhiên, quần thể mới cũng không đảm bảo duy trì được tính đa dạng và thuật toán lại roi vào cực trị địa phưong sau một số thế hệ tiếp theo. Thuật toán đàn kiến [7] mô phỏng hành vi của các đàn kiến trong thực tế. Khi di chuyển các con kiến để lại vết mùi trên đường đi giúp cho các con kiến theo sau lần theo vết mùi đó. Dựa vào nồng độ mùi do các con kiến đi trước để lại, các con kiến theo sau lựa chọn đi theo đường đi có nồng độ mùi cao hon. Tuy nhiên, một nghiên cứu về hành vi kiến [9] chỉ ra rằng có khoảng 20% số lượng kiến không có khả năng sử dụng vết mùi để tìm đường đi. Mặc dù vậy, chúng lại đóng một vai trò nhất định trong quần thể kiến. Các nhà nghiên cứu đã tiến hành thực nghiệm và thấy rằng loại kiến dựa theo vết mùi có vai trò mang thức ăn từ nguồn thức ăn tìm được về tổ. Tuy nhiên, chúng khó có khả năng tìm được nguồn thức ăn mới. Trong khi đó, loại kiến không có khả năng sử dụng vết mùi lại đóng vai trò như cá thể tìm nguồn thức ăn mới. Thực nghiệm về hành vi đàn kiến cho thấy, quần thể kiến chứa cả hai loại kiến có khả năng tìm kiếm nguồn thức ăn hiệu quả hon so với quần thể kiến chỉ chứa một loại kiến duy nhất. Trong [13], S. Shimomura cũng đã đề xuất thuật toán đàn kiến với hai loại kiến. Kết quả thực nghiệm cũng chỉ ra rằng, quần thể kiến chứa cả hai loại kiến hiệu quả hon so với quần thể kiến chỉ chứa một loại kiến. Bài báo đề xuất thuật toán dựa trên co sỏ lai ghép thuật toán di truyền với thuật toán đàn kiến. Thuật toán đàn kiến được sử dụng để khỏi tạo quần thể ban đầu cho thuật toán di truyền. Trong khi đó, thông tin từ thuật toán di truyền đóng vai trò định hướng đường đi cho đàn kiến ỏ quần thể kế tiếp. Để có được quần thể đa dạng, thuật toán luôn duy trì ba loại kiến. Loại kiến thứ nhất sử dụng vết mùi và thông tin di truyền để tìm đường đi. Trong khi đó, loại kiến thứ hai chỉ sử dụng vết mùi, còn loại kiến thứ ba lựa chọn tìm đường đi một cách ngẫu nhiên. Như vậy, có thể xem loại kiến thứ ba giống như một toán tử đột biến giúp thuật toán thoát khỏi cực trị địa phưong. So đồ của thuật toán được trình bày ỏ Thuật toán 1. Ta chuyển sang mô tả chi tiết việc thực hiện các thao tác chính của thuật toán ACO-GA. Di chuyển của quần thể kiến: Quần thể kiến sẽ bao gồm Sp cá thể kiến, được đánh số bỏi 1, 2, ..., Sp. Bắt đầu từ cá thể kiến 1, trong quá trình thực hiện thuật toán các cá thể kiến lần lượt thực hiện di chuyển, cá thể kiến này di chuyển xong mới đến lượt cá thể kiến tiếp theo. Mã hóa: Mỗi đường đi mà cá thể kiến tạo ra được mã hóa bỏi một danh sách có thứ tự gồm n đỉnh T = (v1,v2,..., Vị, ...,vn), trong đó Vị là đỉnh được đi qua thứ i trong đường đi. Ta cũng sẽ sử dụng ký hiệu T[i] để chỉ đỉnh thứ i trong danh sách T. Khỏi tạo vết mùi và thông tin di truyền: Gọi Tk_1ij và gij là lượng mùi và thông tin di truyền có trên cạnh (vi, Vj) mà kiến thứ k sử dụng để lựa chọn cạnh di chuyển (k = 1, 2,..., Sp). Đối với quần thể kiến đầu tiên của ACO-GA, T0ij và gij được khỏi tạo là To và go tưong ứng, còn đối với những quần thể kiến tiếp theo, T0ij được khỏi tạo là tổng lượng mùi mà các cá thể kiến của quần thể kiến ỏ bước trước để lại, còn gij là tổng thông tin di truyền từ các cá thể kiến tốt nhất tìm được bỏi thuật toán GA ỏ các bước trước của thuật toán ACO-GA. Chọn đỉnh tiếp theo: Giả sử, cá thể kiến thứ k đang ỏ đỉnh Vị và cần chọn đỉnh kế tiếp từ tập các đỉnh chưa thăm của cá thể kiến đó (ký hiệu tập đỉnh này là Nk) để di chuyển. Algorithm 1. ACO-GA K Cj Sp, Tữ, go) Input: Kn, Cịị, Sp, T0, g0 tương ứng là đồ thị, ma trận chi phí, kích thước quần thế, giá trị khởi tạo vết mùi, thông tin di truyền. Output: Cá thể tốt nhất tìm được Gk. HKhởi tạo thông tin vết mùi và di truyền trên các cạnh P=<Z;//khm tạo quần thể rông for (i = 1; i < n; i++) for ( = 1; j < n; j++) y[i][/’] = To; g[i][/] = go; while (điều kiện dừng của ACO-GA chưa thỏa) {k=0; while (k < Sp) { rd = random(100);//rd là sâ ngâu nhiên €E (1, 1 00) Tk = {v1}; //khởi tạoTk gồm đỉnh xuất phát V1 vnext = v1; //khởi tạo đỉnh xuất phát vnext cho kiến while (|Tk| < n) { Đặt Nk = {Vj | Vj £Tỵ //Chọn đỉnh kế tiếp nhờ roulette_Wheel vnext =roulette_Wheel(vnext, rd, Nk); Tk = Tị,J {v1}; //bố sung đỉnh mới vào Tk }//end of while (|Tk| < n) HCập nhập thông tin vết mùi theo (2.4), (2.5) for (i = 1; i < n; i++) { delta_r[Tk [i],Tk[i+1]] = ơ/ L(Tk); T[Tk [i],Tk[i+1]] = (1-p)*T[Tk_[i],Tk[i+1]]^ + delta_T [Tk [i],Tk[i+1]]; }//end of for (i = 1; i < n; i++) k++; P=P^{Tk};//bo sung cá thể kiến Tk vào quần thể P }//end of while (k < Sp) //Các bước của thuật toán di truyền //Quần thể ban đầu P bao gồm các hành trình //tạo được bởi các cá thể kiến G* = cá thể tốt nhất trong quần thể P; while (điều kiện dừng của thuật toán di truyền chưa thỏa) { Pad = 0; //khởi tạo tập các cá thế con for (i = 1; i < Sp; i++) { //Lựa chọn cá thể cha TP và cá thể mẹ TM (TP, tM) = selectionOperator(P); //hàm rand(1) trả lại số ngâu nhiên €E (0, 1) if (rand(1) < Pc) { //lai ghép cá thế cha mẹ TC = crossoVerOperator(TP, TM); if (random(1) < Pm) //đột biến cá thể con TC = mutationOperator(TC); TC=localSearch(TC); //tìm kiếm địa phương //cập nhập cá thế tốt nhất: if (L(TC) < L(G*)) G* = TC; Bố sung TC vào Pad; }//end of if (rand(1) < Pc) }//end of for (i = 1; i < Sp; i++) P = tập gồm Sp cá thế tốt nhất trong P cPak, //Cập nhập thông tin di truyền theo (2.6), (2.7) for (i = 1; i < n; í++) { delta_ g[G*[i],G*[i+1]] = ơ / L(G*); g[G*[i],G*[i+1]] = g[G*[i],G*[i+1]] _ + delta_ g[G*[i],G*[i+1]]; } //end of for (i = 1; i < n; i++) }//end of while GA }//end of while ACO-GA return (cá thế tốt nhất tìm được bởi ACO-GA) Algorithm 2. Function roulette_Wheel (vi, rd, Nk) Input: vi, rd, Nk tương ứng là đỉnh hiện tại, giá trị số trong khoảng 1 đến 100, tập các đỉnh chưa thăm trong Tk. Output: Đỉnh v được chọn đi kế tiếp vi. sum_Prob = 0; if (rd < 50) { //loại kiến sử dụng vết mùi và thông tin di truyền for Vj£ Nk sum_Prob = sum_Prob + pow(ĩ[i,j], p,) *pow( 7 [i,/], PP) *pow(g[ij], Pg); //lựa chọn đỉnh kế tiếp theo (2.1) for Vj G.Nk p[i,j} = wpcVPỉ)*pow(^ j *pow(g[ij], pg) / sum_Prob; rd = random(sum_Prob); //0 < rd < sum_Prob for vj eNk{ sum_ wheel = sum_wheel + p[ij]; if (sum_wheel > rd) break; }//end for vj €E Nk ,v = j ' }//end if (rd < 50) if (50 < rd < 80) { //loại kiến chỉ sử dụng vết mùi for Vj£ Nk sum_Prob = sum_Prob + powipij], p,) , *pow(^[ij], PP); //chọn đỉnh kế tiếp theo (2.2) for Vj£ Nk p[ij\ = pow(T[ij],^)*pow(7 [i\/], PQ) /sum_Prob; rd = random(sum_Prob); for VjeNk { sum_wheel = sum_wheel + p[i,j]; if (sum_wheel > rd) break; }//end for vj G Nk ,v = vÁ }//end if (50 < rd < 80) if (rd > 80)///loại kiến ngâu nhiên //chọn đỉnh kế tiếp theo (2.3) chọn ngẫu nhiên v e Nk; return v; Algorithm 3. Function selectionOperator(P) Input: Quân thê P = {p[1], p[2], ..., p[Sp]} Output: Cá thê cha TP ' và cá thê mẹ TM. ' //chọn một nhóm cá thể ngẫu nhiên từ quần thể P IG=0; // Khởi tạo for (i = 0; i < NG; i++) { i = random(Sp); IG= IGu {p[i]}; }//end of for (i = 0; i < NG; i++) Sắp xếp các cá thể trong nhóm IG tăng dần theo độ trễ; //Chọn hai cá thể với độ trễ nhỏ nhất làm cá thể cha và mẹ TP = IG[0]; TM = IG[1]; return TP, TM; Thuật toán ACO-GA duy trì ba loại kiến. Loại kiến đầu tiên sử dụng thông tin về vết mùi và thông tin về di truyền để lựa chọn đỉnh kế tiếp. Nếu cá thể kiến thứ k thuộc loại này, nó sẽ di chuyển từ đỉnh Vj đến đỉnh Vj (Vj 2 Nk) với xác suất: (2:1) p1 [n-!ij I8- kfej Ị8’ [gij Ị8* pkij P |rnijI8- ['gkijI8’ |9ijI8. • Vj 2Nk Loại kiến thứ hai chỉ sử dụng thông tin về vết mùi để lựa chọn đỉnh kế tiếp. Nếu cá thể kiến thứ k thuộc loại hai, thì nó sẽ di chuyển từ đỉnh vi đến đỉnh Vj với xác suất là: p2 _ [Tfe-1ij|8- k/Ci.7]8’ (2 2) Pkij = P k-iijI8-l^fcijI8’• (:) Vj 2Nk Cuối cùng, loại kiến thứ ba không sử dụng bất cứ thông tin nào về mùi, cũng như thông tin di truyền. Nếu cá thể kiến thứ k thuộc loại này thì xác suất để nó di chuyển từ đỉnh vi đến đỉnh Vj là: pkij = ĨNĨ • (2:3) ỏ đây 0T, và fig là các tham số, r//,.i; = 1/(pCị,j) (p là vị trí của cạnh (vi,Vj) trong đường đi của cá thể kiến thứ k). Công thức (2.1) và (2.2) được cải biên từ công thức có trong thuật toán ACO chuẩn của Marco Dorigo [7]. Số lượng kiến loại một, hai và ba sẽ được xác định một cách ngẫu nhiên với tỷ lệ tương ứng là 50%, 30% và 20% (theo nhận xét đã nêu ở trên, ta giữ 20% số lượng kiến không có khả năng sử dụng vết mùi để tìm đường đi). Để thực hiện điều này, khi cần xác định cá thể kiến hiện tại thuộc loại nào trong ba loại trên, ta gieo một số ngẫ ... ác hiệu quả của thuật toán, ta xét thẽm hai bộ dữ liệu ngẫu nhiẽn với kích thước nhỏ mà lời giải tối ưu của chúng tìm được nhờ sử dụng thuật toán giải đúng [4]. Để đánh giá hiệu quả của thuật toán, hai thực nghiệm được tiến hành. Dữ liệu trong thực nghiệm đầu tiẽn bao gồm bộ dữ liệu TSPLIB và các bộ dữ liệu ngẫu nhiẽn của A. Salehipour et al. Trong thực nghiệm này, chúng ta so sánh kết quả thu được từ thuật toán ACO-GA với các kết quả từ các công trình nghiẽn cứu liẽn quan [3, 10, 12]. Do lời giải tối ưu của các bộ dữ liệu này chưa được biết (ngoại trừ lời giải tối ưu cho bộ dữ liệu ngẫu nhiẽn của A. Salehipour et al. khi n = 50 được lấy từ [10]), cho nẽn hiệu quả của các thuật toán chỉ được đánh giá một cách tưong đối. Thực nghiệm thứ hai được thực thi trẽn các bộ dữ liệu ngẫu nhiẽn mà lời giải tối ưu của chúng tìm được nhờ sử dụng thuật toán giải đúng trong [4]. Khi biết lời giải tối ưu, ta có thể đánh giá một cách chính xác hiệu quả của thuật toán đề xuất. Trong các thực nghiệm, ta lựa chọn giá trị cho các tham số trong thuật toán ACO-GA như sau: m = 10, Sp = 300; NG = 5, Pc = 0.7, Pm = 0.2, l = 5 , = 1, = 5, fig = 5, T = 10, To = 10; g0 = 1, p = 0.3 và Np = 20. Bảng 1. Kết quả thực nghiệm các thuật toán cho bộ dữ liệu của A. Salehipour et al. (n = 50) File dữ liệu OPT M. Silva et al. GA ACO-GA Best sol Best sol Aver Sol T Best sol Aver Sol Gap[%] T TRP-50-R1 12198 12198 12709 12709 3.0 12198 12198 0.00 0.50 TRP-50-R2 11621 11621 12845 12921 3.2 11621 11674 0.00 0.52 TRP-50-R3 12139 12139 12904 12904 3.5 12139 12139 0.00 0.51 TRP-50-R4 13071 13071 13925 13925 3.6 13071 13071 0.00 0.48 TRP-50-R5 12126 12126 12726 12726 2.9 12126 12284 0.00 0.47 TRP-50-R6 12684 12684 13245 13245 3.1 12684 12684 0.00 0.50 TRP-50-R7 11176 11176 11991 11991 3.2 11176 11176 0.00 0.51 TRP-50-R8 12910 12910 13558 13754 3.1 12910 12945 0.00 0.52 TRP-50-R9 13149 13149 13845 13845 3.3 13149 13149 0.00 0.48 TRP-50-R10 12892 12892 13740 13740 2.9 12892 12892 0.00 0.47 TRP-50-R11 12103 12103 12565 12565 2.8 12103 12181 0.00 0.45 TRP-50-R12 10633 10633 11657 11657 2.9 10633 10633 0.00 0.47 TRP-50-R13 12115 12115 12870 12870 3.0 12115 12115 0.00 0.40 TRP-50-R14 13117 13117 13659 13721 3.1 13117 13117 0.00 0.50 TRP-50-R15 11986 11986 12793 12793 3.2 11986 11986 0.00 0.51 TRP-50-R16 12138 12138 12803 12803 3.3 12138 12138 0.00 0.43 TRP-50-R17 12176 12176 13387 13387 3.4 12176 12176 0.00 0.42 TRP-50-R18 13357 13357 13988 13988 3.5 13357 13357 0.00 0.44 TRP-50-R19 11430 11430 11911 12012 3.0 11430 11430 0.00 0.47 TRP-50-R20 11935 11935 12409 12409 3.0 11935 11935 0.00 0.42 Trung bình 3.1 0.00 0.47 Bảng 2. Kết quả thực nghiệm các thuật toán cho bộ dữ liệu của A. Salehipour et al. (n = 100) File dữ liệu A.Salehipour et al. M. Silva et al. GA ACO-GA Best Sol Best Sol Best Sol Aver Sol T Best Sol Aver Sol Gap[%] T TRP-100-R1 35334 32779 35334 35334 6.2 32779 32779 0.00 1.12 TRP-100-R2 38442 33435 36773 36773 6.4 33435 33435 0.00 1.21 TRP-100-R3 37642 32390 35150 35320 7.1 32390 32390 0.00 0.84 TRP-100-R4 37508 34733 37508 37751 7.3 34733 34733 0.00 0.92 TRP-100-R5 37215 32598 35254 35254 6.7 32598 32598 0.00 1.04 TRP-100-R6 40422 34159 36988 36988 6.5 34212 34212 0.16 1.25 TRP-100-R7 37367 33375 36897 36941 6.3 33375 33375 0.00 0.81 TRP-100-R8 38086 31780 35408 35510 6.4 31780 31780 0.00 0.91 TRP-100-R9 36000 34167 36415 36574 6.8 34167 34167 0.00 0.72 TRP-100-R10 37761 31605 34018 34018 7.0 31812 31812 0.65 0.84 TRP-100-R11 37220 34188 37006 37006 7.1 34188 35534 0.00 0.85 TRP-100-R12 34785 32146 35437 35437 6.5 32899 32899 2.34 0.77 TRP-100-R13 37863 32604 35239 35512 6.7 31989 31989 -1.89 0.81 TRP-100-R14 36362 32433 34869 34869 6.8 33601 33601 3.60 0.92 TRP-100-R15 39381 32574 35640 35640 7.0 32574 32574 0.00 0.81 TRP-100-R16 39823 33566 37083 37083 6.9 34818 34818 3.73 0.85 TRP-100-R17 41824 34198 37058 37421 7.1 36297 36297 6.14 0.91 TRP-100-R18 39091 31929 35109 35109 7.2 31929 31929 0.00 0.84 TRP-100-R19 39941 33463 36457 36457 6.4 33463 33463 0.00 0.87 TRP-100-R20 39888 33632 35998 35998 6.3 33632 33632 0.00 0.82 Trung bình 6.5 0.74 0.91 4.1. Thực nghiệm 1 Trong thực nghiệm này, thuật toán ACO-GA thực thi trẽn bộ dữ liệu TSPLIB và bộ dữ liệu ngẫu nhiẽn của A. Salehipour et al. [10]. Mỗi bộ dữ liệu bao gồm các file dữ liệu thực nghiệm. Mỗi file lưu trữ tọa độ của các đỉnh. Ta thực thi thuật toán 10 lần trẽn mỗi file dữ liệu. Kết quả thực nghiệm được trình bày trong các Bảng từ 1 đến 3. Trong các bảng này, cột Best Sol, Aver Sol lần lượt là kết quả tốt nhất và kết quả trung bình thu được sau 10 lần chạy (UBọ U B\) các thuật toán. Cột gap[%] ghi nhận giá tri gap\%] = 2— 100%; trong đó UB2 và U B1 UB1 lần lượt là lời giải tốt nhất thu được từ thuật toán ACO-GA và thuật toán của M. Silva et al. Cột T là thời gian chạy trung bình của thuật toán tính bằng phút. Trong Bảng 1, cột OPT tưong ứng với giá tri tối ưu. Trong Bảng 3, kết quả thực nghiệm thuật toán của Archer et al. được lấy từ [1]. Dấu “-” nghĩa là không có kết quả thực nghiệm với thuật toán tưong ứng. Kết quả thực nghiệm trình bày trong các Bảng từ 1 đến 3 chứng tỏ thuật toán ACO-GA hiệu quả hon thuật toán di truyền GA [3] cả về chất lượng lời giải và thời gian chạy. So với lời giải tối ưu có được trong Bảng 1, thuật toán ACO-GA đưa ra được lời giải tối ưu cho tất cả các file dữ liệu. Kết quả thực nghiệm cũng cho thấy, thuật toán ACO-GA cho lời giải tốt hon thuật toán của Archer et al. và A. Salehipour et al. ở tất cả các file dữ liệu. Trong các bộ dữ liệu ngẫu nhiẽn ACO-GA cho lời giải với chất lượng rất sát với chất lượng lời giải được đưa ra bởi thuật toán của M. Silva et al. Cụ thể, gap[%] trung bình trong Bảng 1 và 2 lần lượt là 0.00% và 0.74%. Đặc biệt, đối với file dữ liệu TPR-S100-13, thuật toán ACO-GA đưa ra lời giải tốt hon so với thuật toán của M.Silva et al. Đối với các bộ dữ liệu trong TSPLIB, kết quả thực nghiệm trong Bảng 3 cho thấy thuật toán ACO-GA đưa ra lời giải với chất lượng Bảng 3. Kết quả thực nghiệm các thuật toán cho bộ dữ liệu TSPLIB File dữ liệu Archer et al. A.Salehipour et al. M. Silva et al. GA ACO-GA Best Sol Best Sol Best Sol Best Sol T Best Sol T st70 26384 19553 19215 19893 4.20 19215 0.61 rat195 280900 213371 210191 245412 9.10 210191 4.30 kroD100 1297932 976830 949594 976830 6.00 948325 1.50 pr226 10421449 7226554 7100308 7212541 10.1 7100308 4.12 lin105 780662 585823 585823 598375 6.15 585823 1.56 pr107 2205490 1983475 1980767 21750029 6.17 1973726 1.62 lin318 7475822 5876537 5560679 5876537 13.2 5560679 9.25 pr439 24126010 18567170 17688561 18567170 20.0 17688561 13.1 att532 - 18448435 5581240 18448435 23.0 18448435 18.5 rat99 75048 56994 54984 58327 5.5 57896 1.41 eil101 38582 30235 6.0 29123 1.48 eil76 26128 18243 4.3 18023 0.65 eil51 14683 10281 3.0 9952 1.51 kroE100 1345314 984759 5.8 955272 1.41 kroA200 3387616 2962453 8.7 2845318 4.12 kroB200 3731218 3000409 8.5 2939494 4.23 rd100 458419 370645 5.7 355985 1.43 tsp225 537080 463666 9.4 454714 4.62 d198 1380470 1309819 9.1 1204997 4.12 u159 3837650 3169661 6.7 2836575 3.25 bier127 5929120 5011031 7.8 4768611 1.81 gil262 393641 327534 11.5 325679 4.23 tốt hơn so với các thuật toán còn lại ở hầu hết các file dữ liệu (ngoại trừ đối với hai file dữ liệu att532 và rat99, thuật toán đưa ra lời giải với chất lượng kém hơn so với thuật toán của M. Silva et al.). Tuy nhiên, thời gian chạy của thuật toán ACO-GA lớn hơn thời gian chạy của thuật toán M.Silva et al. Bảng 4. Kết quả thực nghiệm các thuật toán cho các bộ dú liệu ngẫu nhiên (n = 40) File dữ liệu OPT GA ACO-GA Best Sol Aver Sol Gap[%] T Best Sol Aver Sol Gap[%] T eil51 6140 6140 6140 0.00 2.5 6140 6140 0.00 0.30 eil76 5894 5894 5894 0.00 2.6 5894 5894 0.00 0.25 st70 7801 7801 7801 0.00 2.5 7801 7801 0.00 0.24 rat195 18058 18265 18285 1.15 2.7 18058 18058 0.00 0.21 kroA100 239680 241012 241741 0.56 2.6 239680 239854 0.00 0.20 kroB100 245999 247541 248041 0.63 2.5 245999 24612 0.00 0.21 kroC100 1122890 1145124 1147815 1.98 2.8 1122890 1122890 0.00 0.22 berlin52 1372572 1372572 1372952 0.00 2.9 1372572 1372854 0.00 0.24 pr76 1122891 1123541 1123654 0.06 2.7 1122891 1122301 0.00 0.21 tsp225 27523 27523 27618 0.00 2.8 27523 27523 0.00 0.22 tss225 1138068 1138068 1138230 0.00 2.7 1138068 1138068 0.00 0.24 lin105 140450 140450 1405412 0.00 2.8 140450 140450 0.00 0.21 test 1 8105 8105 8105 0.00 2.7 8105 8105 0.00 0.24 test 2 9248 9248 9248 0.00 2.8 9248 9248 0.00 0.22 test 3 8584 8630 8658 0.54 2.7 8584 8584 0.00 0.25 test 4 9240 9263 9267 0.25 2.6 9240 9278 0.00 0.24 test 5 8097 8097 8097 0.00 2.7 8097 8138 0.00 0.23 test 6 9490 9506 9519 0.17 2.8 9490 9490 0.00 0.24 test 7 8450 8517 8564 0.79 2.7 8450 8450 0.00 0.25 test 8 8426 8426 8426 0.00 3.0 8426 8426 0.00 0.25 test 9 8987 9018 9023 0.34 2.7 8987 8987 0.00 0.24 test 10 9705 9713 9719 0.08 2.8 9705 9705 0.00 0.23 test 11 9526 9526 9556 0.00 2.7 9526 9545 0.00 0.22 test 12 8827 8838 8872 0.12 2.5 8827 8827 0.00 0.21 test 13 9440 9450 9475 0.11 2.6 9440 9440 0.00 0.20 test 14 8539 8539 8539 0.00 2.7 8539 8562 0.00 0.27 test 15 8321 8321 8321 0.00 2.7 8321 8321 0.00 0.24 test 16 8327 8434 8457 1.28 2.6 8327 8327 0.00 0.26 test 17 8300 8302 8302 0.02 2.5 8300 8300 0.00 0.24 test 18 9520 9520 9520 0.00 2.7 9520 9520 0.00 0.22 test 19 9759 9769 9792 0.10 2.8 9759 9759 0.00 0.21 test 20 8782 8785 8813 0.03 2.7 8782 8782 0.00 0.22 Trung bình 0.26 2.69 0.00 0.23 4.2. Thực nghiệm 2 Hai bộ dữ liệu ngẫu nhiên được sử dụng là một bộ dữ liệu Euclid và một bộ dữ liệu phi Euclid. Mỗi bộ dữ liệu bao gồm các file dữ liệu có kích thước nhỏ (số đỉnh của đồ thị trong mỗi file dữ liệu n 9, các đỉnh được phân bố thưa). Nhóm 3 các đỉnh được phân bố đặc biệt (chẳng hạn, nhiều đỉnh cách đều nhau hoặc nằm trên một đường thẳng). Chia các file dữ liệu trong TSPLIB trên thành ba nhóm. Trong mỗi nhóm, chọn ra bốn file dữ liệu làm đại diện và thực hiện trích chọn ngẫu nhiên 40 đỉnh từ các file dữ liệu trong nhóm đó. Cụ thể, nhóm 1 gồm các file dữ liệu được trích chọn từ eil51, st70, eil76 và rat195. Nhóm 2 gồm các file dữ liệu được trích chọn từ kroA100, kroB100, KroC100 và Berlin52. Cuối cùng, các file dữ liệu được trích chọn từ tsp225, tss225, pr76 và lin105 thuộc về nhóm 3. Kết quả thực nghiệm được trình bày trong Bảng 4. Trong Bảng 4, cột OPT, Best Sol (UB) và Aver Sol lần lượt là giá trị tối ưu, kết quả tốt nhất và kết quả trung bình thu được từ các thuật toán sau 10 lần chạy. Cột gap[%] vẫn ghi (UB - OPT1 _ , _ _ - bình của các thuật toán tính bằng phút. giá trị gap[%] = OPT -100% như trong ba bảng trước và cột T là thời gian chạy trung Kết quả thực nghiệm trong Bảng 4 cho thấy thuật toán ACO-GA hiệu quả hon thuật toán di truyền GA [3] cả về chất lượng lời giải và thời gian chạy thuật toán. Hon nữa, đối với tất cả các bộ dữ liệu kích thước nhỏ này, thuật toán ACO-GA luôn tìm được lời giải tối ưu. KẾT LUẬN Bài báo đã đề xuất thuật toán di truyền lai ghép với thuật toán đàn kiến giải bài toán MLP, trong đó thuật toán đàn kiến có vai trò khỏi tạo quần thể cho thuật toán di truyền, còn thuật toán di truyền có vai trò định hướng cho đàn kiến lựa chọn đường đi. Thuật toán được chạy thử nghiệm trên các bộ dữ liệu chuẩn để so sánh hiệu quả với các thuật toán hiện biết. Đối với bộ dữ liệu ngẫu nhiên, thuật toán đề xuất cho lời giải tốt hon các thuật toán tốt nhất hiện biết trên nhiều bộ dữ liệu. Đối với bộ dữ liệu TSPLIB, thuật toán tỏ ra hiệu quả hon khi luôn đưa ra lời giải tốt hon hoặc không thua kém các thuật toán tốt nhất. Tuy nhiên, thời gian chạy của thuật toán vẫn cần được cải thiện để đáp ứng được các yêu cầu thực tiễn. Một trong những hướng để giải quyết vấn đề này là thực hiện song song hóa thuật toán đề xuất. Đó là vấn đề sẽ tiếp tục nghiên cứu trong thời gian tới. TÀI LIÊU THAM KHẢO A. Archer, A. Levin, and D. Williamson, A faster, better approximation algorithm for the minimum latency problem, SIAM Journal on Computing 37 (1) (2007) 1472-1498. S. Arora, and G. Karakostas, Approximation schemes for minimum latency problems, SIAM Journal on Computing 32 (2) (1999) 688-693. H.B. Ban, and D.N. Nguyen, Improved genetic algorithm for minimum latency problem, Proceedings of ACM SOICT, Hanoi, Vietnam, 2010 (9-15). H.B. Ban, K. Nguyen, M.C. Ngo, and D.N. Nguyen, An efficient exact algorithm for minimum latency problem, Journal on Progress of Informatics (10) (2013) 1-8. A. Blum, P. Chalasani, D. Coppersmith, W. Pulleyblank, P. Raghavan, and M. Sudan, The minimum latency problem, Proceedings of ACM Symposium on the Theory of Computing, Quebec, Canada, 1994 (163-171). K. Chaudhuri, B. Goldfrey, S. Rao, and K. Talwar, Path, Tree and minimum latency tour, Proceedings of IEEE Foundations of Computer Science, MA, USA, 2003 (36-45). M. Dorigo, and T. Stutzle, Ant Colony Optimization, Bradford Books, London, 2004. M. Goemans, and J. Kleinberg, An improved approximation ratio for the minimum latency problem, Proceedings of ACM-SIAM Symposium on Discrete Algorithms, MA, USA, 1996 (152-158). H. Hasegawa, Optimization of GROUP behavior, Japan Ethological Society Newsletter (43) (2004) 22--23. A. Salehipour, K. Sorensen, P. Goos, and O.Braysy, Efficient GRASP+VND and GRASP+VNS metaheuristics for the traveling repairman problem, Journal on Operations Research 9 (2) (2011) 189--209. S. Sahni, and T. Gonzalez, P-complete approximation problem, Journal on ACM 23 (3) (1976) 555-565. M. Silva, A. Subramanian, T. Vidal, and L. Ochi, A simple and effective metaheuristic for the Minimum Latency Problem, Journal on Operations Research 221 (3) (2012) 513--520. S. Shimomura, M. Sugimotoy, T. Haraguchiy, H. Matsushitaz, and Y. Nishioy, Ant colony optimization with intelligent and dull ants, Proceedings of Symposium on Nonlinear Theory and its Applications, Krakow, Poland, 2010 (504-507). D. S. Johnson, and L. A. McGeoch, The traveling salesman problem: A case study in local optimization, Local Search in Combinatorial Optimization, E. Aarts and J. K. Lenstra, eds, Wiley, 215-310, 1997. B.Y. Wu, Z.N. Huang, and F.J. Zhan, Exact algorithms for the minimum latency problem, Journal on Inf. Process. Lett. 92 (6) (2004) 303-309. Ng ày nhận bài 01 - 3 - 2013 Nhận lại sau sửa ngày 10 - 8 - 2013
File đính kèm:
- thuat_toan_di_truyen_lai_ghep_thuat_toan_dan_kien_giai_bai_t.doc
- 2779_11555_1_pb_2455_483356.pdf