Bài toán này thuác d¿ng NP-khó, có r¿t nhiều các thuÁt giÁi khác nhau đ°ÿc đ°a ra để có thể tìm lßi giÁi tái °u cho bài toán này nh°: thuÁt toán di truyền, thuÁt toán tham lam, thuÁt toá
Trang 1ÁP DĀNG THUÀT TOÁN TÞI ¯U HÓA ĐÀN KI¾N
Đà GIÀI QUY¾T BÀI TOÁN VÞ TRÍ C¡ Sâ
LUÀN VN TH¾C S) NGÀNH CÔNG NGHà THÔNG TIN
Hà Nßi, năm 2016
Trang 2ÁP DĀNG THUÀT TOÁN TÞI ¯U HÓA ĐÀN KI¾N
Đà GIÀI QUY¾T BÀI TOÁN VÞ TRÍ C¡ Sâ
Ngành : Công nghá thông tin
Chuyên ngành : Há tháng thông tin
Trang 3Tôi xin cam đoan luÁn vn này căa tự bÁn thân tôi tìm hiểu, nghiên cąu d°ới sự h°ớng d¿n căa PGS.TS Hoàng Xuân Hu¿n Các ch°¢ng trình thực nghiám do chính bÁn thân tôi lÁp trình, các kÁt quÁ là hoàn toàn trung thực Các tài liáu tham khÁo đ°ÿc trích d¿n và chú thích đÁy đă
T ÁC GIÀ LUÀN VN
Vj Đąc Quang
Trang 4Em xin bày tß lßi cÁm ¢n chân thành tới tÁp thể các thÁy cô giáo tr°ßng Đ¿i hãc công nghá - Đ¿i hãc Quác gia Hà Nái và Vián công nghá thông tin -
Vián Hàn lâm Khoa hãc và Công nghá Viát Nam đã d¿y dß chúng em trong
suát quá trình hãc tÁp ch°¢ng trình cao hãc t¿i tr°ßng
ĐÁc biát em xin bày tß lòng biÁt ¢n sâu sắc tới thÁy giáo PGS.TS Hoàng Xuân Hu¿n, Tr°ßng Đ¿i hãc Công nghá - Đ¿i hãc Quác gia Hà Nái đã quan
tâm, đánh h°ớng và đ°a ra những góp ý, gÿi ý, chßnh sāa quý báu cho em trong quá trình làm luÁn vn tát nghiáp
Cuái cùng, em xin chân thành cÁm ¢n các b¿n bè đßng nghiáp, gia đình
và ng°ßi thân đã quan tâm, giúp đỡ và chia sẻ với em trong suát quá trình làm
Trang 5Trang
M à ĐÀU 1
CH¯¡NG 1 MàT Sà KIÀN THĄC TàNG QUAN VÀ BÀI TOÁN Và TRÍ C¡ Sà 3 1.1 Đá phąc t¿p tính toán căa bài toán 3
1.2 NP- đÁy đă 4
1.2.1 Bài toán quyÁt đánh 4
1.2.2 Bằng chąng ngắn gãn để kiểm tra 4
1.2.3 Lớp bài toán P, NP và co-NP 6
1.2.4 Lớp bài toán NP-khó và NP-đÁy đă 7
1.3 Bài toán vá trí c¢ sá không h¿n chÁ khÁ nng 8
1.4 Bài toán vá trí c¢ sá có h¿n chÁ khÁ nng 9
1.5 Bài toán vá trí c¢ sá c¿nh tranh 11
1.6 Bài toán bá trí vá trí xây dựng 14
1.6.1 Hàm māc tiêu thą nh¿t 14
1.6.2 Hàm māc tiêu thą hai 17
1.7 Bài toán bá trí c¢ sá theo hàng 22
1.8 KÁt luÁn ch°¢ng 23
CH¯¡NG 2 THUÀT TOÁN TàI ¯U HÓA ĐÀN KIÀN 24
2.1 Tÿ kiÁn thực đÁn kiÁn nhân t¿o 24
2.1.1 KiÁn thực 24
2.1.2 KiÁn nhân t¿o 26
2.2 Ph°¢ng pháp ACO cho bài toán T¯TH táng quát 27
2.2.1 Đß thá c¿u trúc 27
2.2.2 Mô tÁ thuÁt toán ACO táng quát 29
2.3 Ph°¢ng pháp ACO giÁi bài toán TSP 31
2.3.1 Bài toán TSP và đß thá c¿u trúc 31
2.3.2 Các thuÁt toán ACO cho bài toán TSP 32
2.4 Mát sá v¿n đề khác khi áp dāng ACO 41
2.4.1 ĐÁc tính hái tā 41
2.4.2 Thực hián song song 42
2.4.3 ACO kÁt hÿp với tìm kiÁm cāc bá 43
2.5 KÁt luÁn ch°¢ng 44
CH¯¡NG 3 CÀI ĐÀT THĀ NGHIàM 46
3.1 ThuÁt toán r|p-ACO giÁi bài toán r|p trung tâm 46
3.1.1 L°ÿc đß táng quát 46
3.1.2 Thă tāc ACO 47
3.1.3 KÁt quÁ thā nghiám 50
Trang 63 3.1 Mô tÁ thuÁt toán 55
3.3.2 Đß thá c¿u trúc và thă tāc xây dựng lßi giÁi 55
3.3.3 Quy tắc cÁp nhÁt vÁt mùi 56
3.3.4 Tìm kiÁm đáa ph°¢ng 56
3.3.5 KÁt quÁ thā nghiám 56
3.4 KÁt luÁn ch°¢ng 58
KÀT LUÀN 59
DANH MĀC CÁC CÔNG TRÌNH ĐÃ CÔNG Bà CĂA TÁC GIÀ 60
TÀI LIàU THAM KHÀO 61
Trang 7Vi ¿t tÃt Vi ¿t đÁy đă
(T ái °u hóa đàn kiÁn)
(H á kiÁn ACS)
(Thu Át toán m¿ng mißn dách)
(Há kiÁn AS)
(Bài toán vá trí c¢ sá có h¿n chÁ khÁ nng)
(Bài toán bá trí vá trí xây dựng)
(GiÁi thuÁt di truyền)
(Há kiÁn đa mąc MLAS)
(Há kiÁn MMAS)
(Tái °u hóa bÁy đàn) r|p-centroid r|p-trung tâm
(Há kiÁn MMAS tr¢n)
(Bài toán bá trí c¢ sá theo hàng)
(Bài toán vá trí c¢ sá không h¿n chÁ khÁ nng)
Trang 8BÁng 1.1 Ký hiáu các c¢ sá 15
BÁng 1.2 TÁn su¿t di chuyển giữa các c¢ sá 16
BÁng 1.3 KhoÁng cách giữa các c¢ sá (đ¢n vá m) 17
BÁng 1.4 Ma trÁn chi phí xây dựng (C) 18
BÁng 1.5 Ma trÁn láng giềng (A) trong TH4 19
BÁng 1.6 Ma trÁn chi phí t°¢ng tác giữa các c¢ sá (D) trong TH4 19
BÁng 1.7 Ma trÁn láng giềng (A) trong TH5 20
BÁng 1.8 Ma trÁn chi phí t°¢ng tác giữa các c¢ sá (D) trong TH5 20
BÁng 2.1.ThuÁt toán ACO theo thą tự thßi gian xu¿t hián 34
B Áng 3.1 Bá dữ liáu Eclidean, �㖑 = �㖓 = Āÿ 51
B Áng 3.2 Bá dữ liáu Eclidean �㖑 = �㖓 = Ā�㗓 52
B Áng 3.3 Bá dữ liáu Uniform �㖑 = �㖓 = �㗕 52
B Áng 3.4 So sánh kÁt quÁ căa các TH1, TH2 và TH3 53
B Áng 3.5 So sánh kÁt quÁ trong TH4 và TH5 54
B Áng 3.6 Lßi giÁi tái °u căa 6 bá dữ liáu 56
B Áng 3.7 So sánh kÁt quÁ thuÁt toán ACO- SRFL với các thuÁt toán khác 57
B Áng 3.8 So sánh thßi gian ch¿y giữa thuÁt toán ACO- SRFL với thuÁt toán đàn d¢i (Bat Algorithm) 57
Trang 9Hình 1.1 Phân lớp các bài toán 8
Hình 1.2 Các vá trí biểu dißn mát dự án xây dựng 16
Hình 1.3 Ví dā về mát dự án xây dựng 18
Hình 2.1 Thí nghiám trên cây cÁu đôi 25
Hình 2.2 Thí nghiám ban đÁu chß mát nhánh dài và sau 30 phút thêm nhánh ngắn 26
Hình 2.3.Đß thá c¿u trúc táng quát cho bài toán cực tri hàm f(x 1 ,&x n ) 29
Hình 2.4 ĐÁc tÁ thuÁt toán ACO 30
Hình 2.5 Lựa chãn đßnh đi tiÁp theo khi kiÁn 33
Hình 2.6 ĐÁc tÁ thuÁt toán ACO giÁi bài toán TSP .33
Hình 3.1 ThuÁt toán �㖓|�㖑-ACO 46
Hình 3.2 Đß thá c¿u trúc 47
Hình 3.3 Thă tāc ACO- Tr°ớc 48
Hình 3.4 ThuÁt toán ACO-Sau 49
Hình 3.5 ThuÁt toán tìm kiÁm đáa ph°¢ng 50
Hình 3.6 ThuÁt toán ACO-SRFL 55
Hình 3.7 Đß thá c¿u trúc thuÁt toán ACO-SRFL 55
Trang 10M â ĐÀU
Trong cuác sáng, viác đ¿t lÿi nhuÁn cao hay th¿p trong kinh doanh buôn bán, cung c¿p dách vā phā thuác r¿t nhiều yÁu tá Trong đó, có mát yÁu tát quan
trãng đÁu tiên, đóng góp mát phÁn r¿t lớn đó là xác đánh đ°ÿc đáa điểm đÁt dách
vā thuÁt lÿi – n¢i cung c¿p dách vā cho khách hàng Có r¿t nhiều tiêu chí đÁt ra khi chãn vá trí đÁt c¢ sá nh°: thuÁn tián về giao thông, là n¢i tÁp trung đông dân c°, & để làm sao thu đ°ÿc lÿi nhuÁn cao nh¿t ĐÁc biát, đái với các tr°ßng hÿp
khẩn c¿p nh° cąu th°¢ng, cąu hßa thì yêu cÁu về khoÁng cách nhß nh¿t là vô cùng quan trãng, có thể nói là quan trãng nh¿t trong các yÁu tá Bài toán đÁt ra là: đÁt các tr¿m dách vā á đâu để thßi gian di chuyển bánh nhân tÿ n¢i xa bánh viên nh¿t (hoÁc ng°ÿc l¿i, tÿ các tr¿m dách vā đÁn n¢i bánh nhân xa nh¿t) là nhß
nh¿t có thể Còn với dách vā phá biÁn nh° tr¿m xng, thùng phiÁu, bát đián tho¿i, & thì yêu cÁu l¿i là chi phí tÿ các khách hàng (hay ng°ßi có nhu cÁu) đÁn đáa điểm phāc vā gÁn khách hàng nh¿t là nhß nh¿t
Bài toán này thuác d¿ng NP-khó, có r¿t nhiều các thuÁt giÁi khác nhau đ°ÿc đ°a ra để có thể tìm lßi giÁi tái °u cho bài toán này nh°: thuÁt toán di truyền, thuÁt toán tham lam, thuÁt toán tái °u hóa bÁy đàn, tìm kiÁm tabu& Tuy nhiên các giÁi thuÁt trên đều tán chi phí về thßi gian và/hoÁc không gian lớn
Tái °u hóa đàn kiÁn (Ant Colony Optimization - ACO) là cách tiÁp cÁn
metaheuristic t°¢ng đái mới, do Dorigo giới thiáu vào nm 1991 và liên tāc đ°ÿc phát triển cho đÁn nay Thành công đÁu tiên căa các thuÁt toán ACO là giÁi quyÁt bài toán Ng°ßi chào hàng nái tiÁng với sá đßnh lên tới h¢n 2000 với kÁt
quÁ thu đ°ÿc là tát, hiáu quÁ căa nó đ°ÿc chąng minh bằng thực nghiám
ĐÁu tiên, luÁn vn đã há tháng hóa các kiÁn thąc c¢ sá về lý thuyÁt đá
phąc t¿p thuÁt toán, lớp các bài toán P, NP, NP-khó và NP-đÁy đă Sau đó, luÁn vn trình bày các bài toán điển hình trong lớp các bài toán vá trí c¢ sá cùng các nghiên cąu đã đ°ÿc công bá gÁn đây TiÁp theo, tác giÁ đề xu¿t thuÁt toán dựa trên giÁi thuÁt tái °u đàn kiÁn giÁi mát sá bài toán vá trí c¢ sá hián nay và so sánh kÁt quÁ thu đ°ÿc với mát sá công trình đã đ°ÿc công bá gÁn đÁy nhằm rút
ra đ°ÿc các °u nh°ÿc điểm căa thuÁt toán KÁt quÁ này đã đ°ÿc tác giÁ công bá trong 2 công trình nghiên cąu khoa hãc
Nái dung chính căa luÁn vn đ°ÿc chia thành 4 ch°¢ng nh° sau:
Trang 11Ch°¢ng 1: Tìm hiểu táng quan về các kiÁn thąc c¢ sá về đá phąc t¿p
thuÁt toán, lớp các bài toán P, NP và NP-khó và các bài toán thuác lớp bài toán
vá trí c¢ sá cũng nh° các công bá gÁn đây
Ch°¢ng 2: Trình bày chi tiÁt về thuÁt toán tái °u hóa đàn kiÁn
Ch°¢ng 3: Trình bày về cài đÁt ch°¢ng trình, thā nghiám và so sánh kÁt
quÁ với mát sá công trình đã công bá gÁn đây
K ¿t luÁn
Tài liáu tham khÁo
Trang 12CH¯¡NG 1
M ÞT SÞ KI¾N THĄC TÞNG QUAN VÀ BÀI TOÁN VÞ TRÍ C¡ Sâ
Trong cuác sáng, viác đ¿t lÿi nhuÁn cao hay th¿p trong kinh doanh buôn bán, cung c¿p dách vā phā thuác r¿t nhiều yÁu tá Trong đó, có mát yÁu tá quan
trãng đÁu tiên, đóng góp mát phÁn r¿t lớn đó là xác đánh đ°ÿc đáa điểm đÁt dách
vā thuÁn lÿi – n¢i cung c¿p dách vā Có r¿t nhiều tiêu chí đÁt ra khi chãn đáa điểm: thuÁn tián về giao thông, là n¢i tÁp trung đông dân c°&để làm sao thu đ°ÿc lÿi nhuÁn cao nh¿t ĐÁc biát, đái với các tr°ßng hÿp khẩn c¿p nh° cąu th°¢ng, cąu hßa thì yêu cÁu về khoÁng cách nhß nh¿t là vô cùng quan trãng, có
thể nói là quan trãng nh¿t trong các yÁu tá
Yêu cÁu căa bài toán vá trí c¢ sá là tìm ph°¢ng án đÁt các tr¿m dách vā á đâu để thßi gian di chuyển bánh nhân tÿ n¢i xa bánh vián nh¿t (hoÁc ng°ÿc l¿i,
tÿ các tr¿m dách vā đÁn n¢i bánh nhân xa nh¿t) là nhß nh¿t có thể Còn với các
dách vā phá biÁn nh° tr¿m xng, thùng phiÁu, bát đián tho¿i,& thì yêu cÁu l¿i là
táng chi phí tÿ khách hàng (hay ng°ßi có nhu cÁu) đÁn đáa điểm phāc vā gÁn khách hàng nh¿t là nhß nh¿t
1.1 Đß phąc t¿p tính toán căa bài toán
Gãi TA(X) là thßi gian tính căa thuÁt toán A đái với đÁu vào X Khi đó thßi gian tính trong tình huáng tßi nh¿t căa thuÁt toán A đái với dữ liáu đÁu vào kích th°ớc n đ°ÿc đánh ngh*a nh° là:
Đá phąc t¿p trong tình huáng tßi nh¿t căa thuÁt toán P là thßi gian tính
trong tình huáng tßi nh¿t căa thuÁt toán nhanh nhất để giÁi nó:
Trong đó là tÁp t¿t cÁ các thuÁt toán giÁi bài toán P
Viác đánh giá đúng đá phąc t¿p căa bài toán là mát v¿n đề hÁt sąc phąc
t¿p Vì vÁy chúng ta quan tâm đÁn viác đ°a ra các cÁn trên và cÁn d°ới cho nó
NÁu ta có thuÁt toán A với thßi gian tính trong tình huáng tßi nh¿t là
TA(n)= ÿ(Ą(Ą)) thì:
Ā�㕃(Ą) f Ā�㔴(Ą) f ÿ(Ą(Ą))
Trang 13Tąc là ta có cÁn trên cho đá phąc t¿p căa bài toán P ThuÁt toán nhanh h¢n s¿ cho cÁn trên tát h¢n
Chúng ta còn quan tâm đÁn viác đánh giá cÁn d°ới đá phąc t¿p căa bài toán, ngh*a là quan tâm đÁn viác nó khó đÁn mąc đá nào
Để chß ra rằng:
Ā�㕃(Ą) = (Ą(Ą))
Ta cÁn phÁi chß ra rằng:
i Có thuÁt toán với thßi gian tính (Ą(Ą)) để giÁi bài toán P
ii Mãi thuÁt toán giÁi bài toán P đều đòi hßi thßi gian tính trong tình huáng
tßi nh¿t là (Ą(Ą))
Yêu cÁu ii có thể thay thÁ bái:
ii9 cÁn d°ới cho đá phąc t¿p tính toán căa bài toán P là (Ą(Ą))
1.2 NP- đÁy đă
1.2 1 Bài toán quyết định
Bài toán quyÁt đánh là bài toán mà đÁu ra chß có thể là 8yes9 hoÁc 8no9 (Đúng/sai, 0/1, ch¿p nhÁn/tÿ chái, accept/reject) Đái với mát bài toán quyÁt đánh, có những bá dữ liáu vào căa nó có câu trÁ lßi (đÁu ra) là 8yes9 và cũng có
những bá dữ liáu vào có câu trÁ lßi là 8no9 Những bá dữ liáu vào có câu trÁ lßi 8yes9 (8no9) s¿ đ°ÿc gãi là bá dữ liáu vào 8yes9 (8no9)
Ví dā 1:
Bài toán vß tính nguyên tß: <Hßi sá nguyên n có là sá nguyên tá hay
không?= N=23 là bá dữ liáu vào 8yes9, còn n=24 là bá dữ liáu vào 8no9 căa bài toán
Bài toán tßng con: <Cho tÁp I gßm n sá nguyên d°¢ng x1, x2,&,xn và sá nguyên d°¢ng T Hßi có thể tìm đ°ÿc tÁp con S căa I với táng các sá trong S là bằng T?=
Bài toán ng°ái du lßch d¿ng quy¿t đßnh (Dec – TSP): <Tßn t¿i hay
chng hành trình căa ng°ßi du lách với táng chi phí không v°ÿt quá sá K cho tr°ớc?=
1.2.2 B ằng chứng ngắn gọn để kiểm tra
R¿t nhiều các bài toán quyÁt đánh có mát đÁc điểm chung, đó là để xác
nhÁn câu trÁ lßi 'yes' đái với bá dữ liáu vào 'yes' căa chúng, ta có thể đ°a ra
Trang 14bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời 'yes' cho bộ dữ liệu vào 'yes' đó
Ví dā 2:
Đái với bài toán kiểm tra tích hÿp sá: "Có phÁi sá n là hÿp sá?", để xác
nhÁn câu trÁ lßi 'yes' cho đÁu vào n, ta có thể đ°a ra mát °ớc sá b (1<b<n)
căa n Để kiểm tra xem b đúng là °ớc sá căa n ta có thể thực hián phép chia n cho b sau thßi gian đa thąc.Trong ví dā này b là bằng chąng ngắn gãn (vì b<n) và dß kiểm tra: có thuÁt toán thßi gian tính đa thąc để kiểm tra b đúng là °ớc sá căa n
Đái với bài toán táng con, bằng chąng xác nhÁn câu trÁ lßi 'yes' đái với bá
dữ liáu (x1, ,xn) là vecto c = (c1, ,cn), trong đó ci = 1 nÁu xi đ°ÿc chãn vào tÁp S và ci = 0 nÁu trái l¿i Viác kiểm tra xem tÁp S gßm các sá đ°ÿc
chãn có thßa mãn yêu cÁu đÁt ra hay không, rõ ràng, có thể thực hián sau
thßi gian đa thąc
Đái với bài toán ng°ßi du lách d¿ng quyÁt đánh, bằng chąng xác nhÁn câu trÁ lßi 'yes' cho ma trÁn chi phí C = {cij: i,j=1, ,n} căa bài toán là dãy các thành phá trên hành trình Viác kiểm tra xem dãy các thành phá đã cho có
phÁi là hành trình với chi phí không v°ÿt quá K có thể thực hián xong sau
thßi gian đa thąc
Ta gãi bằng chąng ngÃn gán dß kiám tra xác nhÁn câu trÁ lái 'yes' cho
bá dữ liáu vào 'yes' căa bài toán là mát bằng chąng có đá dài bá chÁn bái mát đa
thąc bÁc cá đánh căa đá dài dữ liáu đÁu vào căa bài toán, và viác kiểm tra nó là
bằng chąng xác nhÁn câu trÁ lßi 'yes' đái với đÁu vào đã cho căa bài toán có thể thực hián xong sau thßi gian đa thąc
Nh° vÿa chß ra á trên, các bài toán trong ví dā 2 đều có bằng chąng ngắn
gãn dß kiểm tra để xác nhÁn câu trÁ lßi 'yes' căa bá dữ liáu vào 'yes'
Hoàn toàn t°¢ng tự, có thể đ°a ra khái niám b ằng chąng ngÃn gán dß kiám tra
đá xác nhÁn câu trÁ lái 'no'
Đái với mát sá bài toán viác đ°a ra bằng chąng ngắn gãn xác đánh câu trÁ
lßi 'no' là dß h¢n so với viác đ°a ra bằng chąng ngắn gãn xác đánh câu trÁ lßi 'yes'
Ví dā 3:
Trang 15Đái với bài toán kiểm tra tính nguyên tá, để đ°a ra bằng chąng ngắn gãn dß
kiểm tra xác nhÁn câu trÁ lßi 'no' cho đÁu vào n căa nó, ta có thể đ°a ra mát °ớc
sá b căa n
Có những bài toán mà viác đ°a ra bằng chąng ngắn gãn dß kiểm tra xác
nhÁn câu trÁ lßi 'yes' cũng nh° 'no' đều là không dß dàng
Ví dā 4:
Cho đ¢n đß thá vô h°ớng G = (V,E) Hßi có đ°ßng đi đ¢n dài nh¿t nái hai đßnh s và t căa đß thá G có tßn t¿i duy nh¿t?
1.2.3 L ớp bài toán P, NP và co-NP
Tr°ớc hÁt, ta nêu khái niám về lớp các bài toán dß giÁi – đó là các bài toán
có thể giÁi đ°ÿc nhß các thuÁt toán thßi gian tính đa thąc
Định nghĩa: Ta gọi P là lớp các bài toán có thể giải được sau thời gian đa thức
Ví dā 5:
Bài toán về tính liên thông căa đß thá có thể giÁi đ°ÿc nhß thuÁt toán với
thßi gian tính là O(n2), vì vÁy, nó là bài toán thuác lớp P Bài toán cây khung nhß nh¿t giÁi đ°ÿc nhß thuÁt toán Prim với thßi gian O(n2), cũng thuác vào lớp
P
Định nghĩa: Ta gọi NP là lớp các bài toán quyết định mà để xác nhận câu trả
lời 'yes' của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra
Ví dā 6:
Các bài toán trình bày trong ví dā 2 đều thuác lớp NP
Định nghĩa: Ta gọi co-NP là lớp các bài toán quyết định mà để xác nhận câu
trả lời 'no' của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra
Ví dā 7:
Các bài toán trình bày trong ví dā 3 đều thuác lớp co-NP
Bài toán trong ví dā 4 còn ch°a biÁt có thuác vào lớp nào trong hai lớp
NP và co-NP hay không
Rõ ràng, nÁu mát bài toán thuác lớp P, thì ta có thể tìm đ°ÿc lßi giÁi căa
nó sau thßi gian đa thąc, và vì thÁ ta cũng có thể xác nhÁn đ°ÿc câu trÁ lßi 'yes'
căa nó (bằng viác giÁi nó) sau thßi gian đa thąc Vì vÁy:
PýNP
Trang 16Cho đÁn hián nay v¿n đề này v¿n là v¿n đề má
1.2.4 L ớp bài toán NP-khó và NP-đầy đủ
Ta s¿ đ°a ra đánh ngh*a về những bài toán khó nh¿t trong lớp NP: bài toán
NP-đÁy đă (NP-complete)
Định nghĩa:
Một bài toán quyết định A được gọi là NP-đầy đủ nếu như:
i A là bài toán trong NP;
ii Mọi bài toán trong NP đều có thể qui dẫn về A
Nh° vÁy, có thể nói khái niám về "bài toán khó nhất" trong lớp NP đ°ÿc
xây dựng trên c¢ sá phép qui d¿n NÁu t¿t cÁ các bài toán trong NP có thể qui
d¿n về mát bài toán A thì A khó không kém b¿t cą bài toán nào trong sá chúng Điều đáng ng¿c nhiên là sự tßn t¿i căa những bài toán có tính ch¿t nh° vÁy
Khó khn nh¿t là viác tìm ra đ°ÿc mát bài toán nh° vÁy Bái vì hß chúng
ta đã có mát bài toán NP-đÁy đă thì để ta có thể dß dàng chąng minh nhiều bài toán khác là NP-đÁy đă nhß sā dāng kÁt quÁ sau đây
Bß đß: Giả sử bài toán A là NP-đầy đủ, bài toán B là thuộc NP, và bài
toán A qui dẫn về B Khi đó bài toán B cũng là NP-đầy đủ
Định nghĩa: Một bài toán A được gọi là NP-khó (NP-hard) nếu như sự
tồn tại thuật toán đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải một bài toán trong NP
Mát cách không hình thąc, có thể nói rằng nÁu ta có thể giÁi đ°ÿc mát cách hiáu quÁ mát bài toán NP-khó cā thể, thì ta cũng có thể giÁi hiáu quÁ b¿t kỳ bài toán nào trong NP bằng cách sā dāng thuÁt toán giÁi bài toán NP-khó nh° là
mát ch°¢ng trình con
Trang 17Tÿ đánh ngh*a khó suy ra rằng mßi bài toán đÁy đă đều là khó Tuy nhiên, nh° đã nêu á trên, mát bài toán là NP-khó không nh¿t thiÁt phÁi
NP-là NP-đÁy đă
Tÿ Bá đề suy ra rằng để chąng minh mát bài toán A nào đó là NP-khó, ta
chß cÁn chß ra phép qui d¿n mát bài toán đã biÁt là NP-khó về nó
Ta có bąc tranh t¿m thßi đÁy đă h¢n về phân lớp các bài toán trên hình 1.3:
Hình 1.1 Phân lớp các bài toán
Tÿ phÁn trình bày trên, ta th¿y rằng có r¿t nhiều bài toán ąng dāng quan trãng thuác vào lớp NP-khó, và vì thÁ khó hi vãng xây dựng đ°ÿc thuÁt toán đúng hiáu quÁ để giÁi chúng Mát trong những h°ớng phát triển thuÁt toán giÁi các bài toán nh° vÁy là xây dựng các thuÁt toán gÁn đúng
1.3 Bài toán vß trí c¢ sã không h¿n ch¿ khÁ năng
Bài toán vá trí c¢ sá không h¿n chÁ khÁ nng (Uncapacitated Facility Location Problem - UFLP) có thể đ°ÿc gãi với nhiều tên khác nhau, chẳng h¿n nh°: Simple Plant Location Problem, the location of bank accounts problem, warehouse location problem, the standardization and uniûcation problem, the problem of a nonrecoverable tools optimal system&
Bài toán UFLP đ°ÿc phát biểu nh° sau: Xét mát tÁp ą = {1,2, 3,&, þ} các c¢ sá tiềm nng cung c¿p sÁn phẩm hoÁc dách vā Mát c¢ sá i * ą có chi phí xây dựng là ÿÿ (ÿÿ > 0) Mßi c¢ sá má có thể cung c¿p mát sá l°ÿng không
giới h¿n hàng hóa cho mßi khách hàng Và mát tÁp Ć = {1, 2,&, ý} là tÁp các khách hàng sā dāng dách vā Giá trá ąÿĀ (với ÿ * ą và Ā * Ć) là chi phí vÁn chuyển
tÿ c¢ sá ÿ đÁn khách hàng Ā Māc tiêu là xác đánh mát tÁp hÿp con ÿ căa tÁp hÿp các đáa điểm c¢ sá tiềm nng ą (ÿ ý ą, ÿ ) để cung c¿p cho t¿t cÁ các khách hàng sao cho táng chi phí xây dựng và chi phí vÁn chuyển là nhß nh¿t
Trang 18là ng°ßi đÁu tiên nghiên cąu mát mô hình vá trí c¢ sá mà không bá h¿n chÁ về sá l°ÿng sÁn phẩm t¿i mßi c¢ sá
T¿t cÁ các ph°¢ng pháp tiÁp cÁn quan trãng có liên quan đÁn bài toán UFLP có thể đ°ÿc chia thành 2 lo¿i chính là: ThuÁt toán chính xác và ph°¢ng pháp dựa trên metaheuristics Các thuÁt toán chính xác để giÁi quyÁt bài toán UFLP chẳng h¿n nh° nhánh cÁn, quy ho¿ch tuyÁn tính (linear programing), thuÁt toán nới lßng Lagrng (Lagrangean relaxation) Cách tiÁp cÁn đái ng¿u (dual approach (DUALLOC)) và ph°¢ng pháp đái ng¿u nguyên thăy (primaldual approaches) Bài toán UFLP đ°ÿc chąng minh là NP khó nên các thuÁt toán chính xác trên có thể không thực sự hiáu quÁ khi giÁi quyÁt các tr°ßng hÿp sá l°ÿng c¢ sá lớn Vì vÁy, đã có r¿t nhiều các nghiên cąu giÁi bài toán UFLP dựa trên ph°¢ng pháp heuristics hay metaheuristics
1.4 Bài toán vß trí c¢ sã có h¿n ch¿ khÁ năng
Bài toán vá trí c¢ sá có h¿n chÁ khÁ nng (Capacitated Facility Location Problem – CFLP) là khái quát hóa bài toán UFLP khi mà những c¢ sá bá giới
Trang 19h¿n về sá l°ÿng sÁn phẩm MÁc dù mô hình toán hãc căa hai bài toán này không khác nhau nhiều nh°ng các ph°¢ng pháp giÁi bài toán CFLP thì th°ßng khó h¢n
Trong bài toán CFLP, mßi khách hàng có nhu cÁu nh¿t đánh để đáp ąng
và các c¢ sá có h¿n chÁ về công su¿t phāc vā hay h¿n chÁ về sÁn phẩm cung
c¿p, tąc là táng nhu cÁu căa khách hàng đ°ÿc phân công mát c¢ sá không thể v°ÿt quá khÁ nng căa c¢ sá đó CÁ hai bài toán UFLP và CFLP đ°ÿc coi là NP-khó (Garey & Johnson, 1990; Kariv & Hakimi, 1979) Các bài toán vá trí c¢ sá
có thể đ°ÿc nghiên cąu trên không gian rßi r¿c hoÁc liên tāc Khi c¢ sá có thể đ°ÿc đÁt á b¿t cą n¢i nào trong khu vực, bài toán đ°ÿc coi là là liên tāc Khi c¢
sá có thể đ°ÿc đÁt chß t¿i các đáa điểm cā thể, bài toán đ°ÿc coi là rßi r¿c Māc tiêu căa bài toán CFLP là tìm ra Ć vá trí đÁt c¢ sá sao cho táng chi phí xây dựng
và chi phí vÁn chuyển giữa các khách hàng và c¢ sá là nhß nh¿t Chính vì vÁy, bài toán CFLP còn có tên gãi khác là bài toán p-median
Bài toán CFLP đ°ÿc mô tÁ chi tiÁt nh° sau:
Trang 20tÿ (1.8) đÁn (1.12) đều thßa mãn Trong đó, h¿n chÁ (1.8) đÁm bÁo rằng mßi khách hàng chß đ°ÿc cung c¿p bái mát c¢ sá H¿n chÁ (1.9) đÁm bÁo rằng táng nhu cÁu căa khách hàng đ°ÿc phân công đÁn mát c¢ sá không v°ÿt quá khÁ nng đáp ąng căa c¢ sá đó H¿n chÁ (1.10) đÁm bÁo rằng sá l°ÿng các c¢ sá má
là trong khoÁng ÿ và Ā, đái với bài toán p-median thì sá l°ÿng c¢ sá đ°ÿc má ra chính xác bằng sá Ć H¿n chÁ (1.11) và (1.12) là các điều kián nhá phân
Trong tr°ßng hÿp /ÿ = 1, ∀ ÿ * ą và ĉĀ = Ą, ∀ Ā * Ć thì bài toán CFLP s¿
trá thành bài toán UFLP
Có r¿t nhiều ph°¢ng pháp đã đ°ÿc đề xu¿t để giÁi quyÁt bài toán bao gßm thuÁt toán dựa trên đái ng¿u đ°ÿc Erlenkotter [13] công bá Ý t°áng chính là sā
dāng tiÁp cÁn đái ng¿u quy ho¿ch tuyÁn tính tìm mát cÁn cho hàm māc tiêu Ngoài ra, các thuÁt toán đã đ°ÿc áp dāng để giÁi quyÁt bài toán UFLP cũng đã đ°ÿc các tác giÁ triển khai cho bài toán CFLP
1.5 Bài toán vß trí c¢ sã c¿nh tranh
Với bài toán UFLP hay CFLP, hàm māc tiêu đ°ÿc đ°a ra nhằm tái đa hóa
lÿi nhuÁn căa mát ng°ßi hoÁc giÁm thiểu táng chi phí căa khách hàng với c¢ sá Nh°ng bài toán vá trí c¢ sá c¿nh tranh (Competitive Facilities Location Problem) hay còn đ°ÿc gãi là bài toán r|p-centroid (r|p trung tâm) xét tình huáng
phąc t¿p h¢n khi hai ng°ßi ch¢i Trước và Sau là đái thă căa nhau lÁn l°ÿt chãn
vá trí đÁt c¢ sá Trong khi đó, mßi khách hàng dựa trên sá thích riêng căa hã, lựa
chãn c¢ sá tát nh¿t trong sá t¿t cÁ các c¢ sá đ°ÿc má làm nhà cung c¿p cho mình do đó mang l¿i nhuÁn cho cÁ hai bên
Bài toán (Ĉ|Ć)-trung tâm lÁn đÁu tiên đ°ÿc Hakimi [16] nghiên cąu d°ới
d¿ng bài toán rßi r¿c, có thể phát biểu nh° sau: Cho mát tÁp ą hữu h¿n các đáa điểm có thể chãn để đÁt các c¢ sá dách vā và mát tÁp Ć hữu h¿n căa các vá trí căa khách hàng, ma trÁn (ĂÿĀ) là khoÁng cách tÿ khách hàng Ā * Ć tới c¢ sá ÿ * ą, các
Trang 21giá trá čĀ xác đánh lÿi nhuÁn căa mát c¢ sá thu đ°ÿc trong viác phāc vā khách
hàng Ā Hai công ty / ng°ßi ch¢i Trước và Sau s¿ má các c¢ sá kinh doanh t¿i các điểm căa tÁp ą ĐÁu tiên, ng°ßi ch¢i Trước má Ć c¢ sá BiÁt đ°ÿc quyÁt đánh căa Trước, Sau s¿ chãn để má ra Ĉ c¢ sá Mßi khách hàng s¿ chãn ra c¢ sá
gÁn hã nh¿t trong sá Ć + Ĉ c¢ sá căa cÁ hai ng°ßi ch¢i đã má ra nh° là nhà cung c¿p cho mình KÁt quÁ là tÁp khách hàng s¿ đ°ÿc chia thành hai phÁn: tÁp
khách hàng lựa chãn Trước và tÁp khách hàng lựa chãn Sau Bài toán đÁt ra là tìm ra Ć vá trí đÁt c¢ sá cho Trước để đ¿t tái đa nh¿t lÿi nhuÁn d°ới sự phÁn ąng
Xét mát đß thá hai phía đÁy đă có trãng sá ă = (ą, Ć, ā), trong đó tÁp đßnh
ą = {1, ,ă} biểu dißn tÁp hÿp các đáa điểm c¢ sá tiềm nng mà hai ng°ßi
ch¢i Trước và Sau có thể lựa chãn để má c¢ sá, tÁp đßnh Ć = {1, , Ą} biểu
dißn tÁp khách hàng, ā = ą × Ć là tÁp các c¿nh có đá đo khoÁng cách t°¢ng ąng ĂÿĀ∀(ÿ, Ā) * ā , mßi Ā * Ć có trãng sá čĀ (čĀ > 0) ąng với doanh thu mà c¢ sá nhÁn đ°ÿc nÁu khách hàng này chãn c¢ sá làm nhà cung c¿p BiÁt rằng
mßi khách hàng s¿ chãn c¢ sá phāc vā gÁn nó nh¿t, trong tr°ßng hÿp khoÁng
cách tới Trước bằng khoÁng cách tới Sau thì khách hàng s¿ chãn Trước
Ta cÁn tìm Ć vá trí trong tÁp ą cho Trước sao cho tái đa hóa doanh thu căa Trước với l°u ý rằng Sau s¿ chãn Ĉ c¢ sá tÿ các đáa điểm còn l¿i cũng nhằm tái
đa hóa doanh thu căa hã khi đã biÁt vá trí dách vā căa Trước
Gãi (Ą, ą) là lßi giÁi cho bài toán (Ĉ|Ć)-trung tâm, trong đó Ą ⊆ ą, |Ą| =
Ć là tÁp các c¢ sá đ°ÿc Trước chãn, và ą ⊆ {ą \ Ą}, |ą | = Ĉ là tÁp các c¢ sá đ°ÿc Sau lựa chãn Với mßi tÁp Ă ⊆ ą và ∀Ā * Ć, ký hiáu Ā(Ā,Ă) =
ăÿĄ{ĂĀÿ| ÿ * Ă} cho khoÁng cách tái thiểu tÿ khách hàng Ā đÁn t¿t cÁ các c¢ sá trong tÁp Ă Khi đó tÁp khách hàng s¿ đ°ÿc chia thành hai phÁn: TÁp khách
hàng lựa chãn Trước āĀ = { Ā * Ć|Ā(Ā, ą) g Ā(Ā, Ą)} và tÁp khách hàng lựa
Trang 22chãn Sau āÿ = {Ć\āĀ} Doanh thu căa Trước s¿ là ĆĀ = ∑Ā*ā�㕇 čĀ =
∑ čĀ 2 Ćý
Ā*þ còn doanh thu căa Sau s¿ là Ćÿ = ∑ čĀ = ∑ čĀ 2 ĆĀ
Ā*þ
Yêu cÁu bài toán là tìm ra tÁp c¢ sá Ą cho Trước sao cho lÿi nhuÁn căa hã
nhÁn đ°ÿc là nhiều nh¿t cho dù Sau có lựa chãn c¢ sá ą nào đi nữa Bài toán tìm tÁp c¢ sá ą tái °u cho Sau khi biÁt tr°ớc Ą đ°ÿc gãi là bài toán (Ĉ|ĄĆ)-
trung vá ((Ĉ|ĄĆ) 2 ăăĂÿÿĄąÿĂ) và nó đã đ°ÿc Hakimi chąng minh là NP-khó [16] Noltemeier cùng các cáng sự [25] đã chąng minh bài toán tÁp c¢ sá Ą cho
Trước có đá phąc t¿p là ∑ 2ā/ó�㕃
2 ngay cÁ khi ma trÁn (ĂÿĀ) là ma trÁn khoÁng cách Euclide trên mÁt phẳng
Bài toán dưới dạng quy hoạch hai mức Bài toán (Ĉ|Ć)-trung tâm có thể
phát biểu d°ới d¿ng bài toán tìm minimax trong bài toán quy ho¿ch hai mąc
Ký hiáu:
Ďÿ = {1 Ąếċ ĀĈưßā ăở ā¡ ĉở ÿ0 Ąếċ Ąąưÿā Ăạÿ (1.13)
ďÿ = {1 Ąếċ ÿÿċ ăở ā¡ ĉở ÿ0 Ąếċ Ąąưÿā Ăạÿ (1.14)
ĐĀ = {1 Ąếċ ā/áā/ /àĄą Ā đưÿā ĀĈưßā Ć/ÿā Čÿ0 Ąếċ ā/áā/ /àĄą Ā đưÿā ÿÿċ Ć/ÿā Čÿ (1.15) Khi đó X ý {i Iþ | x i ý 1 , } Y ý {i Iþ | y i ý 1} Với mßi khách hàng
Ā, chúng ta đánh ngh*a tÁp c¢ sá ąĀ(Ą) cho phép Sau <thu hút= khách hàng Ā
j j x
j J i
i I i
Trang 23ý là táng lÿi nhuÁn căa
Trước khi nó má đúng Ć c¢ sá, giá trá này phā thuác vào lßi giÁi tái °u căa Sau
Đã có nhiều thuÁt toán đề xu¿t cho bài toán này [8] [37] [9] ĐÁc biát, Davydov cùng các cáng sự [9] theo tiÁp cÁn metaheuristics đã đề xu¿t hai thuÁt toán VNS (Variable Neighborhood Search) và STS (Stochastic Tabu Search)
giÁi gÁn đúng nhanh bài toán căa Trước, trong đó hã dùng phÁn mềm CPLEX
(mát phÁn mềm căa IBM cung c¿p nhằm giÁi các bài toán quy ho¿ch tuyÁn tính)
để tìm lßi giÁi tái °u cho Sau mßi khi biÁt các c¢ sá căa Trước; Alekseeva cùng các cáng sự [5] phát triển thuÁt toán IM giÁi đúng bài toán Trước, trong đó cũng
sā dāng phÁn mềm CPLEX cho toán Sau KÁt quÁ thực nghiám cho th¿y °u
điểm căa các thuÁt toán này so với các thuÁt toán đã biÁt tr°ớc đó
1.6 Bài toán bß trí vß trí xây dựng
Bá trí vá trí xây dựng (Construction Site Layout Problem - CSLP) là mát nhiám vā quan trãng cÁn đ°ÿc xem xét cẩn thÁn trong công tác quy ho¿ch xây
dựng Māc tiêu căa bài toán CSLP là sắp xÁp các c¢ sá nh°: vn phòng, nhà kho, phòng tr°ng bày, & trong không gian căa mát dự án xây dựng mát cách hÿp lý Thông th°ßng nhiám vā này đ°ÿc thực hián bái các nhà quÁn lý xây
dựng Tuy nhiên, quyÁt đánh này th°ßng đ°ÿc đ°a ra dựa trên trực giác, thí nghiám và kinh nghiám Viác bá trí hÿp lý các c¢ sá s¿ góp phÁn làm giÁm thiểu chi phí xây dựng, thßi gian vÁn chuyển, xā lý vÁt liáu và giÁm thiểu viác di chuyển nguyên liáu hay trang thiÁt bá, đÁc biát đái với các dự án lớn
Có r¿t nhiều hàm māc tiêu cho bài toán đã đ°ÿc công bá, tuy nhiên hai hàm māc tiêu sau đây đ°ÿc các nghiên cąu ráng rãi và phá biÁn nh¿t
1.6.1 Hàm mục tiêu thứ nhất
Hàm māc tiêu thą nh¿t đ°ÿc chia nhß ra thành ba tr°ßng hÿp ąng với ba
lo¿i điều kián khác nhau trong thực tÁ, ta kí hiáu các tr°ßng hÿp này lÁn l°ÿt là TH1, TH2 và TH3
Trang 24Trong TH1, bài toán đ°ÿc giÁ đánh rằng các vá trí là có s¿n và mßi vá trí đ°ÿc phép đÁt duy nh¿t mát c¢ sá [14] Các c¢ sá đ°ÿc lựa chãn đ°ÿc liát kê trong bÁng 1.1
Electrical, water and other utilities control room UR
Các c¢ sá trong dự án th°ßng có sự kÁt nái khá chÁt ch¿ với nhau, ví dā
nh°: mát nhân viên th°ßng di chuyển giữa Site office và Concrete batch workshop nh°ng l¿i r¿t hiÁm khi di chuyển tÿ Site office tới Storeroom Do đó
các đáa điểm để đÁt các c¢ sá s¿ đ°ÿc lựa chãn cẩn thÁn để giÁm thiểu táng chi phí vÁn chuyển và đó cũng là māc tiêu bài toán Táng khoÁng cách đ°ÿc đánh ngh*a nh° trong hàm (1.19) và (1.20)
ý
Trang 25và vá trí Ā Do đó, hàm māc tiêu Ă là táng khoÁng cách di chuyển đ°ÿc thực hián
bái nhân viên Hình 1.2 d°ới là ví dā về mát dự án với Ą = 11
Hình 1.2 Các vị trí biểu diễn một dự án xây dựng
TÁn su¿t di chuyển (trong mát ngày) giữa các c¢ sá đ°ÿc cho trong bÁng 1.2
B ảng 1.2 Tần suất di chuyển giữa các cơ sở
Trang 26đái xąng qua đ°ßng chéo chính Ví dā, tÁn sá di chuyển tÿ SO đÁn BW và ng°ÿc l¿i đều bằng 9
KhoÁng cách giữa các vá trí đo bằng đ¢n vá mét (m) và đ°ÿc cung c¿p á bÁng 1.3 d°ới đây
B ảng 1.3 Khoảng cách giữa các cơ sở (đơn vị m)
TH2 là tr°ßng hÿp má ráng tÿ TH1 với Site gate và Main gate phÁi luôn
đ°ÿc đÁt t°¢ng ąng á vá trí thą 1 và vá trí thą 10 Điều này đ°ÿc xác đánh dựa
trên đßi sáng thực tÁ Trong xây dựng, Main gate và Side gate th°ßng đ°ÿc xác
đánh đÁu tiên và nằm á những vá trí quan trãng thuÁn lÿi cho viác ra vào Do đó,
Main gate và Side gate đ°ÿc đánh vá trên những vá trí xác đánh tr°ớc
TH3 đ°ÿc giÁ đánh rằng các c¢ sá nh°: Site office, Labor residence, Concrete batch shop không thể đ°ÿc đÁt á những vá trí thą 7 và 8 [20] Tr°ßng
hÿp này đ°ÿc sā dāng để minh hãa các h¿n chÁ, trong đó các c¢ sá có kích th°ớc lớn s¿ không đ°ÿc phép đÁt á những vá trí nhß
1.6.2 Hàm mục tiêu thứ hai
Hàm māc tiêu thą hai đ°ÿc đ°a ra với hai lo¿i tr°ßng hÿp ąng với các bá
dữ liáu khác nhau, chúng ta s¿ kí hiáu các tr°ßng hÿp đó lÁn l°ÿt là TH4 và TH5
Māc tiêu bá trí c¢ sá á phÁn này là chi phí khoÁng cách giữa các đái t°ÿng liền kề Bài toán đ°ÿc mô phßng bái Yeh [38] và Mawdesley [23] cùng các cáng sự Bài toán CSLP còn có thể đ°ÿc xây dựng nh° sau:
Trang 27B ảng 1.4 Ma trận chi phí xây dựng (C)
Trang 281 2 3 4 5 6 7 8 9 10 11 12 R1 35 35 30 30 35 15 10 15 6 6 7 10
Trang 29B ảng 1.7 Ma trận láng giềng (A) trong TH5
Trang 30Bài toán CSLP đ°ÿc phân lo¿i là bài toán phân lo¿i bÁc hai và nó đã đ°ÿc
chąng minh là NP-khó [24] Có r¿t nhiều ph°¢ng pháp khác nhau để giÁi quyÁt bài toán bao gßm cÁ viác áp dāng các thuÁt toán chính xác chẳng h¿n nh° nhánh
cÁn&hay các thuÁt toán gÁn đúng nh°: PSO, GA, và ACO&
Ph°¢ng pháp GA đã đ°ÿc áp dāng ráng rãi cho viác giÁi quyÁt bài toán CSLP [20] Mawdesley cùng các cáng sự đã đề xu¿t mát giÁi thuÁt mà các chi phí di chuyển đ°ÿc mô phßng sā dāng thuÁt toán GA tng c°ßng (augmented GA) [23] Ka Chi Lam cùng các cáng sự [19] đã đề xu¿t mát thuÁt toán kÁt hÿp thuÁt toán Max-Min Ant System (MMAS) với GA
ThuÁt toán PSO dựa trên quá trình tái °u hóa ng¿u nhiên đ°ÿc l¿y cÁm
hąng tÿ hành vi tự nhiên căa các con vÁt nh° chim, ong, cá Mßi cá thể trong đàn có thể đ°ÿc sā dāng làm đ¿i dián cho mát lßi giÁi căa bài toán Mát bÁy đàn
gßm r¿t nhiều cá thể đ°ÿc khái t¿o á các vá trí ng¿u nhiên s¿ bay về phía vá trí
tái °u theo mát con đ°ßng mà luôn đ°ÿc cÁp nhÁt lÁp đi lÁp l¿i dựa trên vá trí
hián t¿i tát nh¿t căa các cá thể Trong [39] Zhang và Wang đã đề xu¿t mát ph°¢ng pháp dựa trên thuÁt toán PSO để giÁi quyÁt các công trình xây dựng không đßng đều, bài toán vá trí c¢ sá
ThuÁt toán ACO là mát thuÁt toán metaheuristic đ°ÿc l¿y cÁm hąng tÿ sinh hãc bắt ch°ớc hành vi căa kiÁn trong quá trình tìm kiÁm thąc n ThuÁt toán này đã đ°ÿc Dorigo cùng các cáng sự [12] đề xu¿t dựa trên quan sát tÿ đàn
kiÁn thực Trong thực tÁ tự nhiên, các con kiÁn bắt đÁu tìm kiÁm thąc n mát cách ng¿u nhiên Mßi con kiÁn s¿ chãn các h°ớng đi khác nhau và con kiÁn đi trên con đ°ßng ngắn nh¿t s¿ có xu h°ớng để l¿i vÁt mùi pheromone với nßng đá cao h¢n các con đ°ßng khác, nh° vÁy, các con kiÁn lân cÁn s¿ ngāi th¿y vÁt mùi
á các đ°ßng đi có nßng đá cao và có xu h°ớng tham gia vào con đ°ßng ngắn
nh¿t và tiÁp tāc làm tng vÁt mùi lên Các con kiÁn s¿ tiÁp tāc tham gia quá trình này cho đÁn khi phÁn lớn l°ÿng vÁt mùi đ°ÿc hái tā trên con đ°ßng ngắn nh¿t
Để áp dāng ACO, các bài toán tái °u hóa đ°ÿc chuyển thành bài toán tìm con
Trang 31đ°ßng tát nh¿t trên mát đß thá có trãng sá Ning và Liu [24] đã sā dāng thuÁt toán MMAS nh° mát cÁi tiÁn căa thuÁt toán ACO để giÁi quyÁt bài toán CSLP Gharaie [14] cùng các cáng sự đã áp dāng ACO để giÁi quyÁt bài toán CSLP t*nh trong mát dự án xây dựng
Gulben Calis và Orhan Yuksel [6] trình bày mát thuÁt toán lai giữa ACO
và tìm kiÁm đáa ph°¢ng (2-opt) Trong [7] Gulben Calis và Orhan Yuksel đề
xu¿t mát thuÁt toán kÁt hÿp giữa ACO với Phân tích Parametric (PA) và tìm kiÁm đáa ph°¢ng (2-opt) cho kÁt quÁ tát h¢n so với những nghiên cąu tr°ớc đây Adrian [3] đã đề xu¿t cách thąc lựa chãn tham sá tái °u cho 3 thuÁt toán GA, PSO và ACO Qua thực nghiám, ông kÁt luÁn rằng ACO đ°ÿc xem là nhanh
nh¿t trong sá ba thuÁt toán khi áp dāng vào bài toán CSLP
1.7 Bài toán bß trí c¢ sã theo hàng
Bài toán bá trí c¢ sá theo hàng (Single row facility layout – SRFL) là mát bài toán đÁc biát căa bài toán vá trí c¢ sá, giÁ sā các c¢ sá đ°ÿc sắp xÁp trên mát hàng dài, mßi c¢ sá ÿ có đá dài L i (L i þ0) Mát ma trÁn kích th°ớc nxn đ°ÿc
ký hiáu là Cý (C ij) với C ijlà chi phí vÁn chuyển tÿ c¢ sá ÿ đÁn c¢ sá Ā Mát ph°¢ng án đ°ÿc gãi là mát cách sắp xÁp các c¢ sá thành hàng theo thą tự
phẳng cắt (cutting plane) Tuy nhiên, các ph°¢ng pháp chính xác đều có nh°ÿc điểm chung là gÁp khó khn khi giÁi quyÁt mát khái l°ÿng lớn các tính toán và
Trang 32bá nhớ l°u trữ với sá l°ÿng c¢ sá lớn Chính vì vÁy, các thuÁt toán heuristic và metaheuristic đã đ°ÿc đề xu¿t làm giÁm chi phí tính toán và thßi gian ch¿y căa thuÁt toán mà v¿n cho những lßi giÁi ch¿p nhÁn đ°ÿc Solimanpur [34] đề xu¿t thuÁt toán ACO và PSO đ°ÿc Samarghandi đề xu¿t [31] Feristah Ozcelik [27]
đã đề xu¿t giÁi thuÁt lai giữa giÁi thuÁt di truyền và tìm kiÁm đáa ph°¢ng Sinem [33] đề xu¿t thuÁt toán đàn d¢i giÁi bài toán nhanh cho lßi giÁi tát trong thßi gian ngắn
1.8 K ¿t luÁn ch°¢ng
Trên đây chúng ta đã tìm hiểu các kiÁn thąc táng quan về đá phąc t¿p thuÁt toán, lớp các bài toán P, NP, NP-khó Viác đánh giá mát bài toán thuác lớp nào là công đo¿n đÁu tiên và vô cùng quan trãng, nó góp phÁn giúp ng°ßi lÁp trình đánh h°ớng và lựa chãn các thuÁt toán giÁi phù hÿp cho bài toán
Các bài toán điển hình trong lớp các bài toán vá trí c¢ sá cùng các thuÁt toán đã đ°ÿc đề xu¿t giÁi các bài toán đó Chi tiÁt viác đánh giá, so sánh hiáu nng căa các thuÁt toán s¿ đ°ÿc trình bày trong ch°¢ng 3
Trang 33CH¯¡NG 2 THU ÀT TOÁN TÞI ¯U HÓA ĐÀN KI¾N
Tái °u đàn kiÁn (ACO) là mát ph°¢ng pháp metaheuristic dựa trên ý t°áng mô phßng cách tìm đ°ßng đi tÿ tá tới ngußn thąc n căa các con kiÁn tự nhiên ĐÁn nay nó đ°ÿc cÁi tiÁn đa d¿ng và có nhiều ąng dāng [1] Tr°ớc khi
giới thiáu ph°¢ng pháp ACO, cÁn giới thiáu ph°¢ng thąc trao đái thông tin gián
tiÁp căa các con kiÁn thực và mô hình kiÁn nhân t¿o
2.1 T ć ki¿n thực đ¿n ki¿n nhân t¿o
Khi tìm đ°ßng đi, đàn kiÁn trao đái thông tin gián tiÁp và ho¿t đáng theo ph°¢ng thąc tự tá chąc MÁc dù đ¢n giÁn nh°ng ph°¢ng thąc này giúp cho đàn
kiÁn có thể thực hián đ°ÿc những công viác phąc t¿p v°ÿt xa khÁ nng căa tÿng con kiÁn, đÁc biát là khÁ nng tìm đ°ßng đi ngắn nh¿t tÿ tá đÁn ngußn thąc n
mÁc dù chúng không có khÁ nng đo đá dài đ°ßng đi Tr°ớc hÁt ta xem các đàn
kiÁn tìm đ°ßng đi nh° thể nào mà có thể giÁi quyÁt đ°ÿc các v¿n đề tái °u hóa
kÁ thuÁt toán ACO
Thí nghiám trên cây cÁu đôi
Có nhiều thực nghiám nghiên cąu về hành vi để l¿i vÁt mùi và đi theo vÁt mùi căa loài kiÁn Mát thực nghiám đ°ÿc thiÁt kÁ bái Deneubourg và các đßng nghiáp (Deneubourg, Aron, Goss, & Pasteels, 1990; Goss et al., 1989) nhß dùng
mát chiÁc cÁu đôi nái tÿ tá căa loài kiÁn tới ngußn thąc n nh° minh hãa trong hình 3.1 Hã đã thực nghiám với tß lá đá dài đ°ßng Ĉ = ĂĂ
Ăý giữa hai nhánh căa chiÁc cÁu đôi khác nhau, trong đó ĂĂ là đá dài căa nhánh dài còn Ăý là đá dài căa nhánh ngắn
Trong th ực nghiệm thứ nhất, chiÁc cÁu đôi có hai nhánh bằng nhau (Ĉ =
1, hình 3.1.a) Ban đÁu, kiÁn lựa chãn đ°ßng đi mát cách tự do đi tÿ tá đÁn ngußn thąc n, cÁ hai nhánh đều có kiÁn đi, nh°ng sau mát thßi gian các con
kiÁn này tÁp trung đi theo cùng mát nhánh KÁt quÁ có thể đ°ÿc giÁi thích nh°
Trang 34sau: Ban đÁu không có vÁt mùi nào trên cÁ hai nhánh, do đó các kiÁn lựa chãn nhánh b¿t kỳ với xác su¿t nh° nhau Mát cách ng¿u nhiên, s¿ có mát nhánh có
sá l°ÿng kiÁn lựa chãn nhiều h¢n nhánh kia Do kiÁn để l¿i vÁt mùi trong quá trình di chuyển, nhánh có nhiều kiÁn lựa chãn s¿ có nßng đá mùi lớn h¢n nßng
đá mùi căa nhánhcòn l¿i Nßng đá mùi trên c¿nh lớn h¢n s¿ ngày càng lớn h¢n
vì ngày càng có nhiều kiÁn lựa chãn Cuái cùng, hÁu nh° t¿t cÁ các kiÁn s¿ tÁp trung trên cùng mát nhánh.Thực nghiám này cho th¿ylà sự t°¢ng tác đáa ph°¢ng giữa các con kiÁn nhß thông tin gián tiÁp qua vÁt mùi để l¿i mà có thể điều chßnh
ho¿t đáng v* mô căa kiÁn
Hình 2.1 Thí nghiệm trên cây cầu đôi
(a) Hai nhánh có đá dài bằng nhau
(b) Hai nhánh có đá dài khác nhau
Trong thực nghiệm thứ hai (xem hình 2.1b), đá dài giữa nhánh dài h¢n
g¿p đôi nhánh ngắn h¢n (tß lá Ĉ = 2) Trong tr°ßng hÿp này, sau mát thßi gian
t¿t cÁ các kiÁn chãn đi duy nh¿t theo đ°ßng ngắn h¢n Cũng nh° thực nghiám
thą nh¿t, ban đÁu kiÁn lựa chãn đ°ßng đi theo hai nhánh nh° nhau, ta có thể giÁ
sā mát nāa kiÁn đi theo nhánh ngắn và mát nāa đi theo nhánh dài (mÁc dù ng¿u nhiên nh°ng v¿n có thể mát nhánh s¿ có nhiều lựa chãn h¢n nhánh khác) Tuy nhiên thực nghiám này khác với thực nghiám trên: bái vì mát nhánh ngắn h¢n nhánh kia nên các kiÁn lựa chãn theo nhánh ngắn h¢n s¿ nhanh chóng quay trá l¿i tÿ ngußn thąc n về tá và phÁi lựa chãn giữa nhánh ngắn và nhánh dài, nßng
đá mùi trên nhánh ngắn đang cao h¢n nßng đá mùi trên nhánh dài, do đó nó °u tiên lựa chãn đi theo nhánh ngắn h¢n ThÁt thú vá, chúng ta có thể quan sát th¿y
rằng, với nhánh dài g¿p đôi nhánh ngắn thì không phÁi t¿t cÁ các kiÁn cũng đều
đi theo nhánh ngắn h¢n và phÁi m¿t mát thßi gian nữa thì các kiÁn này s¿ đi theo nhánh ngắn h¢n Điều này đ°ÿc hiểu là mát lo¿i thm dò, tìm đ°ßng mới
Trang 35Mát điều thú vá nữa là điều gì s¿ xÁy ra nÁu sau khi hái tā l¿i xu¿t hián
mát đ°ßng mới tÿ tá đÁn ngußn thąc n Viác này đ°ÿc thực nghiám nh° sau: Ban đÁu tÿ tá đÁn ngußn thąc n chß có mát nhánh dài và sau 30 phút thì thêm mát nhánh ngắn (xem hình 3.2) Trong tr°ßng hÿp này, nhánh ngắn th°ßng không đ°ÿc kiÁn chon mà chúng tÁp trung đi trên nhánh dài Điều này có thể
giÁi thích bái nßng đá vÁt mùi trên c¿nh dài cao và do sự bay h¢i chÁm căa vÁt mùi nên đ¿i đa sá các con kiÁn lựa chãn các nhánh dài (vì nßng đá vÁt mùi cao)
và hành vi này tiÁp tāc căng cá trên nhánh dài, ngay cÁ khi mát nhánh ngắn xu¿t
hián Viác bay h¢i vÁt mùi có thể có lÿi cho viác tìm đ°ßng mới, ngh*a là viác bay h¢i có thể giúp kiÁn quên đi đ°ßng đi tái °u cāc bá để tìm đ°ßng đi mới tát h¢n có thể đ°ÿc khám phá
Hình 2.2 Thí nghiệm ban đầu chỉ một nhánh dài và sau 30 phút thêm nhánh
ng ắn 2.1.2 Ki ến nhân tạo
Qua thực nghiám cây cÁu đôi ta nhÁn th¿y rằng đàn kiÁn trong tự nhiên có thể sā dāng luÁt di chuyển theo xác su¿t dựa trên thông tin đáa ph°¢ng để tìm đ°ÿc đ°ßng đi ngắn nh¿t giữa hai đáa điểm VÁt mùi căa đàn kiÁn làm ta liên t°áng tới cách hãc tng c°ßng (reinforcement learning) cho bài toán chãn tác đáng tái °u gÿi má mát mô hình mô phßng cho bài toán tìm đ°ßng đi ngắn nh¿t giữa hai nút (t°¢ng ąng là tá và ngußn thąc n) trên đß thá, trong đó dùng các tác tā (agent) làm con kiÁn nhân t¿o
Tuy nhiên, trong các bài toán ąng dāng thì các đß thá phąc t¿p h¢n, tÿ mßi đßnh có nhiều c¿nh nên nÁu mô phßng trung thực với kiÁn tự nhiên thì nhiều con kiÁn s¿ đi luẩn quẩn và hiáu quÁ s¿ r¿t kém Vì vÁy ng°ßi ta dùng đa tác tā (multiagent) làm đàn kiÁn nhân t¿o, trong đó mßi con kiÁn có nhiều khÁ nng h¢n kiÁn tự nhiên Mßi con kiÁn nhân t¿o (về sau s¿ gãi là kiÁn) có bá nhớ riêng,
có khÁ nng ghi nhớ các đßnh đã thm trong hành trình và tính đ°ÿc đá dài
Trang 36đ°ßng đi nó chãn Ngoài ra các con kiÁn có thể trao đái thông tin có đ°ÿc với nhau, thực hián tính toán cÁn thiÁt, cÁp nhÁt mùi&
Nhß các con kiÁn nhân t¿o này Dorigo [12] đã xây dựng há kiÁn (AS) giÁi bài toán ng°ßi chào hàng, hiáu quÁ căa nó so với các ph°¢ng pháp mô phßng tự nhiên khác nh° SA và GA đã đ°ÿc kiểm chąng bằng thực nghiám và đ°ÿc phát triển và ąng dāng phong phú với tên gãi chung là ph°¢ng pháp ACO
2 2 Ph°¢ng pháp ACO cho bài toán T¯TH tßng quát
2 2.1 Đồ thị cấu trúc
Xét bài toán tái °u tá hÿp (T¯TH) táng quát d°ới d¿ng bài toán cực tiểu hoá (ÿ, Ą,), trong đó ÿ là tÁp hữu h¿n tr¿ng thái, Ą là hàm māc tiêu xác đánh trên ÿ còn là các ràng buác để xác đánh ÿ qua các thành phÁn căa tÁp hữu h¿n
ÿ và các liên kÁt căa tÁp này Các tÁp ÿ, ÿ và có các đÁc tính sau
1) Ký hiáu Ą là tÁp các xâu trong ÿ đá dài không quá /: Ą = {< ċ0, , ċā >
ċÿþÿ ÿ ā /}, khi đó mßi ph°¢ng án s trong S đ°ÿc xác đánh nhß ít nh¿t
mát xâu trong X nh° á điểm 2
2) Tßn t¿i tÁp con Ą∗căa Ą và ánh x¿ tÿ Ą∗ lên ÿ sao cho 21(ĉ) không rßng
với mãi ĉþÿ Trong đó tÁp Ą∗có thể xây dựng đ°ÿc tÿ tÁp con ÿ0 nào đó căa
ÿ nhß má ráng tuÁn tự d°ới đây
māc 3.2.2