Phƣơng thức cập nhật mùi

Một phần của tài liệu Thuật toán hệ kiến Max - Min và ứng dụng (Trang 39)

Như đã đề cập ở phần trên, cập nhật các vết mùi với ib

S tốt hơn trong thực nghiệm so với gb

S . Chúng tôi so sánh hai lựa chọn này bằng cách cùng tiến hành các thử nghiệm như trước, nhưng luôn áp dụng chỉ một trong hai ib

S hoặc

gb

S cho việc cập nhật vết mùi. Ngoài ra, ta xem xét ảnh hưởng cận dưới của vết mùi qua việc tiến hành các thử nghiệm sử dụng hay bỏ qua việc áp đặt các giới hạn vết mùi.

Các kết quả cho trong bảng 3, hiệu suất trung bình khi sử dụng con kiến trong bước lặp hiện tại tốt nhất để cập nhật vết mùi sẽ tốt hơn nhiều so với việc sử

dụng con kiến cập nhật toàn cục. Nói chung, sử dụng gb

S cho việc cập nhật vết mùi không phải biện pháp tốt cho hệ kiến MAX-MIN.

Cận dưới của vết mùi sẽ rất hữu ích trong việc cải thiện việc hiệu suất khi sử dụng gb

S , nếu không có cận dưới thì lượng mùi trên các cạnh sẽ dần về 0, kết quả còn tuỳ thuộc vào cách cập nhật theo ib

S hay gb

S . Tuy nhiên, đôi khi sử dụng các biện pháp kết hợp cả hai có thể giúp đạt được hiệu quả khai thác các kết quả tìm kiếm tốt hơn.

Các thử nghiệm trên các bài toán lớn cho thấy áp dụng những biện pháp kết hợp như trên với một tần số sử dụng gb

S cứ sau 50 bước lặp sẽ đạt được kết quả tốt hơn khi dùng ib

S hay gb

S độc lập.

Bảng 3

Các kết quả thực nghiệm khi so sánh cập nhật toàn cục tốt nhất gb

S với cập nhật bước lặp tại tốt nhất ib

S sử dụng hay bỏ qua các giới hạn dưới của vết mùi, các tham số tĩnh và số bước chạy như nhau.

Bộ dữ liệu

Sibcó giới hạn vết mùi Sgbcó giới hạn vết mùi Sibkhông có giới hạn vết mùi Sgbkhông có giới hạn vết mùi

Tốt nhất Trung bình Tốt nhất Trung bình Tốt nhất Trung bình Tốt nhất Trung bình eli51 426 429.70 426 432.60 428 432.60 434 449.00 kroA100 21369 21440.30 21407 21693.40 21953 22313.50 22159 23117.80 d198 16070 16292.50 16380 16814.00 16409 16678.50 17374 17710 3.1.7. Một số nguyên lý ứng dụng Thông tin học tăng cƣờng

MMAS xác định thông tin học tăng cường qua các vết mùi, xét bài toán TSP vết mùi ij thể hiện độ thích hợp khi con kiến đang đứng ở thành phố i nó

- 37 -

chọn trực tiếp thành phố j, hay nó cung cấp thông tin để đánh giá mối quan hệ giữa hai thành phố i và j. Ngoài ra ij còn giúp con kiến đánh giá xem liệu thành phố i và j có cùng nằm trên một hành trình hay không?

Công việc định nghĩa các vết mùi rất quan trọng, nó có thể dẫn đến giảm việc giảm hiệu quả của thuật toán, thông thường cách tốt nhất là lựa chọn theo trực giác.

Các thông tin heuristic

Trong khi các con kiến xây dựng lời giải, việc sử dụng các thông tin heuristic là quan trọng vì nó tận dụng các tri thức xác định của bài toán. Các tri thức này thường là những yếu tố có sẵn. Trong bài toán tối ưu tổ hợp tĩnh các thông tin heuristic  sẽ chỉ được tính một lần trước khi bắt đầu thuật toán, ví dụ trong bài toán TSP khoảng cách từ thành phố i và thành phố j là dij , thông tin heuristic được định nghĩa ij 1/dij. Các thông tin heuristic có một số ưu điểm:

(i) Dễ tính toán. (adsbygoogle = window.adsbygoogle || []).push({});

(ii) Chỉ phải tính một lần trước khi bắt đầu thuật toán.

(iii) Tại mỗi vòng lặp của thuật toán MMAS có thể tính trước một bảng các giá trị ij(t)[ij] sẽ tiết kiệm được đáng kể thời gian tính toán.

Việc sử dụng các thông tin heuristic là quan trọng cho thuật toán MMAS, nó được kết hợp với tìm kiếm địa phương để cải tiến lời giải. Vì sự thật là tìm kiếm địa phương có được những thông tin chi phí để cải tiến lời giải theo cách trực tiếp hơn. Nói chung các thuật toán ACO khi kết hợp với tìm kiếm địa

phương sẽ tìm ra được những lời giải tốt hơn cho những bài toán khó xây dựng được những thông tin heuristic.

Kết hợp với tìm kiếm địa phƣơng

Với nhiều ứng dụng của các bài toán tối ưu tổ hợp như TSP, bài toán phân chia sản phẩm, hay bài toán định tuyến cho xe cộ, các thuật toán ACO đều có kết quả rất tốt khi kết hợp các thuật toán tìm kiếm địa phương. Các thuật toán tìm kiếm địa phương thường tìm ra các lời giải tối ưu cục bộ và những lời giải đó được dùng để cập nhật vết mùi. Công việc của nó thường định nghĩa ra được một miền cục bộ của lời giải hiện tại và thực hiện tìm kiếm địa phương trong phạm vi này để có được lời giải tối ưu.

Bảng 4:

Kết quả thực nghiệm so sánh với thuật toán MMAS có kết hợp với tìm kiếm địa phương, được chạy 10000 bước lặp và chạy 10 lần để lấy kết quả trung bình.

Bộ dữ liệu MMAS MMAS+local search

Tốt nhất Trung bình Tốt nhất Trung bình

eli51.tsp 426 430.80 426 426.00

kroA100.tsp 21357 21694.00 21282 21282.00 d198.tsp 16181 16529.50 15780 15780.50

Việc sinh ra các lời giải ban đầu cho các thuật toán tìm kiếm địa phương không phải là một nhiệm vụ đơn giản. Ví dụ, với hầu hết bài toán, việc lặp đi lặp lại các tìm kiếm địa phương từ những lời giải ban đầu được sinh ra ngẫu nhiên không phải là hiệu quả lắm. Trong thực nghiệm, các con kiến kết hợp với các thành phần của lời ở bước lặp tốt nhất một cách ngẫu nhiên sẽ sinh ra được những lời giải mới hứa hẹn hơn cho thuật toán tìm kiếm địa phương.

- 39 -

Mặc dù trong thực tế, việc sử dụng các thuật toán tìm kiếm địa phương là một yếu tố quyết định tính hiệu quả cho các ứng dụng ACO, nhưng đối với các bài toán mà các thuật toán ACO thực hiện dễ dàng thì các thuật toán tìm kiếm địa phương lại không áp dụng một cách đơn giản được. Ví dụ là bài toán tìm đường trên mạng hay bài toán tìm dãy chung lớn nhất.

Sử dụng danh sách ứng viên

Một trong những vấn đề khó khăn khi áp dụng hệ kiến Max-Min và các thuật toán ACO nói chung đó là gặp phải những tập láng giềng kích thước lớn trong quá trình xây dựng lời giải. Ví dụ bài toán TSP với số đỉnh lớn, một con kiến bao giờ cũng gặp phải một tập láng giềng kích thước lớn để lựa chọn. Các bài toán tốt là các bài toán giảm đáng kể việc xây dựng lời giải và xác suất nhiều con kiến chọn cùng một đường đi là nhỏ.

Trong các trường hợp này, có thể giảm tải các vấn đề nêu trên bằng việc sử dụng các danh sách ứng cử viên (elitist list). Danh sách ứng cử viên là tập con của tập các láng giềng lân cận của lời giải hiện tại. Chúng được tạo ra dựa trên các thông tin tri thức có sẵn của bài toán. Việc sử dụng này cho phép thuật toán MMAS tập trung vào các thành phần ưa thích của chúng và giảm không gian tìm kiếm. Trong quá trình xây dựng lời giải, con kiến luôn lựa chọn thành phố trong số các tập láng giềng của nó, các thành phố này được sắp xếp theo thứ tự tăng dần về khoảng cách, chỉ có những thành phố như thế mới được chọn.

3.2 Hệ kiến MAX-MIN trơn

Trong các bài toán tìm đường đi, chẳng hạn bài toán TSP, để cải thiện hiệu suất của hệ kiến MAX-MIN, chúng tôi sửa đổi cách cập nhật mùi, gọi là hệ kiến

MAX-MIN trơn (Smooth-MMAS). Như đã trình bày ở trên hệ kiến MAX-MIN chủ yếu tập trung vào khai thác lời giải tốt nhất tìm thấy trong một bước lặp hoặc

trong quá trình thực hiện thuật toán, sau mỗi lần lặp chỉ một con kiến được rải mùi. Thêm một cải tiến nữa là nó tránh được hiện tượng nhiều con kiến chọn cùng một đường đi khi nồng độ mùi tập trung ở đó quá cao bằng cách đưa vào 2 giới hạn của vết mùi là max và min, các vết mùi ij chỉ nằm trong đoạn [max , min], ijmin ij max, khi khởi tạo giá trị của vết mùi được gán bằng max. Trong quá trình thực hiện thuật toán nếu ij < min thì đặt ij = min, tương tự nếu ij > max thì đặt ij = max.

Khi khởi tạo mỗi lần chạy, đặt

) ( 1 . 1 1 max opt s f   

 , trong đó f(sopt) là giá trị lời giải tối ưu trong từng bài toán cụ thể, còn cận dưới của vết mùi được đặt giá trị

n . 2 max min   

Sau mỗi lần lặp mùi được cập nhật như sau:

best ij ij ij t  t   ( 1)  . ( )   Trong đó:      0 1 k best ij L

Lk là chiều dài của đường đi được thực hiện bởi kiến k.

Nhưng do sau mỗi lần lặp lượng mùi trên các cạnh không có kiến k đi qua sẽ bốc hơi bởi tham số , lượng mùi sẽ nhanh giảm xuống min và sẽ ít được các con kiến quan tâm, giảm sự khám phá tìm đường đi của chúng. (adsbygoogle = window.adsbygoogle || []).push({});

Để khắc phục vấn để trên, chúng tôi đề xuất cách cập nhật mùi mới, mục đích là làm cho lượng mùi trên các cạnh giảm chậm xuống min hoặc tăng dần lên max phụ thuộc vào việc các cạnh này không thuộc hoặc thuộc đường đi tốt nhất tìm thấy. Cách cập nhật mùi này không cần phải kiểm tra giới hạn của vết mùi ở hai

Nếu (i,j) thuộc chu trình của kiến k ngược lại

- 41 -

cận trên và dưới nữa, giá trị max và min trong hệ Max-Min trơn cũng không cần phải thay đổi trong các bước lặp, chúng có thể được gán giá trị ngay khi khởi tạo một lần chạy, giảm số lần tính toán trong chương trình. Hình ảnh vết mùi được làm mịn dần sau mỗi bước lặp và việc tăng hoặc giảm chậm đến 2 cận max và min là lý do gọi cách cập nhật mùi này là MAX-MIN trơn.

Cách cập nhật mùi như sau:

ij ij ij      (1 ) Trong đó:      min max   ij

Khi thử nghiệm hệ kiến Max-Min trơn trên 7 bộ dữ liệu của TSP chúng tôi thấy tốt hơn hẳn so với hệ kiến Max-Min. Với các bài toán số đỉnh lớn: khoảng 318 hay 783 đỉnh thì kết quả càng cho thấy khả quan hơn nhiều.

Bảng 5:

Các kết quả thực nghiệm thuật toán hệ kiến Max-Min trơn trên các bộ dữ liệu của TSPvới 10000 bước lặp và chạy 25 lần để lấy kết quả tốt nhất trung bình.

=1, =2, số kiến m=25, =0.85, min=max / (0.0601*n*n-6.0407*n+202.8)

Bộ dữ liệu Kết quả tốt nhất Kết quả trung bình

eli51.tsp 426 (0.00%) 426.68 (0.16%) eli76.tsp 538 (0.00%) 538.84 (0.16%) kroA100.tsp 21282 (0.00%) 21323.00 (0.19%) d198.tsp 15869 (0.56%) 16040.68 (1.65%) lin318.tsp 42175 (0.35%) 42785.71 (1.80%) rat575.tsp 6866 (1.30%) 6915.40 (2.10%) rat783.tsp 8959 (1.60%) 9026.81 (2.40%) ngược lại (i,j)w(t)

Bảng 6:

Kết quả thực nghiệm so sánh với thuật toán MMAS với các tham số tĩnh giống nhau

Bộ dữ liệu MMAS Smooth-MMAS

Tốt nhất Trung bình Tốt nhất Trung bình

eli51.tsp 427 430.60 426 426.68

KroA100.tsp 21292 21428.20 21282 21323.00 d198.tsp 16157 16342.00 15869 16040.68 lin318.tsp 43223 43604.10 42175 42785.71

Ý tưởng cơ bản của kỹ thuật làm trơn vết mùi là làm cho việc tìm đường đi dễ dàng bằng cách tăng xác suất chọn lời giải của những vết mùi thấp, nó làm tăng khả năng khám phá cho các con kiến.

Với những kết quả tốt nhất của hệ kiến Max-Min và ACS đã công bố xem [14] , chúng tôi đã thử nghiệm thuật toán hệ kiến Max-Min trơn với các tham số tĩnh giống như số liệu của bài báo và thấy rằng tất cả các bộ dữ liệu được chạy thử thì hệ kiến Max-Min trơn đều cho kết quả tốt hơn.

Bảng 7:

Kết quả thực nghiệm so sánh thuật toán Max-Min trơn với thuật toán MMAS và ACS với số bước lặp và số lần chạy như nhau.

Bộ dữ liệu

MMAS ACS Smooth-MMAS

Tốt nhất Trung bình Tốt nhất Trung bình Tốt nhất Trung bình eli51.tsp 426 427.2 426 428.06 426 426.68 KroA100.tsp 21282 21352.05 21282 21420 21282 21322.20 d198.tsp 15960 16065.95 15888 16054 15869 16040.68

CHƯƠNG 4

MỘT SỐ ỨNG DỤNG CỦA HỆ KIẾN MAX-MIN

4.1. Cách giải bài toán tối ưu tổ hợp

Các bài toán tối ưu tổ hợp nói chung là rất khó giải, khó tìm ra nghiệm tối ưu. Theo chứng minh về mặt lý thuyết thì độ phức tạp tính toán của những bài toán thuộc lớp NP-khó, thời gian để giải thường tăng theo hàm mũ của kích thước bài toán.

Thông thường để tìm nghiệm tối ưu thì phương pháp “vét cạn” (tìm kiếm theo bề rộng hoặc theo chiều sâu) được sử dụng, về mặt nguyên tắc các phương pháp này sẽ tìm được nghiệm của bài toán nếu bài toán có nghiệm, nhưng trên thực tế, những bài toán NP-khó không thể áp dụng được phương pháp này, vì ta phải phát triển một không gian trạng thái rất lớn trước khi đi tới trạng thái đích, mà do những hạn chế về thời gian tính toán và dung lượng bộ nhớ, không cho phép chúng ta làm được điều đó. (adsbygoogle = window.adsbygoogle || []).push({});

Do đó có rất nhiều thuật toán được đề xuất để tìm nghiệm chấp nhận được của bài toán NP khó. Các thuật toán này tìm lời giải gần tối ưu và là một trong những xu thế phát triển hiện nay đối với lớp các bài toán chưa tìm được lời giải tối ưu thực sự. Trong đó có các thuật toán dùng tư tưởng mô phỏng theo tự nhiên như thuật toán luyện kim, thuật toán di truyền, thuật toán hệ kiến... Theo đánh giá bằng thực nghiệm thì thuật toán hệ kiến tỏ ra là phương pháp hữu hiệu nhất hiện nay.

Như đã trình bày, hệ kiến MAX-MIN thuộc lớp ACOmin, hệ này được nhiều người ưa dùng vì tính đơn giản của nó. Chính vì vậy ngày càng nhiều các bài toán tối ưu tổ hợp được giải bằng thuật toán hệ kiến MAX-MIN nói riêng và các thuật toán ACO nói chung.

- 44 -

Trong chương này, từ các kết quả nghiên cứu và thực nghiệm, chúng tôi trình bày một số bài toán tối ưu tổ hợp tĩnh đã giải được bằng hệ kiến

MAX-MIN.

Phương pháp chung để áp dụng thuật toán hệ kiến MAX-MIN cũng như các thuật toán ACO khác cho một bài toán tối ưu tổ hợp là:

(i) Xây dựng được đồ thị cấu trúc.

(ii) Quy tắc chuyển trạng thái (Xây dựng lời giải). (iii) Thời điểm và Quy tắc cập nhật mùi.

Trong phạm vi của luận án, chúng tôi chỉ trình bày cách áp dụng thuật toán hệ kiến MAX-MIN cho bài toán tối ưu tổ hợp tĩnh.

4.2. Một số ứng dụng

Ngày 05/11/2003 Marco Dorigo được nhận giải thưởng đặc biệt Marie Curie (Marie Curie Excellence Award) của Hội đồng Châu Âu, giải được trao hai năm một lần giành cho 5 nhà khoa học có nhiều đóng góp cho nền khoa học và công nghệ châu Âu. Trong thập kỷ qua từ thuật toán ACO đầu tiên ông đề xuất năm 1991, cho đến nay ACO ngày càng phát triển và có những thành quả to lớn khi ứng dụng chúng để giải các bài toán tối ưu tổ hợp, mở ra một lĩnh vực nghiên cứu và ứng dụng mới thu hút được sự quan tâm của đông đảo các nhà khoa học trên thế giới.

Cho đến nay, các hội nghị và hội thảo về thuật toán kiến được tổ chức nhiều lần: năm 1998, năm 2000, năm 2002. Năm 2004 này có hai hội thảo quốc tế về ACO và ứng dụng ở Bỉ và Canada. Ở mỗi hội nghị có khoảng 30- 40 báo cáo về các công trình nghiên cứu lý thuyết và thực nghiệm có ý nghĩa khoa học và ứng dụng quan trọng, góp phần chứng tỏ ACO là phương pháp tối ưu mô phỏng tự nhiên hiệu quả nhất khi giải các bài toán tối ưu tổ hợp (chi tiết có thể truy cập trang (http://iridia.ulb.ac.be/~ant).

Các ứng dụng của các thuật toán ACO rất phong phú, dưới đây chúng tôi nêu hai bài toán điển hình là bài toán phân công bậc hai và bài toán thời khóa biểu, thể hiện thông tin mùi ở hai dạng khác nhau: ở cạnh hoặc ở đỉnh.

4.2.1. Bài toán phân công bậc hai

Bài toán phân công bậc hai (QAP) là bài toán có ý nghĩa quan trọng

Một phần của tài liệu Thuật toán hệ kiến Max - Min và ứng dụng (Trang 39)