Tải bản đầy đủ (.pdf) (67 trang)

Thuật toán hệ kiến Max - Min và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.42 MB, 67 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
KHOA CÔNG NGHỆ





Nguyễn Thanh Tùng






THUẬT TOÁN HỆ KIẾN MAX-MIN
VÀ ỨNG DỤNG









LUẬN VĂN THẠC SỸ









Hà Nội - 2004
ĐẠI HỌC QUỐC GIA HÀ NỘI
KHOA CÔNG NGHỆ





Nguyễn Thanh Tùng



THUẬT TOÁN HỆ KIẾN MAX-MIN
VÀ ỨNG DỤNG


Chuyên ngành: Cụng nghệ thông tin
Mó số: 1.01.10




LUẬN VĂN THẠC SỸ






NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. Hoàng Xuân Huấn



Hà Nội - 2004

MỤC LỤC

Trang
MỞ ĐẦU 1
Chƣơng 1 – LƢỢC SỬ PHÁT TRIỂN CỦA CÁC THUẬT TOÁN ACO 3
1.1. Nguồn gốc sinh học của các thuật toán kiến 3
1.2. Truyền thông gián tiếp-stigmergy 7
1.3. Quá trình phát triển của các thuật toán ACO 7
1.3.1. Hệ kiến và bài toán TSP 7
1.3.1.1. Bài toán TSP 7
1.3.1.2. Hệ kiến 9
1.3.2. Hệ đàn kiến 12
1.3.3. Thuật toán hệ kiến Max -Min 15
Chƣơng 2 - PHƢƠNG PHÁP TỐI ƢU HOÁ ĐÀN KIẾN: ACO 17
2.1. Một số heuristic ACO 17
2.2. Meta-heuristic tối ƣu hoá đàn kiến 18
2.2.1. Bài toán tổng quát 18
2.2.2. Thuật toán ACO tổng quát 20
2.2.3. Xây dựng lời giải 23
2.2.4. Cập nhật mùi 24
2.3. Đặc tính hội tụ của vết mùi 25
2.4. Các thuật toán trong ACO

min
28
Chƣơng 3 - THUẬT TOÁN HỆ KIẾN MAX-MIN 31
3.1. Thuật toán hệ kiến MAX-MIN 31
3.1.1. Giới thiệu hệ kiến Max-Min 31
3.1.2. Cập nhật vết mùi 32
3.1.3. Giới hạn của vết mùi 33
3.1.4. Giá trị thông số  34
3.1.5. Khởi tạo vết mùi 35
3.1.6. Phƣơng thức cập nhật mùi 35
3.1.7. Một số nguyên lý ứng dụng 36
3.2. Hệ kiến MAX-MIN trơn 39
Chƣơng 4 - MỘT SỐ ỨNG DỤNG CỦA HỆ KIẾN MAX-MIN 43
4.1. Cách giải bài toán tối ƣu tổ hợp 43
4.2. Một số ứng dụng 44
4.2.1. Bài toán phân công bậc hai 45
4.2.2. Bài toán lập thời khóa biểu 48
KẾT LUẬN 54
Tài liệu tham khảo 56
Phụ lục 59
- 1 -

MỞ ĐẦU

ác bài toán tối ưu tổ hợp (Combinatorial Optimization Problems -
COP) đóng góp vai trò quan trọng trong thực tế, có rất nhiều ứng
dụng trong lĩnh vực kinh tế, sản xuất. Khi giải các bài toán tối ưu tổ
hợp khó thường gặp trở ngại lớn, các thuật toán truyền thống thường khó giải
quyết, các thuật toán mô phỏng tự nhiên như luyện kim, di truyền, tiến hóa, hệ
kiến tỏ ra có ưu thế hơn. Trong một thập kỷ qua các thuật toán ACO tỏ ra là

phương pháp nổi trội để giải quyết các bài toán tối ưu tổ hợp khó.
Tối ưu hóa đàn kiến (Ant Colony Optimization - ACO) là cách tiếp cận meta -
heuristic tương đối mới được đề xuất đầu tiên bởi Marco Dorigo và các đồng
nghiệp năm 1991. Một trong những thành công đầu tiên của lớp thuật toán
ACO là giải quyết tốt bài toán nổi tiếng Người chào hàng (Traveling
Salesman Problem-TSP) với số thành phố khá lớn, hơn 2000. Từ đó đến nay
ACO ngày càng thu hút được sự quan tâm và nghiên cứu của giới khoa học và
hiệu quả nổi trội của nó được chứng minh bằng thực nghiệm như giải quyết
các bài tối ưu tổ hợp điển hình: Bài toán phân công bậc hai (Quadratic
Assignment Problem-QAP), Bài toán lập lịch công việc (Job-shop Scheduling
Problem-JSP), Bài toán định đường xe tải (Vehicle Rouling Problem -VRP),
Bài toán tô màu đồ thị (Graph Coloring Problem-GCP), Bài toán siêu dãy
chung ngắn nhất (Shortest Colnmon Supersequence Poblem-SCS)…
Trong ACO, hệ kiến Max-Min (Max-Min Ant System-MMAS) tỏ ra đơn
giản, thông dụng và được rất nhiều người ưa dùng so với các thuật toán kiến
trước đó như hệ kiến (Ant System-AS), hệ đàn kiến (Ant Conoly System-
ACS). Hệ kiến Max-Min là thuật toán đầu tiên đề xuất cập nhật mùi theo tư
tưởng Max-Min. Năm 1999, nhằm mục đích đưa ra một lược đồ làm việc
chung cho các thuật toán kiến, Marco Dorigo, Luca M. Gambardella và
C
- 2 -

Gianni Di Cao đã khái quát hóa thành lớp ACO và ứng dụng một cách phong
phú để giải quyết các bài toán tối ưu tổ hợp tĩnh và động.
Nội dung của luận văn sẽ khảo cứu về các thuật toán ACO theo quy tắc cập
nhật mùi Max-Min. Trên cơ sở đó chúng tôi đề xuất thuật toán hệ kiến Max-
Min trơn (Max-Min Smooth Ant System-MMSAS) và thử nghiệm với bài toán
TSP. Kết quả thực nghiệm cho thấy hệ kiến Max-Min trơn có ưu điểm hơn hệ
kiến Max-Min trong bài toán được xét.
Ngoài phần mở đầu và phần kết luận, luận văn được tổ chức như sau:

Chương 1: Giới thiệu nguồn gốc sinh học của thuật toán kiến, cách truyền
thông gián tiếp và lược sử phát triển của các thuật toán ACO.
Chương 2: Trình bày về phương pháp tối ưu hoá đàn kiến:ACO
Chương 3: Giới thiệu về thuật toán hệ kiến Max-Min và đề xuất cách cập nhật
mùi theo Max-Min trơn, các kết quả thực nghiệm tốt mà hệ kiến Max-Min trơn
đạt được.
Chương 4: Trình bày hai ứng dụng điển hình của hệ kiến Max-Min đó là bài
toán phân công bậc hai và bài toán thời khóa biểu.
- 3 -

CHƢƠNG 1
LƢỢC SỬ PHÁT TRIỂN CỦA CÁC THUẬT TOÁN ACO

Trong chương này chúng tôi giới thiệu lược sử phát triển của các thuật
toán ACO, bắt đầu từ các thí nghiệm sinh học về cách chọn đường đi của các
con kiến thực rồi đến hình thành ý tưởng thuật toán từ các thí nghiệm đó, sau
đó là sự ra đời của hệ kiến, hệ đàn kiến, hệ kiến Max-Min
Các thuật toán kiến có được nhờ sự quan sát cách chọn đường đi của các con
kiến thực. Các con kiến là các côn trùng sống trong các bầy đàn và sống thành
xã hội, chúng xuất hiện trên trái đất cách đây đã hơn 100 triệu năm, số lượng
của chúng khoảng 10
6
con (xem [13]). Sự tổ chức bầy đàn của các con kiến
trong xã hội kiến có cấu trúc cao đã thu hút nhiều nghiên cứu sinh học.
Trong xã hội kiến, các con kiến thợ thường xuyên tìm kiếm thức ăn đem về tổ
và đặc biệt là làm thế nào các con kiến có thể tìm được đường đi ngắn nhất từ
tổ của chúng tới nguồn thức ăn?
1.1. Nguồn gốc sinh học của các thuật toán kiến
Trong quá trình đi từ tổ đến nguồn thức ăn và ngược lại, các con kiến
rải xuống đất một hoá chất gọi là mùi (tên khoa học là pheromone) và tạo nên

các vết mùi (pheromone trail). Các con kiến ngửi thấy mùi và chúng có
khuynh hướng chọn theo xác suất, các đường đi được đánh dấu bởi sự tập
trung mùi mạnh. Vết mùi cho phép các con kiến tìm ra đường quay lại của
chúng tới nguồn thức ăn hoặc tổ, nó cũng có thể được sử dụng bởi các con
kiến khác để tìm ra vị trí nguồn thức ăn.
Thực nghiệm cho thấy rằng, cách thức theo vết mùi (pheromone trail
following behavior) này là một phương pháp luận hiệu quả để tìm ra đường đi
ngắn nhất.
- 4 -


Hình 1: Cách tìm đường đi của kiến
Các con kiến thường để lại mùi (một chất hóa học đặc biệt mà chúng có
thể ngửi được) trên đường đi. Bằng cách để lại mùi như vậy, chúng sẽ tạo ra
các vết mùi để lại trên đường đi từ tổ đến nguồn thức ăn và ngược lại. Trong
thực tế, bằng cách cảm nhận những vết mùi như vậy những con kiến khác có
thể tìm đường tới các nguồn thức ăn do những con kiến trước đã tìm ra. Đồng
thời, chúng có thể dựa vào đó để tìm được đường đi ngắn nhất từ tổ đến các
nguồn thức ăn.
Nhằm nghiên cứu các cách tìm đường đi của các con kiến trong điều
kiện quan sát được. J.L.Deneubourg [19] và các đồng nghiệp đã làm một thí
nghiệm sử dụng một cây cầu đôi nối từ tổ đến nguồn thức ăn, hình 2. Tổ của
một đàn kiến với nguồn thức ăn được ngăn bởi một các cầu đôi mà hai nhánh
của nó bằng nhau để nghiên cứu sự lưu lại các vệt mùi và hành vi của chúng.
Tiếp đó các con kiến được thả và tự do đi lại giữa tổ và nguồn thức ăn và
phần trăm số kiến chọn nhánh nào để đi được quan sát theo thời gian. Kết quả
là sau một giai đoạn ban đầu có sự do dự, trong chốc lát các con kiến có
khuynh hướng chọn và hội tụ về cùng một đường đi.
- 5 -


Trong thí nghiệm trên, ban đầu không có mùi trên 2 nhánh, nên các
nhánh được chọn có cùng một xác suất. Tuy nhiên, do sự thăng giáng tự
nhiên, sau một giai đoạn ban đầu, nhánh trên được chọn nhiều hơn nhánh
dưới. Bởi vì các con kiến rải mùi trong khi đi, số kiến lớn hơn ở nhánh trên
thì lượng mùi mạnh hơn, do đó kích thích nhiều con kiến chọn nó hơn.







Hình 2: Mô hình thí nghiệm cầu đôi 2 nhánh dài bằng nhau
Tiếp đó họ thay đổi thí nghiệm trên tới trường hợp mà trong đó các
nhánh có chiều dài khác và thu được kết quả là theo thời gian dần dần hầu hết
con kiến đều đi vào nhánh ngắn hơn.
Kết quả được giải thích như sau: Do kỹ thuật rải mùi như nhau, khi thực
nghiệm bắt đầu, hai nhánh cầu đều không có mùi, như vậy lúc đầu các con
kiến chọn một trong hai nhánh theo xác suất là như nhau tức là một nửa số
con kiến sẽ chọn nhánh ngắn và nửa còn lại sẽ chọn nhánh dài. Trong quá
trình tìm kiếm thức ăn và đưa về tổ, con kiến luôn để lại vệt mùi trên hai
nhánh cầu. Do nhánh ngắn hơn, thời gian con kiến đi sẽ ít hơn (đồng nghĩa
với số lần các con kiến đi lại nhiều hơn), lượng mùi trên nhánh này sẽ nhiều
hơn, nên theo thời gian các con kiến sẽ chọn nhánh ngắn hơn để đi do cường
độ vệt mùi trên nhánh này cao hơn, minh hoạ trong hình 3.


Tổ kiến
Nhánh dưới
Nhánh trên

Thức ăn
- 6 -


Hình 3: Thí nghiệm cầu đôi.
(a) Các con kiến bắt đầu khám phá chiếc cầu.
(b) Hầu hết các con kiến chọn đường đi ngắn nhất.
Trong các thuật toán kiến, cây cầu đôi ở thí nghiệm của Deneubourg
được thay bằng một đồ thị cấu trúc và các vết mùi của con kiến là những vết
mùi nhân tạo. Đồng thời khi muốn giải quyết những bài toán phức tạp hơn
những bài toán của con kiến thực, người ta cung cấp thêm cho con kiến nhân
tạo một số khả năng đặc biệt như bộ nhớ và khả năng để lại một lượng mùi tỷ
lệ với hiệu quả của lời giải tìm được (một hành vi tương tự như hành vi của
con kiến thực khi chúng mang thức ăn quay về tổ để lại một lượng mùi tỷ lệ
với lượng thức ăn kiếm được).
Mỗi con kiến đơn lẻ chỉ có một sự đóng góp rất nhỏ trong quá trình tìm
đường đi. Mặc dù một con kiến đơn lẻ về nguyên tắc có khả năng xây dựng
một lời giải (Ví dụ: tìm ra một đường đi giữa tổ và nguồn thức ăn), nhưng cả
đàn kiến mới là đối tượng biểu diễn cách thức "tìm đường đi ngắn nhất". Cách
thức này là một thuộc tính nổi bật (emergent) của đàn kiến. Cũng cần chú ý là
các con kiến có thể thực hiện cách thức riêng biệt này bằng cách sử dụng một
dạng truyền thông gián tiếp-stigmergy bằng cách rải mùi.
- 7 -

1.2. Truyền thông gián tiếp-stigmergy
Dạng truyền thông stigmergy được đưa ra trong công trình của Grassé
[20] (Bellicositermes Natalensis và Cubitermes), stigmergy là "Mô phỏng các
thợ (workers-một đẳng cấp trong các đàn mối) bởi hiệu suất mà chúng đạt
được".
Mặc dù Grassé giới thiệu thuật ngữ stigmergy để giải thích các hành vi

của xã hội đàn mối, nhưng sau đó thuật ngữ này được dùng để mô tả dạng
truyền thống gián tiếp bởi sự thay đổi môi trường có thể quan sát được ở xã
hội côn trùng.
Những đặc trưng của stigmergy:
- Tính vật lý tự nhiên của thông tin được sinh ra bởi các côn trùng
truyền thông, tương ứng với sự thay đổi các trạng thái môi trường vật lý mà
được thăm bởi các côn trùng.
- Tính cục bộ tự nhiên của thông tin được sinh ra, chỉ có thể được truy
cập bởi các côn trùng thăm trạng thái đó.
Vì vậy ta có thể nói truyền thông stigmergy là một dạng truyền thông
gián tiếp dựa vào thay đổi thông tin qua tác động vật lý làm thay đổi môi
trƣờng.
1.3. Quá trình phát triển của các thuật toán ACO
Hệ kiến là thể hiện đầu tiên và điển hình của các thuật toán ACO, hầu
hết các thuật toán ACO hiện dùng đều được phát triển từ thuật toán này. Vì
vậy, trước khi giới thiệu các thuật toán ACO, chúng tôi giới thiệu hệ kiến và
các cải tiến quan trọng của chúng là hệ đàn kiến và hệ kiến Max-Min.
1.3.1. Hệ kiến và bài toán TSP
1.3.1.1. Bài toán TSP
Bài toán TSP được phát biểu như sau:
- 8 -

Bài toán người chào hàng (TSP-Traveling Salesman Problem) khá đơn
giản: Người chào hàng phải tìm một đường đi khép kín đi qua mọi thành phố
trong địa phận của anh ta đúng một lần và trở về nơi xuất phát để tổng độ dài
(chi phí) của đường đi là nhỏ nhất.
Bài toán TSP bậc n được phát biểu dưới dạng một bài toán đồ thị như
sau: Cho một đồ thị G = (V, E), trong đó tập đỉnh V = {1, 2, . . . , n) ký hiệu
các thành phố, E = {{i, j } , i, j


V} mỗi cạnh (i, j)

V có độ dài d
ij
tương
ứng (d
ij
là khoảng cách từ thành phố i tới thành phố j và
ijji
dd
,,

nếu đó là
đường một chiều). Tìm đường đi qua tất cả các đỉnh của G mỗi đỉnh đúng một
lần và trở về nơi xuất phát sao cho tổng chi phí của các cạnh thuộc đường đi
(n cạnh) là nhỏ nhất.
Như vậy, với đồ thị không đối xứng sẽ có
)!1( n
đường đi chấp nhận
được và
2
)!1( n
với đồ thị đối xứng. Với n lớn thì ta không thể tìm hết các
đường đi và chỉ có thể tìm được một lời giải đủ tốt bằng các phương pháp
truyền thống như: Quy hoạch động, nhánh và cận, tìm kiếm địa phương, tìm
kiếm heuristic, tính toán tiến hóa hay là các phương pháp kết hợp giữa
chúng TSP là bài toán tối ưu tổ hợp khó và có nhiều ứng dụng, nó vẫn được
xem là bài toán mẫu dùng để kiểm tra hiệu quả của các thuật toán tối ưu tổ
hợp.
Khi G là đồ thị có hướng thì bài toán TSP được gọi TSP không đối

xứng (Asymmeric Traveling Salesman Problem-ATSP), trường hợp còn lại gọi
là TSP đối xứng (gọi tắt là TSP). Để đơn giản, ta xét bài toán trên đồ thị vô
hướng, sau này ta dùng ký hiệu TSP.
Tiếp theo chúng tôi sẽ trình bày các thuật toán kiến dựa trên tư tưởng lời giải
của bài toán TSP.
- 9 -

1.3.1.2. Hệ kiến
Hệ kiến (Ant System-AS) được đề xuất từ cách ứng xử được đề cập ở
trên của các con kiến thực, là một thuật toán mà trong đó một tập các con kiến
nhân tạo hợp tác với nhau để tìm lời giải của một bài toán bằng việc trao đổi
thông tin thông qua mùi được rải trên các cạnh của một đồ thị.
Có nhiều thuật toán AS như ant-cycle, ant-density, và ant-quantity, ở
đây chúng tôi chỉ xét thuật toán ant-cycle. Do thuật toán ant-cycle có kết quả
thực nghiệm tốt hơn hai thuật toán kia, nên sau này nó được gọi đơn giản là
thuật toán AS, trong khi hai thuật toán còn lại về sau không còn được nghiên
cứu và phát triển nữa.
Hệ kiến hoạt động như sau: mỗi con kiến sinh ra một đường đi (tour)
bằng cách chọn những thành phố theo một qui tắc chọn thành phố mới
(state transition rule) ngẫu nhiên, những con kiến thích đi tới các thành phố
mà nối với những cạnh ngắn có lượng mùi cao. Khi tất cả các con kiến đã
hoàn thành đường đi của nó, một qui tắc cập nhật mùi toàn cục (global
pheromone updating rule) được áp dụng:
i) Một tỉ lệ mùi bị bốc hơi trên tất các các cạnh bởi một hệ số bay
hơi mùi cho trước (những cạnh không được làm tươi sẽ ít được
con kiến chú ý).
ii) Mỗi con kiến rải một lượng mùi lên các cạnh thuộc đường đi
tương xứng với chiều dài đường đi của nó (hay nói cách khác
là các cạnh thuộc về nhiều đường đi ngắn là những cạnh nhận
lượng mùi lớn hơn).

Tiến trình trên được lặp lại.
Để giải bài toán TSP, AS dùng biến vết mùi 
i,j
kết hợp với mỗi cạnh (i,j) và
ban đầu được khởi tạo bởi giá trị 
0
. Có m con kiến nhân tạo, ở bước lặp t
chúng thực hiện các thủ tục xây dựng lời giải và cập nhật mùi như sau:
- 10 -

Xây dựng lời giải
Ban đầu mỗi con kiến được đặt ngẫu nhiên tại các thành phố và thăm
các thành phố khác để xây dựng đường đi với thủ tục tuần tự theo quy tắc
chuyển trạng thái sau:
Quy tắc chuyển trạng thái: Qui tắc chọn thành phố mới, được gọi là qui tắc
tỉ lệ ngẫu nhiên (random-proportional rule), được cho bởi công thức (1.1), là
công thức đưa ra xác suất chọn thành phố j để di chuyển tới đối với kiến k khi
đang ở thành phố i.
Giả sử kiến k đang ở thành phố i, nó sẽ chọn thành phố j tiếp theo với xác
suất:











0
)(
)(
)(
,,
,,
,
iJu
uiui
jiji
k
ji
k
t
tP




(1.1)
Hai tham số

,
thể hiện: xác suất lựa chọn cạnh (i, j) tỷ lệ thuận với cường
độ vết mùi
ij

(t) tại bước lặp t đang xét. J
k
(i) là tập các đỉnh chưa được con

kiến k đi qua khi nó ở đỉnh i (để làm lời giải khả thi).
Thông tin heuristic
ij
ij
d
1


là nghịch đảo của khoảng cách d(i, j), nếu
0

con kiến sẽ lựa chọn đỉnh tiếp theo dựa vào chiến lược “tham lam”:
Cạnh nào ngắn nhất sẽ được ưu tiên chọn trước, nếu
0

sự lựa chọn chỉ
phụ thuộc vào cường độ vết mùi. Tiếp tục như vậy nó sẽ tìm được một chu
trình chấp nhận được làm một lời giải đủ tốt cho bài toán.
Cập nhật mùi:
Trong AS, qui tắc cập nhật toàn cục được thực hiện như sau: Khi tất cả
các con kiến đã xây dựng xong đường đi của nó, mùi được cập nhật trên tất cả
các cạnh theo công thức (1.2).
)(iJj
k


)(iJj
k



- 11 -





m
k
k
ijijij
ttt
1
)()()1()1(

(1.2)
Trong đó  (0,1) được gọi là hệ số bay hơi mùi








0
)(
1
)(
tL
t

k
k
ij

(1.3)
L
k
(t) là chiều dài của đường đi được thực hiện bởi kiến k tại bước lặp t, còn m
là số các con kiến được sử dụng.
Tham số

được sử dụng để làm bay hơi các vết mùi trên các cạnh và cho
phép lãng quên những cạnh ít sử dụng (các cạnh không thuộc hành trình của
con kiến nào sẽ có cường độ mùi giảm rất nhanh theo hàm mũ của số vòng
lặp). Với những cạnh có con kiến đi qua, lượng mùi sẽ được tăng thêm một
lượng là 1/L
k
.
Ƣu và nhƣợc điểm của AS
AS có một số ưu điểm:
 Việc tìm kiếm ngẫu nhiên dựa trên các thông tin heuristic làm
cho việc tìm kiếm linh hoạt và mềm dẻo trên không gian tìm
kiếm rộng, nó hơn phương pháp heuristic sẵn có, do đó cho ta lời
giải tốt hơn và có thể tìm được lời giải tối ưu.
 Sự kết hợp được việc học tăng cường (reinforcement learning),
trong đó những lời giải tốt sẽ được sự tăng cường cao hơn thông
qua thông tin về cường độ vết mùi , cho phép ta từng bước thu
hẹp không gian tìm kiếm mà vẫn không bỏ qua những lời giải
tốt. Do đó nâng cao chất lượng thuật toán .
Nếu (i,j) thuộc chu trình của kiến k

ngược lại
- 12 -

Nhược điểm:
Giả sử w
*
(t) là chu trình có độ dài ngắn nhất mà các con kiến tìm được
đến lần lặp t thì sau Nc lần lặp w
*
(Nc) cho ta lời giải đủ tốt. Mặc dù AS là
hữu dụng cho việc khám phá lời giải tốt hoặc tối ưu cho các bài toán TSP nhỏ
(tới 30 thành phố), thời gian cần để tìm những kết quả tốt như vậy trên những
bài toán lớn đối với AS là khó đạt được. Khi số đỉnh lớn thì lượng mùi trên
mỗi cạnh không thuộc lời giải tốt nhanh chóng dần về không nên hệ AS kém
hiệu quả. Chất lượng thuật toán phụ thuộc nhiều vào chất lượng của thông tin
heuristic, mà điều này thì chúng ta rất khó can thiệp vào.
Hệ đàn kiến sẽ đưa ra ba thay đổi chính để cải thiện hiệu suất của hệ
kiến khi áp dụng vào các bài toán lớn, được trình bày ở phần tiếp theo.
1.3.2. Hệ đàn kiến
Hệ đàn kiến (Ant Colony System-ACS) là thuật toán được xây dựng trên
AS dựa tên ý tưởng tăng tầm quan trọng của các thông tin được tích luỹ bởi
các con kiến trước nhằm cải thiện hiệu suất khi áp dụng cho các bài toán TSP
có hướng kích thước lớn (trên 50 thành phố). So với AS, ACS có ba cải tiến
sau:
i) Qui tắc chọn thành phố mới cung cấp một cách thức
cân bằng giữa sự khám phá cạnh mới với sự khai thác
độ ưu tiên và thông tin được tích luỹ về bài toán.
ii) Qui tắc cập nhật mùi toàn cục (global updating
pheromone rule) được áp dụng chỉ với các cạnh thuộc
về đường đi tốt nhất.

iii) Qui tắc cập nhật mùi địa phƣơng (local updating
pheromone rule), được áp dụng trong khi các con kiến
xây dựng một lời giải cho nó.
- 13 -

Trong ACS, ở bước lặp t các quy tắc chuyển trạng thái (1.1) và cập nhật mùi
(1.2) thay đổi như sau:
Quy tắc chuyển trạng thái:
Giả sử con kiến k đang ở đỉnh i, nó chọn đỉnh s tiếp theo nhờ quy tắc:







j
t
s
ijij
Nj
k
i
})({maxarg


(1.4)
Ở đây q là một số ngẫu nhiên phân phối đều trong [0, l], q
0
là một tham số

(0q
0
 1), còn j là đỉnh được chọn theo công thức (1.1) với =1.
Qui tắc chọn thành phố theo công thức (1.1) và (1.4) được gọi là qui tắc tỉ lệ
giả ngẫu nhiên (pseudo-random proportional rule). Theo qui tắc chọn thành
phố mới này, hướng các con kiến di chuyển đến các nút được nối với cạnh
ngắn có lượng mùi lớn. Tham số q
0
quyết định mức quan trọng tương quan
giữa sự khai thác các đường đi cũ đối với sự khám phá đường đi mới.
Quy tắc cập nhật mùi :
Mùi sẽ được cập nhật theo cả hai quy tắc : Cập nhật địa phương và cập nhật
toàn cục.
Cập nhật mùi địa phƣơng:
Trong khi đang xây dựng một lời giải (tức là đường đi) của mình, mỗi
con kiến sẽ cập nhật mùi cho cạnh (i, j) mà nó đi qua bằng cách áp dụng qui
tắc cập nhật địa phương của công thức (1.5).
),()1( ji
ijij


(1.5)
Ở đây 0 <  < 1 gọi là tham số bay hơi mùi,  (i, j) có thể lấy một trong 2 giá
trị sau:
*  ( i, j) = 
0
, ở đây 
0
là mùi khởi đầu.
*  (i, j) = 0

Nếu qq
0
(Sự khai thác)

trái lại (hướng đến sự khám phá)
- 14 -

Luật này có tác dụng giúp các con kiến tránh hội tụ về cùng một đường
đi, điều này giải thích không khó: khi đặt 
0
= (nLnn
-1
) trong đó n là số đỉnh,
Lnn là chiều dài của một lời giải do một heulistic sinh ra từ trước (giai đoạn
khởi tạo và do  (i,j) (i, j)  (i, j) nên cứ sau mỗi lần cập nhật địa phương

i,j
lại giảm đi một lượng (

(i, j)-  (i, j)) làm giảm đi mức độ "hấp dẫn" của
các cạnh được thăm khiến cho các con kiến sẽ chú ý thăm các cạnh chưa bao
giờ được thăm, tránh được tình trạng hội tụ tới cùng một đường đi.
Ngoài ra ACS sử dụng một cấu trúc dữ liệu gọi là danh sách tuyển chọn
(candidate list-cl), cấu trúc này có nhiệm vụ cung cấp thêm thông tin heuristic
cục bộ cho thủ tục xây dựng lời giải. Với một thành phố cho trước, danh sách
này sẽ chứa hữu hạn cl thành phố lân cận được ưu tiên đến hơn (cl là một
tham số của thuật toán). Các con kiến khi đến một thành phố bất kì, nó sẽ đọc
tuần tự danh sách này từ đầu đến cuối (danh sách được sắp theo thứ tự tăng
dần của khoảng cách nối thành phố hiện lại với thành phố lân cận tương ứng)
và chọn thành phố đầu tiên chưa nằm trong đường đi của nó làm thành phố kế

tiếp, khi không có thành phố nào trong danh sách thỏa mãn tính chất này thì
các thành phố bên ngoài danh sách chưa được thăm sẽ được chọn theo luật
chuyển trạng thái. Các kết quả khi chạy ACS trên các bài toán chuẩn được
đem so sánh với các siêu heuristic khác đã cho thấy ACS là heuristic tốt nhất
về chất lượng lời giải cũng như thời gian thực hiện (có thể không quan trọng
vì các heuristic khác có thể thực hiện trên các máy khác nhau và được viết mã
chưa tối ưu…)
Cập nhật mùi toàn cục :
Trong ACS chỉ duy nhất con kiến toàn cục tốt nhất (là con kiến đã xây
dựng đường đi ngắn nhất trong các bước lặp) là được phép rải mùi. Sự chọn
lựa này cùng với việc sử dụng qui tắc tỉ lệ giả ngẫu nhiên nhằm mục đích làm
cho việc tìm kiếm thực tế hơn: Các con kiến tìm kiếm trong một lân cận của
- 15 -

đường đi tốt nhất được tìm thấy cho đến bước lặp hiện tại của thuật toán. Việc
cập nhật toàn cục được thực hiện sau khi tất cả các con kiến đã hoàn thành
xong đường đi của chúng. Mùi được cập nhật bởi qui tắc cập nhật toàn cục
của công thức (1.6).
Cập nhật mùi toàn cục được áp dụng cho những cạnh (i, j) thuộc đường đi
ngắn nhất w
*
(t) theo công thức :
)(
1
)1(
,,
tL
gl
jiji



(1.6)
Trong đó L
gl
(t) là độ dài đường đi ngắn nhất w
*
(t).
1.3.3. Thuật toán hệ kiến Max-Min
Hệ kiến Max-Min (Max-Min Ant System-MMAS) được cải tiến từ AS bằng
cách chỉ cho phép một con kiến tốt nhất cập nhật mùi (con kiến có hành trình
tốt nhất w(t) kể từ khi bắt đầu thuật toán hoặc con kiến có hành trình tốt nhất
w(t) tại bước lặp hiện tại). Để tránh hiện tượng tắc nghẽn (stagnation): do
nồng độ mùi tập trung ở một số cung quá cao nên các con kiến lựa chọn đi lựa
chọn lại các cung đó, MMAS đưa vào hai cận, cận trên (
max

) và cận dưới
(
min

) để khống chế nồng độ các vết mùi trên mỗi cung. Chính vì vậy thuật
toán được gọi là hệ kiến Max-Min về sau các thuật toán ACO có tính chất này
cũng gọi là thuật toán Max-Min.
MMAS khống chế nồng độ các vết mùi bằng cách sử dụng cận dưới
min

có giá trị nhỏ nhất và cận trên có giá trị lớn nhất là
max

, nghĩa là tất cả

các cạnh ít được con kiến đi qua có xác suất nhỏ nhưng vẫn lớn hơn 0 nhiều
lần và hạn chế lựa chọn đi lựa chọn lại một cạnh tốt của các con kiến (cạnh
này tập trung mùi mạnh). Điều này làm cho thuật toán tránh được tình trạng
tắc nghẽn trong quá trình tìm kiếm, đặc biệt khi số vòng lặp lớn nó sẽ tăng
khả năng khám phá cho những con kiến. Các vết mùi khi khởi tạo luôn có giá
- 16 -

trị lớn nhất cho tất cả các cạnh làm cho luôn đạt được sự bốc mùi mạnh, hấp
dẫn các con kiến. Sau mỗi lần lặp trên tất cả các cạnh, lượng mùi đều bị bốc
hơi theo một tỷ lệ như nhau, do tham số

.
Chỉ các cạnh thuộc lời giải tốt nhất toàn cục w*(t) mới được rải thêm
một lượng mùi do chính con kiến tìm ra lời giải đó thực hiện (trong thực
nghiệm lời giải tốt trong vòng lặp hiện tại được rải thêm mùi sẽ tốt hơn vì nó
tăng khả năng khám phá cho các con kiến). Nồng độ mùi trên các cạnh ít
được sử dụng sẽ giảm chậm nhưng trên các cạnh thuộc lời giải tốt vẫn được
gia tăng nên các con kiến vẫn ưa chọn nhiều hơn.
Trong hệ kiến Max-Min thủ tục xây dựng lời giải giống như trong AS
còn quy tắc cập nhật mùi thực hiện như sau:
Cập nhật mùi:

ijijij


)1(
(1.7)
trong đó









}0,)1(max{
))((
min
1
ij
ij
twL


(1.8)
Nhược điểm của thuật toán này là sẽ tập trung vào khai thác các lời giải
tốt tìm được mà không phân biệt được các cạnh không dùng được với các
cạnh dùng được nhưng không thuộc lời giải tốt. Do đó sẽ hạn chế khả năng
khám phá nếu chọn
min

bé, còn nếu chọn
min

lớn thì thuật toán sẽ gần với
tìm kiếm ngẫu nhiên dựa trên thông tin heuristic, nhưng điều này lại giảm khả
năng học tăng cường-một ưu điểm trong các thuật toán kiến. Vì vậy chọn tỷ lệ
giữa
min



max

ảnh hưởng rất nhiều đến hiệu suất của thuật toán.
ngược lại
(i, j)

w(t)
- 17 -

CHƯƠNG 2
PHƯƠNG PHÁP TỐI ƯU HOÁ ĐÀN KIẾN: ACO
2.1. Một số heuristic ACO
Trước khi đi vào chi tiết, chúng tôi sẽ trình bày sơ qua về sự hình thành
tên gọi của một số heuristic ACO. Năm 1991 Marco Dorigo trong luận án tiến
sĩ của ông đã đề xuất thuật toán hệ kiến giải bài toán người chào hàng. Hầu
hết các thuật toán ACO sau này đều phát triển từ hệ kiến. Tuy nhiên, trong AS
có một số nhược điểm như: không có sự hợp tác giữa các con kiến, sau một
thời gian chạy nồng độ mùi trên các cạnh dần về 0. Để khắc phục các nhược
điểm của AS, năm 1996 Dorigo cùng với V.Maniezzo và A. Colorni đã đề
xuất thuật toán ACS cũng cho bài toán TSP trên cơ sở mở rộng AS bằng cách
thay đổi luật chuyển trạng thái và cách cập nhật mùi, các cải tiến này đã cải
thiện đáng kể hiệu suất của AS và với các kết quả thực nghiệm đã cho thấy
ACS tốt hơn hẳn các thuật toán khác như luyện kim, di truyền, tiến hóa…tuy
nhiên các vết mùi trong ACS vẫn dần về 0 mặc dù khả năng hội tụ cao. Năm
1997, Thomas Stutzle và Holger H. Hoos đề xuất hệ kiến Max-Min, là thuật
toán đầu tiên sử dụng cận trên và cận dưới để khống chế vết mùi, các vết
mùi không bị dần về 0 do đã bị chặn dưới. Khi thử nghiệm hệ kiến MAX-
MIN các tác giả vẫn thu được các kết quả khả quan tương đương ACS, hệ

MMAS được ưa dùng hơn vì nó đơn giản, dễ sử dụng.
Nhằm mục đích đưa ra một lược đồ làm việc tổng quát cho các thuật
toán kiến, năm 1999 Marco Dorigo, Luca M. Gambardella và Gianni Di Cao
đã đề xuất phương pháp tối ưu hoá đàn kiến: ACO. ACO là một meta-
heuristic, sẽ trình bày ở phần tiếp theo. Trong ACO, hệ kiến, hệ đàn kiến, hệ
kiến Max-Min có những đặc điểm hoàn toàn khớp với ACO nên có thể xem
chúng là những ứng dụng cụ thể của ACO.
- 18 -

Ở phần tiếp theo chúng tôi sẽ trình bày phương pháp tối ưu hóa đàn
kiến cho lớp bài toán ACO
min
, sau đó là cơ sở lý thuyết cho vết mùi của hệ
Max-Min và đặc tính hội tụ của vết mùi theo quan điểm Max-Min trên hai thuật
toán có hiệu suất tốt trong các thuật toán ACO đó là: Hệ đàn kiến và hệ kiến
Max-Min.
2.2. Meta-heuristic tối ưu hoá đàn kiến (ACO metaheuristic)
Các con kiến nhân tạo được sử dụng trong ACO hợp tác với nhau trong
việc tìm các lời giải tốt cho các bài toán tối ưu tổ hợp khó. Sự hợp tác là một
thành phần quan trọng của ACO: đó là sự chọn lựa để phân phối các tài
nguyên tính toán cho các con kiến nhân tạo. Các con kiến này truyền thông
một cách gián tiếp bởi stigmergy. Các lời giải tốt là một đặc tính nổi bật của
sự tương tác (bằng cách hợp tác) này.
Các con kiến nhân tạo có đặc tính 2 mặt: Mặt thứ nhất, chúng trừu
tượng các đặc điểm cách tìm đường của các con kiến mà gần như là mấu chốt
của cách thức tìm đường đi ngắn nhất được thấy trong các đàn kiến thực. Mặt
kia, là những khả năng mà không thể có ở các con kiến thực như có bộ nhớ,
rải mùi theo tỷ lệ có thể điều khiển được, các khả năng này được đưa thêm
vào tùy thuộc đặc trưng của bài toán áp dụng nhằm mục đích là để ACO trở
thành một cách tiếp cận kỹ thuật (engineering) cho việc thiết kế và thực hiện

các hệ thống phần mềm cho các bài toán tối ưu tổ hợp khó.
2.2.1. Bài toán tổng quát
Các thuật toán ACO được áp dụng để giải các bài toán tối ưu tổ hợp,
các đặc trưng của lớp các bài toán tối ưu tổ hợp được phát biểu như sau:
Xét bài toán cực tiểu hóa
),,( fS
, trong đó S là tập hợp hữu hạn trạng thái, f
là hàm mục tiêu xác định trên S (với sS có giá trị hàm mục tiêu là f(s)), còn
- 19 -


là một tập các ràng buộc để xác định S qua các thành phần của tập hữu hạn
C và các liên kết của tập này. Mục tiêu của bài toán cực tiểu hoá là tìm ra một
trạng thái tối ưu s*, một trạng thái có giá trị cực tiểu.
Bài toán tối ưu tổ hợp
),,( fS
được ánh xạ thành một bài toán có các đặc
tính sau :
1) Cho một tập hữu hạn gồm n thành phần C = {c
1
, c
2
, …, c
n
}. Ta ký hiệu
X là tập các dãy trong C độ dài không quá h:
X={<u
0
, ,u
k

>/ u
i
C i  k  h}.
2) Tồn tại tập con X
*
 X và ánh xạ

từ X
*
lên S sao cho
)(
1
s


không
rỗng với mọi
Ss 
. X
*
có thể xây dựng được từ tập con C
0
nào đó của
C và X
*
theo đặc tính 3.
3) Từ C
0
mở rộng được thành X
*

theo thủ tục tuần tự:
a. X
0
=<u
0
> là mở rộng được
01
Cu 
.
b. Nếu x
k
=<u
1
, ,u
k
> là mở rộng được thì tồn tại từ  xác định
được tập con J(x
k
) của C sao cho với mọi u
k+1
 J(x
k
) thì
x
k+1
=<u
0
, ,u
k
, u

k+1
> là mở rộng được và x
k
X
*
khi J(x
k
) là rỗng.
c. Với mọi u
0
 C
0
, thủ tục mở rộng nêu trên xây dựng được mọi
phần tử của X
*
. Không giảm tổng quát, ta giả thiết rằng có tương
ứng 1-1 giữa các phần tử trong X* được mở rộng từ mỗi u
0
trong
C
0
.
Ví dụ: Với bài toán TSP thì S là các chu trình trên đồ thị đầy, f là độ dài
đường đi,

là ràng buộc các chu trình qua mọi đỉnh (và mỗi đỉnh đúng một
lần) còn C
0
là tập các đỉnh của đồ thị.
Với các bài toán như vậy ta xây dựng đồ thị đầy với tập đỉnh V mà mỗi đỉnh

của nó tương ứng với mỗi thành phần của C và có thể dùng các thuật toán
theo lược đồ ở mục 2.2.2 để giải.
- 20 -

2.2.2. Thuật toán ACO tổng quát
Với bài toán tối ưu tổ hợp ở trên ta có thể áp dụng thủ tục mở rộng để xây
dựng X
*
và tìm được lời giải tốt nhờ phương pháp vét cạn, nhưng trên thực tế
khi số thành phần n của C lớn, trong TSP là khi số đỉnh nhiều thì phương
pháp vét cạn không giải quyết được.
Nói chung, bài toán thuộc lớp NP-khó, thông thường ta sẽ có các phương
pháp heuristic để tìm lời giải đủ tốt cho bài toán. Các thuật toán ACO kết hợp
thông tin heuristic này với phương pháp học tăng cường nhờ mô phỏng hành
vi của đàn kiến để tìm lời giải tốt hơn.
Giả sử với mỗi cạnh nối các đỉnh i, j C có trọng số heuristic h
i,j
để định
hướng chọn thành phần mở rộng là j khi thành phần cuối của x
k
là i theo thủ
tục nêu trên (h
i,j
>0 (i,j)). Đàn kiến m con sẽ xây dựng lời giải trên đồ thị
đầy có trọng số G=(V,E,H,), trong đó V là tập đỉnh của đồ thị tương ứng với
tập thành phần C đã nêu ở trên, E là tập các cạnh (nối các thành phần của C),
H là vectơ các trọng số heuristic của cạnh tương ứng (trong bài toán TSP nó
là vectơ mà mỗi thành phần =
ij
d1

, d
ij
là độ dài của cạnh nối đỉnh i với đỉnh j)
còn

là vectơ vết mùi tích luỹ được, ban đầu được khởi tạo bằng 
0
. Các vết
mùi có thể được gắn ở đỉnh, ở cạnh hoặc cả hai, trong bài toán TSP thì các vết
mùi được gắn ở cạnh còn trong một số bài toán khác, chẳng hạn bài toán thời
khóa biểu (trình bày ở chương 4) thì lượng mùi được gắn ở đỉnh của đồ thị G.
Đồ thị G được gọi là đồ thị xây dựng.
Với điều kiện kết thúc đã chọn (với số lần lặp Nc định trước) thuật toán ACO
tổng quát cho các bài toán tối ưu tổ hợp tĩnh được mô tả hình thức như sau:
- 21 -










Các bài toán tối ưu tổ hợp tĩnh là những bài toán mà các đặc trưng của nó
được cho trước và không thay đổi khi bài toán được giải. Một trong những bài
toán như vậy là bài toán TSP, trong đó vị trí các thành phố và khoảng cách
tương ứng giữa chúng là các giá trị ban đầu của bài toán và không bị thay đổi
khi chạy.

Procedure ACO_meta_heuristic()
While not (Điều kiện dừng) do
Schedule_activities
Ants_generation_and_activity();
Pheromone_evaporation();
Daemon_actions(); {tùy chọn}
End schedule _activities
End while
End procedure
Procedure Ansts_generation_and activity()
Procedure Thuật toán ACO cho bài toán tối ưu tổ hợp tĩnh
Khởi tạo vết mùi và đặt giá trị cho các tham số.
While not (điều kiện dừng) do
Các con kiến xây dựng lời giải và chọn lời giải tốt nhất.
Áp dụng tìm kiếm địa phương (có hoặc không).
Cập nhật vết mùi.
End While
End Procedure

Hình 4: Lược đồ tổng quát của thuật toán ACO.

×