Thuật toán di truyền song song giải bài toán VRP (Vehicle routing problem) với hạn chế thời gian.pdf
1. BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-------- --------
Nguyễn Việt Hân
THUẬT TOÁN DI TRUYỀN SONG SONG GIẢI BÀI TOÁN
VRP (VEHICLE ROUTING PROBLEM) VỚI HẠN CHẾ
THỜI GIAN
LUẬN VĂN THẠC SĨ KHOA HỌC
Hà Nội – Năm 2009
2. NGUY
ỄN
VIỆT
HÂN
B O
Ộ GIÁO DỤC VÀ ĐÀO TẠ
TRƯỜ Ạ Ọ Ộ
NG Đ I H C BÁCH KHOA HÀ N I
---------------------------------------
Nguyễn Việt Hân
THUẬ Ề
T TOÁN DI TRUY N SONG SONG GIẢI BÀI
TOÁN VRP (VEHICLE ROUTING PROBLEM) VỚI
HẠN CHẾ THỜI GIAN
2007
2009
-
LUẬN VĂN TH C SĨ KHOA H
Ạ ỌC
CHUY ÀNH TH
ÊN NG : CÔNG NGHỆ ÔNG TIN
NGƯ I HƯ
Ờ ỚNG DẪN KHOA HỌC:
TS. NGUYỄN ĐỨC NGHĨA
Hà nội
2009
Hà Nội – Năm 2009
3. 2
Lời cảm ơn
Trư m ơn chân thành đ
ớc tiên, em xin gửi lời cả ế ầ ễ ứ
n Th y PGS. TS. Nguy n Đ c
Nghĩa đã đị ớ
nh hư ng nghiên c u và góp
ứ ý cho em đ có đư
ể ợ ậ
c lu n văn hoàn chỉnh.
Em xin cảm ơn Quý Thầy cô trong Khoa i lòng nhi t huy n t
, vớ ệ ế ắ
t, đã vun đ p nề ảng
tri th c v c cho các th
ứ ững chắ ế ệ ọ
h h c viên. Đây sẽ là hành trang vô giá cho chúng
em trên con đường nghiên cứ ọ
u khoa h c.
Nhân đây, con xin gử ờ ế
i l i bi t ơn đế ẹ
n cha m t m
đã vất vả nuôi nấng và ạo ọi điều
ki luôn ng
ệ ể
n đ con có đượ ả ờ ợ
c như ngày hôm nay. Xin c m ơn em, ngư i v lo lắ , chia
sẻ và động viên anh vượt qua những khó khăn, thử thách.
Sau cùng, không thể thiếu lời cảm ơn đế ị đồ ệ ổ
n các anh ch ng nghi p đã trao đ i,
khích lệ ờ
và dành th i gian nhiều hơn cho tôi để hoàn thành tố ậ
t lu n văn.
4. 3
M c
ục lụ
Lời cảm ơn ................................................................................................................. 2
Mục lục....................................................................................................................... 3
Chương 1: Giới thiệu ............................................................................................. 9
1.1 Đặt vấn đề..................................................................................................... 9
1.2 Giới thiệu về VRP ...................................................................................... 10
1.3 Các tiêu chuẩn phân loại bài toán VRP...................................................... 12
1.4 Một số dạng chính của bài toán VRP......................................................... 13
1.4.1 VRP với hạn chế khả năng chở hàng hóa...........................................13
1.4.2 VRP với hạn chế thời gian..................................................................14
1.4.3 VRP với nhiều kho hàng hóa..............................................................15
1.4.4 VRP định kỳ........................................................................................16
1.4.5 VRP mở...............................................................................................17
1.4.6 VRP tách phân phối ............................................................................17
1.4.7 VRP với khả năng chuyên chở về.......................................................17
1.4.8 VRP với khả năng nhặt và phân phối .................................................18
1.5 Tối ưu tổ hợp.............................................................................................. 19
Chương 2: Bài toán VRP với hạn chế thời gian ................................................ 20
2.1 Định nghĩa .................................................................................................. 20
2.2 Mô hình toán học........................................................................................20
2.3 ...........................................................................
Các cấu trúc vùng lân cận 23
2.4 Các phương pháp chính tiếp cận giải bài toán ........................................... 26
2.4.1 Các phương pháp chính xác................................................................26
2.4.1.1 Dựa trên quy hoạ ộ
ch đ ng ................................................................26
2.4.1.2 D t
ựa trên phát sinh cộ .....................................................................26
2.4.1.3 Dựa trên phân rã Lagrange..............................................................26
2.4.1.4 D -
ựa trên K Tree ..............................................................................27
5. 4
2.4.2 Các phương pháp heuristic .
................................................................ 27
2.4.2.1 Nguyên lý ........................................................................................27
2.4.2.2 Heuristic xây dựng lộ trình..............................................................28
2.4.2.3 Heuristic c i thi
ả ện lộ trình...............................................................29
Chương 3: Thuật toán di truyền song song ....................................................... 35
3.1 Giới thiệu về thuật toán di truyền............................................................... 35
3.2 Các phép toán chính của thuật toán di truyền ............................................ 36
3.2.1 Phép chọn............................................................................................36
3.2.2 Phép lai................................................................................................37
3.2.3 Phép đột biến.......................................................................................39
3.3 Các mô hình song song .............................................................................. 40
3.3.2 Song song dạng chủ tớ........................................................................41
3.3.3 Song song dạng đa quần thể con có di trú ..........................................42
3.3.4 Song song dạng quần thể con chồng lấp, không di trú .......................44
3.3.5 Thuật toán di truyền song song khối lớn ............................................45
3.3.6 Song song dạng các nhóm cá thể động...............................................45
3.3.7 Thuật toán song song trạng thái ổn định.............................................46
3.3.8 Thuật toán song song hỗn tạp .............................................................46
3.3.9 Các phương pháp lai ...........................................................................46
Chương 4: Thuật toán di truyền song song giải bài toán VRP với hạn chế thời
gian .............................................................................................................48
4.1 Heuristic xây dựng lộ trình......................................................................... 48
4.2 Thuật toán di truyền giải bài toán VRPTW................................................ 52
4.2.1 Biểu diễn nhiễu sắc thể .......................................................................52
4.2.2 Tạo quần thể ban đầu..........................................................................53
4.2.3 Đánh giá tính thích nghi......................................................................54
4.2.4 Các thao tác di truyền .........................................................................55
4.2.4.1 Chọn lọc ..........................................................................................55
4.2.4.2 Tái tổ ợ
h p ........................................................................................56
6. 5
4.2.5 Tạo thế hệ mới ....................................................................................57
4.3 Thuật toán di truyền song song giải bài toán VRPTW .............................. 59
Chương 5: Hiện thực và đánh giá chương trình ............................................... 63
5.1 Các vấn đề hiện thực ..................................................................................63
5.1.1 Cấu trúc dữ liệu biểu diễn lộ trình và lời giải.....................................63
5.1.2 Hai chiến lược khởi tạo quần thể ban đầu...........................................64
5.1.3 Một số kỹ thuật song song hóa ...........................................................65
5.2 Đánh giá kết quả......................................................................................... 67
5.2.1 Phương pháp đánh giá.........................................................................67
5.2.2 Kết quả thực hiện................................................................................68
5.2.3 Các nhận xét........................................................................................76
Chương 6: Kết luận và hướng phát triển........................................................... 77
6.1 Các kết luận................................................................................................ 77
6.2 Hướng phát triển......................................................................................... 77
Tài liệu tham khảo ..................................................................................................78
Tóm tắt ..................................................................................................................... 82
Abstract....................................................................................................................83
7. 6
Danh sách các từ viết tắt
GA Genetic Algorithm
PGA Parallel Genetic Algorithm
MIMD Multiple Instruction Multiple Data
VRP Vehicle Routing Problem
VRPTW Vehicle Routing Problem with Time Window
PFIH Push-Forward Insertion Heuristic
LSD λ-Interchange Local Search Descent
TSP Travelling Salesman Problem
ACS Ant Colony System
ACO Ant Colony Optimization
MACS-
VRPTW
Multiple Ant Colony System for Vehicle Routing Problems with
Time Windows
PMX Partially Mapped Crossover
8. 7
Danh sách các hình
Hình 1.1 Lời giải với 2 lộ trình của một thể hiện VRP 12 khách hàng.................11
Hình 1.2 Ví dụ VRP với hạn chế khả năng có 3 lộ trình.......................................14
Hình 1.3 Ví dụ VRP với 3 kho hàng hóa...............................................................16
Hình 1.4 Ví dụ VRP với khả năng nhặt và phân phối...........................................18
Hình 2.1 Ví dụ về một trao đổi Or-Opt .................................................................23
Hình 2.2 Ví dụ về một trao đổi 2-Opt*..................................................................24
Hình 2.3 Minh họa thao tác relocate......................................................................24
Hình 2.4 Minh họa thao tác trao đổi (exchange)...................................................25
Hình 2.5 Kiến của MACS
trúc -VRPTW...............................................................33
Hình 3.1 Các khái niệm cơ bản của thuật toán di truyền.......................................35
Hình 3.2 Vòng quay lựa chọn cá thể .....................................................................36
Hình 3.3 Thao tác trao đổi chéo một điểm cắt.......................................................38
Hình 3.4 Thao tác trao đổi chéo nhiều điểm cắt....................................................38
Hình 3.5 Một số loại đột biến thường gặp.............................................................39
Hình 3.6 Phân loại các thuật toán di truyền song song .........................................41
Hình 3.7 Mô hình song song dạng chủ tớ..............................................................42
Hình 3.8 Lược đồ thuật toán di truyền song song kết mịn. Lớp thuật toán này có
một quần thể được phân tán từng phần và được hiện thực rất hiệu quả trên các máy
tính song song lớn.....................................................................................................44
Hình 3.9 Các hình thức kết hợp phân cấp .............................................................46
Hình 4.1 Chọn cá thể theo vòng thi đấu ................................................................56
Hình 4.2 Mô hình giải thuật song song dạng chủ tớ..............................................60
Hình 5.1 Minh họa cấu trúc danh sách liên kết biểu diễn một lộ trình .................63
Hình 5.2 Minh họa cấu trúc dữ liệu lời giải cho VRPTW.....................................64
Hình 5.3 Hệ thống cluster thử nghiệm ..................................................................69
Hình 5.4 Biểu đồ biểu diễn giá trị Speedup theo số tiến trình trong từng phân
nhóm ................................................................................................................75
9. 8
Danh sách các bảng
Bảng 5.1 Bảng so sánh kết quả trung bình từ các kết quả tốt nhất giữa các
phương pháp và kết quả tốt nhất được biết...............................................................70
Bảng 5.2 Bảng chi tiết so sánh thời gian trung bình khi thực thi tuần tự so với
thời gian trung bình khi thực thi song song ứng với số tiến trình khác nhau và theo
từng tập tin mẫu.........................................................................................................71
Bảng 5.3 Bảng tổng hợp so sánh thời gian trung bình thực thi tuần tự và song
song trong mỗi nhóm dữ liệu ....................................................................................74
Bảng 5.4 Bảng Speedup trung bình của chương trình thực thi song song tính
theo từng nhóm mẫu..................................................................................................74
10. 9
Chương 1: Giới thiệu
1.1 Đặt vấn đề
VRP là bài toán các l trình t c v
xác định ộ ố độ
i ưu cho i xe vận chuyển nh ph
ằm ụ ụ
các khách hàng trí khác nhau. ng trong th
ở các vị Đây là bài toán có nhiều ứng dụ ực
t t
ế ừ khâu cung cấp nguyên liệ ế
u thô đ n khâu phân phối thành phẩm trong các nhà
máy m,
s t d v
ản xuấ , các công ty ịch vụ ận chuyể ẩ
n như bưu ph hành khách, … Rõ
ràng, chi phí vận chuy n s
ể ẽ giảm nếu các xe di chuyển theo các lộ trình tố ừ
i ưu, t đó
giúp gi m giá thành hàng hóa i kinh t
ả . Trong thờ ạ
i đ ế ộ
xã h i ngày càng phát triển,
các yêu c a khách hàng
ầu củ ngày càng khắt khe hơn. u như
Tiêu biể yêu cầ ả
u ph i
đượ ứ
c đáp ng trong mộ ả ờ ị ạ ộ ộ
t kho ng th i gian xác đ nh; các công ty ho t đ ng theo m t
th th i
ời gian bi y, v trình VRP v i h
ểu chính xác, … Chính vì vậ ấ ề ậ
n đ l p lộ ớ ạn chế ờ
gian (viết t t là VRPTW)
ắ ngày càng được quan tâm hơn. Luậ ặ
n văn đ t nghiên cứu
trên bài toán VRPTW i xu th phát tri
phù hợp vớ ế ển.
Hơn thế ộ ạ ộ
, VRP là m t d ng bài toán NP-khó, do đó, VRPTW cũng thu c -
NP khó.
Mục tiêu của VRPTW là tối thiểu số xe vận chuyển và tổng khoảng cách di chuyển
khi phục vụ các khách hàng mà không vi phạm các ràng bu c v
ộ ề khả năng chuyên
ch th i thi
ở ủ
c a các xe và các c a s
ử ổ ờ ứ
i gian đáp ng. Để tìm lời giả khả cho bài toán,
nhiề ậ
u thu t toán đã được nghiên c u và
ứ ứng dụ ậ
ng như các thu t toán a trên quy
dự
hoạ ộ
ch đ ng, các thu các thu
ật toán dựa trên s i l ng Lagrange,
ự ớ
n ỏ ật toán a trên
dự
heurictic . thu heuris t.
, .. Trong đó, các ật toán tic được quan tâm nhiều nhấ Luận văn
ti i thu t
ếp c n gi
ậ ả ật di truyền giải quyết bài toán VRPTW. Đây là giải thuậ dựa trên
heuristic được ứng dụ ộ
ng r ng rãi trong nhiều bài toán c t
tối ưu thự ế thuộ ề
c nhi u lĩnh
vực khác nhau.
Các thu t toán d a trên heuristic ng cho các l i gi có tính thi cao, g
ậ ự thườ ờ ải khả ần với
l i l
ời giải tố ủ
i ưu c a bài toán. Tuy nhiên, giải thuật phả ặp qua nhiều vòng lặp với
nhi nhi u
ều tính toán đòi hỏi ề năng lực tính toán a máy tính
củ . Tiêu biểu như thuật
toán i th
di truyền phả lặp qua nhiều ế ệ
h , các thao tác tính toán th c hi n trên t
ự ệ ừng
11. 10
cá th th thu
ể ủ
c a toàn bộ ầ
qu n th . Vì th , th i gian
ể ế ờ ực hiện các ật toán heuristic khá
lâu và tiêu t c tính toán c a máy tính
ốn nhiề ự
u năng l ủ . Do đó, bên cạnh việc nghiên
cứu và áp dụng thuật toán di truyền vào giải bài toán VRP với hạn chế thời gian,
luậ ậ
n văn cũng t p trung phát tri t toán di truy c rút
ển thuậ ền song song nhằm nổ ự
l
ngắ ờ ờ
n th i gian tìm l i giải cho bài toán.
1.2 Giới thiệu về VRP
D v
ịch vụ ận chuyển là một khâu quan tr ng trong ngành công nghi p s n xu
ọ ệ ả ất. Đầu
tiên, các nguyên li u thô
ệ ph uy nhi
ải được vận ch ể ế
n đ n nhà máy từ ều nhà cung cấp
khác nhau các thành ph c v
; kế đến, ẩ ờ ợ
m thư ng đư ận chuyể ế
n đ n các kho ở ị
các v trí
đị ừ ợ ố
a lý khác nhau; Sau đó, t các kho trung tâm này, các hàng hóa đư c phân ph i
đế ậ ể ấ ề ợ ả ề ừ
n các khách hàng và th m chí có th l y v các hàng hóa đư c tr v t các khách
hàng. Cả hai qui trình cung cấp và phân phố ề ỏ
i đ u đòi h i khả năng quản lý các
phương tiện v n m
ận chuyể ột cách hiệu quả nhằm tiết kiệm t M
ối đa chi tiêu. ột trong
các thướ ệ ả ấ
c đo hi u qu nh t cho việ ả
c qu n lý này chính là hiệ ả ủ
u qu c a việc lậ ộ
p l
trình cho các xe v Yêu c trình cho các xe v i các ràng
ận chuyển. ầ ố ộ
u t i ưu các l ớ
buộc khác nhau p l
đã phát sinh bài toán lậ ộ ậ
trình xe v n chuyển - VRP.
Bài toán l i ti t là bài toán
ập lộ ả
trình đơn gi i và nổ ếng nhấ người bán hàng
(Traveling Salesman Problem - TSP). Người bán hàng phải thành
ghé thăm một số
ph và
ố sau đó trở ề ị ấ ầ
v v trí xu t phát ban đ u. Một lộ trình phả ợ
i đư c xây dựng sao
cho t i bán hàng
ố ả
i ưu kho ng cách di chuy n. M bài toán
ể ở ộ
r ng TSP, m ngườ xuất
phát t c cho. M i thành
ại cùng mộ ị ể
t đ a đi m và phả ấ
i ghé thăm t t cả thành phố ợ
đư ỗ
ph ph
ố ả ợ ộ
i đư c thăm chính xác m t lần bởi mộ ờ
t ngư i bán hàng nào đó. Bài toán
cũng tối ưu tổ ả ủ ộ ớ
ng kho ng cách c a các l - v
trình. VRP chính là bài toán m TSP i
mộ ỏ ợ
t đòi h i đư c liên kết với mỗi thành phố và mỗi xe có một khả năng vận chuyển
xác định.
12. 11
Hình 1.1 Lời giải với 2 lộ trình một thể hiện
của VRP 12 khách hàng
(Trong Hình 1.1, ô vuông th n kho hàng trung tâm, các vòng tròn th
ể hiệ ể hiện các
khách hàng đượ ố ứ ự ớ
c đánh s th t , các mũi tên có hư ng thể hiệ ớ ủ
n hư ng đi c a các lộ
trình).
Bài toán VRP là ng bài toán ra quy m tìm các l trình t
dạ ế ị
t đ nh, nhằ ộ ố ộ
i ưu cho đ i xe
v n . M
ận chuyể hàng hóa đến các khách hàng ở các đị ể
a đi m khác nhau ục tiêu của
bài toán thường là tối thiể ổ ả
u t ng kho ng cách hoặc thời gian di chuyể ớ ề
n v i nhi u
ràng bu chuyên ch a xe
ộc cụ thể ả
như kh năng ở ủ
c , khoảng thời gian mong muốn
đượ ứ
c đáp ng của khách hàng, ...
Bài toán VRP thườ ồ ấ
ng bao g m ít nh t hai bài toán con liên quan nhau:
• Bài toán phân hoạ ằ ậ ậ
ch: nh m phân chia t p khách hàng thành các t p con sao
cho m p con
ỗ ậ
i t chỉ đư nào đó
ợ ụ ụ ở ộ
c ph c v b i m t xe .
• Bài toán đị ế ằ ộ ố
nh tuy n: nh m tìm ra l trình t i ưu cho mỗ ậ
i xe v n chuyển.
VRP là m t v i các tình
ộ ấ ề ộ
n đ r ng và có thể bao gồm nhiều vấ ề
n đ con ứng vớ
hu n
ống và các ràng bu khác nhau
ộc . ,
Do đó để đơn giả khi giải quyết bài toán VRP,
tùy theo mụ ờ ờ ụ ể ộ ố ộ ụ ụ ụ
c tiêu mà ngư i ta thư ng c th m
hóa t s ràng bu c ph . Ví d m c
tiêu phục vụ khách hàng cao là phải phân phát chính xác, nghĩa là phân phát đúng
s i
ố lượng, đúng chấ ợ ờ
t lư ng, đúng th gian tại mộ ị ể
t đ a đi m chính xác.
13. 12
1.3 Các tiêu chuẩn phân loại bài toán VRP
Như đã trình bày trên, VRP có nhiề ụ
u m c tiêu và các ràng buộc khác nhau. Vì thế,
trong th có r c tiêu và i l
ực tế ất nhiều lớp bài toán VRP tùy theo mụ s n
ự ớ ỏng hoặc
thêm các ràng bu ác tiêu chu c s t các d
ộc. C ẩn sau đây đượ ử ụ ể ệ
d ng đ phân bi ạng bài
toán VRP khác nhau:
STT Đặc tính Tùy chọn
1 S m
ố ục tiêu
− Đơn mục tiêu
− Đa mục tiêu
2 u
Ràng buộc nhu cầ
− Tất cả các nhu cầu củ ề
a khách hàng đ u
đượ ứ
c đáp ng.
− Xác đị ộ ố ợ
nh m t s khách hàng nên đư c
phụ ụ
c v .
− Cho phép tách các phân phối hay
không.
3 Ràng buộc thời gian
− Không cử ổ ờ
a s th i gian.
− Cửa sổ thời gian một bên hoặc hai bên,
c m.
ửa sổ thời gian cứng hoặc mề
4 d
Đa sử ụng xe
− M m
ột xe phục vụ ột lộ trình.
− Một xe có thể phục vụ nhiều hơn mộ ộ
t l
trình.
5 Thuộc tính của đoàn xe
− Đoàn xe vận chuyể ồ
n đ ng nhất.
− Đoàn xe vận chuyể ồ
n không đ ng nhất.
6 Số kho
− Một kho trung tâm chứa hàng hóa.
− Nhiều kho hàng hóa.
14. 13
STT Đặc tính Tùy chọn
7 Loại lộ trình
− Lộ trình đóng
− Lộ trình mở
8 Thời gian hoạ ị
ch đ nh
− Khoả ờ
ng th i gian phân phối đơn
− Xác định khách hàng nào nên được
phục v i th
ụ ạ
t ờ ể
i đi m nào củ ạ
a ho ch
định.
9 Kiểu phục vụ
− Kiể ụ ụ ặ ố ặ
u ph c v đơn: ho c phân ph i ho c
lấy và mang hàng hóa trở ề
v .
− Kiể ụ ụ ỗ ợ ừ
u ph c v h n h p: v a có phân
phố ừ ề
i, v a có mang v .
1.4 bài toán VRP
Một số dạng chính của
1.4.1 VRP với hạn chế khả năng chở hàng hóa
VRP với hạn chế ả ở ủ
kh năng ch c
hàng hóa a xe (Capaciated vehicle routing
problem là t
– CVRP) mộ dạ ộ
ng bài toán VRP nhưng có thêm ràng bu c m i xe
ỗ đều
có khả ở ố
năng chuyên ch như nhau đ i v i m và t i c
ớ ột hàng hóa đơn nào đó ổng tả ủa
mỗi xe không vượt quá khả năng của nó.
M h n
ục tiêu của bài toán CVRP là tối thiểu số xe và tổng t ời gian di chuyể , đồng
thờ ổ
i t ng số lượ ợ
ng hàng hóa đư c gán cho mỗ ộ ợ ả
i l trình không vư t quá kh năng
c l
ủa xe phục vụ ộ trình đó. Như vậy, lời giải cho bài toán CVRP giố ờ
ng như l i giải
c t c
ủ ạ
a bài toán VRP nhưng có thêm h n chế ổng nhu cầu của tất cả khách hàng ần
đượ ụ ụ ộ
c ph c v trên l R
trình t không vượt quá khả năng xe Q
.
∑
=
≤
m
i
i Q
d
1
Trong đó:
15. 14
m: tổng số khách hàng được gán trên lộ trình Rt.
di: nhu cầu của khách hàng thứ i trên lộ trình.
Q : khả năng của xe.
Hình 1.2 Ví dụ VRP với hạn chế khả năng có 3 lộ trình
1.4.2 VRP với hạn chế thời gian
VRP với hạn ch i gian (vehicle routing problem with time windows
ế ờ
th – VRPTW)
là m a bài toán CVRP b a s i gian. C
ở ộ
r ng củ ằ ộ
ng cách đưa thêm ràng bu c cử ổ thờ ửa
s c
ổ thời gian ủa một khách hàng là khoảng thời gian mong muố ợ ứ
n đư c đáp ng của
khách hàng đó.
C [
ửa sổ thời gian ei, li] của khách hàng thứ ị
i qui đ nh rằng xe vận chuyển:
• Phả ế đị ể ứ ớ ờ ể
i không đ n a đi m khách hàng th i trư c th i đi m e i hoặc phải chờ
nế ế
u nó đ n ở thờ ể
i đi m ti < ei.
• Phả ế đị ể ứ ờ ể
i không đ n a đi m khách hàng th i sau th i đi m l i ≥ ei.
d ,
Bài toán VRPTW là ạng bài toán xác định nhiều mục tiêu bao gồm:
1. Tối thiểu số lộ trình hay số xe.
2. Tối thiểu tổng khoảng cách di chuyển.
3. Tối thiểu tổng thời gian cần cho các xe, kể cả thời gian chờ.
16. 15
Tùy theo giá trị ei, li c
trong ửa sổ thời gian [ei, li] d
, có một số ạng cửa sổ thời gian
sau:
• C a s n u
ử ổ thời gian hai bên ế 0 < ei ≤ li < ∞.
• C th
ửa sổ ời gian một bên nếu e i -
= ∞ hoặc li = ∞.
• C n
ửa sổ thời gian hai bên cứng ếu một lời giả ợ
i đư c xem là không khả thi
trong trư t xe đ n trư i đi
ờng hợ ộ
p m ế ớ ờ
c th ểm ei hoặc sau thờ ể
i đi m li t .
ại nút i
• Cửa sổ thời gian một bên cứng nếu mộ ế
t xe không đ n trễ hơn l i tại nút i hoặc
phả ờ ế ế
i ch n u nó đ n sớm hơn th i đi
ờ ểm ei t .
ại nút i
• C n
ửa sổ thời gian mềm ếu thờ ể ế
i đi m đ n của xe không ả ở ế
nh hư ng đ n tính
khả ủ
thi c a l t b
ời giả ị ạ
i, nhưng b ph ằng cách c ng thêm m
ộ ột giá trị vào hàm
mục tiêu.
}
,
0
max{
}
,
0
max{ i
i
l
i
i
e l
t
t
e −
+
− ρ
ρ
Với 0
≥
e
ρ và 0
≥
l
ρ là các hằng số giá trị phạt cho trước.
1.4.3 VRP với nhiều kho hàng hóa
VRP với nhiều kho hàng hóa (multi- –
depot vehicle routing problem MDVRP)
cũng là mở ộ ủ ằ
r ng c a CVRP b ng cách xem xét nhiều kho hàng hóa chứ không phải
ch t
ỉ ộ
m kho trung tâm như các dạng trên. Ngoài việc gán các khách hàng tới các xe
vận chuyể ị
n và xác đ nh các lộ trình cho các xe, bài toán có thêm một mứ ị
c xác đ nh
nữa là gán các lộ trình (hoặ ế
c các khách hàng) đ n các kho.
17. 16
Hình 1.3 Ví dụ VRP với 3 kho hàng hóa
1.4.4 VRP định kỳ
VRP đị ỳ ở ộ
nh k ( –
periodic vehicle routing problem PVRP) là m r ng bài toán VRP
b m r
ằng cách ở ộng thời gian hoạ ị
ch đ nh thành vài ngày, mộ ầ ỉ
t tu n, ... thay vì ch
một ngày. Trong kho khách hàng ph
ảng thời gian chính xác này, i
mỗ ả ợ
i đư c ghé
thăm ít nhất một lần. Như vậy, bài toán cần phả ị
i xác đ nh thêm những khách hàng
nào nên đư đáp ng ngày nào đ
ợc ứng vào nhữ ể ố
t i ưu tổng chi phí (bao gồm số xe,
tổng thời gian và tổng khoảng cách).
Mỗi khách hàng cho biế ớ
t trư c tần số phục vụ i
f l
(số ần) và nhu cầu 0
>
i
d cho mỗi
l h i V
ần phân p ố hàng hóa. ấ ề
n đ bài toán là tạo ra một nhóm các lộ trình cho mỗi
ngày sao cho các ràng buộ ợ
c liên quan đư c thỏa mãn và t c t
ổ ợ
ng chi phí đư ối ưu.
PVRP được xem như bài toán t i ưu t p đa m
ố ổ ợ
h ức:
• M nh h
ức thứ ất: mục tiêu tạo ra một nhóm các lựa chọn khả thi (các tổ ợp)
cho m nh là t = 3 ngày
ỗi khách hàng. Ví dụ: nếu khoảng thời gian hoạ ị
ch đ
{d1, d2, d3} h 0
thì các tổ ợp có thể là 000; 1001; 2010;
3011;4100; 5101; 6110; 7111. Nếu khách hàng đòi hỏi ghé thăm
hai l n thì khách hàng này có các l a ch
ầ ự ọn lịch ghé thăm sau: {d1, d2}, {d1,
d3}, {d2, d3}.
18. 17
• Mức thứ hai: chọn ra một trong các lựa chọn cho mỗi khách hàng sao cho
các ràng bu Vì v ách hàng
ộc theo ngày được th a mãn.
ỏ ậy, c n ch các kh
ầ ọn ra
phả ợ ỗ
i đư c ghé thăm m i ngày.
• Mức thứ ba: giải bài toán VRP cho mỗi ngày.
1.4.5 VRP mở
VRP mở ả đị
–
(Open vehicle routing problem OVRP) gi nh một l trình k t thúc
ộ ế
ngay khi khách hàng cuối cùng trên l c ph c v Bài toán OVRP d
ộ ợ
trình đó đã đư ụ ụ. ễ
dàng chuyển đổ ằ ả ừ ỗ
i thành bài toán CVRP b ng cách gán các kho ng cách t m i khách
hàng trở ề ằ
v kho b ng 0.
1.4.6 VRP tách phân phối
VRP tách phân phối (Split Delivery vehicle routing problem là s
- )
SDVRP ự ớ
n i
lỏng bài toán VRP bằng cách cho phép t khách hàng có th
mộ ể ợ
đư c phụ ụ ở
c v b i các
xe khác nhau n m chi phí t . S i l
ế ề
u đi u này làm giả ổng thể ự ớ
n ỏng này rất quan
trọng khi nhu c u c
ầ ủa một khách hàng lớn hơn khả ở ủ
năng ch c a xe.
M m
ột lời giải khả thi nếu tất cả các ràng buộc của VRP thỏa mãn ngoại trừ ột khách
hàng có th t xe v Rõ ràng, bài toán c
ể ợ
đư c cung c i nhi
ấp bở ề ộ
u hơn m ận chuyển. ần
phải xác định thêm phần chia sẻ ]
1
,
0
[
∈
ir
y của nhu cầu di của khách hàng i được
phân phối trên lộ trình . i
r Bất l i c
ợ ủ ố
a phương pháp phân ph này là khách hàng
thư c đáp
ờng không thích nhu cầ ủ ọ ợ
u c a h đư ứng nhiề ầ
u l n.
1.4.7 VRP với khả năng chuyên chở về
VRP với khả ở ộ
năng chuyên ch m t s (VRP with backhauling
ố hàng hóa trở ề
v –
VRPB) phân bi t hai nhóm khách hàng N
ệ 1 và N2. M N
ỗi khách hàng i ∈ 1 đòi hỏi
ph ng
ả ợ
i đư c phân phối một số ợ
lư c t
hàng hóa cho trướ ừ kho. Trong khi đó, mỗi
khách hàng i N
∈ 2 yêu cầu mang một số lượng hàng hóa cho trước tại khách hàng
đó trở ề
v kho. Một giả định quan trọ ỗ ộ đầ ả
ng là m i l trình u tiên ph i phụ ụ ữ
c v nh ng
khách hàng thuộc nhóm N1 và sau đó có thể ụ
ph c vụ các khách hàng thuộc nhóm N2
19. 18
trên đườ ở ề ệ
ng tr v kho. Vi c trộ ẫ ộ
n l n các khách hàng thu c hai nhóm với nhau là
không đượ ầ ụ ụ
c phép, nghĩa là đ u tiên ph c v N
khách hàng i ∈ 1, kế đến phục vụ
khách hàng j N
∈ 2, sau đó phục vụ khách hàng t N
∈ 1, ... trên m t l
ộ ộ ở
trình đơn. B i
vì đi d
ều này có thể ẫ ế
n đ n tiêu tốn thời gian và quá tải cho phép của xe, tức là các
ràng buộ ủ ể ị ạ
c c a VRP có th b vi ph m.
1.4.8 VRP với khả năng nhặt và phân phối
VRP v VRPPD) gi
ới khả ặ
năng nh t và phân phối (VRP with pickup and delivery – ả
đị ằ ỗ
nh r ng m i khách hàng cũng là một yêu cầ ậ ể
u v n chuy n. Mỗi yêu cầ ậ
u v n
chuyển i N
∈ đượ ặ ở
c đ c trưng b i:
• Vị trí lấy hàng hóa i+
và vị trí phân phối i-
;
• Số lượng hàng hóa di phả ợ
i đư c lấy tại i+
và được phân phối tại i-
;
• Các cử ổ ờ
a s th i gian ]
,
[ +
+ i
i
l
e và ]
,
[ −
− i
i
l
e tại vị trí nhặt và phân phối hàng hóa.
Hình 1.4 Ví dụ VRP với khả năng nhặt và phân phối
Các ràng bu c c ng là:
ộ ủa VRPPD thườ
• Các ràng buộ ứ ự ớ ở ỏ ậ ể ả ợ
c th t trư c sau b i vì bên đòi h i v n chuy n ph i đư c
viế ớ
ng thăm trư c bên phân phố ộ ộ
i trong cùng m t l trình.
• Vị trí nhặt i+
và vị trí phân phối i-
của mỗ ỏ
i đòi h i phải nằm trên cùng một lộ
trình.
20. 19
• Tải của xe không vượt quá khả năng của nó.
• Thao tác nhặ ố ả ễ ả ờ
t và phân ph i ph i di n ra trong kho ng th i gian cho phép của
cửa sổ thời gian.
Mô hình nh và phân ph n chuy
ặt ố ờ ợ
i này thư ng đư c sử ụ ờ
d ng trong trư ng hợp vậ ển
hành khách. Khi đó, VRPPD có tính động cao và các đòi hỏi vận chuyể ế ộ
n đ n đ ng
theo th i gian.
ờ
1.5 Tối ưu tổ hợp
Bài toán t c l
ối ưu có thể ứ ị ỏ ấ
hình th c hóa như là tìm giá tr nh nh t hoặ ớn nhất c a
ủ
hàm mục tiêu f . Các biến i
x với [ ]
k
i ,
1
∈ , thườ ế
ng vi t )
,...,
,
( 2
1 k
x
x
x
x = gọi là các
biến quy ràng bu p l
ế ị
t đ nh. Một số ộ ị
c xác đ nh tậ ời gi i kh
ả ả thi S. S được g i là
ọ
không gian lờ ả ố ợ
i gi i. Bài toán t i ưu đư c phát biểu như sau:
)
(
min x
f
với giả thuyết S
x∈
Tập lời giải S đượ ả ằ ậ ợ ấ Ứ
c mô t b ng t p h p các phương trình và b t phương trình. ng
với một bài toán tố ớ
i ưu cho trư c, có nhiều cách khác nhau để hình thức hóa tương
ứ ụ ế ế ị ặ ả ờ ả
ng hàm m c tiêu, các bi n quy t đ nh và đ c t không gian l i gi i. Chính điều này
làm thu
nảy sinh các ật toán t v và h kéo theo là
khác nhau để giải quyế ấ ề
n đ ệ ả
qu
hiệu quả ấ ợ
tính toán cũng như ch t lư ng l khác nhau.
ời giải có thể
Các bài toán t p là các bài toán t i t i gi i kh
ối ưu tổ ợ
h ố ớ
i ưu v ập lờ ả ả thi là xác định
n t
hưng thường rất lớn. Các thuật toán hiệu quả chỉ ồn tại cho một số bài toán, trong
khi phần lớn gi ng nh
chỉ ể
có th ải bằ ững phương pháp đòi hỏi thời gian theo hàm số
mũ. Các bài toán thu i đ
ộc ch
dạng ỉ ể ả
có th gi i bằ ữ ỏ
ng nh ng phương pháp đòi h ộ
ph khó.
ứ ạ ờ ố ợ ọ
c t p th i gian theo hàm s mũ đư c g i là bài toán NP-
21. 20
B
Chương 2: ài toán VRP với hạn chế thời gian
2.1 Định nghĩa
Theo Thangiah
định nghĩa của [4], VRP với hạn ch i gian
ế thờ (ký hiệu là VRPTW)
liên quan đ t đ năng và th
ế ộ
n m ộ ậ ể
i xe v n chuy n có các khả ờ ể
i gian di chuy n giới
h m m
ạn, xuất phát từ ột kho trung tâm đến các khách hàng ở các vị trí khác nhau; ỗi
khách hàng có nhu cầu và th th th
cửa sổ ời gian cụ ể, biết trướ ử
c. C a sổ ời gian có thể
là một phía hoặc hai phía. t phía,
Trong trường hợp mộ hạn chót đáp ứng thường
đượ ử ổ ờ ộ ả ợ
c quan tâm. C a s th i gian là hai phía, nghĩa là m t khách hàng ph i đư c
ph ph
ục v i ho c sau th
ụ ạ
t ặ ờ ể
i đi m bắ ầ
t đ u và ải trước thời điểm kết thúc c a c a s
ủ ử ổ
thời gian liên k t v Xe s i ch
ế ới khách hàng đó. ẽ ả
ph ờ ế ế
n u đ n một khách hàng sớm
hơn th u đ
ờ ể ắ ầ
i đi m b t đ u phụ ụ ẽ ị ễ ế
c v và s b tr n ế ờ ể ế ủ ử
n sau th i đi m k t thúc c a c a
sổ.
2.2 Mô hình toán học
Bài toán VRPTW đư t nút đ
ợc biể ễ ở
u di n b i một tậ ợ ố ộ
p h p V các xe gi ng nhau, m ặc
biệt gọi là kho hàng hóa p h p C bao g ng và
, m t t
ộ ậ ợ ồm các khách hàng cầ ứ
n đáp
m s n,
ột mạng có hướng kết nối kho với các khách hàng. Giả ử có K xe vận chuyể ký
hiệu V = -
{0, 1, 2, …, K 1} và N+1 khách hàng, ký hi u C
ệ = {0, 1, 2, …, N}. Để
đơn giả ợ ề ậ ứ
n, kho trung tâm đư c đ c p như là khách hàng th 0.
M b
ột lộ trình ắ ầ
t đ u từ kho, đi qua một số khách hàng và k i kho xu
ết thúc tạ ất phát.
S l s d
ố ộ trình trong mạ ằ
ng giao thông cũng chính b ng ố xe vận chuyể ợ
n đư c sử ụng,
K. Mỗi c giá tr chi phí
ạnh trong mạng có mang ị ij
c và thời gian di chuyển ij
t . Mỗi
khách hàng t nhu c
có mộ ầu i
m khác nhau và phả ợ ấ
i đư c ghé thăm duy nh t một lần
bởi một xe nào đó. Do trọng tải của xe k
q có giới hạn nên k
q phải lớ ặ
n hơn ho c
bằng tổng tất cả các nhu cầu của các khách hàng trong lộ trình di chuyển của nó.
Hơn nữ ỗ
a, m i khách hàng ph t kho ng th
ả ợ
i đư c ph trong m
ục vụ ộ ả ờ ị
i gian đ nh
trư i gian đ i gian đ
ớc, bị ớ
gi i hạ ở
n b i thờ ế ớ ấ
n s m nh t và thờ ến trễ ấ
nh t. Nếu các xe
22. 21
v m s b
ận chuyể ế
n đ n trễ hơn thời điể trễ nhất này thì ẽ ị phạt, trong khi đó các xe đến
s m s t
ớ ờ
m hơn th i điể ớm nhất phải ạm ngừ ể
ng đ chờ đợi. Các xe phải hoàn thành
các l trình c
ộ ủa mình trong tổng th nh c
ời gian lộ trình cho phép (thời gian qui đị ủa
kho).
Mô hình toán họ ủ
c c a bài toán như sau:
Đặt:
• K: tổ ố ậ ể
ng s xe v n chuy n
• N: tổ ố
ng s khách hàng c n ph
ầ ụ ụ
c v
• C i: khách hàng th = 1, 2, …, N.
ứ i, với i
• C 0: kho hàng trung tâm
• c ij: chi phí đi từ đế
nút i n nút .
j
• t ij: thời gian di chuyển giữa nút .
i và nút j
• mi: a
nhu cầu củ nút .
i
• u i: biế ị ấ
n xác đ nh hư c u cho nút i.
• q k: khả ủ
năng c a xe k.
• t i: thời i
điể đế
m n tạ nút i.
• e i: th i t i
ờ điể ớ
m s m nhấ có th c v
ể ụ
ph ụ ạ
t nút .
i
• l i: thờ ể
i đi m trễ ấ
nh t còn được phép phụ ụ ạ
c v t i nút i.
• : th i
ời gian phục vụ ạ
t nút .
i
• i
w : thời gian chờ ạ
t i nút .
i
• k
r : th i gian l trình l
ờ ộ ớn nhấ ợ
t đư c phép cho xe k.
23. 22
Mục tiêu:
∑∑∑
= =
−
=
N
i
N
j
K
k
ijk
ij x
c
Min
0 0
1
0
Trong đó: ijk
x = 1 nếu có cạnh nối giữa nút i và nút j và ijk
x = 0 nếu ngược lại.
Các ràng buộc:
K
x
K
k
N
j
ijk =
∑∑
−
= =
1
0 1
với 0
=
i (2.1)
1
1
0 ,
0
=
∑ ∑
−
= ≠
=
K
k
N
i
j
j
ijk
x với i = 1, 2, …, N (2.2)
0
,
0
,
0
=
− ∑
∑ ≠
=
≠
=
N
h
j
j
hjk
N
h
i
i
ihk x
x với ]
1
,
0
[
;
]
,
1
[ −
∈
∈
∀ K
k
N
h (2.3)
1
−
≤
+
− N
Nx
u
u ij
j
i với i= 1, 2, …, N; j = 1, 2, …, N; j
i ≠ (2.4)
k
N
i
j
j
ijk
N
i
i q
x
m ≤
∑
∑ ≠
=
= ,
0
0
với ]
1
,
0
[ −
∈
∀ K
k (2.5)
k
N
i
N
i
j
j
i
i
ij
ijk r
w
f
t
x ≤
+
+
∑ ∑
= ≠
=
0 ,
0
)
( với ]
1
,
0
[ −
∈
∀ K
k (2.6)
0
0 =
t (2.7)
j
i
i
ij
ijk
i t
w
f
t
x
t ≤
+
+
+ )
( với ]
1
,
0
[
;
;
]
,
1
[
, −
∈
≠
∈ K
k
j
i
N
j
i (2.8)
i
i
i l
t
e ≤
≤ với ]
,
1
[ N
i ∈ (2.9)
Ràng bu ) nh
ộc (2.1 ằ ả
m đ m bảo có chính xác K l i kho. Ràng bu
ộ ỏ
trình đi ra kh ộc
( 2 3 m v n
2. ) và (2. ) đảm bảo chỉ ột xe ận chuyể vào và ra tại một khách hàng. Ràng
bu 2.
ộc ( 4) đảm bảo không có các l trình con trong l
ộ ời giải. Khả năng của xe thể
hi n 2.
ệ ở ộ
ràng bu c ( 5) trong khi đó thời gian di chuyển lớn nhất cho mỗi xe được
đả ả ố ể ệ
m b o trong (2.6). Cu i cùng, các phương trình ( 7 8 9
2. ), (2. ), (2. ) th hi n các
ràng buộ ờ
c th i gian.
24. 23
Mô hình hóa bài toán VRPTW u b
được nghiên cứ ởi nhiều tác giả ợ
và đư c trình bày
khá chi ti t trong các bài báo
ế [4], ,
[13] [16].
2.3 Các cấu trúc vùng lân cận
Phần n n t ng c
ề ả ủ ặ ệ ả ệ ộ
a các heuristic, đ c bi t là các heuristic c i thi n l trình[1][5] là
khái ni m vùng lân c n c
ệ ận. Vùng lân cậ ủa m t l
ộ ời gi i S là m t t
ả ộ ập N(S) các lời giải
đượ ạ ằ ổ ệ ể ộ ố ấ ả ờ ả
c t o ra b ng cách thay đ i S. Vi c ki m tra m t s hay t t c các l i gi i trong
vùng lân cận có th n ra các l i v c tiêu
ể ệ
phát hi ời giải tố ố
t hơn đ ới t
mộ hàm mụ cụ
thể. Ý tưởng này có thể ợ
đư c l i v i l i t
ặp lạ ớ ời giả ố ừ
t hơn v a tìm được. Tạ ộ ể
i m t đi m
nào đó, nếu không có bất k i t c tìm th y thì l i gi i t
ỳ ờ
l i giả ố ợ
t hơn nào đư ấ ờ ả ối ưu đã
đế ể ố ụ ộ ặ ể ố ụ ậ
n. Nhưng đây có th là t i ưu c c b ho c có th là t i ưu toàn c c. Thu t toán
này đượ ọ ế ụ ộ
c g i là tìm ki m c c b . Các meta-heuristic[26][16] đều dự ế
a trên tìm ki m
cục bộ nhưng có các phương thức mớ ợ
i đư c thêm vào nhằ ớ
m hư ng dẫn thoát khỏi
một tố ụ
i ưu c c bộ để kiểm tra các phần khác của không gian lời giải có thể ứ
ch a các
lời giải tốt hơn.
Hình 2.1 Ví dụ về một trao đổi Or-Opt
M d
ột trong các heuristic cải tiế ợ
n đư c sử ụng rộng rãi nhất trong lập lộ trình và lập
l b
ịch là heuristic r- r
Opt. Theo đó, cung đượ ợ
c xóa ra và đư c thay thế ởi r cung
khác. M t l i gi c t c s
ộ ờ ả ợ
i thu đư ừ ệ
vi ử ụ
d ng vùng lân c và không t
ận r-Opt hể được
cải tiế ợ
n thêm đư c gọi là r-tối ưu. Năm 1995, Potvin và Rosseau[27] đã trình bày
hai bi n th i là 2 Opt mà v a l trình. Theo
ế ể ớ
m - -
Opt* và Or ẫ ợ ớ
n duy trì đư c hư ng củ ộ
Or-Opt, mộ ạ
t phân đo n của lộ trình gồm l khách hàng liên tụ ợ
c nhau đư c di chuyển
đế ộ ộ ụ ề ỏ
n nơi khác trên l trình. Hình 2.1 trình bày m t ví d v -
Or Opt, hình vuông nh
25. 24
thể ệ
hi n kho hàng hóa. Hình bên trái thể ệ
hi n lộ trình trước khi áp dụng Or-Opt và
hình bên phải là lộ trình sau khi đã thực hiện trao đ i. Hư
ổ ớng của các khách hàng từ
1
i tới l
i vẫ ổ
n duy trì không đ i.
Hình 2.2 Ví dụ về một trao đổi 2-Opt*
2- v
Opt* là thao tác trao đổi mộ ạ
t phân đo n của một lộ trình này ới mộ ạ
t phân đo n
c -
ủa một lộ trình khác. Hình 2.2 minh họa 2 Opt*, hình vuông nh u di
ỏ biể ễn kho
hàng hóa, hình bên và hình bên ph
trái ải l t th
ầ ợ
n lư ể hiện các l c và sau
ộ ớ
trình trư
khi th c hi
ự ệ ổ
n trao đ i. Phần sau cùng củ ộ ẽ ở ầ
a l trình này s tr thành ph n sau cùng
của lộ trình kia. Chú ý rằng nếu )
,
( s
i
i là cung đầu tiên trên một lộ trình và )
,
( s
j
j là
cung sau cùng của một lộ trình khác thì hai lộ trình này s n thành m
ẽ ợ ộ
đư c tr ột.
Hình 2.3 Minh họa thao tác relocate
Toán t n m
ử relocate di chuyể ột khách hàng t n m
ừ ộ
m t lộ ế
trình này đ ột lộ trình
khác, đư đây, các c
ợ ọ
c minh h a trong Hình 2.3. Ở ạnh )
,
( i
ip , )
,
( s
i
i và )
,
( s
j
j được
thay thế ở
b i )
,
( s
p i
i , )
,
( i
j và )
,
( s
j
i .
26. 25
Toán tử exchange hoán đổi các khách hàng trong các lộ trình khác nhau. Ý tưởng
này có th c m a nh trình gi a hai l
ể ợ
đư ở ộ ể ổ ạ
r ng đ hoán đ i các phân đo n củ ững lộ ữ ộ
trình. Hình 2.4 minh họa thao tác exchange.
Hình 2.4 Minh họa thao tác trao đổi (exchange)
Việ ổ
c đ i ch t b i b
ỗ ợ ề ấ
k-nút đư c đ xu ở ợ ổ
i Christofides và Beasley đã đư c thay đ ởi
một vài tác giả khác để ghi nhận các cửa sổ thời gian. Mỗ ợ
i khách hàng đư c xem
xét m và các t
ột cách tuầ ự
n t ập M1 và M2 đồng nhất. M1 đượ ị
c đ nh nghĩa là khách
hàng thứ i v c
và khách hàng kế ị ủa nó, j . Khi đó, các phầ ử ủ
n t c a M2 được tìm
thấy là hai khách hàng g ùng l
ần nh
i j
và ấ ằ
t nhưng không n m trên c ộ trình như i và
j. Sau đó, mộ ậ ợ ị ằ ầ ử ủ
t vùng lân c n đư c đ nh nghĩa b ng cách xóa các ph n t c a M1 và
M2 và chèn chúng theo t n này khá l
ất c các cách có th
ả ể. Vùng lân cậ ớ ờ
n nên thư ng
chỉ ứ
k ng viên tiề ấ
m năng nh t được ki m tra.
ể
M - -
ột vùng lân cận khác là λ trao đổi (λ interchange) đượ ề
c đ xuất bởi Osman[5][28]
cho bài toán VRP. Theo đó, m p con các khách hàng có kích thư
ộ ậ
t t ớ ỏ
c nh hơn
ho ng trong
ặc bằ λ m t l
ộ ộ trình đượ ổ
c trao đ i với một tập cũng có kích thước nhỏ
hơn hoặ ằ
c b ng λ trong lộ trình khác.
Ngoài ra, Schulze và Fahle[14] cũng đị ậ
nh nghĩa vùng lân c n d n- t
ịch chuyể tuần ự
(shift ch trình
-sequence), m c d
ộ ợ
t khách hàng đư ị m
chuyển từ ột lộ trình đến một lộ
khác b ng các chèn vào. N
ằ h kiểm tra t các v trí có th
ất cả ị ể ế ợ
u thao tác chèn đư c
th lo
ực hi thi b ng cách xóa b t khách hàng khác thì nó s
ện khả ằ ỏ ộ
m j ẽ ị
b ạ ợ
i và đư c
chèn vào lộ ủ ụ ợ
trình khác. Th t c này đư c lặ ặ
p đi l p l n khi tính kh
ạ ế
i cho đ ả ợ
thi đư c
khôi phụ ạ
c l i.
27. 26
2.4 c
Cá phương pháp chính tiếp cận giải bài toán
2.4.1 Các phương pháp chính xác
2.4.1.1 Dựa trên quy hoạch động
Hướ ứ ợ ể
ng nghiên c u này đã đư c Kolen, Rinnooy Kan và Trienekens[29] phát tri n
năm 1987 và đư ng phương pháp n
ợ ự ở ộ
c xem như là s m r ớ ỏ
i l ng không gian trạng
thái (state .
-space relaxation) Các tác giả đã đề ấ
xu t mộ ố ử ụ
t phương pháp t i ưu s d ng
Branch- -
and Bound cho bài toán VRPTW. Phương pháp này tính toán các đường
gi n
ới hạ thấp hơn s d
ử ụng quy hoạ ộ
ch đ ng và s n
ự ới lỏng không gian trạng thái.
Các quy c th c hi a trên vi c c p phát l trình khách
ế ị ợ
t đ nh phân nhánh đư ự ện dự ệ ấ ộ
hàng. Phương pháp đã giả ế ố ớ ố ợ
i quy t t t bài toán v i s lư ng 15 khách hàng.
2.4.1.2 Dựa trên phát sinh cột
Các phương pháp d đư
ự ộ
a trên phát sinh c t (column generation) đã ợc Desrosiers,
Pelletier và Soumis Desrochers, Desrosier và
nghiên cứu từ năm 1982. Năm 1992,
Solomon[3] đã hiện th c phân rã
ự Dantzig Wolfe
- và đã giải quyết m t s
ộ ố ấ
v n đề ớ
v i
benchmark 100-khách hàng của Solomon. Thuật toán được xây dựng dựa trên sự
k p c t
ết hợ ủa quy hoạch tuyến tính được nới lỏng bao phủ ập hợ ế
p và cơ ch phát sinh
c K
ột. Hơn nữa, một số nhà nghiên cứu ở Đại học ỹ thuật củ ạ
a Đan M ch[30] đã đề
nghị ử ụ
s d ng phân tách biế ể
n (variable splitting) đ giả ớ
i bài toán VRPTW v i hiệu
năng tương tự.
2.4.1.3 Dựa trên phân rã Lagrange
Jornsten và các cộng sự[30], Madsen[31] đã áp dụng các lư c đ
ợ ồ phân rã Lagrange
(Lagrangian decomposition) khác nhau cho bài toán VRPTW để ờ
sinh ra các đư ng
giới h n th . Các nghiên c
ạ ấp hơn (lower bound) ứu đã cho thấy khả năng giải quyết
t v v v
ốt ấ ề
n đ ới 100 khách hàng khi kết hợp phương pháp phân rã Lagrange ới
phương pháp - -
Branch and Bound.
28. 27
2.4.1.4 Dựa trên K-Tree
Fisher[19] năm 1994 cũng đã đưa ra một thuật toán tối ưu, là mở ộ
r ng phương pháp
1-T -T
ree thành phương pháp K ree cho bài toán VRP và VRPTW. Theo đó, các giới
h s n r
ạ ớ ợ
n dư i thu đư c từ ự ới lỏng dựa trên việc tạo ra các cây mở ộng (spanning
tree), còn g i là ree. Các ràng bu
ọ cây K-T ộc v c gi t b
ề ả ợ
kh năng xe đư ải quyế ằng
cách đả ả ằ ế ộ
m b o r ng n u m t tậ ộ
p con S nào đó thu c tập khách hàng thì phả ợ
i đư c
phục v i ít nh t k(S) xe v
ụ ở
b ấ ận chuyển. Các ràng bu c v a s
ộ ề ử
c ổ thời gian cũng
đư pháp đã gi
ợ ố ử ộ ự
c đ i x m t cách tương t . Phương ả ế ớ ả
i quy t bài toán v i kho ng 100
khách hàng.
Các phương pháp chính xác thường hiệu quả hơn trong trường hợp không gian lời
giải b i các c a s i gian h
ị ạ
h n chế ở
b ử ổ thờ ẹp, do có ít t p c
ổ ợ
h ủ ể
a các khách hàng đ
đị ộ ả
nh nghĩa các l trình kh thi.
2.4.2 Các phương pháp heuristic
2.4.2.1 Nguyên lý
H g
ầu hế ợ
t các phương pháp heuristic đư c công bố ầ ề
n đây cho bài toán VRPTW đ u
g d
ồ ạ
m hai giai đo n. Giai đoạ ầ
n đ u tiên, một heuristic xây dựng lộ trình được sử ụng
để ạ ộ ờ ả ầ ả ố ấ ể
t o ra m t l i gi i ban đ u có tính kh thi và t t nh t có th . Các heuristic xây
d l
ựng ộ trình có thể chia làm hai phân lớp con là các phương pháp xây dựng lộ trình
tu (ch
ần tự ỉ ộ
m t l t th
ộ ự
trình xây d ng tại mộ ời điể ự
m) và các phương pháp xây d ng
lộ trình song song (nhiề ộ
u hơn m t l c xây d t th
ộ ợ
trình đư ựng tại mộ ờ ể
i đi m). Tiêu
biểu cho các heuristic xây dựng lộ trình như heuristic chèn của Solomon[1],
heuristic chèn song song của Potvin và Rousseau[8]. Trong giai đoạn hai, một
heuristic l i thi c áp d trên l i gi i kh i t
ặp cả ện lộ ợ
trình đư ụng ờ ả ở ạ ầ
o ban đ u. thoát
Để
khỏi các tối ưu cụ ộ ủ ụ ả ệ ợ ậ
c b , các th t c c i thi n đư c nhúng vào các thu t toán. Tiêu
bi u n
ể cho các heuristic c i thi
ả ện lộ ạ
trình trong giai đo n này như thu luy
ật toán ệ
kim[5] thu , thu
[16], ật toán di truyề ế
n[5][16], tìm ki m Tabu[21] ật toán n
đàn kiế [12].
Các thu t
ật toán l
này ần lượ sẽ được giới thiệu ở các phần sau.
29. 28
2.4.2.2 Heuristic xây dựng lộ trình
a. Heuristic tiết kiệm
Bài báo đầu tiên trình bày heuristic xây dự ộ ộ
ng l trình cho bài toán VRPTW thu c
nghiên cứu của [9]
Edward K. Baker và Joanne R. Schaffer năm 1986. Thuật toán
c m r a .
ủa họ ở ộng heuristic tiết kiệm (Savings heuristic) củ Clark and Wright[10]
Thuật toán b i t t c các l
ắ ầ
t đ u vớ ấ ả ộ ể
trình khách hàng đơn có th –
(kho i – kho).
Trong mỗ ớ
i bư c l p, thu tìm ra hai l trình có th p sao cho ti
ặ ậ ể
t toán tính đ ộ ể ế
k t hợ ết
kiệm chi phí nhiều nhất. Theo Baker và cộng sự đị ế
nh nghĩa chi phí ti t kiệm là hàm
t h
ổ ợp của khoảng cách, thời gian và thờ ế ạ
i gian cho đ n khi đ t tính khả thi. Năm
1987, Solomon n m
[1] cũng phát triể ộ ự ự
t heuristic tương t d a trên thu t toán ti
ậ ết
kiệm, nhưng loại bỏ ế
y u tố ờ
th i gian ra kh i hàm tính chi phí ti
ỏ ết kiệm. Năm 1988,
van Landeghem[11] cũng trình bày một heuristic dựa trên heuristic tiết kiệm, sử
d t t
ụng các cửa sổ thờ ợ
i gian đư c sắp theo thứ ự để đo đạt mứ ộ
c đ ốt của các liên kết
giữ ờ
a các khách hàng theo th i gian.
b. Heuristic chèn
Trong bài báo của Solomon ba heuristic chèn
[1], đã được trình bày. Theo đó, vị trí
khả ấ
thi nh t cho mỗi khách chưa được phục vụ ợ
đư c tính toán theo hàm 1
f . Sau đó,
khách hàng tố ấ ợ
t nh t đư c ch i m
ọ ở
n b ột hàm 2
f . Nếu không có một thao tác chèn
nào xả ộ ộ ớ ợ ắ ầ
y ra thì m t l trình m i đư c b t đ u.
Khi m t l c l i m t th m, các l c t o ra càng tr
ộ ộ ợ
trình đư ập tạ ộ ờ ể
i đi ộ ợ
trình đư ạ ễ ờ
thư ng
càng kém chấ ợ ờ
t lư ng trong trư ng hợp các khách hàng còn lạ ợ ậ ộ
i (chưa đư c l p l
trình) p a lý. Potvin và Rousseau c ph c h
hân tán rộ ị
ng trên vùng đ [8] c g
ố ắng khắ ụ ạn
chế ủ
này c a các heuristic chèn bằng cách xây dự ộ ồ
ng vài l trình đ ng thời.
c. Một số heuristic khác
Solomon[1] cũng trình bày một heuristic khác là heuristic láng giềng gần nhất,
hướ ờ ỗ ộ
ng th i gian (Time- -
Oriented Nearest Neighbour heuristic). Theo đó, m i l
trình đư t đ
ợc bắ ầ ằ
u b ng cách tìm ra khách hàng n kho trung tâm nh
gầ ất trong số các
30. 29
khách hàng p l p sau, khách hàng
chưa được sắ ộ ỗ
trình. Trong m i vòng lặ được chọn
ra cũng theo tiêu chí trên nhưng không phải gần kho nhất mà là gần khách hàng sau
cùng trong l n nh
ộ ầ
trình. Khách hàng g ấ ợ
t này đư c chèn vào cu i l trình hi
ố ộ ện tại.
Khi quá trình tìm ki t n
ế ầ
m khách hàng g n nhấ ày không cho kết quả nào thì m t l
ộ ộ
trình m c b
ớ ợ
i đư ắ ầ
t đ u. trình
Ngoài ra, Solomon cũng đưa ra phương pháp lập lộ
GTH (Giant Tour Heuristic) theo nguyên t u tiên l
- ắc đầ ập lộ ậ
trình, sau đó l p lịch.
M - g
ột heuristic khác là heuristic TOSH (Time Oriented Sweep Heuristic) ồm hai
giai đoạn: phân nhóm khách hàng và lập lộ ỗ
trình cho m i phân nhóm. Sau khi gán
các khách hàng vào các phân nhóm khác nhau, giai đoạ ậ ộ ẽ ự
n l p l trình s xây d ng
một lộ trình cho mỗi phân nhóm. p l t phân nhóm tr
Rõ ràng, việc lậ ộ trình trong mộ ở
thành bài toán l n ch i gian.
ập lộ ớ
trình TSP v i hạ ế thờ
2.4.2.3 Heuristic cải thiện lộ trình
a. Thuật toán Tìm kiếm cục bộ với λ
λ
λ
λ
λ-trao đổi
Thangiah cùng các cộng sự[5] đã phát tri trao đ
ển phương pháp λ- ổi gi m tìm
ả kiếm
c ( - -
ục bộ λ Interchange Local Search Descent LSD) bằng cách chèn và chuyể ổ
n đ i
các khách hàng m t cách có h trình. Các tác gi
ộ ệ thống giữa các lộ ả ị
đã đ nh nghĩa
các toán t ng các toán t c s
ử ổ ờ
-
λ trao đ i. Thư ử ổ
1-trao đ i và 2-trao đ i đư
ổ ợ ử ụ
d ng,
tức là cho phép 1 hoặc 2 khách hàng được chèn vào hoặc chuy i t i m t th
ể ổ
n đ ạ ộ ời
đi các phương pháp
ể ộ
m. Năm 1999, Tan và các c ng sự ứ
[16] trong các nghiên c u về
heuristic cho bài toán VRPTW đã hiện thự ạ
c l i thuật toán LSD và làm một số so
sánh vớ ậ
i các thu t toán heuristic khác.
Có hai chi c áp d
ế ợ ợ
n lư c[16] đư ụng nhằm chọn ra các l i gi i ti
ờ ả ề ừ
m năng t các ứng
viên:
• η
Chiế ợ ố ấ ụ
n lư c t t nh t toàn c c (Global Best) sẽ ệ ấ ả ờ ả
duy t qua t t c các l i gi i và
ch t
ọn ra mộ l i
ời giả có chi phí gi n nh
ảm lớ ất theo một hàm chi phí đã cho.
• η
Chiế ợ ố ấ ầ
n lư c t t nh t đ u tiên (First Best) sẽ ọ ờ ả ầ
ch n l i gi i đ u tiên có chi phí
giả ộ ớ
m theo m t hàm chi phí cho trư c.
31. 30
Chiế ợ
n lư c t t nh t toàn c ng cho các k t qu c t t nh
ố ấ ụ ờ
c thư ế ả ố ế ợ
t t hơn chi n lư ố ấ ầ
t đ u
tiên b i vì i t t c các di chuy i ti , tuy nhiên th
ở nó ghi nhận lạ ấ ả ển có cả ến ời gian tính
toán lại lâu hơn.
K c
ết quả ủa LSD phụ thuộc vào lời giải khả thi ban đầ ờ
u. Trong trư ng hợp tệ nhất,
LSD chỉ ể ế
có th tìm ki m qua 2 vùng lân c n c
- ậ ủa l i gi
ờ ả ầ
i ban đ u và n u không có
ế
b k l
ất cứ di chuyển nào tố ợ
t hơn đư c phát hiện, thuật toán sẽ ết thúc sau một số ần
l h t t
ặp. Do đó, LSD bị ạn chế trong mộ ố ụ
i ưu c c bộ và không thể khám phá vùng
rộng hơn. Điểm mạnh chính củ ự
a phương pháp này là th c hiện rấ ấ
t nhanh nhưng b t
l l
ợi ớn nhất là hiệ ạ ợ
u năng đ t đư c nghèo nàn nếu không có sự ế
k t hợp với các
heuristic khác.
b. Thuật toán luyện kim
K b
ỹ thuật mô phỏng luyệ ợ
n kim đư c công bố ởi Metropolis và các cộng sự năm
1953 xuất phát t ng quá trình luy Kim lo
ừ ở
ý tư ng mô phỏ ện kim loại. ạ ượ
i đ c nung
cho đến khi nóng chảy rồ ợ
i sau đó đư c làm ngu i d Quá trình làm ngu
ộ ần. ội này sẽ
ả ở ấ ớ ế ặ ấ ể ủ ạ
nh hư ng r t l n đ n đ c tính c u trúc tinh th c a kim lo i hình thành.
Kirkpatrick[32] năm 1982 đã áp dụng thành công thu luy
ật toán ện kim vào bài toán
tố ằ
i ưu nh m tìm kiếm giải pháp khả thi và các giả ợ ớ
i pháp tìm đư c qua các bư c có
th i
ể ộ
h i tụ ầ
d n tớ giải pháp tối ưu. Giải thuật tránh đư c trư
ợ ờng hợp tối ưu cụ ộ
c b
bằ ớ
ng cách cho phép các bư c chuyển sang trạng thái có chấ ợ
t lư ng thấp hơn trong
một số trường hợp. Nguyên tắc chung là các bước chuyển tố ạ
t hơn tr ng thái hiện tại
luôn đư u hơn s đư
ợ ọ ạ
c ch n, bên c nh đó, các bướ ể
c chuy n xấ ẽ ợ ấ ậ
c ch p nh n khi xem
xét xác su t chuy
ấ ể ổ
n đ i.
Osman[33] gi
năm 1993 đã áp dụng thu luy
ật toán ện kim để ải quyết bài toán VRP
bằng cách di chuyển một khách hàng từ ộ ế ộ ặ ổ
l trình này đ n l trình khác ho c trao đ i
hai khách hàng giữa hai lộ trình. Năm 1996, Chiang và Russell[34] đã áp dụng
thành công thuật toán vào bài toán VRPTW. Vấ ề
n đ này cũng được tìm thấy trong
nghiên cứu v - c .
ề meta heuristic cho VRPTW ủa Tan và các cộng sự[16]
32. 31
c. Thuật toán di truyền
Thu o
ật toán di truy m heuristic có tính thích nghi a the
ề ế
n là phương pháp tìm ki , dự
quá trình ti t thông qua ch c t Các khái ni
ến hóa c a sinh v
ủ ậ ọn lọ ự nhiên. ệm cơ bản
đư năm 1975.
ợ ể
c phát tri n bởi Holland[35] Thuậ ệ ự ự ế ợ
t toán làm vi c d a trên s k t h p
các thao tác ch t bi Thao tác ch n th
ọn l c
ọ , sinh sản và độ ến. ọn phả ớ
i hư ng quầ ể đến
các l i gi i t thao tác tái t ng các gene c a các cha
ờ ả ốt hơn, trong khi đó, ổ ợ
h p sử ụ
d ủ
m s h
ẹ được chọ ể
n đ ản sinh ra các cá thể con cho thế ệ tiếp theo. Toán tử đột biến
đư ng đ
ợ ử ụ
c s d ể ỏ ố ụ ộ
thoát kh i các t i ưu c c b .
Blanton và Wainwright[2] thu
( )
năm 1993 đầu tiên áp dụng ật toán di truyền cho bài
toán VRPTW. Theo đó, họ ế
đã k t h t toán di truy i thu t toán heuristic
ợp thuậ ền vớ ậ
tham lam. toán di truy c s tìm ki t các
Thuật ề ợ
n đư ử ụ ể
d ng đ ếm cách sắp xếp tố
khách hàng, trong khi đó việ ự ờ ả ả ợ ắ ữ ở ậ
c xây d ng l i gi i kh thi đư c n m gi b i thu t toán
tham lam. Thangiah[4] (năm 1995) cũng sử ụ
d ng thuật toán di truyền để ế
tìm ki m
các phân nhóm khách hàng Trong thu
. ậ ợ ề
t toán đư c đ xuất b i Potvin và Be
ở ngio[7],
các cá th c t o ra b t n trình t hai l i gi
ể ợ
con đư ạ ằng cách kế ối hai phân đoạn lộ ừ ờ ải
cha m c b ng cách thay th trình c i gi i cha m trình c
ẹ ặ
ho ằ ế ộ
l ủa lờ ả ẹ ằ
này b ng lộ ủa
cha m t bi c s rút ng
ẹ kia. Sau đó, toán tử độ ế ợ
n đư ử ụ ể
d ng đ ắn số ộ ể ố
l trình và đ t i
ưu lờ ả ộ
i gi i. Berger và các c ng sự ậ ề ự ế
đã đưa ra thu t toán di truy n lai d a trên cơ ch
xóa bỏ ộ
m t số khách hàng p l
ra khỏi lộ trình c a h
ủ ọ ậ
và sau đó l ịch lại v i các
ớ thuật
toán heuristic xây d trình n i ti
ựng lộ ổ ếng. Braysy[23] u
[24] tiếp tục nghiên cứ của
Berger với việc phân tích tính nh y c
ạ ảm (sensitivity) và i các thao tác
đị ớ
nh nghĩa m
trao đ i chéo và đ
ổ ộ ế
t bi n.
Homberger và Gehring heuristic ti
[36] -
năm 1999 đưa ra hai meta ến hóa dựa trên
các thu t toán ti c g i là các chi c ti n hóa và các t c i ti
ậ ế ợ
n hóa đư ọ ế ợ
n lư ế kỹ thuậ ả ến
l - - .
ập lộ trình nổi tiếng như Or opt và 2 opt*[27][33] Năm 1999, Tan và các cộng
sự[16] cũng phát triển thuật toán di truyền cho VRPTW dựa trên heuristic chèn của
Solomon[1] - -
và các thao tác λ trao đổi, PMX trao đổi chéo. Braysy và các cộng
sự[24] năm 2000 đã mô tả thuật toán tiế ạ ậ
n hóa hai giai đo n. Đây là thu t toán lai
33. 32
đượ ế ợ
c k t h p từ ậ ề ậ ế
thu t toán di truy n và thu t toán ti n hóa với các heuristic xây
d t
ựng lộ trình và tìm kiếm cục bộ ừ các nghiên cứu của Solomon và Taillard.
Năm 2004, Beatrice Ombuki và các c
[13] ộ ự ể ậ ề
ng s đã phát tri n thu t toán di truy n
đa mục tiêu rất hiệ ả
u qu . Các tác giả ể ễ
đã bi u di n bài toán VRPTW bài toán
thành
đa mục tiêu: số ổ
xe và t ng chi phí (kho n v
ảng cách) và áp dụng thuật toán i truy
d ề ới
k K
ỹ thuật xếp hạng Pareto. ết quả thuậ ạ ợ
t toán đ t đư c rất khả quan khi so sánh với
các k t qu t nh c công b enchmark 100 a Solomon
ế ả ố
t ất đượ ố ủ
c a t p b
ậ c
khách hàng ủ .
d. Thuật toán tìm kiếm Tabu
Tìm kiếm Tabu đượ ề
c đ xu [21] 1989
ất b i Glover
ở năm . Tìm kiếm Tabu là chiến
lược tìm kiế ự ộ ớ để ớ
m d a trên b nh hư ng dẫ ứ
n phương th c tìm kiế ụ
m c c bộ ợ
vư t qua
các .
tố ụ
i ưu c c bộ Thuậ ữ ộ
t toán gi m t danh sách các di chuy c các l
ển hoặ ời giải đã
th .
ực hiện hoặ ợ
c đư c ghé thăm trong quá khứ Danh sách này được g i là danh sách
ọ
Tabu, chính là một hàng đ i có kích thư c thay đ
ợ ớ ổi hoặc cố định. Danh sách Tabu
đư ng đ
ợ ử ụ
c s d ể ớ ạ ể
ghi nh l i các di chuy n gầ ấ ặ
n nh t và ngăn ch n các di chuyển p
lặ
l k
ại. Thuật toán tìm kiếm Tabu ết thúc c s
sau khi đạ ợ
t đư ố ặ
vòng l p cố định cho
trước.
Nhiều nghiên ng Tìm ki
c u
ứ đã thực hiện nhằm áp dụ ếm Tabu cho bài toán VRP
như [5], [6], ,
[16] [33]. Tiêu biểu như Gerdreau, Hertz và Laporte đã áp dụng Tìm
kiếm Tabu, s d
ử ụng vùng lân cậ ợ
n đư c xây dựng bằng cách di chuyển một khách
hàng t n l
ừ ộ ế
l trình này đ ộ ử ụ
trình khác. Osman[33] và Talliard cũng đã s d ng vùng
lân c các l c t thao tác chèn m
ận bao gồm tất cả ời giả ợ
i thu đư ừ ột khách hàng và
chuy áp
ể ổ
n đ i hai khách hàng. i v i bài toán VRPTW, các nghiên c
Tuy nhiên, đố ớ ứu
dụng Tìm kiếm Tabu rất ít. Năm 1996, Potvin và các cộng sự[37] đã áp dụng thuật
toán Tìm k i m c tiêu chính là t xe v
iế ớ
m Tabu cho VRPTW nhưng v ụ ố ố
i ưu s ận
chuy ng
ển thay vì tố ổ
i ưu t ng chi phí. Năm 1999, Tan và các cộng sự[16] đã áp dụ
Tìm ki m Tabu cho bài toán VRPTW v
ế ới nhiều ng
điểm mới như s d
ử ụ thuật toán
PFIH khở ạ ờ ả ầ ế ợ ớ ự ờ
i t o l i gi i ban đ u, k t h p ghi nh d a trên tính thư ng xuyên
34. 33
(frequency) và tính g và s các chi
ần đây (recency) ử ụ ầ ủ
d ng đ y đ ế ợ ạ
n lư c đa d ng hóa
(diversification) và cườ ộ
ng đ hóa (intensification).
e. Thuật toán đàn kiến
Hệ thố ế
ng đàn ki n (Ant Colony Sy y trong các nghiên c
stem – ACS) được tìm thấ ứu
c t T
ủa Gambardella[38] và Dorigo[39] ừ năm 1996. ố ế
i ưu đàn ki n (Ant Colony
Optimization heuristic
– ACO) là một phương pháp meta- xuất phát từ ệ
vi c khám
phá hành vi c n c
ủ ế
a các đàn ki n gi
trong thế ới th t.
ậ Ý tưở ả
ng cơ b ủa ACO là m t h
ộ ệ
th t
ống rấ nhiều agent nhân tạo có thể ạ
liên l c với nhau xây d
ở ứ
m c thấ ể
p đ ựng các
l t t h
ời giải ố cho các bài toán tố ổ
i ưu t ợp khó.
Trong th p t i nhau
ế giới th t, các con ki
ậ ến hợ ác vớ tìm ki ng cách
ếm thứ ằ
c ăn b để ạ
l i
các d c trên i là
ấu vết hóa họ m .
ặ ờ
t đư ng Hiệ ợ
n tư ng này gọ pheromone. Tương tự
như th đàn ng đ Theo đó,
ế ộ
, m t kiế ạ
n nhân t o được xây dự ể ỏ
mô ph ng hành vi này.
c o h d
ác con kiến nhân tạ ợp tác với nhau bằng cách sử ụng một vùng nhớ chung.
Pheromone nhân tạo đượ ố
c tích lũy trong su t quá trình tính toán. Các con kiến nhân
tạo là các tiến trình song song v d
ới vai trò xây dựng các lời giải bằng cách sử ụng
m t n b m h
ột thủ ục xây dựng. Quá trình xây dựng lời giả ợ ớ
i đư c hư ng dẫ ởi ột tổ ợp
các li
pheromone nhân tạo, dữ ệu bài toán và các hàm heuristic đánh giá các bước
xây dựng thành công.
Hình 2.5 Kiến trúc -
của MACS VRPTW
Nhiều thu t nh
ậ ợ ề ấ
t toán ACO đã đư c đ xu ằm giải quyết các lo i bài toán t
ạ ố ổ
i ưu t
hợp khác nhau như bài toán TSP/ATSP (Symmetric/Asymmetric Traveling
35. 34
Salesman Problem), QAP (Quadratic Assignment Problem), ... t trong các
VRP, Mộ
hi nh
ện th c d a trên ACO hi
ự ự ệu quả ất là hệ thống đàn kiến ACS của hai tác giả
Gambardella và Dorigo . t
[38] [39] Các tác gi i thi t th c c t v
ả ớ
đã gi ệu mộ ủ ụ
t ập nhậ ế
pheromone đặc biệt làm tăng việc tìm kiếm trong vùng lân cận của lời giải tốt nhất
đượ ộ ở ộ
c tính toán. M t m r ng củ ợ ự ệ ở
a ACS cho bài toán VRPTW đư c th c hi n b i
Gambardella, Taillard và Agazzi[12], hệ thống MACS- -
VRPTW. MACS VRPTW
đư o đ
ợ ổ ứ ấ ế
c t ch c theo mô hình phân c p các đàn ki n nhân tạ ể ố ộ
t i ưu m t hàm nhiều
mục tiêu: đàn kiế ầ
n đ u tiên tối tiểu số xe vận chuyể ế
n, trong khi đó đàn ki n thứ hai
t u n S c
ối tiể khoả g cách vận chuyển. ự ộng tác giữ ế ợ
a các đàn ki n đư c thực hiện nhờ
vào t
trao đổi thông tin thông qua thao tác cập nhậ pheromone.
36. 35
Chương 3: Thuật toán di truyền song song
3.1 Giới thiệu về thuật toán di truyền
John Henry Holland[35], với ý tưởng mô phỏng g ng v
ần giố ới quá trình tiến hóa tự
nhiên c theo thuy n hóa c
ủa sinh v t
ậ ết tiế ủ ề
a Darwin, đã đ xuất gi i thu t di truy
ả ậ ền
(GA – Genetic Algorithm) nhằm giải quyết các bài toán tố ố
i ưu. Trong su t quá trình
tiến hóa, các cá th có thích nghi t t v
ể ố ới môi trườ ợ
ng đư c ch i và lai t
ọn giữ ạ
l ạo
tiếp. C , các th
ứ ậ
như v y ế ệ ẽ ả ớ
h sau s có kh năng thích nghi cao hơn v i môi trường
s h
ố ợ
ng do đư c kế thừ ặ
a các đ c tính tốt từ các thế ệ trước.
Hình 3.1 Các khái niệm cơ bản của thuật toán di truyền
Tuy nhiên, thu cho l
ật toán GA sẽ thật sự ời gi i t t n
ả ố ếu như có cách đánh giá đúng
đắ ổ ị ủ ầ ể ự ủ ể ệ
n tính n đ nh c a qu n th d a trên tính thích nghi c a các cá th , cũng như vi c
l t h
ựa chọn các ứng viên. Mặt khác, cách thức biế ổ ể
n đ i đ ạo cá thể con cho thế ệ
sau cũng ả ở đế ế ả ả ậ
nh hư ng n k t qu gi i thu t.
T i
ổng quát, giả thuật di truyề ợ
n đư c mô tả như sau:
• Tạo quần thể ngẫu nhiên ban đầu G 0.
• Đánh giá quầ ể ế ầ ể ở ạ ổ ị ế ợ ạ
n th . N u qu n th tr ng thái n đ nh thì k t thúc. Ngư c l i
37. 36
thì ti c th c hi c ch a các cá th thay th
ếp tụ ự ện việ ọn lự ể ế ế ệ
. Đánh giá th h con
đượ ỳ ọ
c k v ng.
• Chọ ự ể ừ ầ ể
n l a các cá th cha t qu n th G i. Chọn một phép tiế ể
n hóa đ phát sinh
ra các cá thể ở
con thế ệ
h Gi+1. Thực hi n th
ện l p t
ặ ừ ớ ầ
bư c đánh giá qu ể cho
đế ỏ ề ệ ế
n khi th a đi u ki n k t thúc.
3.2 toán
Các phép toán chính của thuật di truyền
3.2.1 Phép chọn
Việc ch n ra các cá th a trên nguyên t c cá th
ọ ể cha mẹ đem lai tạo là ngẫu nhiên dự ắ ế
có m thích nghi cao nh a cao nh t. Quá
ứ ộ
c đ ấ ứ
t cũng tương ng có khả ọ
năng ch n lự ấ
trình ch có th c th c hi
ọn ể ợ
đư ự ện ngẫu nhiên theo vòng quay roulette với từng vùng
chiế ứ
m trên vòng tròn tương ng với xác suất tồn tại của mỗi cá thể.
Hình 3.2 Vòng quay lựa chọn cá thể
Xác su t t i c a cá th
ấ ồn tạ ủ ể i là:
Pi =
∑
=
N
j
j
i
f
f
1
Trong đó:
f là hàm thích nghi của cá thể trong quần thể có N cá thể.
M i d
ột ch ế ợ
n lư c chọn lựa cá thể khác cũng hay được sử ụng là chiế ợ
n lư c lựa chọn
theo vòng thi đ đư
ấ ừ ặ ể
u (Tournament selection). Theo đó, t ng c p cá th ợ ự ọ
c l a ch n
38. 37
ngẫu nhiên và được so sánh với nhau theo m thích nghi
ứ ộ
c đ , cá th nào có tính
ể
thích nghi cao hơn s i cho đ
ẽ ợ
đư c chọ ữ ạ
n gi l i. Quá trình này được lặ ạ
p l ến khi thu
đượ ặ ể ẹ để ự ệ ạ
c n c
/2 p cá th cha m th c hi n phép lai t o (n là số cá thể trong quần thể).
3.2.2 Phép lai
t s t
Các cá thể ố ợ
t sau khi đư c chọn lựa từ quần thể ẽ cho lai để ạo ra các cá thể con
v k b m
ới hi vọng ế thừ ặ
a các đ c tính di truyền từ các cá thể ố ẹ. Tuy nhiên, không
ph p
ải t t c cá th
ấ ả ể đều có th t h
ể ế
k ợp v ng có m
ớ ờ
i nhau mà thư ột xác su t k t h
ấ ế ợ
nhấ ị
t đ nh Pcross.
Quá trình lai th c hi
ự ện như sau:
• Ứ ớ ỗ ể
ng v i m i cá th phát sinh cho nó một xác su t ng
ấ ẫu nhiên, n u xác su
ế ất
này nhỏ hơn Pcross thì cá thể được lấy vào danh sách sử ụ
d ng cho việc lai
ghép.
• Chọ ự ẫ ừ ặ
n l a ng u nhiên t ng c p và vị ể ự
trí lai ghép đ th c hiện lai ghép tạo hai
cá th con thay th
ể ế.
Trong hi gi
ệ ự ổ
n th c, các thao tác trao đ i chéo ữa hai nhiễm sắc thể đư nh nghĩa
ợ ị
c đ
và th các
ời gian ph thu
ụ ộc nhi u vào cách
ề nhiễm sắc th c mã hóa.
ể ợ
đư Thông qua
thao tác trao đổi chéo này, quá trình tái tổ ợ
h p thông tin di truyề ữ
n gi a các nhiễm
s M
ắc thể được thực hiện. ột số thao tác trao đổi chéo phổ biến sau:
• Trao đổ ộ ể ắ ả
i chéo m t đi m c t (One-Point Crossover): đây là thao tác đơn gi n
nhất, mộ ể
t đi m cắt được chọn ngẫu nhiên trên chiề ễ ắ ể
u dài nhi m s c th , sau
đó, các gene n m phía sau đi t đư c hoán đ
ằ ể ắ
m c ợ ổ ữ
i gi a hai nhiễ ắ ể
m s c th cha
mẹ. Tham khảo minh họa Hình 3.3.
• Trao đổ ề ể ắ
i chéo nhi u đi m c t (Multi-Point Crossover): đây là thao tác mở
r a T
ộng củ thao tác trước với nhiề ộ ể
u hơn m t đi m cắt. rong hiện thực, thao
tác trao đ i chéo hai đi thư
ổ ể ắ
m c t ờ ợ
ng hay đư c sử ụ ọ
d ng. Hình 3.4 minh h a
thao tác trao đổ ề ể ắ
i chéo nhi u đi m c t.
39. 38
Hình 3.3 Thao tác trao đổi chéo một điểm cắt
Hình 3.4 Thao tác trao đổi chéo nhiều điểm cắt
• Trao đổ ạ ừ ầ
i chéo ánh x t ng ph n (PMX – Partially Mapped Crossover):
phương th ng đư
ứ ổ ờ
c trao đ i này thư ợ ử ụ
c s d ng trong trường hợp các nhiễm
s d .
ắc thể được mã hóa ạng chuỗi số (số nguyên hoặc số thực) có thể hoán vị
PMX b t
ảo tồn vị trí của nhiều gene nhấ có thể trong cả hai nhiễu sắc thể. Ví
d :
ụ
NST 1: | |
K H E C B D F G I J A L
NST 2: C D B A | G F E | L K I J H
Chọn hai điểm cắt ngẫu nhiên, khi đó, phân đoạn giữa hai điểm cắt cho định
nghĩa một ánh xạ ( . Áp dụng ánh xạ này lên
B G, D
F, F E) các gene
của hai nhiễm sắc thể cha mẹ sẽ thu được các nhiễm sắc thể con tương ứng.
NST con 1: K H | G F E | I J A L
D C B
NST con 2: A | B D F | L K I J H
C E G
• Trao đổ ứ ự ứ ả ồ ứ
i chéo có th t (Ordered Crossover): phương th c này b o t n th
tự tương đối của nhi hai nhi
ều gene nhấ ể ả
t có th trong c ễm sắ ể ụ
c th . Ví d :
NST 1: K H E C | B D F | G I J A L
NST 2: D B A | G F E | L K I J H
C
Xác định hai điểm cắt ngẫu nhiên, sau đó, xác định thứ tự các gene trong một
nhiễm sắc thể bắt đầu với gene đầu tiên ngay sau điểm cắt thứ hai. Trong ví
dụ trên, sẽ là Sau đó, từ chuỗi này, xóa đi các
NST1 GIJALKHECBDF.
40. 39
gene đã tồn tại trong phân đoạn đã hoán vị giữa hai điểm cắt. Trong ví dụ
trên những gene cần xóa là nên phần còn lại là Kết quả
GFE IJALKHCBD.
các con là:
NST con 1: H C B D | G F E | I J A L K
NST con 2: C A G E | B D F | L K I J H
3.2.3 Phép đột biến
Sự đột biế ộ
n gene cũng là m t trong những nguyên nhân gây ra tiến hóa n u bi
ế ế ổ
n đ i
này biểu hi ng có l
ện tính trạ ợi. Trong giải thu t bi y ra v i m t xác
ậ ộ
t GA, các đ ến xả ớ ộ
suất Pmut nào đó, với nhữ ờ
ng trư ng hợp xả ộ
y ra đ t biến thì có sự thay đổi trong gene
mà không kế thừa t cá th
ừ ể nào.
Quá trình đột biế ầ
n trong qu n thể ễ ọ ẫ ộ
di n ra như sau: Ch n ng u nhiên m t cá thể và
một vị trí gene với xác suấ ứ
t tương ng nhỏ hơn Pmut, th c hi i ng
ự ện biế ổ
n đ ẫu nhiên
tại vị trí này.
M d (
ột số loạ ộ
i đ t biế ờ
n thư ng sử ụng như chèn gene hoặ ạ
c đo n gene Hình 3.5a),
xóa gene ho n gene di
ặ ạ
c đo n gene (Hình 3.5b), hoán vị ặ ạ
gene ho c đo ễn ra trong
m (
ột nhiễm sắc thể Hình 3.5 h 3.5
c, Hìn d).
Hình 3.5 Một số loại đột biến thường gặp
41. 40
C t
ần lưu ý: việ ộ
c gây đ t biến có thể làm cá thể ố ể
t hơn nhưng cũng có th làm cá thể
xấ ậ ộ
u hơn. Chính vì v y, phép đ t biến ít nhiều sẽ tác độ ế
ng đ n quá trình hình thành
quầ ể ờ
n th sau cùng (l i giải bài toán).
3.3 Các mô hình song song
Thu thu
ật toán di truy n là
ề kỹ ật tìm ki c s t các bài
ếm mạ ợ
nh đư ử ụ ể ả
d ng đ gi i quyế
toán khó có nhiều lu t toán l
ật ràng buộc. Tuy nhiên, thuậ ạ ỏ
i đòi h i nhiề ự
u năng l c
tính toán cũng như bộ nhớ ủ
c a máy tính do phả ặ
i l p qua nhiề ế ệ để ợ ế
u th h có đư c k t
qu vi
ả ố
t t. Ngoài ra, ệc đánh giá tính thích nghi c a các cá th
ủ ể trong quần thể cũng
chi . y, có
ếm thời gian r t l
ấ ớn Chính vì vậ hiện th t toán di truy
ực song song thuậ ền sẽ
l m (
ợi về hiệ ả
u năng và tính kh ở scalability).
Thuật toán di truy là m a thu t toán di
ền song song không ch
[15][20][40] ỉ ở ộ
r ng củ ậ
truy còn là
ền truyền thống mà bi n
ểu hiệ một lớp thuật toán mớ ở
i b i khả năng tìm
kiếm trên các không gian l i gi u cách tìm ki
ờ ải khác nhau bằng nhiề ếm khác nhau
cùng lúc.
Nhiều cách tiếp c n, hi
ậ ệ ự ậ ề ụ ộ ế
n th c thu t toán di truy n song song ph thu c vào các y u
tố sau:
• Cách thứ độ
c đánh giá thích nghi và phương pháp độ ế ợ ụ
t bi n đư c áp d ng.
• Đơn hay đa quầ ể ể
n th con (nhóm cá th ).
• Đa d i
quần thể được sử ụng và cách thức các cá thể đượ ổ
c trao đ giữa các
quầ ể
n th .
• Cách thứ ọ ọ ể ụ ộ ụ
c ch n l c các cá th (c c b hay toàn c c)
Phụ ộ
thu c vào cách m i y
ỗ ếu tố ợ
trên đư c hi n th
ệ ực, nhiều phương pháp song song
thu truy t.
ật toán di ền khác nhau được đề ấ
xu Nhìn chung, các phương pháp này có
th i
ể ạ
phân lo thành 8 lớp[15] sau:
42. 41
Hình 3.6 Phân loại các thuật toán di truyền song song
3.3.2 Song song dạng chủ tớ
D i
ạng song song này còn được biết với tên gọ song song toàn c c, mô hình ch
ụ ủ ớ
-t
hay phân tán đánh giá độ ậ
thích nghi. Thu t toán s n th
ử ụ
d ng m t qu
ộ ầ ể đơn, việc
đánh giá các cá thể và/hoặc áp dụ ề ợ
ng các phép toán di truy n đư c thực hiện song
song. Phép ch lai t
ọn lọc cho ạo được th c hi c, vì v y, m i cá th ó th
ự ện toàn cụ ậ ỗ ể c ể
cạnh tranh với các cá thể khác.
Tiến trình chủ ữ
lưu tr toàn b n th và các ti n trình t thích nghi,
ộ ầ
qu ể ế ớ độ
đánh giá
áp d i chéo m . Truy y ra ch
ụ ộ
ng phép đ t biến và trao đổ ột phần bộ gen ền thông xả ỉ
khi m n m
ỗi ti n trình t
ế ớ ậ
nh ột cá th c m t t p các cá th
ể ặ
ho ộ ậ ể để đánh giá và trả ề
v
các giá trị ể ệ ộ
th hi n đ thích nghi.
43. 42
Hình 3.7 Mô hình song song dạng chủ tớ
T n h
huậ ồ
t toán có tính đ ng bộ ếu tiến trình chủ ngừng và chờ để nhận ết các giá trị
độ ủ ộ ể ầ ể ớ ế ụ ế ớ
thích nghi c a toàn b các cá th trong qu n th trư c khi ti p t c ti n hành v i
th ti ti
ế ệ ế
h k ếp. Tuy nhiên, trong trường hợp thuật toán không ng ng ch
ừ ờ ấ
b t kỳ ến
trình ch c g i là b t toán ph
ậm chạp nào, thuậ ợ
t toán đư ọ ấ ồ
t đ ng bộ. Khi đó, thuậ ải
dùng cơ d r
chế động ẫ ế
n đ n ất khó phân tích.
3.3.3 Song song dạng đa quần thể con có di trú
D c
ạng thuật toán này còn đề ập vớ ề
i các tên khác nhau như di truy n đa quần thể con
tĩnh, đa grained) và đôi khi còn
di truyền nhóm -
cá thể, di truyền kết thô (coarse gọi
đơn giả ậ ề
n là thu t toán di truy n song song.
Phương pháp song song này đòi hỏ ầ ể ầ ể
i chia qu n th thành các qu n th con hay các
nhóm. Các c tách bi t v i nhau i là cô l
quần thể con đượ ệ ớ gọ ập v m
ề ặt địa lý
(geographic isolati t cá c m n th Tác v
on) và mộ th ch
ể ỉ ộ
thu ột quầ ể ấ ị
con nh t đ nh. ụ
di trú đượ ự
c th c hiệ ờ
n theo th i gian, một số ể ợ ể ặ
cá th đư c di chuy n ho c sao chép từ
nhóm này đến nhóm khác. N n b nhóm khác nào
ếu các cá th có th
ể ể ế
di trú đ ất kỳ
thì mô hình này đượ ọ ả ế ể ỉ
c g i là mô hình đ o (island model). N u các cá th ch di trú
đế ậ ủ
n các nhóm lân c n c a chúng, mô hình này g mô hình t
ọi là ừ ớ
ng bư c (stepping
stone mode).
S t
ự di trú của các cá thể ừ nhóm này sang nhóm khác đượ ề
c đi u khiển bởi các tham
số như:
44. 43
• Topo d
đị ế
nh nghĩa các k t nối giữa các quần thể con. Các topo được sử ụng
ph bi kh
ổ ến bao gồm: ố ậ
i l p phương, lướ ề
i hai chi u hoặ ề ạ
c ba chi u, d ng vòng,
...
• T : i
ố ộ
c đ di trú đ ều khiển bao nhiêu cá thể di trú.
• Lượ ồ ề ể
c đ :
di trú đi u khi n các cá th n (t t, x
ể ủ ồ
c
nào a nhóm ngu ốt nhấ ấu
nhất, ngẫu nhiên) di trú tới nhóm khác và các cá th c thay
ể ợ
nào đư thế ấ
(x u
nhấ ẫ
t, ng u nhiên, ...)
• Tần xuất di trú.
Thuật toán kết thô c
(Coarse grained algorithm): đề ậ ế ố
p đ n mô hình có tương đ i ít
số quần thể con nhưng mỗi quần thể có nhiều cá thể. Hai đặ ủ
c trưng c a mô hình này
là thời gian x t th i l n và truy
ử ộ
lý m ế ệ ỗ
h m
trong i qu n th
ầ ể ố
con tương đ ớ ền thông
x ,
ả ổ
y ra khi trao đ i các cá thể giữa các quần thể con. Đôi khi thuật toán di truyền
song song kết thô c g i là di truy c hi n th c trên
còn đượ ọ ền phân tán bở ờ ợ
i thư ng đư ệ ự
các máy tính MIMD bộ ớ
nh phân tán.
Thuật toán kết mịn (fine grained algorithm): i thu t thô, thu
trái lại vớ ật toán kế ật
toán đòi hỏi t
rấ nhiề ộ ử ở
u b x lý b i vì quần thể ợ
đư c chia thành rấ ề ầ
t nhi u qu n thể
con (nhóm). Truy c hi n th c ho c s ng tác v di trú
ền thông giữ ợ
a các nhóm đư ệ ự ặ ử ụ
d ụ
ho n
ặc sử ụ ế
d ng cơ ch chồng lấp các nhóm. Gần đây, thuật ngữ ề
di truy kết mịn
đư nh nghĩa l
ợ ị
c đ ạ ợ ử ụ ể ỉ ề ố ớ ẽ
i và đư c s d ng đ ch di truy n song song kh i l n (s trình
bày ở ầ
ph n sau).
45. 44
Hình 3.8 Lược đồ thuật toán di truyền song song kết mịn. Lớp thuật toán này có
một quần thể được phân tán từng phần và được hiện thực rất hiệu quả
trên các máy tính song song lớn.
Mô hình đa nhóm thể hiện một vấn đề ả ở ờ
là tính kh m (scalability). Trong trư ng
h d
ợp số máy tương đối ít, mô hình kế ợ
t thô đư c sử ụng rất hiệu quả. Tuy nhiên, nếu
s r m r
ố máy mở ộ ế ấ ể
ng đ n hàng trăm máy, r t khó đ ở ộng (scale up) kích thước và số
nhóm qu ng.
để ậ
t n d ng hi
ụ ệu ả ạ ầ
h t ng ph n c
ầ ứ Mặc dù hạn chế trên, mô hình đa
nhóm r n b n c
ất phổ biế ởi từ ể
quan đi m hiện thực, nó là sự ở ộ
m r ng đơn giả ủa thuật
toán di truyền tuần tự.
3.3.4 Song song dạng quần thể con chồng lấp, không di trú
Mô hình này tương t mô hình trên nhưng kh Thay vào đó,
ự ông có tác vụ di trú. sự
thỏa hiệp và trao đ i các đ
ổ ặ ợ
c trưng đư c th c hi i các cá th m trong các
ự ện bở ể ằ
n
vùng ch ng l
ồ ấp (overlapping areas). c trong m t c u trúc
Các nhóm được tổ chứ ộ ấ
không gian nhằm có thể ữ
tương tác gi a chúng. c nhi
M u
ột số cá thể th ộ ều hơn một
nhóm và tham gia nhi n l
ề ụ ổ ọ
u tác v trao đ i chéo và ch ọc.
Mô hình này có th ng t
ể ễ ợ
d dàng đư c áp dụ rên các hệ thống bộ ớ ẻ ằ
nh chia s b ng
cách đặt toàn bộ ầ ể ẻ ằ
qu n th trong vùng chia s và b ng cách chạ ậ
y các thu t toán di
truyền trên mỗi nhóm một cách đồng thời. S n th c hi n trên các vùng
ự đồng bộ ầ
c ự ệ
ch c.
ồng lấp đối v i các tác v
ớ ụ trao đ i chéo, đ
ổ ột biến và chọn lọ
46. 45
3.3.5 Thuật toán di truyền song song khối lớn
Thuật toán di truyền song song khối lớn có được khi tăng số nhóm và giảm số cá
thể có trong m trong mô hình qu con có ch
ỗi nhóm ần thể ồng lấp. Loại thuật toán
này thườ ợ
ng đư c gọi thu
là ậ ề ế ị
t toán di truy n k t m n đơn giản.
Thuậ ử ụ
t toán s d ng chỉ ộ
m t qu . M t cá th
ần thể ộ ể chỉ ạ
c nh tranh và giao phối v i các
ớ
cá th lân c i vì các vù p, các l i gi i t
ể ận củ ở
a nó, nhưng b ng lân cận có sự chồng lấ ờ ả ốt
có th n qua toàn b
ể ổ ế
ph bi ộ ầ
qu n thể.
Mô hình này thích hợp tri th
ển khai trên các hệ ống song song lớ ệ
n cũng như các h
th . i
ống đa bộ ử
x lý Trường hợ ở
p lý tư ng, mỗ nhóm cá thể ợ
đư c gán cho mỗi phần
tử tính toán. Mô hình này không thích hợp triển khai trên các cluster bởi chi phí
truyền thông c l
ực kỳ ớn.
3.3.6 Song song dạng các nhóm cá thể động
Đây là phương pháp song song mớ ế ợ ậ
i cho phép k t h p thu t toán song song toàn cục
(như thuậ ề ủ ớ ả ớ ậ ế
t toán di truy n phân tán ch t đơn gi n) v i thu t toán k t thô (như mô
hình qu ng l
ần thể ồ
con có ch ấp). Mô hình này không có tác vụ ở
b
di trú i vì toàn bộ
quần th i x
ể ợ ố
đư c đ ử như một tập h n hóa và
ợp các cá thể ố
trong su t quá trình tiế
thông tin giữa ch
các cá thể ợ
đư c trao đổi qua việc tái tổ ức động các nhóm trong
su ng
ốt các chu kỳ ử ể
x lý. Trên quan đi m xử ộ
lý song song, phương pháp nhóm đ
phù hợp hoàn toàn t toán nhi
với dạng MIMD với thuậ ều chủ ớ ấ ồ
-t b t đ ng bộ.
Ý tưở ủ ả ờ
ng chính c a phương pháp là làm gi m th i gian chờ các cá thể sau cùng
(ch t)
ậm nhấ trong mô hình chủ ớ ằ ộ
-t b ng cách phân tách đ ng quần th thành các
ể
nhóm x
cá thể để có thể ử lý ngay mà không trì hoãn. Điều này giúp tăng tố ộ ử
c đ x
lý .
đáng kể ữ
. Hơn n a, thuật toán cũng có tính kh y đ
ả ở đầ
m ủ
Thu ng
ật toán có th y trên các h
ể chạ ệ thố song song bộ ớ ẻ ệ
nh chia s cũng như các h
thống song song b n khai
ộ nhớ phân tán. Do có tính khả ở
m cao, thu t toán tri
ậ ể được
trên các th
hệ ống có ít ph n t
ầ ử ệ ố ớ ớ
tính toán và trên các h th ng song song l n v i hàng
trăm, hàng ngàn phầ ử
n t tính toán.
47. 46
3.3.7 Thuật toán song song trạng thái ổn định
Thu n
ật toán sử ụ ợ ồ ậ
d ng các lư c đ c p nhật quần th liên t c. N u các cá th
ể ụ ế ể ầ
con d
d c
ầ ợ
n đư c giới thiệu thành một quần thể đơn, đang liên tục phát triển thì chỉ ần áp
dụ ợ ồ
ng các lư c đ chọn lọc và thay thế trong vùng tranh chấp. Các toán tử di truyền
khác, bao gồ ệ ộ ể ự ệ
m vi c đánh giá đ thích nghi, có th th c hi n song song.
3.3.8 Thuật toán song song hỗn tạp
Thu u
ật toán g , qu
ồ ạ
m ba giai đo n. Trong giai đoạ ạ
n 1 và giai đo n 2 ần thể ầ
ban đ
đượ ạ
c t o sử ụ ộ ả ệ ừ ầ
d ng m t b ng li t kê t ng ph n. Điều này ng phép
d
làm giảm việc sử ụ
ch c i
ọn lọ theo kiể ấ
u vòng thi đ u (tournament selection). Giai đoạn 3, các lời giả
từng phầ ợ
n đư c tìm thấ ạ ợ
y trong giai đo n 2 đư c trộn vớ ạ
i nhau. Giai đo n 1 có thể
được hoàn thành i không n b n thông nào.
đồng thời bở cầ ất kỳ truyề Bở ạ
i vì giai đo n
2 thường chiếm nhi n l
ều thời gian th c thi, các mô hình ch
ự ọ ọ ộ
c và đánh giá đ thích
nghi đồ ờ
ng th i thườ ợ ử
ng đư c s dụ ạ
ng trong giai đo n này.
3.3.9 Các phương pháp lai
Để song song hóa thu n, nhi
ật toán di truyề ều phương pháp lai đượ ạ ằ
c t o ra b ng cách
k k
ết hợ ợ
p các phương pháp đư c mô tả trên. Việc kết hợp các ỹ thuật song song có
thể ậ
t n dụng các điểm lợi trong các thu t toán thành ph và vì v y có th
ậ ần ậ ể ệ
cho hi u
năng t t hơn.
ố
Hình 3.9 Các hình thức kết hợp phân cấp
48. 47
Hình 3.9 , thu
a ật toán lai là thu t toán di truy , m
ậ ề ể
n song song đa nhóm cá th ỗi nút
cũng là thuật toán di truyền song song đa nhóm. Hình 3.9b, ở ứ
m c cao, thuật toán
lai này là thu t toán di truy
ậ ền song song đa nhóm cá thể ỗ
nhưng m i nút là một thuật
toán song song ch p c
ủ ớ
t . Hình 3.9c minh h t h
ọa sự ế
k ợ ủa thuật toán song song đa
nhóm ở ứ
m c cao và thu t m c th
ật toán kế ịn ở ứ
m ấp.
49. 48
Chương 4: Thuật toán di truyền song song giải
bài toán VRP với hạn chế thời gian
4.1 Heuristic xây dựng lộ trình
Như đã trình bày ở ầ ế ợ ế ờ
ph n trên, chi n lư c tìm ki m heuristic thư ng bắ ầ
t đ u bằng
một lời giải khả thi ban đầ ả
u, sau đó c i thiện dần lời giải này s ng các
ử ụ
d kỹ thu t
ậ
tối ưu toàn cụ ặ ụ ộ
c ho c c c b . Solomon[1] năm 1987 đã đề ấ
xu t phương pháp
heuristic chèn chèn các khách hàng vào các l
hiệu quả để ộ trình mới. Sau khi khởi
t d n
ạo một lộ trình, phương pháp sử ụng hai tiêu chuẩ )
,
,
(
1
j
u
i
c và )
,
,
(
2
j
u
i
c (sẽ được
trình bày sau) cho m chèn m a hai khách
ỗi vòng lặ ể
p đ ột khách hàng mới u vào giữ
hàng li trình hi
ền kề i và j trên lộ ện tại.
Nhắc l i bài toán, cho
ạ N khách hàng, mỗi khách hàng có nhu cầu mi và khoả ờ
ng th i
gian cho phép phục vụ ( i
i l
e , ) (gọi là cửa sổ thời gian) với N
i ,...,
1
= . M t
ộ ộ
t đ i xe ại
kho ( 0
=
i ) g l
ồm K xe giống nhau, mỗi xe có khả năng chuyên chở ớn nhất là k
q với
K
k ,...,
1
= . i
Để đơn giản, độ xe được giả đị ồ
nh là đ ng nhất, tức là khả năng chuyên
chở ớ
l n nhấ ủ
t c a các xe là như nhau.
Thờ ụ ụ ứ ờ
i gian ph c v , t c là th i gian lấy hoặc phân phát hàng hóa tại khách hàng thứ i
là fi. Thời gian này chỉ ắ ầ
b t đ u tại thờ ể
i đi m ti trong cửa sổ thời gian liên kết với
khách hàng đó. Vì vậ ế
y, n u một xe đế ớ ờ ể ợ ụ ụ ứ
n trư c th i đi m đư c phép ph c v , t c
trước thời điể ớ ấ
m s m nh t của cửa sổ, thì xe phả ờ ộ ả ờ
i ch m t kho ng th i gian wi với
)
( ji
j
j
i
i t
f
t
e
w +
+
−
= , giả ử đứ ớ
s khách hàng j ng trư c khách hàng thứ ộ
i trên l trình.
Thời gian ji
t là thời gian phải mất khi xe di chuyển từ khách hàng j đến khách hàng
i c s b
và đượ giả ử ằng khoảng cách Euclide ji
d giữa hai khách hàng này. Khoảng
cách này i x
cũng được giả ử ố
s là đ ứng, tức là ji
d = ij
d . Như vậ ờ ể ắ
y, th i đi m xe b t
đầ ụ ụ ạ ứ
u ph c v t i khách hàng th i là { }
ji
j
j
i
i t
f
t
e
t +
+
= ,
max .
50. 49
Giả ử ộ
s m t lộ trình )
,...,
,
,
( 2
1
0 m
p
i
i
i
i
R = với 0
0 =
= m
i
i chỉ kho trung tâm. Ứng với mỗi
khách hàng p l nh, v khách hàng
u chưa lậ ộ trì ị ả ố
trí chèn kh thi t t nhất cho u vào lộ
trình Rp, th th
ỏa các ràng bu c v
ộ ề ời gian và khả ợ
năng xe, đư c tính như sau:
)}
,
,
(
{
min
))
(
,
),
(
( 1
1
1 p
p
p
i
u
i
c
u
j
u
u
i
c −
=
:
Trong đó
m
p ,
,
1
=
)
,
,
(
)
,
,
(
)
,
,
( 12
2
11
1
1
j
u
i
c
j
u
i
c
j
u
i
c α
α +
=
1
2
1 =
+α
α
0
, 2
1 ≥
α
α
Hai hàm 11
c và 12
c là các hàm dựa trên khoảng cách và thời gian:
0
,
)
,
,
(
11 ≥
−
+
= µ
µ ij
uj
iu d
d
d
j
u
i
c
j
j t
t
j
u
i
c u
−
=
)
,
,
(
12
Trong đó: µ là hằng số và u
j
t là th i b
ờ ể
i đi m mớ ắ ầ
t đ u phục vụ ạ
t i khách hàng j khi
có khách hàng u vào lộ trình. Rõ ràng, việc chèn u vào giữa 1
−
p
i và p
i có th làm thay
ể
đổ ấ ả ờ ắ ầ ụ ụ ở
i t t c th i gian b t đ u ph c v các khách hàng )
,...,
( m
p i
i .
Khi v l
ị trí tốt nhấ ể
t đ chèn mỗi khách hàng chưa có ộ trình đã đượ ị ớ
c xác đ nh, bư c
kế tiế ợ
p đư c thực hiện nhằm chọn ra khách hàng t khách
cho giá trị ố ấ
t i ưu nh t. Mộ
hàng u*
đượ ọ
c ch n khi:
))}
(
,
),
(
(
{
max
))
(
,
),
(
( 2
*
*
*
2
u
j
u
u
i
c
u
j
u
u
i
c
u
=
Trong đó: u là khách hàng chưa có lộ trình và khả thi; )
,
,
(
2 j
u
i
c được tính như sau:
0
),
,
,
(
)
,
,
( 1
0
2 ≥
−
= λ
λ j
u
i
c
d
j
u
i
c u
Với λ .
là hằng số
51. 50
Trong VRPTW, việc chèn m t khách hàng m i vào m t l
ộ ớ ộ ộ trình luôn kéo theo phải
kiểm tra tính kh thi c a ràng bu c c a s i gian a các khách hàng
ả ủ ộ ử ổ thờ củ đứng sau
trong l trình. Vi c ki m tra tính kh thi này
ộ ệ ể ả cho m i khách hàng ph
ỗ ải mất O(N)
thời gian. Điều này làm tiêu tốn nhi i gian tính toán khi
ều thờ N lớn. Chính vì vậy,
Solomon[1] năm 1987 đã đề ị ủ ụ
ngh th t c push forward. Giả định rằng, các xe xuất
phát th i
ở ời điểm sớm nhất có thể ọ
. G new
ip
t b t
là thờ ể
i đi m mớ ể
i đ ắ ầ
t đ u phục vụ ại
khách hàng p
i s b
khi có khách hàng u trong lộ trình. Giả ử ấ ẳ
t đ ng thức tam giác
n c
ắm giữ ả khoảng cách và thời gian n
di chuyể , việc chèn khách hàng u sinh ra một
giá trị push forward tại p
i như sau:
0
≥
−
= p
p
p i
new
i
i t
t
PF
Hơn nữa, 1
+
r
i
PF được tính là:
1
},
,
0
max{ 1
1
−
≤
≤
−
= +
+
m
r
p
w
PF
PF r
r
r i
i
i
Nếu r
i
PF > 0, các khách hàng r
i , với m
r
p ≤
≤ , có thể tr thi.
ở ả
nên không kh Do đó,
thủ ụ
t c ch m tra tu
ỉ ầ
c n kiể ần t ng khách hàng cho tính kh
ự nhữ ả ề ờ
thi v th i gian cho
đế ấ ộ
n khi tìm th y m t khách hàng nào đó, ví dụ như r
i ( )
r < m có giá trị 0
=
r
i
PF
hoặc r
i i .
không khả thi về thờ gian Tuy nhiên, trong trường hợp xấu nhất, tất cả các
khách hàng r
i ( m
r
p ≤
≤ ) đượ ể
c ki m tra.
Solomon[1] đã phát biểu hình thứ ấ ề
c v n đ này như sau:
Các đi n và đ
ề ệ
u ki n cầ ủ ả ề ờ ộ
cho kh thi v th i gian khi chèn m t khách hàng u vào
gi a
ữ 1
−
p
i và p
i , m
p ≤
≤
1 trên một lộ trình khả thi đang xây dựng ( )
m
i
i
i ,...,
, 1
0
,
0
0 =
= m
i
i
là
u
u l
t ≤
Và
m
r
p
l
PF
t r
r
r i
i
i ≤
≤
≤
+ ,
52. 51
Chú ý rằng có thể 0
<
i
PF nếu khoả ề
ng cách không Euclide, đi u này cho kết quả ấ
t t
cả khách hàng đều khả thi về thời gian. Và bởi vì 0
=
m
i , phát biểu c a Solomon
ủ
luôn đả ả ằ ậ
m b o r ng xe v n chuyển sẽ ề đế
v n kho trong khoảng thời gian lậ ị
p l ch.
Khi không có một khách hàng nào với các thao tác chèn khả thi được tìm thấy, thủ
t i
ục chèn bắ ầ
t đ u một lộ trình mớ và tiếp tụ ế
c cho đ n khi tất cả khách hàng đã có lộ
trình.
Trong hầu hế ự
t các phương pháp xây d ng lộ ọ ầ
trình, cách ch n khách hàng đ u tiên
đượ ụ ụ ộ ế
c ph c v là m t y u tố ọ
quan tr ng ả ở ế ấ ợ ờ ả ề
nh hư ng đ n ch t lư ng l i gi i. Nhi u
tiêu chu n ra
ẩ ợ
n đư c xây dựng nhằm chọ ứng viên thích hợp nhấ để ở
t kh i t i l
ạo mỗ ộ
trình , . khác
như [1] [16] Rõ ràng, các tiêu chu khác nhau luôn cho các k t qu
ẩn ế ả
nhau.
G -
ọi phương pháp heuristic chèn của Solomon là phương pháp PFIH (Push Forward
Insertion Heuristic t toán
). Thuậ PFIH được mô tả như sau:
• Bướ ắ ầ ớ ộ ộ ỗ ấ ừ ặ
c 1: B t đ u v i m t l trình r ng xu t phát t kho. Đ t r = 1.
• Bướ ế ấ ả ợ ậ ộ ả ế ớ
c 2: N u {t t c các khách hàng đã đư c l p l trình} thì nh y đ n bư c
8. Ngượ ạ ứ
c l i, ng vớ ỗ ợ ậ
i m i khách hàng j chưa đư c l p lộ trình: tính chi phí
chèn như nút đầu tiên.
• Bướ ọ
c 3: Ch n ra khách hàng t t
ối ưu j* ừ danh sách trên sao cho chi phí ít
nhấ ỏ ộ ề ờ ả
t và th a các ràng bu c v th i gian và kh năng vận chuyển của xe.
• Bướ ố ộ ệ ạ ậ ậ ả ủ ộ
c 4: Thêm j* vào cu i l trình hi n t i và c p nh t t i c a l trình.
• Bướ ớ ọ ợ ậ ộ ứ ớ ỗ ạ
c 5: V i m i khách hàng j chưa đư c l p l trình, ng v i m i c nh {k,
l j k
} trong lộ ệ ạ
trình hi n t i: tính chi phí chèn khách hàng vào giữa và l.
• Bướ ọ
c 6: Ch n ra khách hàng nh { u {vi
j* và cạ k*, l*} có chi phí ít nhất. Nế ệc
chèn khách hàng là kh hi theo các ràng bu c v i gian
j* giữa và
k* l* ả t ộ ề thờ
và tải trọng xe} thì chèn khách hàng p nh
j* vào giữa và
k* l*, cậ ật l i t
ạ ải của
lộ trình r hiện tại và nhả ế ớ ợ
y đ n bư c 5. Ngư c lại, nhả ế ớ
y đ n bư c 7.