TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP HỒ CHÍ MINH
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO ĐỀ TÀI MÔN TOÁN CHO MÁY TÍNH
Đề tài : PHÂN TÍCH VÀ THIẾT KẾ THUẬT GIẢI CHO BÀI
TOÁN “NGƯỜI DU LỊCH” GV: PGS. TS Nguyễn Phi Khứ
HV: Dương Thị Xuân Thoại
Mã số: CH1301061 TP Hồ Chí Minh, 2013
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP HỒ CHÍ MINH
KHOA KHOA HỌC MÁY TÍNH
Với khoảng cách là metric 3
Với khoảng cách không là metric 4
5. Các giải thuật giải bài toán TSP 4
Các giải thuật để tìm lời giải chính xác 4
Heuristic và các giải thuật xấp xỉ 5
6. Thuật giải Heuristic 7
7. Ứng dụng nguyên lý Greedy vào giải bài toán TSP 7
8. Đánh giá thuật giải Heuristic của thuật toán 9
9. Một số ví dụ minh hoạ 11 Mục lục hình
Hình 1 – Mô hình đồ thị của bài toán TSP 3
Hình 2 – Mô hình ban đầu 8
Hình 3 – Mô hình các bước chọn lựa đường đi 9
Hình 4 – Ví dụ 1 12
Hình 5 – Ví dụ 2 12
Hình 6 – Ví dụ 3 13
MSHV: CH1301061_Dương Thị Xuân Thoại
Trang 1
1. Giới thiệu bài toán
i du lch (Travelling Salesman problem (TSP)) là mt bài toán khá ni
ti vc t hc nghiên cu trong lý thuyt khoa hc máy tính. Ni
dung ca c phát bit danh sách các thành ph và
khong cách gia chúng , nhim v là phn nht có th mà ch i
Trang 2
xét gii thut brute-force và quan sát thy tính không ta heuristic da trên láng ging
gn nht.
Hassler Whitney i hc Princeton University là ngu i du
lch cho bài toán .
Trong nh nên ngày càng ph bin trong khoa hc
châu Âu và M. Nhc k George Dantzig, Delbert
Ray Fulkerson và Selmer M. Johnson ti RAND Corporation Santa Monica, nhi
nguyên tuyn tính và phát tric ct cho li
gii ca nó. Vi nhc mi này h c mt thí d ca bài toán vi 49
thành ph xây dng mt cách tng minh rn
a. Trong nhng thp k tic nghiên cu bi rt nhiu nhà nghiên
c t toán hc , khoa hc máy tính , hóa hc ,vt lý và nhng khoa hc khác.
Richard M. Karp ch ra rng bài toán chu trình Hamiltonian thuc lp NP-
complete ra tính NP khó (NP-hardness ) cu này gii thích
mt cách khoa h phc tp tính toán ca vic tìm li gii t
Nhiu thành tc trong sut nhi thp k 1970 và 1980, khi
Grötschel, Padberg, Rinaldi và nhi khác c gng gii mt cách chính xác mt th
hin ca bài toán vi 2392 thành ph, s dc ct và branch-and-bound.
Trong nh Applegate, Bixby, Chvátal
trình Concorde c s dng nhiu trong vic gin nay .
t tp các th hin ca
bài toán TSP vi nhi c s dng bi nhiu nhóm nghiên cu
so sánh kt quc dài ti
i th hin ca bài toán TSP lên ti 33,810 thành ph c ly ra t bài
toán xây dng layout cho microchip, cho ti nay vn là th hin ln nht trong các th hin
TSPLIB .Nhiu th hin khác vi hàng triu thành ph , li gic có th chng minh
nm sai khác 1% so vi li gii t
MSHV: CH1301061_Dương Thị Xuân Thoại
Trang 4
Nhng chiu dài ct metric trong tnh . Khi các thành ph
m trên tm hình, nhiu hàm khong cách t nhiên là các metric ví
d
Trong bài toán Euclidian TSP khong cách gia 2 thành ph là khong cách Euclide
ging.
Trong bài toán Rectilinear TSP khong cách gia 2 thành ph là tng hai t x và
y ca chúng. c gi là khong cách Manhattan hay city-block
metric.
Trong maximum metric, khong cách gia 2 thành ph là max c chênh lêch ta
x và y ca chúng.
Hai metric cui xut hin trong ving mp các h trong mch in.
ng tnh t th nht ri ti t kia, vì vy thi
gian di chuyn ti mm mi là tng c ng di chuyng
vi mày mà chnh c 2 t cùng 1 lúc vì vy th di chuyn ti mm mi
quynh bi di chuy
Với khoảng cách không là metric
Khong cách không tha mãn bng thc tam giác phát sinh trong nhinh
tuyn. Ví d trong mt kiu vn tch bng máy bay có th c dù
khong cách di chuy
5. Các giải thuật giải bài toán TSP
Các giải thuật để tìm lời giải chính xác
Li gii trc tip nht có th là th tt c các hoán v và xem hoán v nào là tt nht ( dùng
brute-force) . Thi gian chy cho cách tip cn này là O(n!), vì vy cách tip cn này thm
chí không th thc hin vi ch 20 thành ph .Mt trong s nhng ng dng mt
ca quy hong là gii thu phc tp O(n
2
Vào tháng 3- 2005, i du lch vi 33,810 m trong 1 mc gii
quyt s dung công c Concorde TSP Solver: ng t
c tìm thc chng khi lng tính
toán mt khong 15.7 CPU (Cook et al. 2006). 2006 mt bài toán vi
85,900 c gii quyt bi Concorde TSP Solver, và mt khong 136
CPU .
Heuristic và các giải thuật xấp xỉ
Rt nhiu heuristics và gii thut xp x, có th i gii t
xut. c hii có th tìm li gii cho bài toán cc ln (hàng triu thành
ph) trong khong thi gian chp nhc vi li gii xp x ch khác 2-3% so vi li gii
t
Mt vài kic tìm ra.
Heuristics xây dựng
Gii thut láng ging gn nht nearest neighbour (NN) (hay còn gi là gii thut tham lam
greedy algorithm) i du lch chn thành ph gn nhn di
chuyn tip theo. Gii thun và hiu qu . Cho
khong N thành ph phân b ngu nhiêu trên mt phng trung bình gii thui
gii có chiu dài xp x 1.25 * ln chiu dài c
Tuy nhiên, có nhiu cách sp xc bit các thành ph làm cho gii thu
i t nht (Gutin, Yeo, and Zverovich, 2002). bài toán TSP
i xng và bi xng (Gutin and Yeo, 2007).
MSHV: CH1301061_Dương Thị Xuân Thoại
Trang 6
Gt heuristic mMatch Twice and Stitch (MTS) (Kahng, Reda 2004.
MTS y tính hiu qu n so vi nhng heuristic xây dng hin ti . MTS
thc hin hai ln khp tun t , mà ln khp th c thc hin sau khi xóa tt c các cnh
ca ln khp th nh a ra tp tt c
i cùng
MSHV: CH1301061_Dương Thị Xuân Thoại
Trang 7
search và evolutionary computing. K thu Lin-Kernighan technique mang li kt qu
m bo ít nht là bn so vi 3-opt. c Lin-Kernighan-Johnson tính mt
Lin-Kernighan , t bin (xóa ít nht 4 cnh
và ni lc v-opt i ). t
bi di chuyi cc b local minimum ). K
thut V-t trong s nhng heuristic mnh cho bài toán và có th gii
quyng hc bing bài toán TSP
không phi metric mà nhng heuristic khác không gii quyc.
6. Thuật giải Heuristic
b. u mong mun, khi trên ng ngn nht thì cui cùng ta s có mt hành
trình ngn nht. u này không phi lúc nào cng úng. Vi u kin trong hình thì thut
gii cho ta mt hành trình có chiu dài là 14 trong khi hành trình ti u là 13. Kt qu ca
thut gii ng hp này ch lch v so vi kt qu ti u. Trong khi
ó, phc tp ca thut gii Heuristic này ch là O(n
2
).
Hình 2 – Mô hình ban đầu
MSHV: CH1301061_Dương Thị Xuân Thoại
Trang 9
Hình 3 – Mô hình các bước chọn lựa đường đi
Các c ca thut toán:
c 1: Chn mt nh bt u V.
c 2: T nh hin hành chn cnh ni có chiu dài nh nht n các nh ch
ving th. du ã ving th nh va chn.
c 3: Nu còn nh ch ving th thì quay li c 2.
c 4: Quay li nh V.
8. Đánh giá thuật giải Heuristic của thuật toán
Input: Ma trn nxn (n là s m (thành ph) cn qua)
Output: Chu trình ng ngn nht qua tt c các m (thành ph))
Basic operation:
-Duyt nh.
-So sánh tìm min các cnh ni nh hin ti và các nh ch qua.
Thut toán:
MSHV: CH1301061_Dương Thị Xuân Thoại
MSHV: CH1301061_Dương Thị Xuân Thoại
Trang 11
v[0]=x;
for(int i=1;i<n;i++)
{
nh có khong cách nh nht t nh k tip
v[i]=next
e=next
}
v[n]=x;
Ta có chu trình t t c nh c th và tr v x.
m: Thut toán Heuristic cho bài toán i du lch có phc tp O(n
2
) tt
h rt nhiu so vi thut toán ti (có phc tp O(n!)).
c m: thut gii có nhng hn ch, ch cho ra li gii chính xác.
Kt lun: Thut gii Heuristic cho bài toán i du lch tuy ch ra c li
gii chính xác cho bài toán, nh nó cho ra mt li gii có th chp nhn c vi phc
tp thp h nhiu so vi thut toán ti u.
9. Một số ví dụ minh hoạ
Ch trình vit bng ngôn ng C# 2005. Ch trình s c th (ma trn) t file
Graph.txt và xut ra kt qu. th nhp vào phi là th y nu không phi thì không
xut ra chu trình Hamilton. Ngc li, thì xut ra chu trình Hamilton.
MSHV: CH1301061_Dương Thị Xuân Thoại
Trang 12