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

Báo cáo khoa học: " ỨNG DỤNG GIẢI THUẬT META-HEURISTIC TRONG BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT" pot

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 (428.58 KB, 8 trang )

TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010

9
ỨNG DỤNG GIẢI THUẬT META-HEURISTIC
TRONG BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT
APPLICATION OF META-HEURISTIC ALGORITHM
FOR A SEARCH OF SHORTEST PATH


Đoàn Duy Bình
Trường Đại học Sư phạm, Đại học Đà Nẵng

TÓM TẮT
Bài toán tìm kiếm được xem là bài toán được nhiều người quan tâm, đặc biệt là tìm
kiếm tối ưu toàn cục. Một thuật toán được xem là lý thuyết vững chắc trong việc giải các bài
toán tìm kiếm tối ưu toàn cục đã có nhiều ứng dụng thực tế như: tìm kiếm các trang web cần
tìm trên mạng, kế hoạch sắp xếp thời khóa biểu cho các y tá trong bệnh viện, tìm kiếm đường
đi tối ưu cho những ng
ười lái xe hơi… đấy là thuật toán kiến (ACS – Ant Colony Search hoặc
ACO - Ant Colony Optimization). Trong bài báo này chúng tôi giải thuật Meta-Heuristic và đặc
biệt là thuật toán kiến để thực hiện bài toán tìm kiếm. Thuật toán kiến mô phỏng hành vi của
đàn kiến trong tự nhiên nhằm tìm kiếm đường đi ngắn nhất giữa tổ kiến và nguồn thức ăn dựa
trên mật độ mùi - Pheromone mà các con kiến để lại trên đường đi.

ABSTRACT
Search problem is a problem that concerns many people, especially in the field of
global optimal search. An algorithm is considered to be a well-established theory in solving
problems of globally optimal search and it has many practical applications such as searching for
pages needed to be found on the web, planning a schedule for the nurses in hospitals, finding
an optimal way for people to drive,etc That is an ant algorithm (ACS - Ant Colony Search or
ACO - Ant Colony Optimization). In this paper, we introduce the Meta-Heuristic algorithm,


especially ACO to make search problems. The Ant Algorithm describes the behaviour of natural
ants to find the shortest way between food sources and density based on the pheromone that
the ants left on the road.

1. Giới thiệu về ACO (ANT COLONY OPTIMIZATION)
Các lnh vc nghiên cu thut toán kin ã thu c t nhng quan sát mô hình,
hành vi thc t ca loài kin, và s dng các mô hình này nh là mt ngun cm hng
cho vic thit k các thut toán cho các gii pháp ti u hóa và phân phi kim soát các
vn .
Các ý tng chính là vic t t chc phi hp gia các nguyên tc cho phép vi
hành vi thc s ca loài kin có th c trin khai  gii quyt vn  v máy tính.
Mt s khía cnh khác nhau  các hành vi ng x ca các àn kin có cm hng cho
các thut toán kin khác nhau.
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010

10
2. Khám phá hành vi của đàn kiến và sự tối ưu hoá
Nhng hình nh nhn thc c bit ca àn kin ch n gin là s phát trin và
hoàn toàn mò mm. Trong thc t, mt iu quan trng trong nghiên cu v loài kin là
hành vi liên lc gia các con kin, hoc gia các cá nhân vi môi trng, c da trên
vic s dng các sn phm hóa cht ca các loài kin. Các hóa cht ó c gi là
pheromones.
a. Thí nghiệm chiếc cầu đôi
S gi vt mùi pheromones và hành vi ca mt s loài kin ã c iu tra
kim soát trong các th nghim ca mt s nhà nghiên cu. Mt trong nhng thí
nghim ni bt nht là thí nghim c thit k và i vào hot ng ca Deneubourg và
các ng nghip ca ông
[1]
, ngi mà ã s dng mt cây cu ni t ca àn kin vi
ngun thc n. H chy các th nghim vi t l

sl
llr /
=
gia  dài hai nhánh ca
cây cu,
l
l là  dài ca nhánh dài và
s
l là  dài ca nhánh ngn hn. Trong th
nghim u tiên vi cây cu có hai nhánh chiu dài bng nhau (r = 1; xem hình 1.1a).








.


Hình 1. Thí nghiệm chiếc cầu đôi. (a) Hai nhánh có kích thước bằng nhau,
(b) Một nhánh có kích thước gấp đôi nhánh kia
Khi bt u, trên 2 nhánh ca cây cu u cha có pheromones. Do ó, các con
kin có th chn mt trong các nhánh vi cùng mt xác sut. Tuy nhiên, do s la chn
là ngu nhiên lên sau mt thi gian s lng kin i trên nhng chi nhánh s là khác
nhau. Bi vì loài kin s gi pheromones trong khi di chuyn, dn dn s lng
pheromones trên nhng nhánh cng s khác nhau, iu này càng kích thích thêm àn
kin s la chn nhánh có lng mùi pheromones ln, và nh vy n mt thi gian nào
ó tt c àn kin s hi t v cùng mt nhánh.

(
a
)
T kin Thc n
15c
m
60
0
21
T kin Thc n
(
b
)
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010

11
b. Một mô hình ngẫu nhiên
Trong mô hình này,  là mi giây àn kin bng qua cu trong mi hng  mt
tc  hng s v (cm/s), mt trong nhng n v gi pheromones trên các nhánh. Cho
d dài
l
l và
s
l (cm) trong các nhánh dài và ngn, mt con kin chn nhánh ngn s i
ngang qua nó trong khong thi gian là t
s
= l
s
/ v (giây), trong khi kin la chn Chi
nhánh dài s s dng r.t

s
giây, vi r=l
l
/l
s
.
Xác sut p
ia
(t) là xác xut ti im i (i  {1,2}) (xem hình 1.1b) kin chn nhánh
a (a  {s,l}), trong ó s, l là các chi nhánh ngn và dài tng ng, ti thi im t tng s
lng pheromones 
ia
(t) c thit lp trên các chi nhánh, là tng lng pheromones
mà các loài kin  li trên các chi nhánh cho n thi gian t ó.
Trong mô hình này àn kin gi li vt mùi pheromones ca h trên c hai
ng i: t t n ngun thc n và quay tr li t. S di chuyn này là mt hành vi
ng x cn thit  có c s hi t ca àn kin hng v nhánh ngn.
2. Đàn kiến nhân tạo
Qua th nghim chic cu ôi cho thy rõ ràng có kh nng xây dng c ti
u hóa àn kin: Thông tin  tìm ra con ng ngn nht gia 2 im có th da vào
quy tc xác xut.
Có 2 khía cnh bt ng quan trng:
- Phm vi xem xét các hành vi ca h thng là trung bình, và không phi nhng
hành vi ng x tuân theo bin thiên ngu nhiên ca àn kin là duy nht.
- ây là thí nghim trên nhng thi gian không liên tc, trong khi trc ó mô
hình xét trong mt thi gian liên tc.
3. Kiến nhân tạo và chi phí tối thiểu trên đường đi
Nhng hành vi là:
1. Gii pháp xây dng theo hng xác xut bi vt mùi pheromones, vi s cp
nht pheromones nhanh

2. Thuyt tin nh con ng quay tr li vi vic loi b vòng lp và s cp
nht pheromones
3. ánh giá v cht lng ca các gii pháp to ra và s
 dng các gii pháp cht
lng trong vic xác nh s lng pheromones ã gi li.
Xác xuất chọn đỉnh tiếp theo của đàn kiến và giải pháp xây dựng. S-ACO àn
kin có hai phng thc hot ng: chuyn tip và quay tr li.
Thuyết tiền định về hành vi quay trở về tổ của đàn kiến và sự cập nhật
pheromones. Vic s d
ng mt b nh rõ ràng cho phép mt con kin có th tr li con
ng mà nó ã i trong khi tìm kim n nh ích.
Cơ sở giải pháp hiệu quả của sự cập nhập pheromones. Trong S-ACO àn
kin nh các nh mà nó i qua trong quá trình tìm ngun thc n, cng nh các chi phí
trên các cnh ã qua nu biu  có trng s.
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010

12
Sự bay hơi của Pheromones. Trong àn kin thc, lng pheromone gim theo
thi gian vì có s bay hi.
 biu din mi cnh (i,j) ca  th G =(N,A) chúng tôi dùng mt bin gi là
τ
ij
gi là vt mùi nhân to,  rút ngn lng mùi pheromones trong thi gian tip theo.
Vt mùi pheromones c to và cp nhp bi àn kin.  nhng phng thc tính s
lng vt mùi pheromones trên các cnh ch c tính theo t l, c tính ca àn kin.
Hành vi tìm kiếm đường đi của đàn kiến
Mi kin, bt u t mt nh, mt gii pháp cho vn  ng dng tng bc
c gii quyt. Mt con kin k ti mt nh i bt kì s dng vt mùi pheromones
ij
τ


tính xác sut chn nh j nh sau:
Trong ó
k
I
N là vùng lân cn ca kin k  nh i trong S-ACO vùng lân cn ca
nh i là tt c các nh kt ni trc tip n nh i trong  th G =(N,A), ngoi tr tt
c các nh trc (ví d, các nh trc khi di chuyn n nh i ca kin).
Đường đi về tổ và sự cập nhập vết mùi. Khi t ti nh ích, kin thc hin quá
trình quay v t trên cùng con ng n ngun thc phm. B sung tính nng này là,
trc khi bt u quá trình quay v t, kin s loi b nhng ng i ri vào tình trng
vòng lp mà nó ã gp phi trên ng i tìm n ngun thc n.
Trong thi gian quay tr v t con kin th k s  li mt lng ∆τ
k
pheromones
trên các cnh mà nó i qua. Trong ó, nu kin th k quay tr v t trên cnh (i,j), thì
giá tr
ij
τ
pheromones s thay i nh sau:

k
ijij
τττ
∆+← (1.9)
Mt khía cnh quan trng vn là s la chn ca ∆τ
k
. Trong nhng trng hp
n gin nht, giá tr ca ∆τ
k

là mt hng s cho tt c các loài kin.
Sự bay hơi của vết mùi pheromones.Vt mùi pheromones bay hi có th c
coi nh là mt k thut thm dò nhanh chóng ca àn kin tìm im cc thun tt trên
ng i. Sau ó mi kin th k di chuyn n mt nh k tip nào ó tu theo hành vi
tìm kim ca kin ã c mô t  trên, lng bay hi ca pheromones c áp dng
theo công thc sau ây vi tt c các cung:

ij
=(1- )
ij
, □ (i,j) ∈ A , p ∈ (0,1) ( 1.10)





Ν

Ν



=
k
i
j if ,0
k
i
j if ,
α

τ
τ
α
il
N
k
i
l
ij
k
ij
p
(1.8)
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010

13
Trong ó tham s (0,1]. Sau khi s bay hi pheromones ã c áp dng cho
tt c các cnh, s lng pheromones ∆τ
k
s c thêm vào các cnh.
2. Các ACO METAHEURISTIC
2.1. Trình bày vấn đề
Chúng tôi xem xét các vn  cc tiu hoá (

,, fS ). Trong ó S là ni tp hp
các gii pháp c xét, f là mc tiêu ca chc nng quan trng, trong ó quy nh giá tr
ca chc nng ó là mt hng s ),( tsf ca mi gii pháp
Ss

và )(tΩ là mt tp

hp các khó khn (s bt ép, s è nén).
2.2. Hành vi của đàn kiến
ó là gii pháp xây dng da vào di chuyn có th c trên  th ),( LCG
C
=
trong ó , C: Là các nút trên  th, L là tp hp y  các thành phn kt ni ca C.
Các vn  có iu kin (t) c àn kin tìm kim xây dng lên. Các thành phn
Cc
i
∈ và các kt ni Ll
ij
∈ có th lên kt vi nhau  vt mùi pheromones
τ
.
3. Phân tích giải thuật
Tht s, mt thut toán ACO có th c hình dung nh s tác ng ca ba th
tc
[2]
:
ConstructAntsSolutions, UpdatePheromones, và DaemonActions.
ConstructAntsSolutions (Giải pháp xây dựng các loài kiến) là qun lý mt àn
kin xy ra ng thi và không ng b ca các vn  cn xem xét ca àn kin, bng
cách di chuyn qua các nh bên cnh ca  th G
C
.
UpdatePheromones (Cập nhật pheromones) là quá trình mà vt mùi pheromones
c sa i. .
DaemonActions (Những hành động) th tc c s dng  thc hin nhng
hành ng tp trung mà iu này không th thc hin bi nhng con kin riêng l.
Procedure ACOMetaheuristic

ScheduleActivities
ConstructAntsSolutions
UpdatePheromones
DaemonActions % optionnal
End-ScheduleActivities
End-procedure.
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010

14
S  thut toán ACO cho bài toán TSP






















Hình 3. Sơ đồ thuật toán ACO cho bài toán TSP
4. Đề xuất ứng dụng
Bài toán ngi du lch (TSP) là mt trong nhng bài toán kinh in và c u
t nghiên cu trong mt thi gian dài. Nó góp phn quan trng vào vic nghiên cu gii
thut ACO: Các gii thut ACO nguyên thy và nhng ci tin ca gii thut này v sau
u c áp dng mô phng bi bài toán ngi du lch.
5. Triển khai ứng dụng
Bài toán ngi di lch có th c biu din khái quát bng mt  th có trng
s G(N,A) vi N là tâp hp các nút mô t cho các thành ph, A là tp hp các cung mô
t on ng gia hai thành ph.
úng
Sai
úng
Sai
Bắt đầu
nh v kin ngu nhiên
trong nhng thành ph
trên li và ct thành
ph hin thi trong danh
sách visited
Xác nh xác sut có
th nh là n thành
ph nào tip theo
Di chuyn ti thành
ph tip theo và t
thành ph này trong
danh sách visited
Tt c các thành
ph ã c

ghé thm
Ghi li  dài ca cuc hành
trình và xoá danh sách
visited
Xác nh hành trình ngn
nht t trc n nay và
cp nht pheromone
S vòng lp ti
a ã c thc
hin
Kết thúc
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010

15
Mi cung (i,j) thuc A c gán mt giá tr d
ij
mô t chiu dài ca ng i gia
hai nh i, j vi i, j thuc N. Mc ích cui cùng ca bài toán ngi di lch chính là tìm
ra chu trình Hamilton ngn nht ca  th G có n nh vi n là s thành ph mà ngi
di lch phi i qua. Nh vy, kt qu tt nht ca bài toán chính là mt hoán v  ca các
nh {1, 2,…, n}, sao cho chiu dài f() là nh nht. f() c tính theo công thc sau:



5.1. Giải thuật ACO cho bài toán người di lịch
Vic xây dng mt  th G=(C, L) tng ng vi vic xây dng  th G(N,A)
 trên vi C=N và L=A. Trong ó tp hp các ng i ca  th tng ng vi tp
hp các hành trình tng phn có th có và giá tr  nhm ràng buc rng con kin ch
tìm nhng ng i tng ng vi các hoán v ca các thành ph.  ây bài toán tìm
ng

i ngn nht qua tt c các nh ca  th mi nh mt ln có mi liên h mt
thit vi bài toán tìm ng i ngn nht ca con kin.




Hình 3. Một con kiến đang ở thành phố i muốn đến thành phố tiếp theo sẽ dựa trên giá trị dấu τ
ij
và giá
trị Heuristic η
ij
trên cung nối thành phố i với thành phố j mà con kiến chưa đến.
ACO Metaheuristic tĩnh
procedure
ACOMetaheuristicStatic
set parameters, initialize pheromone trails
while (termination condition not met) do
ConstructAntsSolutions
ApplyLocalSearch % tùychn
UpdatePheromones
end
end
5.2. Hệ thông kiến (Ant System – AS) và những cải tiến
Kh nng mà con kin k có th i t thành ph hin ti i n thành ph j c
tính theo công thc nh sau
[3]
:
nu j
Ν
k

i

TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010

16
vi 
ij
=1/ d
ij
là giá tr Heuristic có th có, α và β là hai tham s quyt nh s nh hng
ln nhau ca các pheromones trên các hành trình c xây dng và các thông tin
Heuristic. N
i
k
là nhng thành ph mà con kin k có th i n, t v trí hin ti là thành
ph i ( ây là các thành ph mà con kin này cha ving thm bao gi). Vi tp lut
nh trên, kh nng la chn mt cung (i,j) t l thun vi giá tr ca các pheromones có
liên quan 
ij
và ca giá tr heuristic 
ij
.
Sau khi tt cá các hành trình c xây dng, các pheromone bt u c cp
nht. Vic cp nht c thc hin bng cách gim mt  pheromone trên tt c các
cung ca  th, sau ó thêm pheromone trên các hành trình mà con kin ã i qua. Vic
xóa các du c thc hin nh sau:
τ
ij
← (1-ρ)τ
ij

,

(i,j)

L (3.3)
vi 0<≤1 là t l mt pheromone, dùng  gii hn s tng lên ca pheromoe trên các
hành trình. Sau khi pheromone mt i, tt c các con kin s ghi du trên các hành trình
ca nó theo công thc nh sau:

(3.4)

vi  
ij
k
là s lng các du con kin k thc hin ghi du trên hành trình mà nó i qua.
 
ij
k
c nh ngha nh sau:

(3.5)

Nu cng (i,j) thuc T
k

trng hp ngc li
vi C
k
là  dài ca hành trình T
k

c xây dng bi con kin th k, c tính bng
tng chiu dài ca các cung thuc T
k
.

TÀI LIỆU THAM KHẢO
[1]. M. Dorigo and Thomas Stützle. Ant Colony Optimization, papes 17-20. McGraw
Hill, London, UK, 2004
[2]. M. Dorigo and Thomas St
ützle. Ant Colony Optimization, papes 70-90. McGraw
Hill, London, UK, 2004
[3]. M. Dorigo and T. Stütxle. The ant colony optimization metaheuristic:
Algorithms,
applications and advances
. Technical Report IRIDIA/2000-32, IRRIDIA,
Université Libre de Bruxelles, Belgium, 2000.

×