71 Trang 7 Danh mục thuật ngữ và từ viết tắt Thuật ngữ ế ti ng anh Thuật ngữ Ti ng việt và ý nghĩa ếExploitation Khai phá đường điExploration Thăm dò đường điglobal updating Cập nhật to
Trang 1(VEHICLE ROUTING PROBLEM) VỚI HẠN CHẾ
Trang 2-
NGUYỄ N TH HÀ Ị
ROUTING PROBLEM) VỚI HẠN CHẾ THỜI GIAN
Trang 3Lời cam đoan
Tôi xin cam đoan đây là công tr nh nghi n cứu của ri ng t i C c số liệu, kết ì ê ê ô á
qủa n u trong luận văn l trung thực v chưa từng được ai c ng bố trong bất kê à à ô ì công
trình n o khá à c
Nguyễn Thị Hà
Trang 4
Mục lục
Lời cam đoan 1
Mục lụ 2c Danh mục thuật ngữ và t vi t t t 5ừ ế ắ Danh mục hình nh 7ả Danh mục b ng 8ả M u ở đầ 9
Chương 1 -BÀI TOÁN L TRÌNH VỘ ẬN TẢI (VRP) 11
1.1 Những đặ c trưng cơ b n c a bài toán VRP ả ủ 11
1.1.1 Mạng lưới đư ng đi ờ 12
1.1.2 Các xe vận tải 13
1.1.3 Các khách hàng 13
1.1.4 Những yếu tố không xác đ nh trong bài toán VRP 14ị 1.2 Các dạ ng cơ b n bài toán VRP 15 ả 1.2.1 Bài toán VRP v i hớ ạn chế ề v trọng tải xe (CVRP) 16
1.2.2 VRP với hạn chế ề ờ v th i đi m phụể c vụ (VRPTW) 16
1.2.3 VRP với nh n và chuyậ ển hàng kế ợt h p (VRPPD) 17
1.2.4 VRP với chi phí ph thuộụ c th i gian (TDVRP) 18ờ 1.2.5 VRP với yêu cầu đ t hàng chưa bi t (DVRP) 19ặ ế 1.3 Mô hình toán học cho bài toán VRP 19
1.3.1 Mô hình lưu lượng xe vận tải 20
1.3.2 Cải tiến mô hình lưu lư ng xe v n tợ ậ ải 26
1.4 Các phương pháp heuristic và metaheuristic giải bài toán VRP 29
Trang 51.4.1 Các thuật toán heuristic cho bài toán VRP 29
1.4.2 Một số thuật toán metaheuristic cho bài toán VRP 34
1.5 Bài toán VRPTW và thuậ t toán Đa b y kiế 37 ầ n Chương 2 - THUẬT TOÁN BẦY KIẾN 38
2.1 Giớ i thi u thuật toán bầy kiến 38 ệ 2.1.1 Dạng bài toán cho thuật toán Bầy kiế 39n 2.1.2 Đặc đi m chung củể a m i con kiế 41ỗ n 2.1.3 Cấu trúc chung của họ thuật toán Bầy kiến 43
2.2 Bầy kiế n cơ s 45 ở 2.3 Thuậ t toán Đa b y kiến cho bài toán VRPTW 50 ầ 2.3.1 Bầy kiến ACS-VEI và ACS-TIME 53
2.3.2 L ộ trình đường đi cho bài toán VRP 57
2.3.3 Chương trình con sinh phương án 58
Chương 3 - THỰC NGHI M TÍNH TOÁN Ệ 61
3.1 Phân tích thiế ế t k chương trình 61
3.1.1 Xác định yêu cầu 61
3.1.2 Thiế ết k ch c năng chương trình 63ứ 3.1.3 Các chức năng chính c a chương trình 63ủ 3.1.4 Thiế ết k file k t qu 65ế ả 3.2 Cài đ t chương trình ặ 70
3.2.1 Lớp Vertex: lưu d liệu v khách hàngữ ề 71
3.2.2 Lớp Ant: lớp trừu tư ng bi u diợ ể ễn các con ki n nói chung 72ế 3.2.3 Lớp AntColony: lớp tr u tư ng biểừ ợ u diễn bầy kiến .74 3.2.4 Lớ AntGraph 77p
Trang 63.2.5 Lớp Ant4VRPTW 78
3.2.6 Lớp ACS TIME và ACS VEI 80
3.2.7 Lớp MACS VRPTW 82
-3.3 Kết quả thực nghiệm và đánh giá 83
3.3.1 Lựa chọn dữ ệ li u kiểm thử 83
3.3.2 Lựa chọn tham số ểm thử 85ki 3.3.3 Lựa chọn đi u kiện dừ 87ề ng 3.3.4 Kết quả thực nghiệm 88
Chương 4 -KẾT LUẬ 93N Tài liệu tham khảo 94 Phụ ụ l c: K t qu th c nghiệm chi tiết 96ế ả ự
Trang 7Danh mục thuật ngữ và từ viết tắt
Thuật ngữ ế ti ng anh Thuật ngữ Ti ng việt và ý nghĩa ế
global updating Cập nhật toàn cục
pheromone traits Dấu vế ặt đ c trưng
construction graph Đồ ị th xây d ng phương án ự
heuristic* Thuật toán cho phép xây dựng phương án t t ố
của bài toán trong khoảng thời gian ngắn metaheuristic* Phương pháp heuristic được thiết kế để áp dụng
cho nhiều bài toán khác nhau
Genetic Algorithms – GA Thuật toán di truy n ề
Tabu Search – TS Thuật toán tìm ki m Tabu ế
Ant Colony Optimization – ACO Thuật toán Bầy kiến
Simulated Annealing - SA Thuật toán mô phỏng luy n thépệ
Traveling Salesman Problem – TSP Bài toán Người du l ch ị
Vehicle Routing Problem – VRP Bài toán l trình giao nhộ ận hàng hóa
Capacitated VRP – CVRP Bài toán VRP v i ràng bu c trớ ộ ọng tải xe
VRP with Pick-up and Delivery –
VRPPD
Bài toán VRP với giao và nhận hàng kế ợt h p
VRP with Time Windows –
VRPTW
Bài toán VRP v i hớ ạn chế thời đi m phục vụ ể
Time Dependent VRP –TDVRP Bài toán VRP với chi phí phụ thuộc thời gian Dynamic VRP -DVRP Bài toán VRP với yêu cầu đ t hàng chưa bi t ặ ế
Trang 8Stochastic VRP Bài toán VRP với thành phần chưa xác đinh Ant Colony System -ACS Thuật toán bầy kiến cho bài toán TSP
MACS VRPTW- Thuật toán Đa b y kiến cho bài toán VRPTW ầ
Ghi chú: Những từ đánh d u * đưấ ợc gi nguyên b n tiữ ả ếng Anh do ý nghĩa quá dài và không thể tìm th y tấ ừ Tiếng việt tương ng ứ
Trang 9Danh mục hình ảnh
Hình 1-1: Minh họa thuật toán trao đ i chéo 32ổ Hình 1-2: Trường hợp riêng của trao đ i chéo 33ổ
Hình 2-1: Cấu trúc chung của các thuật toán bầy kiến 45
Hình 2-2: Lựa chọn đư ng đi d a trên hai tham số ηờ ự ij và τij 47
Hình 2 3: Mô hình thu- ật toán Đa b y kiếầ n giải bài toán VRPTW 51
Hình 2-4: Thuật toán MACS VRPTW 52
-Hình 2-5: Thuật toán cho ACS-TIME 54
Hình 2-6: Thuật toán cho ACS-TIME 56
Hình 2-7: Phương án cho bài toán VRPTW 57
Hình 2-8: Phương thức xây dựng phương án mớ ủi c a m i con kiến 59ỗ Hình 3-1: Cấu trúc file đ u vào 61ầ Hình 3-2: Mô hình chương trình mô phỏng 62
Hình 3-3: Thiết kế chức năng chương trình 63
Hình 3-4: Cấu trúc file kết quả 66
Hình 3-5: Ví dụ file đầu ra cho các con ki n 68ế Hình 3-6: Cấu trúc file lưu kết qu cho B y kiả ầ ến 70
Hình 3-7: Cấu trúc lớp Ant 72
Hình 3-8: Lớp AntColony 75
Hình 3-9: Cấu trúc lớp AntGraph 77
Hình 3-10: Cấu trúc lớp Ant4VRPTW 79
Hình 3-11: Cài đặt hai l p ACS-ớ TIME và ACS VEI 81
-Hình 3-12: Cấu trúc lớp MACS VRPTW 82 -Hình 3-13: Đồ thị so sánh kế t quả thực nghiệm vớ ếi k t quả ố t t nhất hi n biết 89ệ Hình 3-14: Đồ thị so sánh kế t quả thực nghiệm với tác gi 90ả Hình 3-15: Đồ thị so sánh kế t quả ớ v i hai thu t toán CR và PB 92ậ
Trang 10Danh mục bảng
Bảng 3 1: Các thuộc tính của lớp Vertex 71
-Bảng 3 2: Các biế- n tĩnh trong l p Ant đ lưu phương án tốớ ể t nh t ấ 72
Bảng 3 3: Kết quả thực nghiệm tìm tham số 86
-Bảng 3 4: Kết quả chạy so vớ- i phương án t t nhất hiện biết 88ố
Bảng 3 5: So sánh kết quả thực nghiệm tốt nhất với kết quả ủa tác giả 90- c
Bảng 3 6: So sánh kết quả thực nghiệm với hai thuật toán CR và PB 91
-Bảng 3 7: Kết quả thực nghiệm chi tiế 96- t
Trang 11Mở đầu
1 Tính c p thiấ ế ủ t c a đ ềtài
Trong họat đ ng kinh doanh thương m i vi c phân ph i hàng hóa đóng ộ ạ ệ ốvai trò rất quan trọng và đư c chuyên môn hóa đ ợ ể tìm ra một đư ng đi v i ờ ớchi phí hiệu quả nh t đ ấ ểphân phối hàng hóa trong cùng hệ ố th ng mạng cung ứng
Cùng vớ ựi s phát tri n c a máy tính và khoa học kể ủ ỹ thuật, các nhà khoa
học đã t p trung nghiên c u và xây dậ ứ ựng các thu t toán m i đ đưa ra l i ậ ớ ể ờgiải cho nh ng bài tữ oán tối ưu v i một chi phí nhấ ịớ t đ nh như là: phương pháp heuristics, metaheuristics, thuật toán bầy kiến,… đ áp d ng đưể ụ ợc cho các bài toán lớn
Ưu thế ủ c a thu t toán b y ki n so v i thu t toán t i ưu hóa thông thư ng ậ ầ ế ớ ậ ố ờ
là khả năng sinh ra m t phương án tốộ i ưu c c b t t trong m t th i gian r t ụ ộ ố ộ ờ ấngắn, v i các thớ ực nghiệm chứng minh trong trư ng hợờ p cho bài toán TSP, VRP
với hạn chế thờ gian Từ đó phát triển thuật toán dựi a trên sơ đ thuật toán ồ
bầy kiến đ bài bài toán VRP và tiến hành thực nghiệm tính toán để đưa ra ểcác đánh giá v ề hiệu qu c a thu t toán ả ủ ậ
Trang 12 Ý nghĩa thực ti n: k t qu hư ng đ n c a đ tài là phát tri n thu t toán ễ ế ả ớ ế ủ ề ể ậ
dựa trên sơ đ thuật toán bầy kiến giải bài toán VRP, trên cơ sở thực nghiệm ồtính toán và đánh giá hiệu quả ủ c a thuật toán đưa ra đề xu t ứấ ng d ng ụ
4 Các vấ n đ c n giải quyết ề ầ
Tìm hiểu bài toán VRP v i h n ch th i gian ớ ạ ế ờ
Tìm hiểu các cách tiếp cận hiện có đ giể ải bài toán VRP
Tìm hiểu thu t toán b y ki n ậ ầ ế
Phát triển thu t toán d a trên sơ đ thu t toán b y ki n đ gi i bài toán ậ ự ồ ậ ầ ế ể ả
Thực nghi m tính toán v i thu t toán đã đ xu t đ đánh giá k t qu t ệ ớ ậ ề ấ ể ế ả đạđược
6 Cấu trúc của luận văn
Luận văn gồm 4 chương, 102 trang, 15 hình, 7 b ng ả
Trang 13Chương 1 BÀI TOÁN LỘ TRÌNH VẬN TẢI -
một đoàn xe nh t đ nh Ngoài viấ ị ệc đ m bả ấ ả ọả o t t c m i khách hàng đư c phục vụ, lời ợgiải bài toán còn phải chú ý đến nhi u về ấn đề ràng buộc như: tr ng tải của xe, thời ọgian làm vi c c a lái xe và t i thiệ ủ ố ểu hóa chi phí vận chuyển
Bài toán VRP có thể đưa về ạ d ng một bài toán quy hoạch tuy n tínhế , định nghĩa bằng m t hàm m c tiêu và m t t p các ràng bu c ộ ụ ộ ậ ộ
1.1 Những đặc trưng cơ bản của bài toán VRP
Cũng gi ng như nhố ững bài toán quy ho ch tuy n tính nhữạ ế ng đ c trưng cơ ặ
bản của bài toán VRP là hàm mục tiêu, các ràng buộc và các phương án
Mục tiêu của bài toán là tìm ra lời giải thích hợp nhất Trong thực tế, mục tiêu của bài toán VRP có thể ấ r t phứ ạp và đôi khi mâu thuẫn lẫn nhau Mục tiêu c tchung nhất là tối thiểu hóa chi phí vận chuyển Mục tiêu này được biểu diễn như là
một hàm của khoảng cách hay thời gian vận chuyển, chi phí này phụ thuộc vào chi phí cho việc vận hành xe và cho tài xế do đó nói chung cần phải tối thiểu số ợ lư ng
xe M t sộ ố mục tiêu khác có th tính đ n như là hi u qu c a xe, tính b ng t l s ể ế ệ ả ủ ằ ỷ ệ ử
dụng của trọng tải xe ( ỷ ệ càng cao thì hiệu quả ử ụng xe càng cao) Bên cạnh t l s d
đó, cũng có thể có những hàm mục tiêu ph c t ứ ạp hơn liên quan đ n nh ng ràng ế ữ
Trang 14buộc mà nếu vi phạm phải trả ộ m t cái giá nào đó, v ụ như xe đến chậm làm khách í dhàng phải chờ, khi đó, một khoản phí đền bù phải trả tùy theo h p đ ng Trong ợ ồnhững bài toán th c t , có thự ế ể ph i tính đ n chi phí phụả ế thu c vào loạộ i đư ng đi: ví ờ
d ụ như đi trong thành phố ốn thờ t i gian và chi phí hơn so v i đư ng cao tốc.ớ ờ
Hàm mục tiêu là một hàm số bao g m những bi n t do (biồ ế ự ến quyế ịt đ nh),
được quy t nh bởế đị i ngư i l p kế hoạờ ậ ch: ví d ụ như biến bi u diể ễn đo n đưạ ờng giữa hai khách hàng có trong lộ trình hay không, và biến phụ thu c là k t quộ ế ả ủ c a cácquyế ịt đ nh trong quá trình tính toán Lời gi i c a bả ủ ài toán được biểu diễn dựa trên tập các biến quyế ịt đ nh cho đánh giá tốt nh t c a hàm m c tiêu Trong trư ng h p ấ ủ ụ ờ ợ
của bài toán VRP, quyế ịt đ nh được đưa ra là thứ ự đưa hàng tới khách hàng, tức là t
tập các tuyến đư ng Một tuyếờ n đư ng bắ ầờ t đ u từ kho chứa hàng và là một dãy có thứ ự ủ t c a ghé thăm các khác hàng và thực hiện yêu c u cầ ủa h Mọ ột phương án phải thỏa mãn tính khảthi tức là không vi phạm các ràng buộc như ràng buộc về ố s lượng hàng không được vư t quá tr ng t i xe ợ ọ ả
Để tìm giá tr c a các bi n quy t nh, chúng ta c n m t mô hình tín toán cho ị ủ ế ế đị ầ ộbài toán Mô hình này được xây dựng dựa trên các ràng bu c biộ ểu diễn mối quan hệ giữa các biến tự do và bi n phụế thu c và tập hợp các giá trộ ị có thể nh n củậ a các biến Với bài toán VRP, mô hình này gồm có các thành phần chính như: hệ ố th ng đường mô tả s ự liên kết giữa các khách hàng và các kho chứa; ậ xe vận tải và các t p khách hàng người đưa ra yêu c u và nhận hàng ầ
1.1.1 Mạng lưới đường đi
Mạng lư i đư ng đư c biểu diễớ ờ ợ n như là m t đ thị ới các kho và các khách ộ ồ vhàng là các đỉ , và các cạnh bi u dinh ể ễn khoảng cách (theo thời gian, không gian hoặc c hai) gi a các ả ữ đỉnh Mô hình mạng lư i đư ng đi ớ ờ này có thể xây dựng dựa trên m t bộ ản đ th c tồ ự ế ủ c a khu vực chứa các kho và khách hàng Một thuật toán tìm đường đi ng n nh t có th đư c sử ụắ ấ ể ợ d ng đ tìm t t cả ể ấ các đường đi ng n nh t ắ ấ
giữa các cặ đỉ (theo thời gian hoặc không gian), dựp nh a trên đó xây d ng ma trận ự
Trang 15khoảng cách Tùy theo cách xây dựng khoảng cách giữa các đỉnh chúng ta có thểphát triển nhi u d ng khác nhau của bài toán VRP Ví dề ạ ụ như khi chi phí đi lại giữa các đỉnh thay đổi theo thời gian (đ c điặ ểm phổ bi n trong các thành phố như Hà ế
Nội) ta có dạng bài toán VRP với chi phí phụ thuộc thời gian (TDVRP)
1.1.2 Các vận tải xe
Các xe vận tải và các đặc tính của chúng được thể ệ hi n trong các ràng buộc của mô hình bài toán.Đội xe này có thể là đồng nhất nếu tất cả xe là giống nhau về tính ch t Tuy nhiên trên th c tấ ự ế ầ h u hế ặt đ c tính c a các xe là khác nhau ủ do đó các
xe v n ậ nói chung là không đồng nhất Ngoài các đặc tính quan trọng về trọng tải, giá vận chuyển, các đặc tính về máy móc như: chiều cao, khối lư ng, chiều rộng, số ợ
trục… đều có thể đư c tính đ n như là các ràng buợ ế ộc cho xe Ví dụ như xe tải có tải trọng lớn không thể đi vào thành ph vào gi cao điểm Ngoài ra cũng có thể có ố ờ
những phụ ện trên xe dùng đểki tháo hàng cho nh ng loạdỡ ữ i hàng đ c biệt theo yêu ặ
cầu của khách hàng Tải trọng của xe có thể được biểu diễn theo tùy theo loại hàng hóa được v n chuy n (ví d như lít vậ ể ụ ới xăng dầu, kilogram hoặc mét kh i) ố
1.1.3 Các khách hàng
Khách hàng là trung tâm c a bài toán VRP Mủ ột phương án chấp nh n đư c ậ ợ
của bất kỳ ạng nào ài toán đều phải phục vụ được tất cả các khách hàng Bằng d bviệc khai thác các đ c đi m khác nhau cặ ể ủa mỗi khách hàng ta có thể xây dựng rất nhiều bài toán VRP khác nhau Ví dụ như khi m i khách hàng yêu cầu phảỗ i đư c ợgiao (delivery) một lượng hàng hóa hay thu gom hàng (pick up) tạ- i đ a đi m của ị ểkhách hàng rồi vận chuyển đ n nơi khác ta có bài toán VRP v i nhận và chuyển ế ớhàng kết hợp (VRPPD) Khi tính đến koảng thời gian mà khách hàng có thể được phục v (time windows) ta có bài toán VRP v i h n chụ ớ ạ ế thời đi m phụể c vụ (VRPTW) Đối với bài toán VRP có giới hạn thời đi m phục vụ, bài toán ần nhiềể c u thêm rất nhiều x lý, vì khi đó xe không th n muộử ể đế n hơn thời gian cho phép nhưng nó có thể đế n sớm và đợi cho đ n gi ph c v khách hàng Trong trư ng ế ờ để ụ ụ ờ
Trang 16hợp này, một khoản phí phạ có thể đượt c tính đ n khi xe đế ến chậm hơn giờ quy
định Khi đó hàm m c tiêu ph i thay đ i đ tính đ n kho n ti n ph t này Ngoài ra, ụ ả ổ ể ế ả ề ạ
đố ới v i m i khách hàng còn cỗ ần phải tính đến thời gian bốc dỡ hoặc xếp hàng hóa, thời gian này phụ thuộc vào loại hàng hóa, số lượng khi đ t hàng và ngư i b c dặ ờ ố ỡ
Thời gian ụ ụph v này được dùng đ ểtính toán th i gian mà m i xe cờ ỗ ần trư c khi đi ớ
đến ch ỗkhách hàng ti p kế ế
1.1.4 Những yếu tố không xác định trong bài toán VRP
Trong nh ng dữ ạng bài toán VRP trình bày ở trên, ta chưa nh c đ n vai trò ắ ế
của những yếu tố chưa xác định Trong nhiều trường h p hàm m c tiêu phụ thuộc ợ ụvào nhiều yế ốu t chưa xác đ nh, khi đó hàm mục tiêu sẽ ị có tính biến thiên r t lấ ớn Lớp bài toán dạng này đư c gọi là VRP không xác định (stochastic VRP) Những ợ
yếu tố chưa biết có thể là có khách hàng hoặc không, khối lượng hàng hóa khách hàng yêu cầu hay th i gian di chuy n và th i gian ph c v ờ ể ờ ụ ụ
Trong t ực tế, các yếu tố chưa xác định thường là khách hàng hoặ lượng h c hàng hóa yêu cầu Đ c biệặ t là trong trư ng hợờ p ngư i lậờ p kế hoạch kinh doanh muốn lập kế hoạch cho khoảng thời gian xa hơn so v i dữ liệớ u hi n có Thông ệthường, m t công ty thư ng mu n l p k ho ch vậộ ờ ố ậ ế ạ n chuy n trong m t vài tháng sắp ể ộtới nhằm xây dựng chiến lư c kinh doanh phù h p Các tuy n đư ng đư c l p trư c ợ ợ ế ờ ợ ậ ớnày sẽ đư c sử ụợ d ng vào thực t khi các yêu cế ầu của khách hàng xuất hi n Vì tính ệ
ứng d ng th c ti n cao như v y nên l p bày toán dạng này được nghiên c u rụ ự ễ ậ ớ ứ ất nhiều trong th i gian gờ ần đây Ví dụ như nh ng nghiên c u cữ ứ ủa M Gendreau, G Laporte, và R S´eguin0F
Trang 17thực tế ạ t i các thành phố ớ l n và có mậ ột đ giao thông cao như Hà N i và TP Hồ ộChí Minh Trên th c t , sự ế ự ế bi n đổi c a th i gian vủ ờ ận chuy n này có thể ể ả nh hư ng ở
rất lớn đ n kết quả ủế c a các phương án đã đư c xây ựng cho bài toán Sự ảnh ợ d
hưởng c a vi c th i gian v n chuy n chưa xác đ nh có thể ợủ ệ ờ ậ ể ị đư c làm đơn gi n hóa ả
nếu chúng ta có thể giả ử là thời gian di chuyển gầ s n như là h ng số trong những ằkhoảng thời gian trong ngày Điều này là hoàn toàn h p lý do mợ ậ ột đ giao thông t i ạcác thành phố thư ng rấờ t cao ở ờ gi cao nhưng lại bình thư ng ở những khung giờờkhác Bài toán tiêu biểu cho những bài toán dạng này, VRP với chi phí phụ thuộc thời gian (TDVRP) sẽ được giới thiệu ở ph n 1.2.4 ầ
Cuối cùng, trong nhiều trư ng hợp, yếu tốờ chưa xác đ nh cần phảị i tính đ n là ế
do sai số trong mô hình bài toán Vấn đ ề này xuất hiện do sai số tính toán kho ng ảcách giữa các khách hàng Vì chi phí đ tính toán chính xác kho ng cách giể ả ữa các khách thường là r t cao đ i v i m t lư ng khách hàng lớn, nên trong nhiềấ ố ớ ộ ợ u trư ng ờhợp, một mô hình bài toán đư c xây dựng dựa trên khoảng cách xấp xỉ giữa các ợ
đỉnh Do đó khi áp d ng vào th c t , th i gian v n chuy n có th l n hơn hoặụ ự ế ờ ậ ể ể ớ c nh ỏhơn so với th i gian tính toán lý thuy t Hơn n a th i gian di chuy n còn phụờ ế ữ ờ ể thu c ộvào tài xế Khi tuyến đư ng vận chuyểờ n là cố đị nh, tài xế ẽ s “thạo đư ng” hơn và ờthời gian di chuyển nhanh hơn Còn khi các khách hàng thay đổi nhi u dẫề n đ n các ếtuyến là không cố định thì việc đánh giá chính xác thời gian di chuyển sẽ ở thành tr
vấn đ ớn.ề l
1.2 C ác dạng cơ bản bài toán VRP
Trong phần này, em sẽ giới thiệu qua về một số ạ d ng cơ bản c a bài toán ủVRP Những bài toán này đư c sinh ra b ng vi c thêm các đ c trưng vào các thành ợ ằ ệ ặphần cơ b n như mô hình đườả ng đi, lo i xe v n tải, và các khách hàng ạ ậ
Trang 181.2.1 Bài toán VRP với hạn chế về trọng tải xe (CVRP)
Đây là dạng cơ bản nh t c a bài toán VRP trong đó ch tính đ n gi i h n v ấ ủ ỉ ế ớ ạ ề
trọng tải c a m i xeủ ỗ Chú ý là nếu không có ràng buộc này, và gi i hớ ạn rằng tất cả mọi khách hàng phải đư c phục vợ ụ trên một tuyến đường, bài toán CVRP trở thành bài toánNgười du lịch Từ đó có thể thấy bài toán CVRP là bài toán NP-khó
Dạng cơ b n của bài toán CVRP có các đặả c đi m sau:ể
Yêu cầu của khách hàng được biết trước
Việc phân phối không bị chia nhỏ, tức là mộ khách h ng chỉ được phục t à
v bụ ởi tối đa m t xe.ộ
Đội xe là đ ng nh t và ch có duy nh t m t kho chứa hàng ồ ấ ỉ ấ ộ
Mục tiêu là tối thiểu chi phí ận chuyển, thườ v ng đư c biểu diễn bằng quãng ợđường c n phảầ i đi đ ph c v t t c ể ụ ụ ấ ảcác khách hàng
Bài toán có thể đư c biểu diễợ n như là m t bài toán đ thộ ồ ị ớ v i G = (V,A) là
mộ ồt đ thị đầy đ , V = , , n} là tập các đỉnh đỉnh i = , ,n biểu diễn khách ủ {0 ( 1hàng, đỉnh là kho chứa) và A là tập các cạnh (đường nối t t c 0 ấ ả các khách hàng và kho chứa) Số không âm di gắn với mỗi đỉnh biểu diễn số lượng hàng hóa yêu cầu, cùng với ma trận chi phí cij (biểu diễn khoảng cách hoặc thời gian) tương ng với ứmỗi cạnh trong A Nếu ma trận chi phí là không đối xứng chúng ta có bài toán CVRP không đố ứi x ng
Bài toán CVRP là dạng được nghiên c u nhiứ ều nhất c a bài toán VRP ủNhững nghiên cứu này sau đó thư ng đư c mở ộờ ợ r ng đ áp d ng cho các dạng bài ể ụtoán khác có nhiều ý nghĩa th c ti n hơn ự ễ
1.2.2 VRP với hạn chế về thời điểm phục vụ (VRPTW)
Trong bài toán VRPTW vẫn còn ràng buộc về trọng tải của xe chứa ngoài ra
với khách hàng thứ i có tương ứng với một khoảng thời gian [a i, bi], được g i là ọ
Trang 19khung thời gian ph c v , và khoụ ụ ảng thời gian si là th i gian cờ ần thiết đ ph c v ể ụ ụ
Dạng này của bài toán thư ng thấy trong thực tế khi khách hàng khó mà có thể ảờ r nh
rỗi trong mọi lúc đ chờ được phục vụ Khung thời gian có thể có đơn vị là phút, ểgiờ hay ngày, tuy nhiên nó thường tương ng vứ ới thời gian ập kế l ho ch vận ạchuyển Ví d như khi ta c n l p kụ ầ ậ ế hoạch cho 5 ngày tới thì với khung thời gian là vài gi , vi c tính toán sờ ệ ẽ ễ d hơn nhi u so với khi khung thời gian là vài phút ề
Hạn chế ề thờ v i đi m phục vụ này có thể ở ạng mềm tức là thờể d i đi m phục ể
v nụ ếu ị vi phạm ẽ phải chịu mộ chi phí phạb s t t nào đó, ho c ở đạng cứng tức là ặkhông cho phép xe v n tậ ả ếi đ n sau khung thời gian tương ứng và xe đến sớm phải
đợi cho đ n khi khách hàng sế ẵn sàng Trên th c t , dự ế ạng thứ hai đư c quan tâm ợnhiền hơn và đã có rất nhiều nghiên cứu trong vài thập kỷ ầ g n đây Do đó khi nhắc
3 Ràng buộc về ời điểm phục v trong bài toán VRPTW cth ụ ần nhiều thay đổi ph c tạp trong các cách tiếứ p c n đ gi i chính xác bài toán CVRP do đó kết ậ ể ảquả tính toán thư ng tồi hơn nhiều ờ
Trang 20trung ở kho ch a mà có thểứ phân b t i ố ở ạ các nút của mạng lư i đư ng điớ ờ M t yêu ộcầu vận chuyển ở ạ d ng này của bài toán là l y hàng t đi m ngu n và v n chuyển ấ ừ ể ồ ậ
đến đi m đích V i d ng này c a bài toán có th v n chuy n hàng hóa ho c đưa đón ể ớ ạ ủ ể ậ ể ặngười N u cầế n v n chuyậ ển người (ví d : xe bus đưa đón nhân viên) bài toán luôn ụ
có gắn v i khung thớ ời gian gi i hớ ạn phục vụ ở ả c đi m nhận hàng và giao hàng, ể
đồng th i ph i có ràng bu c th hi n s không hài lòng của khách hàng khi phảờ ả ộ ể ệ ự i ch ờquá lâu ở ể đi m nhận hàng và ràng buộc thể hiện giới hạn về ờ th i gian vận chuyển
Nếu vận chuyển hàng hóa, bài toán có thể đơn giản hơn so v i vận chuyểớ n ngư i, ờtùy thuộc vào đặc tính c a quá trình vủ ận chuyển Ví dụ như khi v n chuyển thư tín, ậthư luôn được v n chuy n đi t bưu đi n và mọậ ể ừ ệ i thư thu gom t i các hòm thư đ u ạ ềđưa về bưu đi n Hơn nữệ a, trong nhi u trư ng hợề ờ p có th giả ửể s là vi c giao hàng ệluôn được thực hi n trư c khi nhậệ ớ n hàng, khi đó s làm gi m sự ảẽ ả nh hư ng của ràng ởbuộc v tr ng tả ủề ọ i c a xe
1.2.4 VRP với chi phí phụ thuộc thời gian (TDVRP)
Đây là một d ng m r ng c a dạng VRPTW ạ ở ộ ủ trong môi trường thành ph ốTrong bài toán TDVRP, chi phí trên m i cỗ ạnh của đ thịồ thay đổi theo thời gian Ràng buộc này thường th y trong thấ ực tế khi việc đi l i từạ đi m này đếể n đi m kia ểtrong thành phố phụ thu c rất nhiềộ u vào kho ng thả ời gian trong ngày Đ i v i dố ớ ạng này của bài toán c n phải chú ý đếầ n việc xác đ nhị s ự ph thuụ ộc th i gian cờ ủa hàm chi phí M t cáchộ tiếp cận cho bài toán này3F
4 là chia nhỏ thời gian trong ngày thành các khoảng nhỏ, th i gian (ờ hay chi phí vận chuyển) thay đ i khi chuyển từổ kho ng ảthời gian này sang khoảng thời gian khác Tuy nhiên cách tiếp c n này có thậ ể ẫ d n
đến trư ng h p trái v i c m nh n thông thư ng, đó là khi m t xe đi sau có thể đếờ ợ ớ ả ậ ờ ộ n nơi trước một xe đi trước đó dù 2 xe đi cùng m t tuyếộ n đư ng Do đó hàm th i gian ờ ờ
vận chuyể phải đưn ợc xây dựng một cách c n thẩ ận trước khi bắ ầu tính toán t đ
4 Xem thêm: S Ichoua, M Gendreau, và J.-Y Potvin Vehicle dispatching with time-dependent travel times European Journal of Operational Research, 144(2):379 396, 2003 –
Trang 211.2.5 VRP với yêu cầu đặt hàng chưa biết (DVRP)
Bài toán VRP với yêu cầu đ t hàng chưa bi là mộặ ết t mở ộ r ng khác của bài toán VRP chuẩn, với nhi u ràng buề ộc tương ứng v i ớ nhiề ứu ng dụng trong thực tế Trong đó, yêu cầu phục vụ không hoàn toàn được bi t trư c khi b t đ u m t tuy n ế ớ ắ ầ ộ ếđương, yêu cầu này có thể xuất hi n trong quá trình phân phối Bởi vì m t ệ ộ yêu cầu
mới có thể xuất hiện khi xe đang trong quá trình ận chuyể v n, quãng đư ng cần phải ờtính toán lại ngay l p tậ ức Thông thường trong thự ế ẽc t s có m t hộ ệ thống thông tin giữa tài xế và trung tâm đi u về ận (nơi tính toán l trình vộ ận chuyển) Khi đó, trung tâm có th thông tin cho tài xể ế ề v nơi đ n tiếp theo nhờế đó tại m i thỗ ời đi m ể tài xế
có thể ế bi t m t phộ ần về ộ l trình phải đi ti p theo ế
Một ứng dụng đi n hình cho bài toán này là hệ thống đưa thư, khi mà bưu ểkiện đư c thu gom ởợ ch khách hàng và mang trở ềỗ v trung tâm cho x lý và chuy n ử ểhàng Trong quá trình thu gom có thể xuất hiện yêu cầu mớ ủa khách hàng, khi đó i c
l ộ trình cần phải đư c tính toán lại cho phù hợp.ợ
1.3 M ô hình oán học cho bài toán VRP t
Đố ớ ọi v i h bài toán VRP, r t nhi u mô hình toán họấ ề c đư c xây dựợ ng đ phục ể
v ụ cho việc thích kế các thuật toán thích hợp Trong phần này, em sẽ giới thiệu về
mô hình toán học cho bài toán VRP cơ bản Nhìn chung, có nhiều mô hình tương
ứng v i các d ng khác nhau củớ ạ a bài toán VRP, đây, em xin trình bày mô hình ởtoán học lưu lượng xe vận tải (Vehicle flow model) được sử ụ d ng nhiều đ gi i ể ảquyết bài toán CVRP Mặc dù thuật toán Đa bầy kiến mà em nghiên cứu không sử dụng trực tiếp mô hình toán học này nhưng vi c tìm hiểệ u một mô hình cơ bản sẽ giúp hiểu rõ hơn v bài toán VRP T đó s giúp ích cho việề ừ ẽ c nghiên c u ho c c i ứ ặ ảtiến các thu t toán sau này ậ Ở phần sau em sẽ trình bày m s k thuộ ố ỹ ật c i tiả ến cũng như cách kết hợp thêm các ràng buộc hoặc thay đổi hàm mục tiêu để áp d ng cho ụcác dạng bài toán khác
Trang 221.3.1 Mô hình lưu lượng xe vận tải
Mô hình toán học phổ biến nhất được xây d ng cho bài toán VRP là mô hình ựlưu lượng xe v n tải (vehicle flow model) Trong mô hình này, một tập các biến ậnhận giá trị nguyên tương ứng v i mỗ ạớ i c nh c a đ th bi u di n s l n c nh đó ủ ồ ị để ể ễ ố ầ ạđược đi qua b i m t xe Mô hình này phù h p cho trư ng h p ở ộ ợ ờ ợ hàm chi phí c a bài ủtoán là tổng của các chi phí tương ứng v i m i c nh Đồớ ỗ ạ ng th i các ràng buộc của ờbài toán có thể đư c biểu di n m t cách rõ ràng thông qua tợ ễ ộ ập các cạnh và chi phí tương ứng Tuy nhiên, mô hình này không thể giải quyết được nhiều vấn đ phức ề
t p ạ trong thực tế, ví dụ như khi chi phí của m t l ộ ộ trình phụ thu c vào toàn b các ộ ộ
đỉnh đư c thăm ho c thay đ i tùy thu c vào lo i xe đư c s d ng cho l trình đó ợ ặ ổ ộ ạ ợ ử ụ ộ
Do đó khi có thêm ràng buộc, s rẽ ất khó để ử ụ s d nng mô hình này vào việc thi t kế ế thuật toán
Để đơn gi n đây ta quy ư c m i đ th đư c nh c đ n như là (ả ở ớ ọ ồ ị ợ ắ ế G V, A) ayh
G V E( , ) nếu không nói rõ u là th y đ đề đồ ị đầ ủ
Đầu tiên mô hình lưu lượng xe vận tải đư c xây dựng ợ cho bài toán CVRP không đố ứi x ng Mô hình này có d ng hai ch s (m i bi n x ợạ ỉ ố ỗ ế đư c đ c trưng b i c p ặ ở ặchỉ ố s i, j) tức là s dử ụng O n ( 2) biến nhị phân x để chỉ ra nếu một xe đi qua một cạnh trên phương án tối ưu Nói cách khác, bi n xế ij bằng 1 nếu cạnh ( )i, j A∈ nằm trong phương án tối ưu, và giá tr 0 nị ếu ngượ ạc l i
G = (V, A) là mộ ồt đ thị đầy đủ, V = {0 n } là tập các đỉnh các đỉnh ( i = 1
n biểu diễn các khách hàng còn đỉnh để chỉ kho chứa) và là tập các cạ 0 A nh (đư ng ờ
nối tất cả các khách hàng và kho chứa)
Một giá trị không âm c ijtương ứng v i m i c nh (i, j) ∈ biểu diễn chi phí ớ ỗ ạ A
phải trả khi đi từ đỉ nh iđế đỉnh j Nói chung, cạnh vòng (i, i) n là không được phép
xuất hiện trong phương án nên cij= +∞ với mọi i ∈ V.
Trang 23Mỗi khách hàng thứ i i = … n tương ứng với một số không âm d ( 1 ) i biểu diễn số hàng hóa được yêu c u, v i kho ch a có ầ ớ ứ d0 = 0 Với mỗi tập đỉnh S ⊆V ta
có d S ( ) = biểu diễn tổng yêu cầu của tập Sđó
Ở kho chứ có một tập K xe vận tải, mỗi xe có trọng tải Để đảm bảo khả Cnăng thực hiện của bài toán, ta giả sử di ≤ C với mỗi i = … n Mỗi xe chỉ thực hiện 1nhiều nhất một lộ trình, và ta giả sử là K là không nhỏ hơn Kmin là số lượng xe nhỏ nhất cần thiết để phục vụ tất cả mọi khách hàng
Với mỗi tập S ⊆ V \ {0}, ta có r S là số lượng nhỏ nhất xe cầ( ) n đ phục vụể
tất cả mọi khách hàng trong t p S Ta có ậ r V ( \ {0}) = Kmin Thông thường, r S( )
được thay b ng giá tr cằ ị ận dưới:
Mô hình VRP1:
(1.1)
Thỏa mãn:
(1.2) (1.3)
(1.4) (1.5)
(1.6) (1.7)
Trang 24Ràng buộc (1.2) và (1.3) là ràng buộc về bậc của một đỉnh nghĩa là mỗi đỉnh, chỉ có một đường đi vào và một đường đi ra (hay mỗi khách hàng chỉ được phục vụ một lần) Tương tự, ràng buộc (1.4) và (1.5) thể hiện bậc của nh đỉ tương ứng với kho chứa
Ràng buộc (1.6) thể hiện sự liên kết trong phương án tối ưu và ràng buộc về trọng tải của xe Ràng buộc này quy định với mỗi nhát cắt (V \ S S tương ứng với , ) một tập khách hàng bất kỳ thì tập S S được đi qua bởi không ít hơn r S( ) cạnh ( với
r S( ) là số lượng xe vận tải nhỏ nhất cần thiết để phục vụ tập ) S
Mô hình trên có thể thay đổ ểi đ áp ng cho bài toán đ i x ng SCVRP Khi dụ ố ứ
đó lộ trình là không có hướng, t c là v i m i c nh ( ,ứ ớ ỗ ạ i j) ∈ A i , ,j ≠ , chỉ ột trong 0 mhai biến xijhoặ xc jiđược sử ụng (ta chọn x d ij với i < j) Khi đó có thể có lộ trình cho
một xe mà chỉ phục vụ ột khách hàng, tức là sẽ có cạnh (0, i hoặc j 0) được đi m ) ( ,hai lần, do đó x0j và xi0có thể nhận giá trị 0, 1, 2
Trang 25Mô hình hai chỉ ố này có thể được chuyể s n về ạ d ng m t ộ chỉ ố ij s ( thay bằng
cạnh e ∈ E) ta có mô hình tương đương sau (trong đó δ( i) là tập cách đỉnh ề ới k vđỉnh i)
Mô hình lưu lượng xe v n tảậ i đư c sử ụợ d ng r ng rãi cho d ng cơ b n SCVRP ộ ạ ả
và ACVRP của bải toán VRP Tuy nhiên đ i vố ới nh ng d ng phữ ạ ứ ạc t p hơn của bài toán, mô hình này có một vài điểm không thích hợp Thứ nh t là nó ch có thấ ỉ ể ử s
dụng khi chi phí của cả phương án là tổng của chi phí trên từng cạnh đã đi qua Ngoài ra mô hình này cũng không cho bi t xe nào xe đi qua mế ộ ạt c nh xác định Do
đó nó không phù hợp nếu chi phí phụ thuộc vào loại xe đư c sử ụngợ d
Để tăng thêm tính ng d ng cho mô hình này, ta có thứ ụ ể biến đổi mô hình đểchỉ ra loại xe đi trên từng cạnh (quãng đư ng giữa hai khách hàng) Khi đó có thể ờthêm nhi u ràng buề ộc tương ng với các bài toán thứ ực tế Một mô hình như v y ậđược g i là mô hình lưu lư ng xe v n tảọ ợ ậ i ba ch s Mô hình này sửa dụng O nỉ ố ( 2K )
biến nhị phân x: biế xn ijkbiểu diễn số ần cạnh i j l ( , )∈A được đi qua b i xe thứ k k ở (
= 1… K )trong phương án tối ưu Ngoài ra còn có nK) biO( ến nhị phân y: bi n ế yik (i
Trang 26∈ V ; k = 1, , ) K nhận giá trị 1 nếu khách hàng i được phục vụ ở b i xe thứ k trong phương án t ưu và nhối ận giá tr 0 nị ếu ngược lại
Ràng buộc (1.21)-(1.23) thể hiện là mỗi khách hàng chỉ được phục vụ m t ộ
lần, có K xe ắ ầ b t đ u đi từ kho ch a và ch mứ ỉ có ột xe đ n và đi kh i m t nh tương ế ỏ ộ đỉ
ứng v i m t khách hàng ớ ộ
Ràng buộc (1.24) là ràng buộc về trọng tải c a xeủ thứ k (tất cả hàng hóa ph i ảchất lên xe r i vồ ận chuyển đến chỗ ủ c a khách hàng nên tổng kh i lư ng hàng hóa ố ợtương ứng v i khách hàng trên l trình c a xe k phảớ ộ ủ i nh hơn tr ng tải C) ỏ ọ
Ràng buộc (1.25 thể hiện sự liên kết của trên lộ trình của xe k (với nhát cắt ) (V \ S S trong đó S không chứa kho chứa , ), 0, thì nếu có khách hàng h trong ậ t p S
Trang 27được ph c v b i xe k yụ ụ ở ( hk= 1) thì phải có cạnh đi từ sang V \ mà xe k đi qua) S SRàng buộc này có th thay b ng dạng tương đương: ể ằ
Mô hình lưu lượng xe vận tả ba chỉ ố được áp dụng rộng rãi cho nhiều dạng i s phức tạp của bài toán VRP, ví dụ như d ng VRPTW nhờạ tính m m dẻo trong việc ềkết hợp thêm nhiều tính năng cho bài toán Như c đi m chính c a mô hình này là ợ ể ủ
s lố ượng biến phải sử ụ g tăng lên nhiều Tuy nhiên có thể thấy là mô hình này d n ,
Trang 28chính là dạng tổng quát hóa của mô hìnhhai chỉ ố s , đi u này có thể thấy rõ nếề u đ nh ịnghĩa: với mọi i j ∈ A hoặc ( , ) với mọi e ∈ E Do đó mọi bất đẳng thức đúng cho dạng hai chỉ số cũng đúng cho dạng ba chỉ số, hay sự
mở rộng công thức cho dạng hai chỉ số cũng có thể áp dụng cho dạng ba chỉ số
1.3.2 Cải tiến mô hình lưu lượng xe vận tải
Trong phần này, em sẽ trình bày m t số ỹộ k thuậ ảt c i tiến cho mô hình lưu lượng xe v n t i Nh ng c i tiếậ ả ữ ả n này đư c áp dụng cho mô hình VRP1 và VRP4, ợcác mô hình còn lại đư c áp dụợ ng tương t ự
• Khi đồ ị th không đ y đ : ầ ủ
Đầu tiên, ta xét đ n trư ng h p đ th là không đ y đ N u s lư ng c nh ế ờ ợ ồ ị ầ ủ ế ố ợ ạthiếu là không đáng k , ta có thểể thêm vào đ th nh ng cạnh ồ ị ữ thiếu vớ chi phí i tương ứng là +∞ Tuy nhiên, nếu s c nh thiếố ạ u là l n (|A| = m ớ / n2) mô hình cần
được biến đổ ểi đ thích ng v i d ng đ th thưa Ta s d ng ký hiệu ứ ớ ạ ồ ị ử ụ để chỉ tập các đỉnh có đường tới đỉnh đi i và chỉ tập các đỉnh và đỉnh i có đường đi tới
Mô hình VRP6:
(1.38)
Thỏa mãn:
(1.39) (1.40) (1.41)
Trang 29(1.42) (1.43) (1.44)
• Thay kho chứa b ng K nh: ằ đỉ
Một cách ở ộng hay dùng là thay đỉnh 0 biểu diễn kho chứa bằng K đỉnh m rtương ứng v i K xe Đ i v i trư ng hợớ ố ớ ờ p không đố ứi x ng (đ th có hư ng), ta có th ồ ị ớ ểxây dựng mộ ồ ịt đ th có hướng mở ộ r ng G' = ( ,V A'), với ' :=V V ∪{n + 1, , n + K
- 1} có thêm - 1 K đỉnh tương ng với kho chứa Ma trận chi phíứ tương ứng với mỗi cạnh được đ nh nghĩa như sau: ị
(1.45)
V i ớ W := {0} ∪ n +1, , n K 1} là tập K đỉnh của G' tương ứng với kho ( + - ,chứa, và λ là một giá trị thích hợp Sau khi thay đổi G' và thì ràng buộc (1.4)phải được thay bằng K ràng buộc (tương ứng với K kho chứa) dạng (1.2) Tương tự, ràng buộc (1.5) có thể được thay thế bằng K ràng buộc dạng (1.3) Cách mở rộng này được đề xuất bởi Lenstra và Rinnooy Kan4F
5 dùng để biến đổi m t d ng đ c bi t ộ ạ ặ ệcủa bài toán Người du lịch (xác định tập mchu trình thăm ộ đỉm t nh đ c biệt lần ặ m
và thăm các đỉnh còn l i mỗ ỉạ i đ nh 1 l n) v bài toán Ngư i du l ch ầ ề ờ ị nguyên thủy K ỹthuật này cũng đư c sử ụợ d ng trong thuật toán Đa bầy kiến giải bài toán VRPTW được trình bày phần sau ở
5 Xem thêm tại: J.K Lenstra và A.H.G Rinnooy Kan Some simple applications of the traveling salesman problem Operational Research Quarterly, 26:717- 734, 1975.
Trang 30Có thể ấ th y là, khi λ nhận giá trị thích hợp, ta sẽ có nhiều dạng khác nhau cho bài toán Ví dụ như λ M= , với M là số dương rất lớn, khi đó, không th có ểđường n i gi a hai đ nh trong W, hay nói cách khác, t t cố ữ ỉ ấ ả K xe đ u phảề i được sử
dụng đòi h i phải sử ụng tất cả ận tải hiện có Bài toán trở thành: tìm phương án ỏ d vchi phí thấp nhất mà thực hiện đúng K l ộ trình Nếu λ = 0, ta có bài toán tìm phương án chi phí thấp nh t s d ng nhiều nhấấ ử ụ t K l trình Còn ộ λ= - M, ta có: tìm phương án chi phí thấp nh t s d ng ít l trình nh t Ngoài ra, v i m t b nhiều giá ấ ử ụ ộ ấ ớ ộ ộ
trị khác nhau của λ ta có thể tính giải quyết bài toán mà chi phí v n chuyậ ển phụ thuộc vào lo i xe sạ ử ụ d ng
• Không cần s d ng c ử ụ ảK xe:
Trong trường h p không nh t thiết phải sử ụợ ấ d ng h t K xe, ràng buộc (1.4) và ế(1.5) trong mô hình VRP1 đượ thay bằng:c
(1.46) (1.47)
Còn trong mô hình VRP4, ràng buộc (1.28) được thay bằng:
(1.48)
Ngoài ra có một cách đơn gi n hơn trong trư ng hợp bài toán cho phép sử ả ờ
dụng số xe nhỏ hơn K Đó là ta có thể thêm vào mỗi cạnh xuất phát từ kho chứ cóa
dạng (0, i) một chi phí tương ứng ớ l n Khi đó phương án t i ưu ph i làm tối giản sốố ả
xe rời kho chứa trước, rồi m i t i thi u giá cớ ố ể ủa những cạnh khác
Trong mô hình ba chỉ ố s , có th áp dể ụng dễ dàng cho trư ng hợp các xe là ờkhác nhau về ọ tr ng tải Ta chỉ ầ c n gán cho mỗi xe m t trộ ọng tải Ck với k = 1, … K; ,
và thay trong ràng buC ộc (1.30) bằng Ck
Trang 311.4 Các phương pháp heuristic và metaheuristic giải bài toán
VRP
Đố ới v i các bài toán NP-khó, thông thư ng s ph c t p c a chúng khi n cho ờ ự ứ ạ ủ ếviệc tính toán chính xác trở nên không thể ự th c hiện được ngay khi bài toán đ l n ủ ớTrong trường h p bài toán VRP, điều này xảy ra khi bài toán có vài chục khách ợhàng cần phục vụ Do đó các thu t toán heuristic và metaheuristic là phương pháp ậduy nhất có thể đưa ra nh ng lữ ời giải tốt cho những bài toán trong th c tự ế Trong đó các thuật toán heuristic, được phát triển hầu hết trong khoảng những năm 1960 và
1990, còn metaheuristic được tập trung nghiên cứu trong những năm cu i thậố p kỷ
90 cho đến nay
1.4.1 Các thuật toán heuristic cho bài toán VRP
Các thu t toán ậ heuristic là những thu t toán có khậ ả năng xây d ng một ựphương án t t vố ới chi phí tính toán thường là nhỏ hơn nhi u so vớề i vi c xây d ng ệ ựphương án tối ưu Nh ng thuậữ t toán heuristic thư ng đư c s d ng trong trư ng ờ ợ ử ụ ờhợp không có thuật toán nào tìm đư c phương án tốợ i ưu (ví d như nh ng bài toán ụ ữNP-Khó)
Các thu t toán heuristic cho bài toán VRP có th chia làm ậ ể hai lo i: ạ xây dựng
l ộ trình (constructive heuristic) và ải tiế ộ trình (improvement heuristic) Có rất c n l nhiều thuật toán được xây dựng dựa trên hai dạng này, và nội dung của phần này trình bày một số thuật toán nổi tiếng và đư c s d ng cho nhiều dạng khác nhau của ợ ử ụbài toán VRP
Thuật toán xây dự l ng ộ trình: những thu t toán d ng này t t xây d ng ậ ạ ừ ừ ự
một phương án ch p nhậấ n đư c ựa trên việ quan tâm đến chi phí tính toán Các ợ d c thuật toán dạng này thường chia làm hai lo i, thu t toạ ậ án xây dựng bình thư ng và ờthuật toán hai pha Trong các thuật toán hai pha, bài toán đư c chia thành hai phần ợriêng biệt: phân cụm các đỉnh thành tuyến chấp nhận đư c và đ nh tuyến (route ợ ị
Trang 32construction) Hai phần này có thể được tổ chức thành các vòng lặp hồi quy (ví dụ như phân cụm r i đ nh tuy n rồ ạồ ị ế i l i phân cụm và định tuy n) Ngoài ra, k t thúc ế ếthuật toán còn có thể có thêm các phương pháp c i tiến bằng cách th c hiả ự ện trao đ i ổcác chuỗi khách hàng giữa hai tuyến trong lộ trình
6 (hay còn gọi là thuật toán dạng rút ngắn th i ờ
gian di chuyển) là một trong nh ng thu t toán heuristic n i ti ng nh t cho bài toán ữ ậ ổ ế ấVRP Thuật toán này dựa trên khái niệm về ệ vi c rút ngắn th i gian di chuyờ ển: khi hai tuyến (0, , , 0) i và (0, j, , 0) có thể nhập làm m t tuyộ ến (0, , i, j, , 0), một khoảng thời gian di chuyển được rút ngắn: Thuật toán này được áp d ng cho bài toán mà s lư ng xe là chưa xác đ nh trư c và do thu t toán ụ ố ợ ị ớ ậđưa ra
Thuật toán chèn: những thuật toán dạng này thực hiện việc xây dựng tuyến bằng cách lần lư t chèn thêm các cạnh vào một tuyến theo mộợ t quy t c nh t đ nh ắ ấ ị
Thuậ toán tiêu biểt u dựa trên việc chèn theo dãy là thuật toán của Mole và Jameson6F
7 Thuật toán này sử ụ d ng hai biến λ và μ vào việc mở ộ r ng tuyến dựa trên các hàm sau:
Thuật toán đư c miêu t như sau: ợ ả
Bước 1 (khởi tạo tuyến cần mở ộng): Nếu tấ ả r t c các đ nh đ u n m trên ỉ ề ằ
một tuyến, dừng lại Nếu không, xây dựng một tuyế (0, k, 0), với k là một n
đỉnh b t k chưa đư c đ nh tuy n c a đ th ấ ỳ ợ ị ế ủ ồ ị
Trang 33 Bước 2 (tìm đỉnh để chèn Tính toán cho mỗ ỉ ): i đ nh chưa được đ nh tuyến ị
k một chi ph chèní với mọ ỉi đ nh r, s ằm trên ntuyến đang m r ng Khi đó ta chèn đ nh k vào giữa hai đỉnh iở ộ ỉ k và jk Nếu không có đ nh nào đỉ ể chèn, quay lại Bư c 1 Nếớ u không, ta chọn đ nh kỉ *
trong số ấ t t cả các đ nh k sao cho ỉ Sau
đó, chèn đỉnh vào giữa hai đ nh ỉ và của tuyến
Bước 3: Tối ưu hóa tuy n đang x lý b ng m t thu t toán tìm ki m c c ế ử ằ ộ ậ ế ụ
b rộ ồi quay trở ạ l i bư c 2.ớ
Bằng việc thay đ i giá trị ủa các biến λ và μ, ta có nhiều dạng thuật toán ổ cchèn khác nhau Ví dụ như khi λ = 1 và = 0, thu t toán sẽμ ậ chèn m t đ nh vào tuyến ộ ỉsao cho chi phí di chuyển thêm là nhỏ nhất Khi λ μ = = 0, thuật toán sẽ chèn đỉnh k vào giữa hai đỉnh ik, jksao cho tổng khoảng cách từ k đế n hai đ nh này là nhỏ nhất ỉ
Khi λ = ∞ và > 0, đỉnh xa kho chứa nhấ ẽμ t s đư c ch n đ chèn vào tuyến ợ ọ ể
Thuật toán cải tiế ộn l trình: các thuật toán cải tiến xuất phát từ ộ m t phương
án đã được xây d ng tự ừ trư c, rớ ồi cố ắng cải tiế g n nó bằng cách đ i chỗ các thành ổphần để đư c mợ ột phương án có chi phí nh hơn Nh ng thuậỏ ữ t toán dạng còn đư c ợ
gọi là tìm kiếm cục bộ (local search) do chúng chỉ tìm kiếm trong giới hạn của một phương án của bài toán Đ i v i bài toán VRP thu t toán c i ti n có th đư c th c ố ớ ậ ả ế ể ợ ựhiện trên m t tuyộ ến hay trên hai tuyến khác nhau của lộ trình Thuật toán Trao đổi chéo (CROSS exchange)là thuật toán của Taillard [6] và các cộng sự Thuật toán này được phát biểu cho bài toán VRPTW và nó cũng đượ ử ục s d ng như là một bư c ớ
cải tiến phương án trong thu t toán Đa b y kiến cho bài toán VRPTWậ ầ
Trang 34Hình 1-1: Minh họa thuật toán trao đổi chéo
Trong hình trên hình vuông đen là các kho chứa, còn hình tròn tr ng là các ắkhách hàng, ở đây đã t o ra các kho chứa ảo ở đầạ u và cuối m i tuyỗ ến đ tiệể n theo dõi Đầu tiên hai cặp c nh (Xạ 1, ) và (Y1, ) được loại ra khỏi tuyến đ u tiên và ầhai cặp cạnh (X2, ) và (Y2, ) bị ại ra lo khỏi tuy n thế ứ hai Sao đó hai ph n - ầ
Y1 và -Y2 với số lượng khách hàng bất kỳ đư c trao đ i gi a hai tuy n b ng cách ợ ổ ữ ế ằthêm các cạnh (X1, ), (Y2, ), (X2, ) và (Y1, )
Thuật toán trao đổi chéo là sự ổ t ng quát của hai thuật toán c i tiả ến khác cũng
áp dụng việc trao đ i giữổ a các tuyến đó là thuật toán trao đ i hai cạnh của Potvin và ổRousseau7F
8 -(2 opt*) và thuật toán trao đ i của Or ổ 8F
9 (Or opt)- Trong t ật toán 2 opt*hu
-ta chỉ trao đ i hai cạổ nh trên hai tuyến và được th c hiự ện khi Y1 và Y2 là nút được nối
với kho chứa (Hình 2b) Còn thuật toán Or opt di chuyển một bộ không quá ba 1-
Trang 35khách hàng liên ti p tế ừ m t tuyếộ n đ n tuyến khác (Hình 1-2b) Điều này tương ếđương với trư ng h p c a thu t toán trao đ i chéo khi Xờ ợ ủ ậ ổ 2=Y2 và = để chuỗi khách hàng ở tuyến thứ hai bằng rỗng Và để sử dụng không quá ba khách hàng ở tuyến thứ nhất thì giữa khách hàng và Y1 có không quá một khách hàng
Hình 1-2: Trường h p riêng cợ ủa trao đổi chéo
Trong một vài trư ng hợờ p, trao đ i chéo có thổ ể ạ t o ra m t tuyộ ến rỗng Ví dụ như trong hình 1-2b, nếu là khách hàng đầu tiên (X1 khi đó là kho chứa) và Y1 là khách hàng cuối cùng, khi đó cả tuyến thứ nhất sẽ chuyển sang tuyến thứ hai
Thuật toán trao đ i chéo giữ nguyên hướng của các tuyến nên thích hợp cho ổgiới hạn khung thời gian trong bài toán VRPTW Tuy nhiên thu t toán này có m t ậ ộ
điểm y u là th i gian tính toán Th t v y, n là s ế ờ ậ ậ ốkhách hàng được ph c v ụ ụ trong mtuyến và gi s m i tuyến có sốả ử ỗ khách hàng b ng nhau là ằ , ta có:
cách để ựa chọn một cặp tuyến l
cách để chọn một cặp cạnh đ trao đổể i trên m i tuy n ỗ ế
Do đó, độ ph c t p tính toán cứ ạ ủa thu t toán này là: ậ
Trang 36Thuật toán trao đ i chéo cũng có th đư c chỉnh sửổ ể ợ a đ áp d ng cho việc cải ể ụtiến một tuyến Việc thực hiện trao đổi cũng gi ng như trong trườố ng h p hai tuyến ợ
Đầu tiên ta l y ra hai c nh c a cùng m t tuy n Sau đó ph n gi a c a hai c nh đó s ấ ạ ủ ộ ế ầ ữ ủ ạ ẽđược di chuy n đ n mộ ịể ế t v trí khác trong tuy n ở ế
1.4.2 Một số thuật toán metaheuristic cho bài toán VRP
Metaheuristic là m t dộ ạng thuật toán m i r t hiớ ấ ệu quả cho các bài toán tối ưu hóa tổ ợ h p và đư c t p trung phát triợ ậ ển những năm g n đây Khác v i các thu t toán ầ ớ ậheuristic thường ch đư c phát triển cho từỉ ợ ng bài toán L p các thu t toán ớ ậmetaheuristic một mô hình chung được thiết kế để giải nhiều bài toán tố i ưu hóa tổhợp khác nhau Nh ng thành phữ ần của các thu t toán metaheuristic thư ng chính là ậ ờcác thu t toán heuristic Khi thi t kậ ế ế thuật toán metaheuristic cho m t bài toán cộ ụ thể, ta sẽ ế k t hợp các thuật toán heuristic cho bài toán đó trở thành m t thu t toán ộ ậ
mới hiệu quả hơn nhiều những thuật toán đơn lẻ
Trong những năm g n đây, nhiầ ều thuật toán metaheuristic đã đư c áp dụng ợcho bài toán VRP Những thuật toán này thường kết hợp với một vài thuật toán xây
dựng ộ trình và cải tiến lộ trình được trình bày trong phầl n trư c Những thuật toán ớmetaheuristic cho bải toán VRP thư ng tìm đườ ợc những phương án ốt t hơn so v i ớcác thuật toán heuristic nhưng chúng lại tiêu tốn thời gian hơn
Những thuật toán metaheuristic đã được áp d ng cho bài toán VRP là thuật ụtoán mô phỏng luyện thép (Simulated Annealing SA), tìm ki- ếm Tabu (Tabu Search TS), thu toán- ật di truy n (Genetic Algorithms GA) và thu t toán ề - ậ Bầy kiến (Ant Colony Optimization) Trong đó hai thuật toán đầu tiên, SA và TS, bắ ầt đ u từ
một phương án kh i tạo xở 1 và tại mỗi vòng lặp t, phương án xt s ẽ được biến thành phương án xt+1trong lân cận N x( t) của phương án xt cho đến khi một đi u kiện dừng ềđược th a mãn M t đi m c n chú ý ở đây là (ỏ ộ ể ầ f xt+1) không nhất thiết phải nhỏ hơn
Trang 37f x( t) (vớ hàm f xi ( t) cho giá trị chi phí của phương án xt) Do đó, khi thiết kế thuật toán cần chú ý đ tránh vòng l p Còn thuật toán GA, tạể ặ i mỗi bước thuật toán xem xét một tập các phương án Các tập phương tại mỗi bư c đưán ớ ợc phát triển từ bư c ớtrước đó bằng cách k t h p nh ng phương án t t nh t c a nó và lo i b nh ng ế ợ ữ ố ấ ủ ạ ỏ ữphương án tồi Thu t toán b y ki n là thu t toán d ng xây d ng phương án theo ậ ầ ế ậ ạ ự
từng bư c Trong mỗi vòng lặp mỗi tác tử ủa thuật toán (các con kiến) tạo ra một ớ cphương án mới Do đó thu t toán B y ki n tao ra r t nhi u phương án t i m i vòng ậ ầ ế ấ ề ạ ỗ
lặp
Thuật toán mô ph ng luy n thép (SA): ỏ ệ
Trong thuật toán này, tại vòng lặp thứ t, một phương án x được lấy một cách ngẫu nhiên từ ậ t p N x( t) Nếu thì x được gán cho phương án xt+1 Nếu không, xt+1 được xác đ nh theo công thức sau: ị
Trong đó, pt là một hàm của t và f x( ) - (f xt), ví dụ như có thể định nghĩa pt
Tìm ki m Tabuế : trong thuật toán tìm kiếm tabu, những chuỗi phương án
được xem xét như trong thu t toán mô phỏậ ng luyện thép, nhưng khi tim kiếm phương án xt+1thuật toán sử ụng láng riềng ốt nhất cho phương án hiện tại x d t t Để tránh vòng lặp, nh ng phương án mà đã đưữ ợc xem xét gần đây bị ấ c m (tabu) trong
Trang 38một số vòng lặp xác đ nh Nhữị ng phương án này đư c gọợ i là phương án tabu Đểlàm giảm bớt thời gian và bộ nh , thu t toán chớ ậ ỉ lưu lại một thuộc tính của các phương án tabu chứ không ph i c phương án ả ả
Trong khoảng 20 năm g n đây, thu t toán tìm kiếm tabu được áp dụầ ậ ng cho bài toán VRP Trong đó có nhiều thuật toán cho kết quả ố t t như nh ng thuật toán ữ
của Osman, Taillar, Gendreau, Hertz và Laporte
Thuật toán di truyền: (được đ xuất bởi John Hollandề 9F
10 năm 1975) xuất phát từ ý tưởng trong quá trình tiến hóa c a sinh vủ ật để áp dụng vào giải quyết các bài toán tối ưu hóa t h p Ý tư ng chính củổ ợ ở a gi i thu t di truy n là duy trì m t t p ả ậ ề ộ ậ
h p ợ các phương án (gọi là những cá thể) ủa bài toán Các cá thể này được mã hóa ctạo thành các nhiễm sắc thể T p hợp các phương án này sẽ ếậ ti n triển theo hư ng ớchọn lọc những gi i pháp tả ốt hơn Trong đó, m i phương án s đư c ỗ ẽ ợ t o ạ cơ hội riêng để phát tri n tiến hóa (tạo ra các phương án khác) tùy thuộể c vào đ thích nghi ộ(fitness) của chúng Thông thư ng đ thích nghi này đư c đo bằng hàm mục tiêu ờ ộ ợ
của bài toán Đặc đi m chung củể a thu t toán GA là: ậ
GA làm việc v i mã hóa c a các phương án thay vì các phương án Do ớ ủ
đó nó cần một cách bi u di n hi u qu các phương án trong khuôn dạể ễ ệ ả ng c a ủ
án, nhờ ậ v y mà làm giảm khả năng hội tụ ề ể v đi m cực tiểu cục bộ
Thuật toán GA th c hi n tìm ki m d a trên xác su t nên k t qu ch y là ự ệ ế ự ấ ế ả ạkhông xác định
10 Xem thêm: J.H Holland Adaptation in Natural and Artificial Systems The University of Michiga Press, Ann Arbor, MI, 1975
Trang 39Một số thuật toán di truyền đã đư c áp dụng rất hiệu quả cho bài toán ợVRPTW như thuật toán c a Potvin và Bengioủ 10F
11, thuật toán c a Thangiahủ 11F
1.5 Bài toán VRPTW và thuật toán Đa bầy kiến
Các đ c điặ ểm c a bài toán VRPTW ủ
Chỉ có m t kho ch a ộ ứ
V ị trí của khách hàng là xác định theo tọa đ Ơcơlít.ộ
Khoảng cách gi a các khách hàng tương đương vớữ i th i gian di chuy n ờ ể
Mỗi khác hàng đư c gắn với một khung thời gian [aợ i, bi] gọi là khung thời gian ph c vụ ụ Và khoảng thời gian si là thời gian phục vụ Cùng với những đặc ểm về ợđi lư ng hàng hóa yêu cầu
Các xe vậ ản t i là đ ng nh t và có t i tr ng xác đ nh ồ ấ ả ọ ị
Với thuật toán đ giải bài toán VRPTW, em lựa chọn thuậể t toán Đa b y kiến ầ(MACS-VRPTW) Đây là một thuật toán mới rất hiệu quả trong việc giải quyết bài toán VRPTW nhờ ự ế ợ s k t h p của hai b y kiến ạ ộầ ho t đ ng song song
Trang 40Chương 2 - THUẬT TOÁN BẦY KIẾN
2.1 Giới thiệu thuật toán bầy kiến
Thuật toán tối ưu hóa b y kiến là mầ ột thuật toán dạng metaheuristic trong đó
m tột ập hợ các con kiến nhân tạo phối hợp p với nhau để tìm ra các phương án tốt cho nh ngữ bài toán tối ưu hóa rờ ại r c Trong thu t toán b y ki n, s ph i h p nhu n ậ ầ ế ự ố ợ ầnhuyễn là đi m m u ch t trong các thu t toán ể ấ ố ậ Bầy kiến Trong đó các đơn vị tính toán (t c là các con ki n) sứ ế ử ụ d ng tài nguyên tính toán chung (ví dụ như tập các nút trong đồ ịth như bài toán ngư i du l ch hoờ ị ặc VRP) và liên lạc không trực tiếp với nhau thông qua môi trường bên ngoài (thường là các d u vế ặấ t đ c trưng mà m i con ỗkiến để ạ l i trên đường đi) Dưới sự ộ c ng tác của các đơn v tính toán, các phương án ị
tốt của bài toán sẽ ầ xuất hiện trong quá trình tương tác phố ợ d n i h p của các đơn vị tính toán (các con kiến)
Các thu t toán ACO có thậ ể được sử ụ d ng đ gi i quyế ả ể ả t c 2 lo i bài toán tạ ối
thời gian chạy chương trình
Bài toán ối ưu hóa động: t là bài toán trong đó một số ếu tố có giá trị yphụ thu c vào nhi u yộ ề ếu tố bên ngoài Nh ng giá tr này thay đ i liên t c ữ ị ổ ụtrong quá trình tính toán Để thích ứng với các bài toán dạng này, một thu t ậtoán tối ưu hóa đượ ực l a ch n ph i có kh năng thích ng đ ng th i v i s ọ ả ả ứ ồ ờ ớ ự