CHƢƠNG 3
THUẬT TOÁN HỆ KIẾN MAX-MIN
3.1 Thuật toán hệ kiến MAX-MIN 3.1.1 Giới thiệu hệ kiến MAX-MIN 3.1.1 Giới thiệu hệ kiến MAX-MIN
Nghiên cứu trên ACO cho thấy hiệu suất cao hơn có thể đạt được bằng việc khảo sát nhiều hơn nữa những lời giải tốt nhất tìm được qua tìm kiếm. Mấu chốt để đạt được hiệu suất tốt nhất cho thuật toán ACO là kết hợp các lời giải ưu việt trong số các lời giải tốt nhất thu được trong quá trình tìm kiếm với một cơ cấu hiệu quả nhằm tránh các tắc nghẽn trong quá trình tìm kiếm.
Hệ kiến MAX-MIN sẽ đáp ứng được các yêu cầu trên, nó là thuật toán đầu tiên áp dụng cập nhật mùi theo quy tắc Max-Min, nó có 3 sự khác biệt đối với thuật toán tiền thân là AS.
i. Khai thác lời giải tốt nhất tìm thấy trong quá trình lặp hoặc khi thực hiện giải thuật, sau mỗi lần lặp chỉ một con kiến duy nhất được cập nhật mùi. Con kiến này là một trong những con kiến tìm ra lời giải tốt nhất trong bước lặp hiện tại (iteration-best ant) hoặc tìm ra lời giải toàn cục tốt nhất (global-best ant).
ii. Tránh sự tắc nghẽn trong quá trình tìm kiếm do khống chế được vết mùi, phạm vi của vết mùi trong mỗi lời giải được giới hạn trong đoạn [max, min].
iii. Ngoài ra, các vết mùi luôn được khởi tạo có giá trị max, làm cho luôn đạt sự bốc mùi mạnh của lời giải khi bắt đầu giải thuật.
3.1.2. Cập nhật vết mùi
Trong hệ kiến MAX-MIN chỉ sử dụng một con kiến để cập nhật vết mùi sau mỗi lần lặp. Do đó việc cập nhật mùi được thay đổi bởi công thức:
best ij ij
ij t t
( 1) . ( )
Trong đó best 1 ( best)
ij f s
và ( best)
s
f biểu hiện chi phí của lời giải bước lặp tốt nhất (iteration-best solution ib
S ) hoặc lời giải toàn cục tốt nhất (global-best solution gb
S ). Ý tưởng dùng một con kiến để việc cập nhật vết mùi đã được đề xuất trong ACS, nhưng ACS chỉ có gb
S được sử dụng (có một số thử nghiệm dùng ib
S đã đạt hiệu quả) còn MMAS tập trung vào dùng ib
S . Việc áp dụng ib
S hoặc gb
S trong việc cập nhật vết mùi có ý nghĩa quan trọng trong tìm kiếm của hệ kiến MAX-MIN. Với lựa chọn này, các thành phần lời giải xuất hiện trong các lời giải tốt nhất sẽ được tăng cường hơn.
Khi chỉ sử dụng gb
S , việc tìm kiếm có thể tập trung quá vào một lời giải và việc tìm kiếm các lời giải tốt hơn sẽ bị hạn chế, có nguy cơ rơi vào tình trạng nghèo nàn về chất lượng các lời giải. Nguy cơ này giảm đi khi ib
S được chọn để cập nhật vết mùi, từ đó lời giải cục bộ sẽ khác nhiều sau những lần lặp và một số lớn các thành phần lời giải được tăng cường. Cũng có thể sử dụng ib
S cập nhật mặc định vết mùi, còn gb
S được cố định trong mỗi bước lặp. Trong thực nghiệm với bài toán TSP chúng tôi dùng ib
S để cập nhật vết mùi và cứ sau 50 bước lặp thì dùng gb
S , kết quả đạt được tốt hơn.
Khi sử dụng hệ kiến MAX-MIN với kỹ thuật tìm kiếm địa phương để giải quyết một số bài toán TSP hoặc QAP lớn, cách tốt nhất là sử dụng một cách thức kết hợp năng động, cách thức này sẽ gia tăng tần suất sử dụng gb
S cho việc cập nhật vết mùi trong suốt quá trình tìm kiếm.
- 33 -
3.1.3. Giới hạn của vết mùi
Ngay cả khi lựa chọn giữa con kiến ở bước lặp tốt nhất hoặc toàn cục tốt nhất để cập nhật vết mùi thì việc gặp khó khăn trong tìm kiếm vẫn có thể xảy ra, đó là tình trạng tắc nghẽn. Tại một thời điểm lựa chọn, vết mùi tại một bộ phận lời giải cho một lựa chọn cao hơn hẳn so với các lựa chọn khác. Trong trường hợp TSP, tồn tại một số các cung luôn có mức mùi đậm, trong trường hợp này, theo xác suất cho bởi công thức 1.1, con kiến sẽ thích các cung có nồng độ mùi cao và dẫn đến việc chọn đi chọn lại một đường đi. Rõ ràng là nên tránh tình trạng tắc nghẽn như thế này. Một biện pháp để đề phòng là tác động tới xác suất lựa chọn lời giải tiếp theo, xác suất này phụ thuộc trực tiếp vào các vết mùi và thông tin kinh nghiệm (heuristic information). Thông tin heuristic là một vấn đề độc lập và tồn tại suốt quá trình thuật toán thực hiện, ta khó có thể tác động vào. Nhưng với việc giảm bớt lượng vết mùi chúng ta có thể dễ dàng tránh được những tình trạng trên.
Để làm được điều này, hệ kiến MAX-MIN đưa vào 2 giới hạn max là giá trị lớn nhất và min là giá trị nhỏ nhất của vết mùi. Còn các vết mùi khác có giá trị là:ij(t), min ij(t) max
Sau mỗi lần lặp giá trị của vết mùi sẽ nằm trong giới hạn đã chỉ ra. Nếu max
) (
ij t thì ta đặt ij(t)max . Tương tự, nếu ij(t)minthì ta đặt
min
) (
ij t .
Chú ý rằng, với min >0 và nếu ij với tất cả các lời giải, xác suất lựa chọn một lời giải cụ thể không bao giờ bằng 0.
Khi hệ kiến MAX-MIN hội tụ (theo chứng minh ở định lý 1 về xác suất tìm được lời giải tối ưu cho lớp ACOgb, min) thì trong lời giải tối ưu có max tương ứng với giá trị vết mùi, trong khi các lời giải khác có giá trị vết mùi là min. Lời giải được xây dựng bởi cách chọn đường đi với những vết mùi lớn nhất và như vậy ta sẽ tìm được lời giải tốt nhất của giải thuật.
Vết mùi khởi tạo
Trong hệ kiến MAX-MIN đặt giá trị ban đầu cho các vết mùi là max. Kiểu tạo lập vết mùi này nhằm gia tăng khả năng khai thác các lời giải trong những bước lặp của thuật toán.
3.1.4 Giá trị của thông số
Để xác định sự ảnh hưởng khác nhau của tỷ lệ bay hơi vết mùi tới tốc độ hội tụ của thuật toán hệ kiến Max-Min, chúng tôi thử nghiệm thuật toán MMAS với các tham số khác nhau với 2 bộ dữ liệu của TSP là kroA100 và d198:
Bảng 1:
Ảnh hưởng của tham số tới sự hội tụ của MMAS.
Bộ dữ liệu =0.98 =0.95 =0.90 =0.80 =0.70 kroA100.tsp 22527best 22818.60avg 21433best 21598.90avg 21320best 21528.30avg 21361best 21648.20avg 21468best 21770.70avg d198.tsp 17289best 17490.9avg 16734best 16922.1avg 16408best 16614.50avg 16201best 16486.00avg 16358best 16557.50avg
Với 10 lần thử, số lượng bước lặp là 10000 và thay đổi giữa 0.7 và 0.99. Ta thấy = 0.90 thì hệ kiến Max-Min hội tụ nhanh hơn so với các giá trị khác của .
- 35 -
3.1.5 Khởi tạo vết mùi
Trong MMAS khi khởi tạo giá trị các vết mùi được đặt là max. Để thể hiện sự hữu ích của việc đặt giá trị vết mùi chúng tôi so sánh nó với giá trị vết mùi được khởi tạo là min với các tham số tĩnh và số lần chạy như nhau, kết quả được cho trong bảng 2. Ta thấy rằng, các cung luôn có sự bốc mùi mạnh khi khởi tạo vết mùi là max , hầu hết lời giải tốt hơn có thể tìm được khi khởi tạo vết mùi là giá trị này, không gian tìm kiếm lớn hơn.
Bảng 2:
Các kết quả thực nghiệm khi khởi tạo vết mùi là max hoặc min. Các bộ dữ liệu được chạy với các tham số tĩnh và số vòng lặp như nhau.
Bộ dữ liệu =max =min
eli51.tsp 429.40 429.20
kroA100.tsp 21528.30 21742.7
d198.tsp 16614.50 17116.8
lin318.tsp 44529.50 47102
3.1.6 Phƣơng thức cập nhật mùi
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.
(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], ijmin 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