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 đi global updating Cập nhật toàn cục local updating Cập nhật cục bộ phe
Trang 1bộ giáo dục vμ đμo tạo trường đại học bách khoa hμ nội
Trang 2trường đại học bách khoa hμ nội
-
NGUYỄN THỊ HÀ
THUẬT TOÁN BẦY KIẾN GIẢI BÀI TOÁN VRP (VEHICLE
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ục 2
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ến 37
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ến 39
2.1.2 Đặc điểm chung của mỗi con kiến 41
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ớp AntGraph 77
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ố kiểm thử 85
3.3.3 Lựa chọn điều kiện dừng 87
3.3.4 Kết quả thực nghiệm 88
Ch ương 4 - K ẾT LUẬN 93
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
Exploitation Khai phá đường đi
global updating Cập nhật toàn cục
local updating Cập nhật cục bộ
pheromone traits Dấu vết đặc trưng
local search Tìm kiếm cục bộ
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ả của tác giả 90
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ết 96
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 toá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
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
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
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ức tạp và đôi khi mâu thuẫn lẫn nhau Mục tiêu chung 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 (tỷ lệ càng cao thì hiệu quả sử dụng xe càng cao) Bên cạnh
đó, 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í dụ như xe đến chậm làm khách hà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ố tốn thờ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ác quyế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ứ tự đưa hàng tới khách hàng, tức là 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; tập xe vận tải và các 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ị với các kho và các khách hàng là các đỉnh, và các cạnh biểu diễ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ặp đỉnh (theo thời gian hoặc không gian), dự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 xe vận tải
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ụ kiện trên xe dùng để tháo dỡ hàng cho những loạ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ỳ dạng nào bài toán đều phải phục vụ được tất cả các khách hàng Bằng việ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 cần nhiề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ạt có thể đượ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 kế tiếp
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 thực tế, các yếu tố chưa xác định thường là khách hàng hoặc lượng 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´eguin0
1 và của Bianchi1
2 Ngoài ra các yếu tố chưa biết có thể là thời gian vận chuyển và thời gian phục vụ Những yế tố này, đặc biệt là thời gian vận chuyển, thường xuất hiện trong
Journal of Operational Research, 88(1):3–12, 1996
stochastic demands Technical Report TR-12-04, IDSIA, Galleria 2, Manno, 6928, Switzerland,
2004
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 dựng cho bài toán Sự ảnh 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ả sử là thời gian di chuyển gầ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ẽ trở thành vấn đề lớn
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án Ngườ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ột khách hàng chỉ được phục
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í vận chuyển, thườ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 = {0, , n} là tập các đỉnh (đỉnh i = 1, ,n biểu diễn khách hàng, đỉnh 0 là kho chứa) và A là tập các cạnh (đường nối tất cả 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 [ai , b i], đượ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 lập kế 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ế về thời điểm phục vụ này có thể ở dạng mềm tức là thời điểm phục
vụ nếu bị vi phạm sẽ phải chịu một chi phí phạ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 đến VRPTW, ta ngầm hiểu ràng buộc về thời điểm phục là không thể vi phạm
Một điểm nữa cần chú ý là với hạn chế khung thời gian phục vụ, ta đã đã ngầm định một thứ tự các khách hàng cần được phục vụ Khi đó, bài toán VRPTW
là không đối xứng dù ma trận giá có đối xứng hay không Tức là một lộ trình cho bài toán không thể giữ nguyên kết quả khi đi theo thứ tự ngược lại dù chi phí đi lại
có là đối xứng hay không
Bài toán VRPTW cũng là bài toán NP-khó, thậm chí để tìm một phương án chấp nhận được của bài toán với số lượng xe vận tải xác định cũng đã là một bài toán NP-khó2
3 Ràng buộc về thời điểm phục vụ trong bài toán VRPTW cầ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
1.2.3 VRP với nhận và chuyển hàng kết hợp (VRPPD)
Trong dạng này, đội xe phải phục vụ một tập các yêu cầu về vận chuyển hàng hóa từ nơi này đến nơi khác Trong đó, hàng hóa không nhất thiết phải tập
Annals of Operations Research, 4:285–305, 1985
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ày3
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ển phải được xây dựng một cách cẩn thận trước khi bắt đầu tính toán
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ết là mộ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 vận chuyể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ới của khách hàng, khi đó
lộ trình cần phải được tính toán lại cho phù hợp
Đố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) hay
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(n2 ) 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 0 để chỉ kho chứa) và A là tập các cạnh (đường
nối tất cả các khách hàng và kho chứa)
Một giá trị không âm cij tương ứng với mỗi cạnh (i, j) ∈ A biểu diễn chi phí
phải trả khi đi từ đỉnh i đến đỉnh j Nói chung, cạnh vòng (i, i) 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 = 1… n) tương ứng với một số không âm di 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 C Để đảm bảo khả năng thực hiện của bài toán, ta giả sử d i ≤ C với mỗi i = 1… n Mỗi xe chỉ thực hiện
nhiều nhất một lộ trình, và ta giả sử là K là không nhỏ hơn K min 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}) = K min Thông thường, r(S)
được thay bằng giá trị cận dưới:
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 S bất kỳ thì tập 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 dụng cho bài toán đối xứng SCVRP Khi
đó lộ trình là không có hướng, tức là với mỗi cạnh (i, j) ∈ A, i, j ≠ 0, chỉ một trong
hai biến xij hoặc xji được sử dụng (ta chọn xij với i < j) Khi đó có thể có lộ trình cho một xe mà chỉ phục vụ một khách hàng, tức là sẽ có cạnh (0, i) hoặc (j, 0) được đi hai lần, do đó x0j và x i0 có thể nhận giá trị 0, 1, 2
Trang 25Mô hình hai chỉ số này có thể được chuyển về dạng một chỉ số (ij thay bằng cạnh e ∈ E) ta có mô hình tương đương sau (trong đó δ(i) là tập cách đỉnh kề với đỉ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ử dụng
Để 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(n2K)
biến nhị phân x: biến xijk biểu diễn số lần cạnh (i, j) ∈ 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ó O(nK) biến nhị phân y: biến y ik (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ối ưu và nhậ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ỉ có mộ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ừ S sang V \ S mà xe k đi qua)
Rà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ải ba chỉ số được áp dụng rộng rãi cho nhiều dạng 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ử dụng tăng lên nhiều Tuy nhiên, có thể thấy là mô hình này
Trang 28chính là dạng tổng quát hóa của mô hình hai 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ới chi phí
tương ứng là +∞ Tuy nhiên, nếu số cạnh thiếu là lớn (|A| = m / n 2) 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 đi tới đỉnh i và chỉ tập các đỉnh và đỉnh i có đường đi tới
Trang 29(1.42)
(1.43)
(1.44)
• Thay kho chứa bằng K đỉnh:
Một cách mở rộng hay dùng là thay đỉnh 0 biểu diễn kho chứa bằng K đỉnh
tươ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 K - 1 đỉ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:
này được đề xuất bởi Lenstra và Rinnooy Kan4
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 m chu trình thăm một đỉnh đặc biệt m lần
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
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ử dụng tất cả vận tải hiện có Bài toán trở thành: tìm phương án chi 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
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 C trong ràng buộc (1.30) bằng C k
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à cải tiến lộ trình (improvement heuristic) Có rất 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ựng lộ 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 dựa trên việc quan tâm đến chi phí tính toán Cá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
Thu ật toán Clarke và Wright5
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, , i, 0) 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ật toán tiêu biểu dựa trên việc chèn theo dãy là thuật toán của Mole và Jameson6
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ở rộng): Nếu tấ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ến (0, k, 0), với k là một đỉnh bất kỳ chưa được định tuyến của đồ thị
6
Xem thêm: G Clarke và J.W Wright Scheduling of vehicles from a central depot to a number of
delivery points Operations Research, 12(4), 1964
7
Xem thêm: R.H Mole và S.R Jameson A sequential route-building algorithm employing a
generalized savings criterion Operational Research Quarterly, 27:503-511, 1976
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 nằm trên tuyến đang mở rộng Khi đó ta chèn đỉnh k vào giữa hai đỉnh ik và j k 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ị của các biến λ và μ, ta có nhiều dạng thuật toán chè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 , j k sao 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ố gắng cải tiế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 (X1, ) và (Y1, ) được loại ra khỏi tuyến đầu tiên và hai cặp cạnh (X2, ) và (Y2, ) bị loại ra 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à Rousseau7
8 (2-opt*) và thuật toán trao đổi của Or 8
9 (Or-opt) Trong thuật toán 2-opt*
ta chỉ trao đổi hai cạnh trên hai tuyến và được thực hiện khi Y1 và Y 2 là nút được nối với kho chứa (Hình 1-2b) Còn thuật toán Or-opt di chuyển một bộ không quá ba
8
Xem thêm: J.Y Potvin và J.M Rousseau, 1995 An Exchange Heuristic for Routing Problems
with Time Windows, Journal of the Operational Research Society 46, 1433-1446
9
Xem thêm: I Or, 1976 Traveling Salesman-type Combinatorial Problems and their relation to the
Logistics of Blood Banking
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 =Y 2 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
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 m
tuyến và giả sử mỗi tuyến có số khách hàng bằng nhau là , ta có:
cách để lựa chọn một cặp tuyến
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 lộ trình và cải tiến lộ trình được trình bày trong phầ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ật toán 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 x1 và tại mỗi vòng lặp t, phương án xt sẽ được biến thành
phương án x t+1 trong lân cận N(xt) 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(x t+1) không nhất thiết phải nhỏ hơn
Trang 37f(x t) (với hàm f(xt) 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 án tại mỗi bước đượ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ử của thuật toán (các con kiến) tạo ra một phươ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(xt) Nếu thì x được gán cho phương án xt+1 Nếu
không, x t+1 được xác định theo công thức sau:
Trong đó, p t 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 x t+1 thuật toán sử dụng láng riềng tốt nhất cho phương án hiện tại xt Để 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 Holland9
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ể) của bài toán Các cá thể này được mã hóa tạ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 một nhiễm sắc thể
Các thuật toán GA tìm kiếm từ một tập hợp các phương án, khác với các thuật toán metaheuristic khác như SA và TS Những thuật toán này bắt đầu
từ một phương án và tạo ra mỗi tại mỗi bước một phương án mới Do đó trong GA thực hiện tìm kiếm theo nhiều hướng trong tập tất cả các phương
á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à Bengio1
11, thuật toán của Thangiah1
12)
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 [ai , b i] 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 điểm về 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
11
Xem thêm: J.-Y Potvin và S Bengio The vehicle routing problem with time windows Part II:
Genetic search INFORMS Journal on Computing, 8:165-172, 1996
12
Xem thêm: S.R Thangiah Vehicle routing with time windows using genetic algorithms
Technical Report SRU-CpSc-TR-93-23, Slippery Rock University, Slippery Rock, PA, 1993
Trang 40Chương 2 - 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ợp các con kiến nhân tạo phối hợ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ẽ dần xuất hiện trong quá trình tương tác phố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
ưu hóa tĩnh và động:
Bài toán t ối ưu hóa tĩnh: là các bài toán trong đó các đại lượng được
xác định một lần duy nhất, không thay đổi trong suốt quá trình giải bài toán Một ví dụ tiêu biểu của bài toán này là bài toán Người du lịch, trong đó vị trí các thành phố và khoảng cách tương đối giữa chúng không thay đổi trong thời gian chạy chương trình
Bài toán t ối ưu hóa động: là bài toán trong đó một số yếu tố có giá trị
phụ 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ự