1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thuật toán bầy kiến giải bài toán VRP cehicle routing problem với hạn chế thời gian

108 61 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 1,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

bộ giáo dục vμ đμo tạo trường đại học bách khoa hμ nội

Trang 2

trườ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 3

Lờ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 5

1.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 6

3.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 7

Danh mục thuật ngữ và từ viết tắt

Thuật ngữ tiếng anh Thuật ngữ Tiếng việt và ý nghĩa

Exploitation Khai phá đường đ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 8

Stochastic 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 9

Danh 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τ 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 10

Danh 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 11

Mở đầ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 13

Chươ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 14

buộ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 15

khoả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 16

hợ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 17

thự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 18

1.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 19

khung 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 20

trung ở 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 21

1.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 22

1.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 23

Mỗ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 24

Rà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 25

Mô 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 28

chí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 30

Có 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 31

1.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 32

construction) 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 34

Hì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 35

khá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 36

Thuậ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 37

f(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 38

mộ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 39

Mộ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 40

Chươ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ự

Ngày đăng: 28/02/2021, 00:09

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. P. Toth và D. Vigo. The Vehicle Routing Problem, chapter An Overview of Vehicle Routing Problems. SIAM, Society for Industrial and Applied Mathematics, Philadelphia, USA, 2000 Sách, tạp chí
Tiêu đề: The Vehicle Routing Problem, chapter An Overview of Vehicle Routing Problems
[2]. A.E. Rizzoli, F. Oliverio, R. Montemanni và L.M. Gambardella. Ant Colony Optimisation for vehicle routing problems: from theory to applications, IDSIA Galleria 2, CH-6928 Manno, Switzerland Sách, tạp chí
Tiêu đề: Ant Colony Optimisation for vehicle routing problems: from theory to applications
[3]. Luca Maria Gambardella, Éric Taillard và Giovanni Agazzi. Macs-Vrptw: A Multiple Ant Colony System for Vehicle Routing Problems With Time Windows.Technical Report IDSIA, Lugano, Switzerland, 1999 Sách, tạp chí
Tiêu đề: Macs-Vrptw: A Multiple Ant Colony System for Vehicle Routing Problems With Time Windows
[4]. Ugo Chirico. A Java Framework for Ant Colony Systems, Siemens Informatica S.p.A. Via del Maggiolino, 151/163 00155 Rome, Italy.http://www.ugochirico.com Sách, tạp chí
Tiêu đề: A Java Framework for Ant Colony Systems
[5]. M. Dorigo và L. M. Gambardella. Ant Colony System: A cooperative learning approach to the travelling salesman problem. IEEE Transactions on Evolutionary Computation, 1(1):53-66, 1997 Sách, tạp chí
Tiêu đề: A cooperative learning approach to the travelling salesman problem
[6]. É. D. Taillard, P. Badeau, M. Gendreau, F. Guertin, J.-Y. Potvin, A Tabu Search Heuristic for the Vehicle Routing Problem with Soft Time Windows, Transportation Science 31, 1997, 170-186 Sách, tạp chí
Tiêu đề: A Tabu Search Heuristic for the Vehicle Routing Problem with Soft Time Windows
[7]. N. Kohl, J. Desrosiers, O. B. G. Madsen, M. M. Solomon và F. Soumis, K- Path Cuts for the Vehicle Routing Problem with Time Windows, Technical Report IMM-REP-1997-12, Technical University of Denmark, 1997 Sách, tạp chí
Tiêu đề: K-Path Cuts for the Vehicle Routing Problem with Time Windows
[8]. Cay S. Horstmann, Gary Cornell, Core Java™ 2 Volume I - Fundamentals, Seventh Edition, Prentice Hall PTR, 2004 Sách, tạp chí
Tiêu đề: Core Java™ 2 Volume I - Fundamentals

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm