VRPTW có thể được mô tả như là bài toán tính toán các lộ trình có chi phí nhỏ nhất từ kho hàng tới một tập các khách hàng, các lộ trình phải thỏa mãn mỗi khách hàng chỉ được thăm một lần
Trang 1LUẬN VĂN THẠC SĨ KHOA HỌC
GIẢI THUẬT BẦY KIẾN GIẢI BÀI TOÁN VRP VỚI
Trang 2LỜI CAM ĐOAN
Tôi là Đàm Thu Lan, học viên cao học lớp CNTT khóa 2007 – 2009
Người hướng dẫn khoa học là PGS.TS Nguyễn Đức Nghĩa
Tôi xin cam đoan toàn bộ nội dung được trình bày trong bản luận văn này là
kết quả tìm hiểu và nghiên cứu của riêng tôi, trong quá trình nghiên cứu đề tài
“Giải thuật bầy kiến giải bài toán VRP với hạn chế thời gian (VRPMTW)”
Các kết quả và dữ liệu được nêu trong luận văn là hoàn toàn trung thực và rõ
ràng Mọi thông tin trích dẫn đều được tuân theo luật sở hữu trí tuệ, liệt kê rõ
ràng các tài liệu tham khảo Tôi xin hoàn toàn chịu trách nhiệm với những nội
dung được viết trong luận văn này
Hà Nội, ngày 27 tháng 11 năm 2009.
Đàm Thu Lan
Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của luận văn và cho
phép bảo vệ
Hà Nội, ngày tháng năm 2009
Giáo viên hướng dẫn
PGS TS NGUYỄN ĐỨC NGHĨA
Trang 3LỜI CẢM ƠN
Trước tiên, em xin trân trọng gửi lời cảm ơn và lòng biết ơn sâu sắc đến Thầy PGS.TS Nguyễn Đức Nghĩa, người đã tận tình hướng dẫn em từ bước chọn đề tài đến các bước tìm tài liệu và nghiên cứu Vì đây là một lĩnh vực hoàn toàn mới mẻ đối với em, thêm vào đó VRP là lớp bài toán khó nên nếu như không nhận được sự khích lệ, động viên, chỉ bảo tận tình của PGS.TS Nguyễn Đức Nghĩa thì em đã không thể hoàn thành được luận văn này
Em cũng xin được trân trọng gửi lời cảm ơn đến các thầy giáo, cô giáo Viện CNTT & TT đã cung cấp cho chúng em rất nhiều kiến thức cần thiết không chỉ trong khóa học mà còn giúp em rất nhiều trong công tác chuyên môn hàng ngày
Cuối cùng, xin được gửi lời cảm ơn đến những người thân, bạn bè và đồng nghiệp, những người đã dành cho tôi sự quan tâm sâu sắc, động viên để tôi có thể hoàn thành luận văn này
Xin trân trọng cảm ơn
Học viên
Trang 4MỤC LỤC
LỜI NÓI ĐẦU 7
CÁC TỪ VIẾT TẮT 10
DANH SÁCH CÁC HÌNH 11
DANH SÁCH CÁC BẢNG 12
Chương 1 – TỔNG QUAN VỀ VRP 13
1.1 Giới thiệu 13
1.2 Định nghĩa bài toán và Ký hiệu cơ bản 16
1.2.1 VRP với hạn chế về trọng tải 17
1.2.2 VRP với hạn chế về thời gian 19
1.2.3 VRP nhập xuất hàng kết hợp 20
1.2.4 VRP nhập xuất hàng đồng thời (VRPPD) 21
1.3 Các mô hình cơ bản cho VRP 22
1.3.1 Mô hình luồng phương tiện 23
1.3.2 Mô hình luồng hàng hóa 24
1.3.3 Mô hình phân hoạch tập 26
Chương 2 – VRP VỚI HẠN CHẾ THỜI GIAN 28
2.1 Giới thiệu chung 28
2.2 Mô hình toán học 28
2.3 Các biến thể của VRPTW 30
2.4 Các phương pháp giải VRPTW 32
2.4.1 Thuật toán giải đúng 32
2.4.2 Thuật toán mẹo cổ điển 33
a) Xây dựng lộ trình 33
b) Cải tiến lộ trình 33
2.4.3 Thuật toán mẹo kết hợp 33
2.4.4 Thuật toán siêu mẹo 34
a) Lời giải ban đầu 35
b) Tìm kiếm cục bộ với λ – Interchange 37
c) Mô phỏng tôi luyện 42
d) Tìm kiếm Tabu 45
e) Giải thuật di truyền 48
f) Giải thuật bầy kiến 52
2.5 Kết luận 53
Chương 3 – GIẢI THUẬT BẦY KIẾN 54
3.1 Giới thiệu chung 54
3.2 Nền tảng sinh học 54
3.3 Kiến nhân tạo 56
3.4 Siêu mẹo tối ưu hóa bầy kiến 58
Trang 53.5 Các giải thuật tối ưu hóa bầy kiến chính 60
3.5.1 Hệ thống kiến 60
3.5.2 MAX – MIN Ant System 61
3.5.3 Hệ thống bầy kiến 62
Chương 4 – ÁP DỤNG ACS VÀO VRPTW 65
4.1 Giới thiệu chung 65
4.2 Xây dựng lộ trình 65
4.3 Cập nhật vệt mùi 66
4.4 Giải thuật MACS – VRPMTW 66
4.4.1 Giới thiệu chung 66
4.4.2 Tập các khách hàng chấp nhận được và cửa sổ thời gian 71
4.4.3 Luật thay đổi trạng thái 72
4.4.4 Tính η 72
4.4.5 Tính ϑ 73
4.4.6 Luật cập nhật vệt mùi 73
4.4.7 Giải thuật 74
4.5 Kết luận 77
Chương 5 – KẾT QUẢ THỬ NGHIỆM VÀ KẾT LUẬN 78
5.1 Kết quả thử nghiệm 78
5.2 Kết luận 82
PHỤ LỤC 84
TÀI LIỆU THAM KHẢO 88
Trang 6
LỜI NÓI ĐẦU
Trong các thập kỷ gần đây, chúng ta đã thấy rất nhiều ứng dụng tối ưu hóa dựa trên các kỹ thuật lập trình toán học và các nghiên cứu cho bài toán quản lý việc phân phối hàng hóa và các dịch vụ trong các hệ thống phân tán Một số lượng lớn các ứng dụng trong thực tế trên thế giới đã chỉ ra rằng việc
sử dụng các thủ tục được máy tính hóa cho quá trình phân phối hàng hóa tiết kiệm được từ 5% tới 20% tổng chi phí vận chuyển Từ đó, dễ thấy rằng việc tiết kiệm này trên hệ thống kinh tế toàn cầu là rất ý nghĩa Thực vậy, quá trình vận chuyển liên quan tới tất cả các giai đoạn sản xuất và phân phối và chiếm
từ 10% tới 20% chi phí sản xuất hàng hóa
Sự thành công của việc sử dụng các kỹ thuật nghiên cứu vào hoạt động thực tiễn là do sự phát triển của các hệ thống máy tính từ cả phần mềm lẫn phần cứng và cũng do việc tăng cường tích hợp các hệ thống thông tin vào các quy trình sản xuất và thương mại
Một yếu tố khác không kém phần quan trọng là sự phát triển của các công cụ mô hình hóa mang tính giải thuật đã được cài đặt trong các năm gần đây Thực vậy, các mô hình đã phản ánh được tất cả các đặc điểm của bài toán phân tán nảy sinh trong các ứng dụng thực tế và các thuật toán tương ứng với bài toán đó, cách cài đặt trên máy tính để tìm được một giải pháp tốt với thời gian tính toán chấp nhận được
Vì vậy báo cáo này xin trình bày về bài toán liên quan tới việc phân phối hàng hóa giữa các kho hàng và khách hàng, được gọi là bài toán lộ trình
xe hàng (Vehicle Routing Problems – VRP) hay bài toán lập lịch xe hàng (Vehicle Scheduling Problems) VRP được Dantzig và Ramser [1] đưa ra vào năm 1959 với bài toán ban đầu là việc phân phố gas tới các trạm bán lẻ và hai ông cũng đã đề xuất được mô hình toán học, giải thuật đầu tiên cho bài toán này Kể từ đó cho tới nay, VRP đã được rất nhiều nhà nghiên cứu quan tâm,
mở rộng, đưa ra các giải pháp, ứng dụng vào thực tế VRP có rất nhiều biến thể như CVRP, VRPTW, VRPB, VRPPD, trong đó VRPTW bài toán quan trọng, xuất hiện trong rất nhiều hệ thống phân tán VRPTW có thể được mô tả như là bài toán tính toán các lộ trình có chi phí nhỏ nhất từ kho hàng tới một tập các khách hàng, các lộ trình phải thỏa mãn mỗi khách hàng chỉ được thăm một lần bởi chỉ một xe hàng trong một khoảng thời gian nhất định, tất cả các
lộ trình phải bắt đầu từ kho hàng và kết thúc cũng tại kho hàng, tổng các yêu cầu của khách hàng không vượt quá dung lượng xe VRPTW có nhiều mục tiêu ví dụ như tối thiểu hóa số lượng xe sử dụng, tổng thời gian đi và phục vụ
là ít nhất Một số ứng dụng của VRPTW trong thực tế như với các bài toán: cung cấp dịch vụ ngân hàng, phân phát thư, thu thập các sản phẩm do khách hàng trả lại, các dịch vụ của nhà hàng ăn uống…
Trang 7Các nhà nghiên cứu đã đề xuất rất nhiều cách tiếp cận từ cách tiếp cận mẹo tới tối ưu hóa cho VRPTW, trong đó các tiếp cận mẹo là thành công hơn
cả ví dụ như mẹo láng giềng gần nhất, mô phỏng tôi luyện (SA), tìm kiếm Tabu (TS), giải thuật di truyền (GA), giải thuật đa hệ thống kiến dựa trên ý tưởng tối ưu hóa bầy kiến (ACO)
SA được đưa ra đầu tiên bởi Kirkpatrick [7], tìm kiếm không gian lời giải bằng cách mô phỏng quá trình tôi luyện kim loại SA thực hiện nhảy tới các vùng trong không gian tìm kiếm ban đầu Bước nhảy được giảm dần theo thời gian hoặc khi nhiệt độ giảm xuống Cuối cùng, quá trình sẽ trở thành tìm kiếm cục bộ Osman [8] ứng dụng SA để giải VRP bằng cách di chuyển một khách hàng từ một hành trình tới hành trình khác hoặc hoán chuyển hai khách hàng từ hai lộ trình với nhau Nói chung, SA là giải thuật đơn giản, nhanh để giải VRPTW với kết quả gần tối ưu nhưng trong trường hợp nếu tối ưu tổng thể là rất xa so với lời giải ban đầu thì có thể SA không đủ năng lượng để đi
xa như vậy
TS [6] là một chiến lược tìm kiếm dựa trên bộ nhớ, chọn lời giải tốt nhất mà không vi phạm các giới hạn nào đó để ngăn chặn chu trình Thông thường các giới hạn này được lưu trữ trong một cấu trúc hàng đợi gọi là Tabu list Các giới hạn này ngăn chặn một di chuyển đã được thực hiện trong t lần lặp cuối cùng và lời giải đưa ra trong trường hợp này cũng bị loại bỏ TS dừng sau một số lần lặp cố định Gerdreau, Hertz và Laporte đã ứng dụng TS cùng với mẹo láng giềng gần nhất để di chuyển một khách hàng từ lộ trình này sang lộ trình khác
GA được phát triển bởi Holland [9] xây dựng lời giải VRPTW theo dạng là các bít xâu hoặc nhiễm sắc thể Phương pháp bắt đầu một dân cư có nhiễm sắc thể ngẫu nhiên, chọn lựa các nhiễm sắc thể phù hợp hơn để thực hiện lai tạo và trao đổi chéo, đưa ra các thế hệ con khác thế hệ cha nhưng kế thừa gen từ cha mẹ Quá trình này được tiếp tục cho tới khi đạt tới một số lượng cố định các thế hệ hoặc dân cư đã đủ
Gambardell đã đưa ra giải thuật MACS – VRPTW vào năm 1999 [5], giải thuật này được xây dựng dựa trên nền tảng là hệ thống bầy kiến (ACS), hay tổng quát hơn là ACO, một cách tiếp cận mẹo mới bắt nguồn từ hành vi của các chú kiến trong thực tế Ý tưởng của ACO là có một số lượng lớn các chú kiến nhân tạo hoạt động phối hợp với nhau để xây dựng một lời giải tốt Kiến trong thực tế phối hợp với nhau trong quá trình tìm thức ăn bằng cách để lại một lượng mùi trên đường đi để cho các chú kiến khác theo sau Để tối thiểu hóa số xe và thời gian đi cho VRPTW, giải thuật này gán mỗi mục tiêu cho một bầy kiến và hai bầy kiến này trao đổi thông tin thông qua việc cập nhật vệt mùi Cho đến nay, MACS – VRPTW được coi là đủ sức cạnh tranh
Trang 8với các phương pháp tốt nhất để giải VRPTW về cả chất lượng lời giải và thời gian tính toán
Từ các ứng dụng thực tế của VRPTW ta thấy có thể một khách hàng sẽ
có nhu cầu được phục vụ nhiều lần với nhiều khoảng thời gian khác nhau, đơn
vị chủ quản có nhiều xe khác nhau… từ đó ta có biến thể của VRPTW là VRPMTW (VRP with Multiple Time Windows) Thực chất đây cũng chính là bài toán VRPTW nhưng có thêm một số ràng buộc như thêm nhiều khung thời gian cho một khách hàng (khách hàng muốn được phục vụ nhiều lần), có nhiều loại xe phục vụ[11]
Cho tới nay chưa có nhiều nghiên cứu, giải pháp cho VRTMTW mặc
dù ta có thể biến đổi các mẹo cho VRPTW để giải bài toán này Như đã nói ở trên, MACS – VRPTW là một mẹo có thể nói là rất tốt để giải VRPTW vì vậy luận văn này tập trung vào việc nghiên cứu, áp dụng MACS vào VRPMTW
Luận văn gồm năm chương, với các nội dung sau:
Chương 1: Trình bày một cách tổng quan về VRP trong đó đề cập tới định nghĩa, các đặc điểm,các dạng và mô hình toán học của VRP
Chương 2: Tập trung nghiên cứu dạng bài toán VRPTW Trong chương này trình bày khái niệm chung, mô hình toán học và một số cách tiếp cận hiện
có để giải VRPTW
Chương 3: Trình bày về giải thuật bầy kiến, từ nền tảng sinh học tới áp dụng vào kiến nhân tạo Chương này cũng trình bày cả giải thuật bầy kiến đầu tiên cho tới các giải thuật chính, có hiệu quả cao như Hệ thống bầy kiến, Hệ thống kiến Max – Min, tối ưu hóa bầy kiến
Chương 4: Từ kiến thức nền tảng ở chương hai và chương ba, chương này trình bày việc áp dụng giải thuật bầy kiến ACS để giải VRPTW nói chung và đề xuất giải thuật MACS để giải bài toán VRPMTW Đây có thể nói là phần nội dung chính của luận văn
Chương 5: Trình bày các kết quả thử nghiệm khi cài đặt giải thuật MACS – VRPMTW và chạy chương trình với các bộ dữ liệu, từ đó đưa ra kết luận và so sánh kết quả của phương pháp với phương pháp khác
Trang 9CÁC TỪ VIẾT TẮT
Từ viết tắt Tiếng Anh Tiếng Việt
VRP Vehicle Routing Problems Bài toán định tuyến xe hàng
CVRP Capactitated Constrained VRP Bài toán VRP với hạn chế về
dung lượng
DVRP Distance Constrained VRP Bài toán VRP với hạn chế về
khoảng cách
TSP Traveling Salesman Problem Bài toán người du lịch
VRPTW Vehicle Routing Problems With
DCVRP Distance-Constrained VRP Bài toán VRP với hạn chế về
trọng tải và khoảng cách
VRPMTW VRP with Multi Time Windows Bài toán VRP với đa khung thời
gian
GA Genertic Algorithm Giải thuật di truyền
Problem
Bài toán định tuyến xe hàng động
PFIH Push–Forward Insertion Heuristic Mẹo chèn đẩy trước
LSD Local Search Descent Method Phương pháp tìm kiếm cục bộ
thế hệ
SA Simulated Annealing Mô phỏng luyện kim
SI Swarm intelligence Trí thông minh bầy đàn
ACO Ant colony optimization Tối ưu hóa bầy kiến
MMAS MAX – MIN Ant System Giải thuật hệ thống kiến MAX –
ACS-VEI Ant Colony System – Vehicle Bầy kiến tối thiểu hóa số xe hàng
ACS-TIME Ant Colony System – Time Bầy kiến tối thiểu hóa thời gian
đi
Trang 10DANH SÁCH CÁC HÌNH
Hình 1.1: Các lớp bài toán VRP 16
Hình 1.2: Ví dụ các luồng đường đi trên một lộ trình (C = 25) 25
Hình 2.1: Thao tác (1,0) 38
Hình 2.2: Thao tác (2,1) 39
Hình 2.3 Tối ưu cục bộ 41
Hình 2.4: Một trường hợp mà FB là tốt hơn GB 42
Hình 3.1: Thí nghiệm cầu đôi 56
Hình 3.2: Đồ thị tương ứng với mô hình thí nghiệm ở hình 3.1 56
Hình 4.1 Kiến trúc của MACS – VRPTW 70
Trang 11DANH SÁCH CÁC BẢNG
Bảng 2.1: Giải thuật PFIH 36
Bảng 2.2: Giải thuật Local Search Descent Method 40
Bảng 2.3: Giải thuật mô phỏng luyện kim 44
Bảng 2.4: Giải thuật tìm kiếm Tabu giới hạn 48
Bảng 2.5: Giải thuật di truyền 51
Bảng 3.1: Giải thuật siêu mẹo tối ưu hóa bầy kiến 59
Bảng 4.1: Giải thuật MACS – VRPMTW 74
Bảng 4.2: Giải thuật ACS – TIME 75
Bảng 4.3: Giải thuật ACS – VEI 75
Bảng 4.4: Thủ tục xây dựng hành trình 76
Bảng 5.1: Kết quả thực nghiệm 79
Trang 12Chương 1 – TỔNG QUAN VỀ VRP
1.1 Giới thiệu
Bài toán định tuyến xe hàng (VRP) là một lớp các bài toán tối ưu hóa tổ hợp nhằm xác định một tập các lộ trình tối ưu, mỗi lộ trình được thực hiện bởi một phương tiện vận tải (xe hàng) bắt đầu và kết thúc tại kho hàng, đáp ứng tất cả các yêu cầu của khách hàng và thỏa mãn mọi ràng buộc sao cho chi phí
là tối thiểu Việc phân phối hàng hóa liên quan tới dịch vụ của một tập các khách hàng bởi một tập các phương tiện giao thông (vehicles) trong một giai đoạn thời gian, các phương tiện giao thông được định vị trong một hoặc nhiều kho hàng, được lái bởi một tập các lái xe (drivers) và thực hiện việc di chuyển bởi một mạng đường bộ thích hợp Nói riêng, lời giải cho VRP là việc xác định một tập các lộ trình, mỗi lộ trình được thực hiện bởi một phương tiện giao thông bắt đầu và kết thúc tại kho hàng của riêng nó, chẳng hạn như tất cả các yêu cầu của khách hàng được đáp ứng, các ràng buộc vận hành được thỏa mãn và chi phí giao vận tổng thể là tối thiểu Phần này xin mô tả các đặc điểm điển hình của bài toán tìm lộ trình và lập lịch bằng việc xem xét các thành phần chính của bài toán (mạng đường đi, khách hàng, kho hàng, xe cộ, và lái xe), các ràng buộc vận hành khác có thể ảnh hưởng tới việc xây dựng lộ trình
và các mục tiêu trong quá trình tối ưu hóa
Mạng đường đi được sử dụng cho việc giao vận hàng hóa thường được
mô tả thông qua một đồ thị mà cạnh của nó biểu diễn đoạn đường còn các đỉnh tương ứng với vị trí kho hàng hoặc khách hàng Các cạnh là có hướng hoặc vô hướng tùy thuộc vào việc có thể đi theo chỉ một chiều (ví dụ vì đây là tuyến phố một chiều) hoặc hai chiều Mỗi cạnh được kết hợp với một chi phí, thường biểu diễn độ dài và thời gian đi, hai yếu tố này có thể phụ thuộc vào loại xe hoặc thời gian đi qua cung đó
Các đặc điểm điển hình của khách hàng:
• Khách hàng được định vị tại đỉnh nào đó của đồ thị đường đi;
• Tổng số hàng hóa mà khách hàng yêu cầu, có thể là nhiều loại hàng khác nhau phải được giao hoặc nhận tại vị trí mỗi khách hàng;
• Khung thời gian (time windows) mà khách hàng có thể được phục vụ (ví
dụ, các giai đoạn đặc biệt mà khách hàng mở cửa hoặc có thể đến được vị trí đó do các hạn chế về giao thông);
• Thời gian phục vụ khách hàng, là thời gian cần thiết để giao hoặc nhận hàng tại vị trí của khách hàng (chính là thời gian dỡ hàng xuống hoặc bốc hàng lên xe), có thể phụ thuộc vào loại xe; và
• Tập con của các xe sẵn có được sử dụng để phục vụ khách hàng (ví dụ do các giới hạn truy cập hoặc các yêu cầu về thu và phát hàng)
Trang 13Đôi khi ta không thể đáp ứng hoàn toàn yêu cầu của khách hàng Trong các trường hợp đó, ta có thể giảm tổng số hàng giao/nhận, hoặc có thể đặt một tập con khách hàng là chưa được phục vụ Để giải quyết các tình huống này,
ta có thể gán cho khách hàng các quyền ưu tiên khác nhau
Lộ trình thực hiện để phục vụ khách hàng bắt đầu và kết thúc tại một hoặc nhiều kho hàng định vị tại các đỉnh của đồ thị đường đi Mỗi kho hàng đặc trưng bởi số lượng, loại xe và tổng số hàng hóa mà kho có thể chứa Trong một số ứng dụng thực tế, khách hàng được phân vùng ưu tiên giữa các kho hàng và các phương tiện giao thông phải quay trở lại kho hàng của nó tại điểm kết thúc của mỗi lộ trình Trong các trường hợp này, VRP có thể tách ra thành một số bài toán độc lập, mỗi bài toán kết hợp với một kho hàng khác nhau
Việc giao vận hàng hóa được thực hiện bằng việc sử dụng một đoàn xe
mà ta có thể đặt cố định kích thước, cấu tạo xe hoặc có thể xác định các đặc điểm này tùy theo yêu cầu của khách hàng
Các đặc điểm điển hình của xe hàng:
• Kho hàng chính (home depot) của xe, và có thể kết thúc dịch vụ tại một kho hàng khác thay vì tại kho hàng chính của xe;
• Dung lượng/trọng tải (capacity) của xe, là trọng lượng/dung lượng lớn nhất mà xe có thể tải được;
• Có thể phân chia xe thành các toa xe, mỗi toa xe đặc trưng bởi dung lượng
và loại hàng hóa mà nó có thể mang được;
• Các thiết bị cần sử dụng cho quá trình bốc hoặc dỡ hàng;
• Tập con các cung của đồ thị đường đi mà xe có thể đi; và
• Chi phí phụ liên quan đến việc sử dụng xe (trên một đơn vị khoảng cách, trên một đơn vị thời gian hoặc trên một đơn vị lộ trình…)
Người lái xe phải thỏa mãn một vài ràng buộc đặt ra bởi các hợp đồng và các quy định của công ty (ví dụ, thời gian làm việc trong ngày, số lần, thời gian nghỉ trong suốt quá trình phục vụ khách hàng, làm quá giờ…) Trong phần tiếp theo, các ràng buộc đối với lái xe được nhúng vào ràng buộc với xe tương ứng
Tùy theo từng bài toán cụ thể mà lộ trình phải thỏa mãn một số ràng buộc về mặt vận hành, các ràng buộc này phụ thuộc vào tính chất hàng hóa vận chuyển, hoặc chất lượng dịch vụ và đặc điểm của khách hàng, phương tiện giao thông Một số ràng buộc điển hình có thể như sau: theo mỗi lộ trình, trọng tải hàng hiện tại không được vượt quá dung lượng xe; các khách hàng được phục vụ trong một lộ trình có thể chỉ yêu cầu giao hàng hoặc nhận hàng hoặc cả hai; và các khách hàng có thể được phục vụ chỉ trong khung thời gian
Trang 14của họ và thời gian làm việc của lái xe và xe đáp ứng được trong thời gian đó Các ràng buộc trên có thể bị quyết định bởi thứ tự phục vụ khách hàng trong một lộ trình Một ràng buộc trong số các ràng buộc trên yêu cầu rằng một khách hàng được phục vụ trong cùng một tuyến đường phục vụ một tập con các khách hàng khác và khách hàng đó phải được phục vụ trước (hoặc sau) khách hàng thuộc vào tập con đó Trong trường hợp này, người ta gọi là bài toán nhặt và phân phát, trong đó các lộ trình có thể thực hiện cả hai việc thu thập và phân phát hàng hóa, và hàng hóa thu thập được từ các khách hàng phải được mang tới khách hàng nhận tương ứng bởi cùng một phương tiện giao thông Một loại ràng buộc khác quy định rằng nếu nhiều loại khách hàng khác nhau được phục vụ trong cùng một lộ trình, thứ tự thăm khách hàng là
cố định Trường hợp này, người ta gọi là VRP with Backhauls, trong đó các
lộ trình có thể được thực hiện cả việc nhận hoặc giao hàng hóa nhưng các ràng buộc được kết hợp với thao tác bốc hàng và dỡ hàng, điểm khó là sắp xếp lại trọng tải của xe trong lộ trình, điều đó có nghĩa là tất cả các thao tác phân phối hàng phải được thực hiện trước khi thu nhận hàng
Việc đánh giá chi phí tổng thể của các lộ trình và kiểm tra các ràng buộc về mặt vận hành lộ trình yêu cầu các tri thức về chi phí đi và thời gian đi giữa mỗi cặp khách hàng và giữa kho hàng – khách hàng Đồ thị đường đi thường được biến đổi thành một đồ thị đầy đủ (có các đỉnh là đỉnh của đồ thị
đường đi tương ứng với các khách hàng và các kho hàng) Với mỗi cặp đỉnh i,
j của đồ thị đầy đủ, một cạnh (i, j) được định nghĩa sao cho chi phí c ij là chi
phí của đường đi ngắn nhất bắt đầu từ đỉnh i và kết thúc ở đỉnh j trong đồ thị đường đi Thời gian đi t ij tương ứng với mỗi cạnh (i, j) của đồ thị đầy đủ là tổng của các thời gian đi của các cạnh thuộc về đường đi ngắn nhất từ i tới j
Ở phần sau, thay cho đồ thị đường đi ban đầu, ta xem xét đồ thị đầy đủ tương ứng, đồ thị này có thể là có hướng hoặc vô hướng phụ thuộc vào tính chất của
ma trận thời gian hoặc chi phí là đối xứng hoặc không đối xứng
Một số mục tiêu mà ta xem xét cho bài toán định tuyến xe hàng:
• tối thiểu hóa chi phí giao vận tổng thể phụ thuộc vào khoảng cách đi tổng thể (hoặc phụ thuộc vào thời gian đi tổng thể) và phụ thuộc vào chi phí cố định tương ứng với các xe được sử dụng (và với các lái xe tương ứng);
• tối thiểu hóa số lượng xe (hoặc số lượng lái xe) cần thiết để phục vụ tất cả các khách hàng;
• cân bằng giữa các lộ trình về thời gian đi và trọng tải hàng cho xe;
• tối thiểu hóa các mục tiêu tương ứng với các dịch vụ bán phần của khách hàng;
hoặc kết hợp của các mục tiêu trên
Trang 15Trong một số ứng dụng, mỗi xe có thể đi nhiều hơn một chuyến trong một giai đoạn thời gian, hoặc các chuyến đi có thể kéo dài nhiều ngày…
Kể từ khi Dantzig và Ramser đưa ra VRP[1], trong các bài viết của mình, các tác giả đã mô tả một ứng dụng thực tế liên quan đến việc phân phối gas tới các trạm gas và đề xuất công thức lập trình toán học đầu tiên và cách tiếp cận mang tính thuật toán để giải bài toán Một vài năm sau, Clarke và Wright đề xuất một giải thuật mẹo tham lam hiệu quả từ cải tiến cách tiếp cận của Dantizg – Ramser Sau đó rất nhiều mô hình đã được phát triển để đưa ra giải pháp xấp xỉ tối ưu cho các phiên bản của VRP
1.2 Định nghĩa bài toán và Ký hiệu cơ bản
Lớp bài toán VRP được chú ý nhất trong giới khoa học và có các phiên bản như VRP với hạn chế về trọng tải xe (CVRP - Capacitated VRP), VRP với hạn chế thời gian (VRPTW), VRP nhập xuất hàng kết hợp (VRPB), VRP nhập xuất hàng đồng thời (VRPPD)
Hình 1.1: Các lớp bài toán VRP
Hình 1.1 minh họa các lớp bài toán chính của VRP, mũi tên đi từ bài toán A sang bài toán B có nghĩa B là một bài toán mở rộng của A Với mỗi bài toán này, các nhà nghiên cứu đã đưa ra nhiều biến thể, giải pháp tương ứng, do vậy với mỗi bài toán ta sẽ mô tả phiên bản cơ bản trước
Trang 16- c ij : tương ứng với mỗi cạnh (i, j) ∈ A biểu diễn chi phí để đi từ đỉnh
i tới đỉnh j Thường không cho phép sử dụng các cạnh lặp (i, i) (c ii = +∞ với mọi i ∈ V)
- d i : là yêu cầu phân phối hàng không âm của khách hàng i (yêu cầu của kho hàng là 0, d0 = 0) Cho một tập các đỉnh S ⊆V, d S =∑i∈S d i
là tổng yêu cầu của tất cả các khách hàng trên tập S
- K: số xe được sử dụng Trong đó K min là số lượng xe nhỏ nhất cần thiết để phục vụ tất cả các khách hàng
- C: trọng tải của xe (d i ≤ C với i=1, ,n)
Chú ý:
- Nếu G là đồ thị có hướng thì ma trận chi phí c là không đối xứng, bài
toán tương ứng được gọi là CVRP không đối xứng (ACVRP), khi đó A
là tập các cạnh của đồ thị có hướng G được xác định bởi các đỉnh đầu mút của nó (i, j) i,j∈V
- Nếu c ij =c ji với mọi (i,j) ∈A thì bài toán tương ứng được gọi là CVRP đối xứng (SCVRP) và tập các cung A được thay thế bởi tập các cạnh
không có hướng E
o Với mỗi e∈E , a(e) và β(e) chỉ các đỉnh đầu mút của cạnh e
Trang 17o Với mỗi tập đỉnh S ⊆V , δ(S) để chỉ tập cạnh e∈E mà chỉ có
một đỉnh đầu mút nằm trong S E(S) để chỉ tập cạnh e∈E có cả
hai đỉnh đầu mút nằm trong S
Nói cách khác, ta thường không đi đường vòng nối giữa hai đỉnh i và j
Trong một số trường hợp các đỉnh được gán với các điểm của mặt
phẳng có tọa độ cho trước, và chi phí c ij cho mỗi cạnh (i, j) ∈ A được định nghĩa là khoảng cách Euclidean giữa hai điểm tương ứng với đỉnh i và j
Trong trường hợp này ma trận chi phí là đối xứng và thỏa mãn bất đẳng thức tam giác và bài toán này gọi là Euclidean SCVRP
Mỗi khách hàng i (i = 1,…, n) tương ứng với một yêu cầu không âm đã biết trước, d i, để được giao hàng và kho hàng là một khách hàng có yêu cầu
đặc biệt d 0 = 0 Cho một tập đỉnh S ⊆ V, gọi ∑
d )( là tổng các yêu cầu
của tập này
Một tập K xe xác định, mỗi xe có dung lượng C là sẵn có tại kho hàng Để đảm bảo tính chấp nhận được ta giả sử rằng d i <= C với mỗi i = 1,…,n Mỗi
xe có thể thực hiện nhiều nhất một lộ trình và ta giả sử rằng K không nhỏ hơn
K min , với K min là số lượng xe tối thiểu cần để phục vụ được tất cả các khách
hàng Giá trị của K min có thể được xác định bởi bài toán đóng gói (Bin Packing Problem – BPP) kết hợp với CVRP, BPP có nhiệm vụ xác định số
lượng tối thiểu các thùng, mỗi thùng có dung lượng C, được yêu cầu để nạp tất cả n mặt hàng, mỗi mặt hàng có trọng lượng d i không âm, i= 1, …, n
Cho một tập S ⊆ V \ {0}, ta biểu diễn r(S) là số xe tối thiểu cần thiết để phục vụ tất cả các khách hàng trong S, ví dụ giá trị tối ưu của BPP tương ứng với phần tử trong S Chú ý rằng r(V\{0}) = K min Thông thường, r(S) được
thay thế bởi cận dưới BPP:
(1.2) ⎡d(S) /C⎤
CVRP là bài toán tìm kiếm một tập K lộ trình có chi phí tối thiểu và:
(i) mỗi lộ trình phải thăm đỉnh kho hàng;
(ii) mỗi đỉnh khách hàng được thăm bởi chính xác một lộ trình; và
Trang 18(iii) tổng các yêu cầu của các đỉnh được thăm bởi một lộ trình không
vượt quá trọng tải của xe – C
Một số biến thể của phiên bản CVRP cơ bản đã được xem xét Biến thể
thứ nhất là khi số lượng xe sẵn có K lớn hơn K min, có thể để một số xe không
được sử dụng và do vậy nhiều nhất K mạch phải được xác định Trong trường
hợp này, ta thường cố định chi phí với việc sử dụng phương tiện, từ đó yêu cầu tối thiểu hóa tổng chi phí…
CVRP được biết đến là bài toán NP – khó và tổng quát hóa bài toán người du lịch (TSP), xác định chi phí tối thiểu cho một mạch đơn giản thăm
tất cả các đỉnh của G và xảy ra khi C >= d(V) và K = 1
Biến thể đầu tiên của CVRP là VRP với hạn chế về khoảng cách (DVRP), với mỗi lộ trình ràng buộc về dung lượng được thay thế bởi ràng
buộc chiều dài (hay thời gian) tối đa Nói riêng, một chiều dài không âm, t ij
(hay t e ) tương ứng với mỗi cạnh (i,j) ∈ A (hoặc cạnh e ∈ E) và tổng chiều dài
của các cạnh của mỗi lộ trình không vượt quá chiều dài lộ trình lớn nhất Nếu
các xe là khác nhau, thì các chiều dài lộ trình lớn nhất là T k , k = 1,…,K Hơn nữa, khi chiều dài các cạnh biểu diễn thời gian đi, thời gian phục vụ s i có thể
được kết hợp với mỗi khách hàng i, điều này biểu diễn giai đoạn thời gian mà
xe phải dừng ở vị trí của khách hàng Một cách khác, thời gian phục vụ có thể được cộng vào thời gian đi của các cạnh Trường hợp mà cả ràng buộc về dung lượng xe và khoảng cách lớn nhất được thỏa gọi là VRP với hạn chế về trọng tải và khoảng cách (DCVRP)
1.2.2 VRP với hạn chế về thời gian
VRP với hạn chế về thời gian (VRPTW) là một mở rộng của CVRP mà
chú trọng nhiều tới các ràng buộc về dung lượng và mỗi khách hàng i được kết hợp với một khoảng thời gian [a i , b i] gọi là khung thời gian (time
window), cung cấp trước thời gian mà các xe dời kho hàng, thời gian đi t ij cho
mỗi cung (i, j) ∈ A (hoặc t e với mỗi cạnh e ∈ E) và thời gian phục vụ thêm s i
cho mỗi khách hàng i cũng được cung cấp Dịch vụ của mỗi khách hàng phải
bắt đầu trong cửa sổ thời gian tương ứng và xe phải dừng tại vị trí của khách
hàng và khách hàng i sẽ được phục vụ với thời gian s i Trong trường hợp xe
hàng đến vị trí của khách hàng i sớm, xe được phép đợi a i thời gian cho đến
khi dịch vụ bắt đầu Với mỗi cung (i, j) ∈ A, thời gian đi trên cung (i, j) là thời gian đi từ i tới j cộng với thời gian phục vụ khách hàng i (s i)
Thông thường ma trận chi phí và ma trận thời gian đi là giống nhau, và thời gian được xác định bởi việc giả sử rằng tất cả các xe dời kho hàng là không mất thời gian Hơn nữa, dễ thấy yêu cầu của khung thời gian dẫn đến một hướng đi ngầm định cho mỗi lộ trình thậm chí nếu các ma trận ban đầu là
Trang 19đối xứng Do vậy, VRPTW thường được mô hình hóa như một bài toán không đối xứng
VRPTW bao gồm việc tìm một tập K lộ trình đơn giản với tổng chi phí tối
thiểu và:
(i) mỗi lộ trình phải thăm đỉnh kho hàng;
(ii) mỗi đỉnh khách hàng được thăm bởi chính xác một lộ trình (iii) tổng các yêu cầu của các đỉnh được thăm bởi một lộ trình
không vượt quá dung lượng của xe, C và:
(iv) với mỗi khách hàng i, dịch vụ bắt đầu trong khung thời
gian [a i , b j ] và xe dừng trong s i thời gian để phục vụ khách hàng này
VRPTW là bài toán NP – khó vì nó tổng quát hóa từ CRVP, xảy ra khi a i = 0,
b i = +∞ với mỗi i ∈ V \ {0} Hơn nữa, bài toán người du lịch với cửa sổ thời
gian là trường hợp đặc biệt của VRPTW trong đó C ≥ d(V) và K = 1
1.2.3 VRP nhập xuất hàng kết hợp
VRP nhập xuất hàng kết hợp (VRPB) là một mở rộng của CVRP mà
trong đó tập khách hàng V \ {0} được phân hoạch thành hai tập con Tâp đầu tiên, L, chứa n khách hàng cần mua hàng hóa chuyên chở theo đường bộ giữa
các thành phố, mỗi khách hàng yêu cầu một số lượng xác định sản phẩm Tập
thứ hai, B, chứa m khách hàng trả hàng, mà số lượng sản phẩm phải thu thập
là xác định Các khách hàng được đánh số sao cho L = {1,…,n} và B = {n + 1,…, n + m}
Trong VRPB, tồn tại một ràng buộc giữa khách hàng mua hàng và khách trả hàng: bất kỳ khi nào một lộ trình phục vụ cả hai loại khách hàng, ta phục vụ tất cả các khách mua hàng trước khách trả hàng Một yêu cầu không
âm d i, để được phân phối hay thu thập tùy thuộc vào loại của nó, là được kết
hợp với khách hàng thứ i và kho hàng là đỉnh có yêu cầu d 0 = 0 Khi ma trận chi phí là không đối xứng, bài toán được gọi là VRPB không đối xứng (AVRPB) VRPB và AVRPB bao gồm việc tìm một tập hợp chính xác K lộ trình đơn giản với chi phí tối thiểu sao cho:
(i) mỗi lộ trình phải thăm đỉnh kho hàng;
(ii) mỗi đỉnh khách hàng được thăm bởi chính xác một lộ trình; (iii) tổng số yêu cầu của khách hàng mua hàng và khách hàng trả hàng được thăm bởi một lộ trình không vượt quá dung lượng xe C; và
(iv) trong mỗi lộ trình, tất cả các khách hàng mua hàng được phục
vụ trước khách hàng trả hàng, nếu có
Trang 20Ta không cho phép các mạch chỉ chứa khách hàng trả hàng Hơn nữa ta thấy ràng buộc trước (iv) đưa ra một hướng phục vụ ngầm định của các lộ
trình hỗn hợp cả hai loại khách hàng Gọi K L và K B lần lượt biểu diễn số lượng tối thiểu phương tiện cần có để phục vụ tất cả các khách hàng có một loại yêu cầu hoặc cả hai loại yêu cầu Các giá trị có thể thu được bằng việc giải BPP kết hợp với tập con các khách hàng tương ứng Để đảm bảo tính chấp nhận
được, ta giả sử rằng K không nhỏ hơn số xe tối thiểu cần thiết để phục vụ tất
cả các khách hàng, ví dụ K ≥ max{K L , K B} VRPB và AVRPB là bài toán NP
– khó vì đây là phiên bản tổng quát hóa của CVRP khi B = Ø
1.2.4 VRP nhập xuất hàng đồng thời (VRPPD)
Với VRPPPD, mỗi khách hàng i có hai số liệu d i và p i lần lượt biểu diễn yêu cầu về hàng hóa đồng nhất được phân phát hay thu nhận tại khách
hàng thứ i Đôi khi ta chỉ sử dụng một số lượng d i = d i – p i cho mỗi khách
hàng i, số lượng này chỉ ra sự khác nhau giữa các yêu cầu phân phát và thu thập hàng (do vậy có thể là âm) Với mỗi khách hàng i, O i biểu diễn đỉnh
nguồn của yêu cầu phân phát và D i biểu diễn đỉnh đích của yêu cầu thu thập hàng
Ta giả sử rằng tại mỗi vị trí của khách hàng, việc phân phát hàng được thực hiện trước khi thu thập hàng, do vậy khối lượng hàng hiện tại của một xe đến một vị trí nào đó được xác định bằng hiệu của khối lượng ban đầu trừ đi tất cả khối lượng hàng đã phân phát cộng với khối lượng của tất cả các hàng hóa đã thu thập
VRPPD bao gồm việc tìm một tập chính xác K lộ trình đơn giản với chi phí
nhỏ nhất và:
(i) mỗi lộ trình phải thăm đỉnh kho hàng;
(ii) mỗi đỉnh khách hàng được thăm bởi chính xác một lộ trình; (iii) trọng tải hiện tại của xe dọc theo lộ trình phải là không âm và
không vượt quá dung lượng của xe C;
(iv) với mỗi khách hàng i, khách hàng O i (khi không phải là đỉnh kho hàng) phải được phục vụ trong cùng một lộ trình và trước
Trang 21VRPPD và VRPSPD là các bài toán NP – khó vì chúng là tổng quát
hóa của CVRP khi O i = D i = 0 và p i = 0 với mỗi i ∈ V Bài toán người du lịch
với thu thập và phân phát hàng (TSPPD) là trường hợp đặc biệt của VRPSPD
mà K = 1
1.3 Các mô hình cơ bản cho VRP
Phần này trình bày các công thức lập trình toán học có thể sử dụng để
mô hình hóa VRP cơ bản đã trình bày ở phần trên Nói chung, ta đưa ra mô hình cho CVRP và thảo luận cách mở rộng để đáp ứng các ràng buộc hoặc các hàm mục tiêu khác nhau
Có ba cách tiếp cận mô hình hóa cơ bản đã được đưa ra Mô hình đầu tiên là công thức luồng phương tiện (vehicle flow formulations) sử dụng các biến nguyên kết hợp với mỗi cạnh (cung) của đồ thị, số nguyên này đếm số lần cạnh này được duyệt bởi một xe Mô hình này thường được sử dụng cho VRP căn bản và cũng khá phù hợp trong các trường hợp chi phí cho giải pháp
có thể được biểu diễn như là tổng của chi phí gắn với mỗi cạnh và khi các ràng buộc liên quan sự chuyển dịch trực tiếp giữa các khách hàng trong một
lộ trình, nên các ràng buộc này có thể được mô hình hóa một cách hiệu quả thông qua các định nghĩa tập cạnh và tập chi phí thích hợp Mặt khác, mô hình luồng phương tiện không thể sử dụng để xử lý nhiều vấn đề thực tế, ví
dụ khi chi phí của giải pháp phụ thuộc vào tất cả trình tự đỉnh hoặc loại xe gắn với mỗi lộ trình Hơn nữa, giảm nhẹ lập trình tuyến tính của mô hình luồng phương tiện có thể là rất yếu khi các ràng buộc thao tác là chặt
Mô hình thứ hai dựa trên công thức luồng hàng hóa Trong mô hình này, các biến nguyên được kết hợp với các cạnh (cung) và biểu diễn luồng hàng hóa dọc theo các đường đi bởi các xe Các mô hình loại này gần đây chỉ được sử dụng cho phiên bản CVRP cơ bản
Mô hình cuối cùng có một số mũ các biến nhị phân, mỗi biến kết hợp với một mạch chấp nhận được khác nhau Do vậy VRP được lập công thức như là bài toán phân hoạch tập (Set – Partitioning Problem – SPP): xác định một tập hợp các mạch với chi phí nhỏ nhất mà phục vụ mỗi khách hàng một lần và thỏa mãn các ràng buộc phụ trợ Ưu điểm chính của mô hình này là nó cho phép chi phí lộ trình vô cùng tổng quát, ví dụ phụ thuộc vào trình tự tổng thể của các cạnh và loại xe Hơn nữa, các ràng buộc phụ trợ không nhất thiết phải chịu trách nhiệm giới hạn liên quan tới tính chấp nhận được của một lộ trình đơn Do vậy, ta thường thay bởi một tập bất đẳng thức rút gọn Việc này đưa ra một công thức mà việc giảm nhẹ lập trình tuyến tính là chặt chẽ hơn trong các mô hình trước Tuy nhiên mô hình này yêu cầu giải quyết với một
Trang 22số lượng lớn các biến Để ký hiệu đơn giản, trong các phần sau ta giả sử rằng
đồ thị G(V,A) hoặc G(V,E) là đầy đủ
1.3.1 Mô hình luồng phương tiện
Mô hình này là một công thức luồng phương tiện hai chỉ số sử dụng O(n2) biến nhị phân để chỉ ra rằng nếu một xe duyệt một cạnh trong lời giải
tối ưu hay không Hay nói cách khác, biến x ij = 1 nếu cạnh (i, j) ∈ A thuộc
vào lời giải tối ưu và lấy giá trị 0 nếu ngược lại
∈V ∈
x c
min
thỏa mãn
Ràng buộc mức độ trong và mức độ ngoài (1.4 và 1.5) lần lượt chỉ ra rằng chỉ có chính xác một cạnh đến và một cạnh đi khỏi mỗi đỉnh tương ứng với một khách hàng Ràng buộc (1.6) và (1.7) ngầm chỉ các yêu cầu mức độ cho đỉnh kho hàng Chú ý rằng một ràng buộc nào đó trong số 2|V| ràng buộc
(1.4) – (1.7) thực sự suy được từ 2|V| - 1 ràng buộc còn lại; do vậy có thể loại
bỏ nó
Các ràng buộc capacity – cut (1.8) ngầm chỉ sự liên kết của cả lời giải
và các yêu cầu về dung lượng xe Trong thực tế, chúng đặt ra điều kiện là mỗi
vết cắt (V\S,S) được xác định bởi một tập khách hàng S được giao nhau bởi một số lượng các cạnh không nhỏ hơn r(S) (số lượng xe tối thiểu cần thiết để phục vụ tập S)
Trang 23Dễ thấy rằng khi |S| = 1 hoặc S = V \ {0} CCCs là dạng yếu của các ràng buộc cấp độ tương ứng (1.4) – (1.7) Cũng chú ý rằng, từ (1.4) – (1.7) ta
ta chỉ xem xét một tập con giới hạn của các ràng buộc này và chỉ thêm vào ràng buộc còn lại nếu cần thiết Các ràng buộc xem xét có thể được giảm nhẹ bằng mô hình Lagrangian hoặc giảm nhẹ lập trình tuyến tính Mô hình luồng phương tiện có thể biến đổi phù hợp để mô hình hóa một số biến thể của phiên bản cơ bản của SCVRP và ACVRP
1.3.2 Mô hình luồng hàng hóa
Mô hình luồng hàng hóa được đưa giới thiệu đầu tiên bởi Garvin và các đồng nghiệp cho bài toán phân phồi dầu Theo ông, bên cạnh các biến được
sử dụng bởi các công thức luồng phương tiện hai chỉ số ở phần 1.3.1 cần có một tập (liên tục) các biến gắn với các cạnh, các biến này biểu diễn tổng số yêu cầu khi đi dọc theo cạnh Tuy nhiên, mô hình này không được sử dụng để phát triển các tiếp cận cho VRP
Dựa trên mở rộng đối với SCVRP của mô hình luồng hai – hàng hóa cho TSP được giới thiệu bởi Finke, Claus và Gunn, vì công thức mô hình luồng phương tiện yêu cầu có hướng của cạnh nên ta định nghĩa mô hình trên một đồ thị có hướng tương ứng với đồ thị vô hướng này
Trang 24Cho đồ thị G = (V, A), thêm cạnh n + 1 là một bản sao của đỉnh kho
hàng như đã trình bày ở phần 1.3.2 ta thu được đồ thị G’ = (V’, A’) Bây giờ
các lộ trình là các đường từ đỉnh 0 tới đỉnh n + 1 Với mỗi cạnh (i, j) ∈ A’, kết
hợp hai biến luồng không âm y ij và y ji Nếu một xe đi từ đỉnh i tới đỉnh j thì y ij
và y ji lần lượt là trọng tải hàng trên xe và dung lượng còn dư của xe, ví dụ y ji
= C – y ij Nếu xe đi từ đỉnh j tới đỉnh i thì là ngược lại Do vậy đẳng thức C =
y ij + y ji là cho mỗi cạnh (i, j) ∈ A’
Với bất kỳ lộ trình nào của một lời giải chấp nhận được, các biến luồng
xác định hai đường trực tiếp, một đường từ đỉnh 0 tới đỉnh n + 1, với đường này các biến biểu diễn trọng tải hàng trên xe, và một đường từ đỉnh n + 1 tới
đỉnh 0, với đường này các biến biểu diễn dung lượng còn dư của xe Nói cách
khác, một xe đi từ đỉnh 0 tới đỉnh n + 1, dời đỉnh 0 với đủ các hàng hóa, phân
phối hàng hóa cho mọi khách hàng với một lượng bằng với yêu cầu của khách
hàng, và đến đỉnh n + 1 là hết hàng; trường hợp còn lại là một xe dời đỉnh n +
1 và thu nhận hàng tại mỗi khách hàng với một lượng như yêu cầu Ví dụ, với bốn khách hàng và C = 25 như ở hình 1.2, yêu cầu được viết cạnh mỗi đỉnh
Hình 1.2: Ví dụ các luồng đường đi trên một lộ trình (C = 25)
Cũng giống như mô hình luồng phương tiện hai chỉ số, với mỗi cạnh (i, j) ∈
A’, đặt x ij = 1 nếu cạnh là thuộc lời giải và bằng 0 nếu ngược lại Công thức số nguyên của SCVRP như sau:
∈ ') , (
min
A j i
ij
ij x c
thỏa mãn
Trang 25\()
\()
2)(
1 , 0 '\ 0
1 , 0 '\ 0'
A j i x
A j i y
n V i x
x
A j i Cx
y y
KC y
n V d KC y
n V d y
n V i d
y y
ij ij
V
j ij ji
ij ji
ij
n V
j n j
n V
n V
∈
∀
=+
1.3.3 Mô hình phân hoạch tập
Công thức phân hoạch tập (SP) của VRP ban đầu được đề xuất bởi Balinski và Quandt, sử dụng một số lượng hàm mũ các biến nhị phân, mỗi biến kết hợp với một mạch chấp nhận được khác nhau của G Đặc biệt hơn, gọi H = {H1,…,Hq} biểu diễn tập hợp tất cả các mạch của G, mỗi mạch
tương ứng với một lộ trình chấp nhận được, với q = | H| Mỗi mạch H j có một
chi phí c j Thêm vào đó, đặt a ij là một hệ số nhị phân nhận giá trị 1 nếu đỉnh i được thăm (hoặc được phủ) bởi lộ trình H j và nhận giá trị 0 nếu ngược lại
Biến nhị phân x j , j = 1,…,q bằng 1 nếu và chỉ nếu mạch H j được chọn vào lời giải tối ưu Mô hình là:
1
minthỏa mãn
1
V i x
Trang 26Nếu ma trận chi phí thỏa mãn bất đẳng thức tam giác thì mô hình phân hoạch tập có thể được biến đổi thành mô hình phủ tập tương ứng (set – covering – SC) VRP3’ bằng cách viết lại công thức (1.23) như sau:
a
1
.0
\,
1
Bất kỳ lời giải chấp nhận được nào của mô hình VRP3 cũng là lời giải chấp nhận được của VRP3’, và bất kỳ lời giải chấp nhận được nào của VRP3’ cũng biến đổi được thành lời giải chấp nhận được của VRP3 với chi phí không lớn hơn Thực vậy, nếu lời giải của VRP3’ là không chấp nhận được cho VRP3,
có nghĩa là một hoặc nhiều khách hàng được thăm nhiều hơn một lần, thì ta
có thể loại bỏ các khách hàng này bằng việc áp dụng phép cắt Vì vẫn đảm bảo được bất đẳng thức tam giác, mỗi phép cắt như vậy sẽ không tăng chi phí của lời giải Ưu điểm chính của việc sử dụng công thức VRP3’ so với VRP3
là trong VRP3’ chỉ bao gồm các mạch chấp nhận được lớn nhất có cùng chi phí và cần được xem xét trong định nghĩa của H Điều này sẽ làm giảm số lượng các biến q Hơn nữa, khi sử dụng công thức VRP3’ không gian lời giải kép được giảm đáng kể do các biến kép bị giới hạn chỉ nhận các giá trị không
âm
Một trong các nhược điểm của mô hình VRP3 và VRP3’ là được biểu diễn bởi một số lượng lớn các biến, mà các biến này nếu giới hạn với số khách hàng là mười thì có thể lớn cỡ hàng tỷ rồi Ta có thể sử dụng tiếp cận thế hệ cột để giải giảm nhẹ quy hoạch động của mô hình VRP3 và VRP3’
Trang 27Chương 2 – VRP VỚI HẠN CHẾ THỜI GIAN
2.1 Giới thiệu chung
Bài toán VRP với hạn chế thời gian (VRPTW) là mở rộng của CVRP với dịch vụ tại mỗi khách hàng phải bắt đầu trong một cửa sổ thời gian tương ứng
và xe phải ở tại vị trí của khách hàng trong suốt dịch vụ Cửa sổ thời gian mềm có thể vi phạm chi phí lộ trình trong khi đó, cửa sổ thời gian cứng không cho phép một xe đến vị trí của khách hàng sau thời gian bắt đầu dịch vụ Trong trường hợp cửa sổ thời gian cứng, nếu một xe đến trước khi khách hàng sẵn sàng để được phục vụ thì nó sẽ phải đợi Ta sẽ tập trung vào trường hợp cửa sổ thời gian cứng
Như đã nói ở chương 1, VRPTW là bài toán NP – khó Thực vậy, thậm chí nếu ta tìm một lời giải chấp nhận được cho VRPTW với giả sử xe hàng có kích thước có kích thước cố định thì bản thân đó đã là một bài toán NP – khó rồi, trong các nghiên cứu sau này, các nhà khoa học tập trung vào việc thiết kế các giải thuật mẹo có thể dùng để giải quyết bài toán có kích thước thực tế và phát triển các tiếp cận tối ưu hiệu quả
Chương hai tổ chức như sau: phần 2.2 trình bày công thức luồng mạng đa hàng hóa với các ràng buộc thời gian và dung lượng cho VRPTW Phần 2.3 trình bày một số mở rộng của VRPTW, phần 2.4 trình các phương pháp để giải VRPTW Phần 2.5, cuối cùng là kết luận, nhận xét
2.2 Mô hình toán học
Như ở chương 1, VRPTW được định nghĩa trên đồ thị G = (V, A), với kho hàng được biểu diễn bởi hai nút 0 và n + 1 Tất cả các lộ trình chấp nhận được tương ứng với các đường đi trong G bắt đầu từ nút 0 và kết thúc tại nút n + 1 Nút 0 và nút n + 1 cũng gắn một cửa sổ thời gian, ví dụ [a 0 , b 0 ] = [a n+1 , b n+1]
= [E, L], với E và L lần lượt biểu diễn thời gian khởi hành có thể sớm nhất từ
kho hàng và đến kho muộn nhất có thể có Hơn nữa, các yêu cầu không và
thời gian phục vụ được xác định cho hai nút này là d 0 = d n + 1 = s 0 = s n + 1 = 0 Lời giải chấp nhận được chỉ tồn tại nếu a 0 = E ≤ mini∈V\{ }0 b i – t 0i và bn + 1 = L
≥ mini∈V\{ }0 a i + s i + t i0 Cũng chú ý rằng một cạnh (i, j) ∈ A có thể bị loại bỏ
do các xem xét tạm thời, ví dụ như nếu ai + s i + t ij > b j, hoặc do các giới hạn
về dung lượng, nếu di + d j > C hay do các yếu tố khác Cuối cùng, ta hãy đề
cập xem khi nào các xe được cho phép ở lại kho, đặc biệt là trong trường hợp
mà mục tiêu chính bao gồm việc tối thiểu hóa số lượng xe được sử dụng, cạnh (0, n+1) với c0,n+1 = t 0,n+1 = 0 phải được thêm vào tập cạnh A
Trang 28Tiếp đến ta trình bày công thức lập trình toán học cho VRPTW liên quan tới hai loại biến: biến luồng xijk, (i, j) ∈ A, k ∈ K, bằng 1 nếu cạnh (i, j) được
sử dụng bởi xe k và bằng 0 nếu ngược lại, và biến thời gian wik, i ∈ V, k ∈ K,
xác định thời điểm bắt đầu dịch vụ tại nút i khi được phục vụ bởi xe k
VRPTW có thể được mô tả một cách hình thức như mô hình mạng đa mặt hàng với các ràng buộc về khung thời gian và dung lượng:
min
thỏa mãn
) (
N i
,
1
K k x
x
di j
ijk N
Trang 29Hàm mục tiêu (2.1) của công thức không tuyến tính này biểu diễn tổng chi phí của lời giải Coi N = V \ {0, n+1} biểu diễn tập khách hàng, ràng buộc (2.2) hạn chế việc gán mỗi khách hàng với chính xác một lộ trình xe Tiếp đến, ràng buộc (2.3) – (2.5) mô tả đặc điểm luồng đi trên đường mà xe k đi theo Ràng buộc (2.6) – (2.8) và (2.9) đảm bảo tính lập lịch chấp nhận được liên quan tới vấn đề thời gian và dung lượng Chú ý rằng, với một k nào đó,
ràng buộc (2.7) bắt buộc wik = 0 bất kỳ khi nào khách hàng i không được thăm bởi xe k Cuối cùng, điều kiện (2.11) là điều kiện nhị phân cho các biến luồng Các điều kiện nhị phân (2.11) cho phép ràng buộc (2.6) được tuyến tính hóa như sau:
(2.6a) w ik + s i + t ij – w jk ≤ (1 – x ijk )M ij ∀ k ∈ K, (i,j) ∈ A,
với Mij là các hằng số lớn Hơn nữa, Mij có thể được thay thế bởi max{bi + s i + t ij – a j , 0}, (i,j) ∈ A, và ràng buộc (2.6) hoặc (2.6a) chỉ cần bắt buộc với các
cạnh (i,j) ∈ A mà Mij > 0; ngược lại khi max{bi + si + tij – aj, 0} = 0, các ràng buộc này thỏa mãn với mọi giá trị của wik, wjk và xijk
2.3 Các biến thể của VRPTW
Phần này trình bày một số biến thể cơ bản của VRPTW
VRPTW với các xe không giống nhau, nhiều kho hàng
Mô hình VRPTW (2.1)-(2.11) có thể được khái quát cho trường hợp có nhiều kho chứa, các xe có trọng tải khác nhau và thậm chí nếu có một số điều kiện ban đầu đặc biệt cho mỗi xe Khi đó, với mỗi xe k∈K, một đồ thị
G k=(Vk, Ak) và các tham số cij và tij được đánh chỉ số bởi k Ngoài ra trong một
số các trường hợp, các yêu cầu di của khách hàng và khung thời gian [ai, b i] có thể phụ thuộc vào loại xe k sẽ được phục vụ
VRPTW với nhiều khung thời gian
VRPTW đơn khung thời gian trên một khách hàng có thể được mở rộng với đa khung thời gian để tính đến trường hợp có nhiều dịch vụ tùy chọn Điều này có thể dẫn đến sự thay đổi hàm mục tiêu để tính đến thời gian giữa các lần phục vụ Đa khung thời gian chủ yếu được khảo sát trong mô hình VRP nhiều giai đoạn Mỗi một khách hàng phải được thăm một số lần xác định trong kế hoạch tiếp theo Bài toán này đã được nghiên cứu bởi Solomon và Desrosiers
VRPTW có khung thời gian mềm
Trang 30Các ràng buộc về khung thời gian mềm cho phép xe bắt đầu phục vụ một khách hàng trước hoặc sau khung thời gian của nó Kết quả, xe phải chịu thêm một số chi phí bổ sung Các công thức (2.1)-(2.11) có thể được mở rộng với khung thời gian mềm theo hai cách sau Trong trường hợp đầu tiên, chỉ các giới hạn cuối có thể bị vi phạm bởi một khoảng thời gian giới hạn bởi
b' i,i∈N Trong trường hợp này, khung thời gian cứng được mở rộng thành [ai , b i +b' i] với i∈N, được định nghĩa cùng với các hàm phạt không giảm phụ thuộc vào thời gian bắt đầu dịch vụ của xe k
(
] , [ 0
)
(
i i i ik ik
i
i i ik ik
b a w if w
c
trong đó gi(.) là một hàm số dương không giảm
Trong trường hợp hai, thời điểm bắt đầu có thể bị vi phạm bởi một khoảng thời gian giới hạn bởi ai, i∈N Tương tự, khung thời gian sẽ tăng lên [ai -a' i, bi+b'i], i∈N được định nghĩa cùng với các hàm phạt sau:
(
] , [ 0
) , ' [ )
( )
(
i i i ik ik
i
i i ik
i i i ik ik
i i ik
i
b b b w if w
g
b a w if
a a a w if w a w
c
λ
Trong đó wi là một hằng số dương và gi(.) là một hàm số dương không giảm
VRPTW với các ràng buộc liên quan đến người điều khiển
Ta có thể xem xét một số khía cạnh về mặt lập lịch cho đội lái xe khi giải bài toán VRPTW, để tạo ra các lộ trình mà không phải chịu một mức chi phí quá lớn cho lái xe
Giả sử rằng mỗi người lái được gán cho một lộ trình vận chuyển, ba khía cạnh lập lịch cho đội lái được quan tâm là: đảm bảo tối thiểu số giờ trên mỗi lộ trình, tối đa số giờ làm việc trên mỗi lộ trình, và tối thiểu các khoảng thời gian nghỉ trong các lộ trình dài Theo Desaulnier, hai yêu cầu đầu tiên có thể được mô hình hóa bởi các biến tài nguyên được điều khiển tương tự như biến thời gian và biến trọng tải Yêu cầu cuối cùng có thể được giải quyết bằng cách xét hệ thống trong nhiều giai đoạn, trong đó mỗi một giai đoạn chứa một bản sao các nút khách hàng, và một đường dẫn đi qua các nút thuộc cùng một giai đoạn tương ứng với một lộ trình không có các khoảng thời gian nghỉ Khoảng thời gian cực đại của các lộ trình này được điều khiển bởi các biến tài nguyên Các cung sử dụng khoảng thời gian nghỉ cực tiểu được định nghĩa từ các nút của giai đoạn này đến các nút của giai đoạn tiếp theo Ngoài
ra, người điều khiển cũng có thể được tích hợp vào trong các mô hình VRPTW mở rộng khác
Trang 31Ngoài ra có thể có các biến thể của VRPTW kết hợp của các biến thể trên, ví
dụ như VRPTW với đa khung thời gian, đa loại xe (VRPMTW) sẽ được mô hình hóa và đề xuất phương pháp giải ở chương 4
b) Thuật toán nhánh cắt
Cũng giống như thuật toán nhánh cận, thuật toán nhánh cắt cũng nới lỏng không gian lời giải Tuy nhiên, thuật toán này phức tạp hơn nhiều do nó biến đổi không gian lời giải bằng cách thêm các điều kiện ràng buộc có cấu trúc được gọi là mặt cắt Cho IP là một bài toán quy hoạch số nguyên và
LP(∞) là bài toán nới lỏng tuyến tính của nó có số điều kiện ràng buộc lớn, và
ta giả sử rằng ta muốn tối thiểu hàm mục tiêu Thuật toán mặt phẳng cắt (cutting plane) được tiến hành như sau
Với h ≥ 0, cho LP(h) là một bài toán quy hoạch tuyến tính bao gồm một tập con các điều kiện ràng buộc có kích thước hợp lý trong LP(∞) Giải bài toán LP(h) thu được lời giải tối ưu x h Nếu lời giải này khả thi đối với Bài toán IP, thì nó là một lời giải tối ưu; nếu không thì chúng ta sử dụng thuật
toán phân tách để tìm ít nhất một ràng buộc LP(∞) bị vi phạm bởi x h Nếu một vài ràng buộc bị vi phạm được trả về, thì LP(h+1) thu được từ LP(h) bằng cách thêm chúng vào LP(h), ngược lại tất cả các ràng buộc đều thoả mãn Chú
ý rằng với mỗi h ≥ 0 nếu ZLP(h) là giá trị tối ưu của LP(h), thì chúng ta có ZLP(h)
≤ ZLP(h+1) ≤ ZLP(∞) ≤ ZIP.
Trang 322.4.2 Thuật toán mẹo cổ điển
Cách tiếp cận mẹo được đưa ra chủ yếu cho các phiên bản cửa sổ thời gian cứng Trước tiên chúng ta sẽ xem lại một số phương pháp xấp xỉ
a) Xây dựng lộ trình
Thuật toán xây dựng lộ trình nhằm đưa ra một lời giải chấp nhận được bằng cách tại mỗi bước lặp chèn một khách hàng chưa được định tuyến vào một lộ trình bộ phận hiện tại Quá trình này được thực hiện tuần tự (một lộ trình một thời điểm) hoặc song song (xem xét nhiều lộ trình cùng một lúc) Hai câu hỏi chính được đưa ra trong quá trình thiết kế phương pháp này là: Chọn khách hàng nào để chèn tiếp? Chèn vào đâu? Để trả lời hai câu hỏi này, các nhà nghiên cứu đã xem xét các tiêu chuẩn liên quan tới việc tối thiểu hóa thời gian và khoảng cách, cực đại hóa tiết kiệm và một số yếu tố khác
Mẹo chèn tuần tự được đưa ra bởi Solomon[18] Các kết quả tính toán mở rộng của ông này được làm rõ trong một thuật toán chèn hai pha Trong pha đầu tiên, mỗi khách hàng chưa định tuyến được gắn một vị trí chèn chấp nhận được tốt nhất dựa trên yêu cầu thời gian và khoảng cách thêm vào là tối thiểu Trong pha tiếp theo, sử dụng khái niệm tiết kiệm cực đại để chọn khách hàng chèn vào Solomon cũng chỉ ra rằng tỷ lệ trong trường hợp xấu nhất của phương pháp này và các phương pháp xấp xỉ khác trên bài toán n khách hàng
ít nhất là thứ tự n Một biến thể song song của thủ tục chèn trên được đề xuất bởi Potvin và Rousseau
b) Cải tiến lộ trình
Phương pháp cải tiến lộ trình chỉnh sửa lặp đi lặp lại lời giải hiện thời bằng việc thực hiện tìm kiếm cục bộ lời giải láng giềng tốt hơn Nói chung, một láng giềng bao gồm một tập các lời giải mà có thể đạt được từ lời giải hiện tại bằng việc hoán chuyển một tập con r cạnh giữa các lời giải Một phép hoán chuyển r được thực hiện chỉ khi nó dẫn tới một lời giải chấp nhận được tốt
hơn Phép hoán chuyển có thể được thực hiện bên trong hoặc giữa các lộ trình Quá trình này dừng khi tìm được một lời giải r – tối ưu, tức là không
thể tốt hơn được nữa bởi r – hoán chuyển
2.4.3 Thuật toán mẹo kết hợp
Phương pháp mẹo kết hợp pha trộn giải thuật xây dựng lộ trình và giải thuật cải tiến lộ trình Kontoravdis và Bard[1] đã đưa ra một mẹo kết hợp giải
Trang 33sau đó cải tiến thông qua tìm kiếm cục bộ Trong các pha này, một số lộ trình nào đó có thể bị loại bỏ Các tác giả cũng đề xuất ba giới hạn dưới cho bài toán kích thước đoàn xe Hai giới hạn dưới dựa trên cấu trúc đóng thùng tạo
ra bởi các ràng buộc cửa sổ thời gian hoặc dung lượng Các giới hạn khác được dẫn xuất từ đồ thị kết hợp được tạo bởi các cặp khách hàng có các yêu cầu không tương thích hoặc cửa sổ thời gian không tương thích
Russell đã phát triển một thủ tục mà nhúng việc cải tiến lộ trình bên trong tiến trình xây dựng chuyến đi Việc này có thể làm giảm bớt khó khăn cho các giải thuật cải tiến chuyến đi để dẫn đến cải tiến lời giải ban đầu Ông đề xuất
là chuyển các khách hàng giữa các lộ trình cũng như loại bỏ lộ trình trong suốt quá trình xây dựng
Cordone và Wolfler Calvo đã sử dụng ý tưởng tương tự trong việc thiết kế một giải thuật mẹo kết hợp, ở đó tìm kiếm cục bộ được thực hiện một cách có phân cấp Đầu tiên, trong một khung hoán chuyển 2 và 3 lựa chọn cổ điển, họ
cố gắng giảm số lượng lộ trình bằng cách di chuyển một lộ trình vào lộ trình khác, một khách hàng tại một thời điểm Sau đó, sử dụng một giải thuật mẹo khác để cố gắng đi ra khỏi tối ưu cục bộ Thủ tục này giải quyết bài toán với một hàm mục tiêu đã được sửa đổi bộ phận vì lời giải hiện tại có thể là tối ưu cục bộ cho hàm mục tiêu liên quan
2.4.4 Thuật toán siêu mẹo
Siêu mẹo là trung tâm của các nghiên cứu gần đây dựa trên các phương pháp xấp xỉ cho VRPTW và bao gồm các kỹ thuật như mô phỏng tôi luyện, tìm kiếm tabu và các giải thuật tiến hóa như tìm kiếm di truyền Không giống như tìm kiếm cục bộ, mẹo dừng khi đạt đến một tối ưu cục bộ, các phương pháp này khám phá một tập con lớn hơn của không gian lời giải với hy vọng tìm được một lời giải gần tối ưu Trong khi phương pháp mô phỏng tôi luyện phụ thuộc hầu hết vào các bước ngẫu nhiên để thoát khỏi tối ưu cục bộ thì tìm kiếm tabu sử dụng bộ nhớ ngắn hạn và dài hạn để tránh chu trình và để hướng việc tìm kiếm về phía các vùng chưa được khám phá của không gian lời giải Các giải thuật tiến hóa được dẫn xuất từ việc mô phỏng quá trình tiến hóa tự nhiên và bao gồm việc lặp lại chọn, kết hợp lại và biến đổi lời giải đã được
mã hóa để thu được các thể tốt hơn Các mẹo này cũng được mở rộng để giải quyết được nhiều phiên bản mở rộng của VRPTW Sau đây là mô tả chi tiết của một số mẹo điển hình
Trang 34a) Lời giải ban đầu
Hầu hết các chiến lược tìm kiếm liên quan tới việc tìm một lời giải ban đầu chấp nhận được rồi cải tiến lời giải đó sử dụng các kỹ thuật tối ưu hóa cục
bộ hoặc tổng thể Phần này xin trình bày mẹo chèn đẩy trước (Push – Forward Insertion Heuristic – PFIH) được đưa ra đầu tiên bởi Solomon vào năm 1987[18] với tư cách là phương pháp tạo lộ trình ban đầu PFIH là một phương pháp hiệu quả để chèn khách hàng vào lộ trình mới Ta giả sử lộ trình
Rp = {C1,…,Cm}, với C1 là khách hàng đầu tiên và Cm là khách hàng cuối cùng có thời gian đến sớm nhất và muộn nhất lần lượt là e1, l1 và em, lm Tính chấp nhận được của việc chèn một khách hàng vào lộ trình Rp được kiểm tra bởi việc chèn khách hàng vào giữa tất cả các cạnh trong lộ trình hiện thời và bởi việc chọn cạnh có chi phí đi thấp nhất Đối với khách hàng Ci để được chèn giữa C0 và C1, tính chấp nhận được được kiểm tra bởi việc tính toán (1) tổng dung lượng xe, (2) tổng thời gian đi, và (3) tổng thời gian mà thời gian đến của t1 bị đẩy tăng lên Việc chèn chỉ được đảm bảo nếu không vi phạm ràng buộc nào Hai ràng buộc đầu có thể dễ dàng đạt được bằng cách thêm yêu cầu của khách hàng i vào trọng tải nạp lên xe lúc trước và thêm hai khoảng cách lộ trình (tới nút i và từ nút i đi) cộng với thời gian đợi và thời gian phục vụ tại nút i vào tổng thời gian Thay đổi trong thời gian đến của t1
có thể ảnh hưởng thời gian đến của tất cả khách hàng kế tiếp của C1 trong lộ trình hiện tại Do vậy, phép chèn chấp nhận được cho Ci cần được tính toán bởi việc kiểm tra tuần tự các giá trị đẩy lên của tất cả các khách hàng kế tiếp
C j của Ci Giá trị đẩy lên cho khách hàng Cj là không nếu thời gian sinh bởi khách hàng trước của C j, do chèn Ci vào lộ trình, không ảnh hưởng đến t j Việc kiểm tra tuần tự để đảm bảo tính chấp nhận được được tiếp tục cho đến khi giá trị đẩy lên đối với khách hàng là không hoặc một khách hàng được thêm vào lộ trình nhưng bị muộn Trong trường hợp tồi nhất, phải kiểm tra tính chấp nhận được cho tất cả khách hàng PFIH bắt đầu một lộ trình mới bằng việc chọn một khách hàng ban đầu rồi chèn các khách hàng vào lộ trình hiện tại cho tới khi hoặc là vượt quá dung lượng xe hoặc là không chèn được khách hàng nữa do vi phạm điều kiện thời gian Hàm chi phí để chèn một khách hàng tại nút đầu tiên C1 vào một lộ trình mới được thực hiện như sau:
))360((
)(C1 t oi l i p i p j t0i
++
−
với p i là góc địa cực của khách hàng đang xét và p j là góc địa cực của khách hàng được thăm cuối cùng trong lộ trình được hình thành cuối cùng Khách hàng không được xếp lộ trình với chi phí thấp nhất được chọn làm khách hàng đầu tiên để thăm Góc hệ tọa độ cực của khách hàng so với kho hàng trong công thức (2.12) được chuẩn hóa theo thuật ngữ khoảng cách Phép chuẩn hóa
Trang 35khách hàng Công thức (2.12) ngụ ý nút mong muốn được chèn là nút mà xa kho hàng, có khung thời gian sớm và không quá xa so với nút cuối cùng mà thuật toán đã thăm, các tham số đã cho là dương Ba tiêu chuẩn đã được đánh
trọng số là α = 0.7, β = 0.2, γ = 0.1 Khi đã chọn được khách hàng đầu tiên cho lộ trình hiện tại, mẹo này chọn khách hàng j* từ tập các khách hàng chưa
được định tuyến sao cho tối thiểu hóa tổng chi phí chèn giữa mọi cạnh {k, l}
trong lộ trình hiện tại và không vi phạm các ràng buộc thời gian và dung lượng Chi phí chèn các nút khác vào một lộ trình là:
Cost(Ci) = Dk + φWk + ηOk + κTk (2.13)
với:
• D k là tổng khoảng cách xe k đi,
• W k là tổng thời gian tiêu tốn của xe k,
• O k là khối lượng vượt quá so với dung lượng xe k, hay là hiệu
của khối lượng hàng trên xe k với dung lượng tối đa, và
• T k là tổng độ trễ của khách hàng được thăm bởi xe k
Hàm chi phí chèn (2.13) sẽ nhận các lời giải chấp nhận được nếu việc giảm tổng khoảng cách là đủ nhiều để cho phép hoặc là xe bị đầy quá hoặc là đến chậm Tuy nhiên ta cần tránh xe đầy quá hoặc đến chậm Trọng số thời
gian đi φ đặt là 1% của D k , η = 10% của D k và κ = 1% của D k
Khách hàng j* được chèn vào vị trí có chi phí thấp nhất giữa {k*, l*} trong lộ trình hiện tại và quá trình chọn được lặp lại cho đến khi không chèn được khách hàng nữa Tại giai đoạn này, một lộ trình mới được tạo ra và lặp lại bước trên cho đến khi định tuyến tất cả các khách hàng Giả sử rằng có không
hạn chế số lượng xe để định tuyến khách hàng và số lượng xe sử dụng – K,
được xác định bởi mẹo Thủ tục này tiếp tục cho tới khi chèn xong tất cả các khách hàng Trong trường hợp xấu nhất, số lượng lộ trình tạo được là bằng số khách hàng Thông thường, PFIH đưa ra lời giải chấp nhận được khá tốt đối với số lượng xe sử dụng Số lượng xe ban đầu này cung cấp một cận trên cho
số lượng lộ trình trong lời giải Do vậy, với PFIH, đảm bảo được lời giải là chấp nhận được PFIH cụ thể như sau:
Bảng 2.1 - Giải thuật PFIH
PFIH – 1: Bắt đầu với một lộ trình rỗng khởi hành từ kho hàng Đặt r = 1
PFIH – 2: If {tất cả khách hàng đã được xếp vào lộ trình} then
sang bước 8;
else
Trang 36với tất cả khách hàng j chưa được xếp: tính chi phí chèn
khách hàng này vào nút đầu tiên theo công thức (2.12) và sắp xếp theo thứ tự tăng dần
PFIH – 3: Chọn khách hàng đầu tiên j* từ danh sách có thứ tự với chi phí
thấp nhất và chấp nhận được với ràng buộc thời gian và dung lượng
PFIH – 4: Thêm j* vào lộ trình hiện tại r và cập nhật trọng tải của lộ trình
PFIH – 5: Với tất cả các khách hàng chưa được xếp vào các lộ trình: với
tất cả các cạnh {k, l} trong lộ trình hiện tại, tính chi phí chèn mỗi khách hàng chưa được xếp vào giữa k và l
PFIH – 6: Chọn khách hàng chưa được xếp j* và cạnh {k*,l*} có chi phí
thấp nhất
If {việc chèn khách hàng j* vào giữa k* và l* là chấp nhận được
thỏa mãn ràng buộc thời gian và dung lượng} then chèn khách hàng j* vào giữa k* và l*, cập nhật trọng tải
của lộ trình r hiện tại và chuyển sang bước 5
PFIH – 7: Bắt đầu một lộ trình mới từ kho hàng
Đặt r = r + 1
Sang bước 2
PFIH – 8: Tất cả khách hàng đã được xếp vào lộ trình Đưa ra kết quả Dừng PFIH
b) Tìm kiếm cục bộ với λ – Interchange
Hiệu quả của phương pháp tìm kiếm cục bộ lặp được xác định bởi hiệu quả của cơ chế sinh ra và cách thức tìm kiếm láng giềng Cơ chế sinh λ – interchange đưa ra bởi Osman và Christofides[19] cho bài toán phân nhóm dung lượng (Capacitated Clustering Problem) Cơ chế này dựa trên việc hoán chuyển khách hàng giữa tập các lộ trình và được cài đặt với một cấu trúc dữ liệu đặc biệt Cơ chế sinh λ – interchange cho VRPTW được mô tả như sau: Cho một lời giải chấp nhận được cho VRPTW biểu diễn bởi
S={R1,…,Rp,…,Rq,…,Rk}, với R p là tập khách hàng được phục vụ bởi lộ trình
p Một phép hoán đổi – λ giữa cặp khách hàng R p và R q là một phép thay thế tập con S1⊆R pkích thước |S1| ≤ λ bởi tập con khác S2 ⊆R q có kích thước
|S2| ≤ λ, để thu được hai lộ trình mới Ta đặt:
Trang 372 1
Thứ tự tìm kiếm các láng giềng được xác định như sau Gọi phép hoán vị σ là
thứ tự của chỉ số xe trong lời giải được cung cấp S = {R 1 ,…,R p ,…,R q ,…,R k}
(ví dụ σ(p) = p, ∀p ∈[0, K – 1] Tìm kiếm có thứ tự chọn lựa tất cả các kết hợp có thể có của các cặp (R p , R q) theo thứ tự sau không lặp lại:
)14.2()
,(
), ,,
(),,
(, ,
(Rσ(1) Rσ(1) Rσ(K) Rσ(2) Rσ(3) Rσ(K−1) Rσ(K)
Ta cần kiểm tra tổng số
2
)1(
*
2 , = K K −
C k cặp lộ trình khác nhau (R p , R q) để xác định một chu trình tìm kiếm
Hình 2.1: Thao tác (1,0)
Trang 38Hình 2.2: Thao tác (2,1)
Với các mẹo dựa trên giải thuật gốc, sử dụng cùng một phép hoán vị σ sau
khi hoàn thành mỗi chu trình tìm kiếm Hơn nữa, cho một cặp (R p , R q) ta cũng phải xác định thứ tự tìm kiếm các khách hàng được hoán chuyển Ta xem xét trường hợp λ = 1 và λ = 2 cho việc tìm kiếm láng giềng, vì λ lớn hơn sẽ liên quan tới việc tìm mức láng giềng lớn hơn, do vậy mật độ tính toán không được điều chỉnh Phương pháp λ – interchange giữa hai lộ trình tạo ra kết quả
là các khách hàng hoặc là bị chuyển từ lộ trình này sang lộ trình khác hoặc các khách hàng bị hoán chuyển với các khách hàng khác Toán tử (0,1) trên
các lộ trình (R p , R q ) chỉ ra sự dịch một khách hàng từ lộ trình q sang lộ trình p
Toán tử (1,0), (2,0) và (0,2) chỉ ra sự dịch các khách hàng giữa hai lộ trình
Toán tử (1,1) trên các lộ trình (R p , R q) chỉ ra sự hoán chuyển các khách hàng
giữa lộ trình p và q Giống như vậy, toán tử (1,2),(2,1) và (2,2) chỉ ra sự hoán
chuyển các khách hàng giữa các xe Hình 2.1 và 2.2 minh họa các thao tác này 1 – láng giềng được định nghĩa bởi toán tử (1,0) và (0,1), và 2 – láng giềng được định nghĩa bởi tất cả các toán tử này Chú ý, ta đã định nghĩa rằng (2,0) dịch hai nút kề nhau trong lộ trình, …Theo cách này, với tất cả các toán
tử, mỗi toán tử chỉ có bốn toán hạng: (R p , i, R q , j) Ví dụ, trong thao tác (2,0), i
là vị trí của nút đầu tiên trong số hai nút bị loại bỏ trong R p và j là vị trí mới của hai nút này trong R q Trong thao tác (2,1), hai nút bắt đầu từ vị trí i bị loại
bỏ khỏi R p và được chèn lại vào R q tại vị trí j, và một nút tại vị trí j bị loại bỏ khỏi R q và được chèn lại vào R p tại vị trí i Định nghĩa đơn giản này buộc hai
nút cạnh nhau lại và cùng loại bỏ chúng, như vậy so với định nghĩa ban đầu
Trang 39cho hai thao tác này của Solomon sẽ giảm kích thước láng giềng được tìm kiếm Ta có thể thấy rằng các thao tác (1,0) và (0,1) là đủ để chuyển một lời giải sang một lời giải khác trong không gian lời giải nhưng các di chuyển như vậy có thể không đảm bảo với nhiều ràng buộc
Các khách hàng trong một cặp lộ trình đã cho được tìm một cách tuần tự
và hệ thống để đưa ra lời giải tốt hơn bằng các phép dịch và hoán chuyển Thứ tự tìm kiếm để thực hiện 2 – interchange sử dụng các thao tác sau theo thứ tự (0,1), (1,0),(1,1), (0,2), (2,0), (2,1), (1,2) và (2,2) trên bất kỳ cặp nào để tạo các láng giềng Sau khi đã tạo ra lời giải, yêu cầu một điều kiện để chấp nhận hoặc loại bỏ một dịch chuyển Ta đề xuất hai chiến lược để lựa chọn giữa các lời giải ứng cử viên:
1 The First η Best (FB): chọn lời giải đầu tiên trong S’ (trong N λ (S) láng giềng của S) mà làm giảm chi phí đối với hàm chi phí
2 The Global η Best (GB): tìm tất cả các lời giải trong S trong N λ (S) láng giềng của S và chọn lời giải làm giảm nhiều nhất chi phí đối với
Bảng 2.2: Giải thuật Local Search Descent Method
LSD – 1: Sử dụng PFIH để tìm một lời giải chấp nhận được S cho VRPTW LSD – 2: Chọn một lời giải S ∈ N λ (S) theo thứ tự đã mô tả ở trên
LSD – 3: If {C(S) < C(S)} then
chấp nhận S và chuyển sang bước 2
else
chuyển sang bước 4
LSD – 4: If {láng giềng của N λ (S) đã tìm kiếm xong (không có di chuyển
nào làm giảm chi phí nữa) then chuyển sang bước 5
else
chuyển sang bước 2
LSD – 5: Dừng với lời giải LSD
Trang 40Kết quả của LSD là phụ thuộc vào lời giải chấp nhận được ban đầu Trong trường hợp xấu nhất, LSD chỉ có thể tìm qua 2 – láng giềng của lời giải ban đầu và nếu không thấy có một phép di chuyển nào tốt hơn thuật toán sẽ dừng sau một số lần lặp Do vậy LSD chỉ giới hạn trong tối ưu cục bộ và không thể khám phá sang khu vực rộng hơn Nếu lời giải ban đầu khác xa tối ưu thực tế, LSD có thể không bao giờ tối thiểu hóa hàm mục tiêu LSD sử dụng FB hoặc
GB để chọn các láng giềng
Hình 2.3 Tối ưu cục bộ
GB thường thu được kết quả tốt hơn FB vì nó giữ được dấu của tất cả di chuyển cải thiện nhưng tốn thời gian tính toán hơn Mặt khác, LSD – GB là một tìm kiếm mù chấp nhận kết quả tốt nhất nhưng không luôn luôn tốt, ví dụ như ở hình sau: