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

Phương pháp local search cho một bài toán giao hàng trong thực tế

113 2,1K 11

Đ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 113
Dung lượng 15,36 MB

Nội dung

Phần mở đầu Lý do thực hiện và mục tiêu của đề tài Lớp bài toán điều phối xe (Vehicle Routing Problem – VRP) có ứng dụng rất rộng rãi trong nhiều lĩnh vực của đời sống, đặc biệt là trong lĩnh vực giao thông vận tải. Mỗi bài toán VRP thực tế thường có các ràng buộc đặc trưng riêng, nhưng nhìn chung tất cả đều là bài toán NPkhó. ðề tài này tậptrung nghiên cứu và giải quyết một bài toán VRP thực tế, bắt nguồn từ nhu cầu điềuphối các xe giao hàng của công ty Cổ phần sữa Việt Nam (Vinamilk), cơ sở TP.HCM. Hiện nay, Vinamilk thực hiện việc điều phối xe giao hàng bằng tay với quy trình như sau: mỗi ngày, công ty sẽ nhận các đơn đặt hàng của khách hàng (sốlượng đơn hàng từ vài trăm đến hơn một ngàn), đến cuối ngày, nhân viên điều phối sẽ tổng hợp lại toàn bộ các đơn đặt hàng đã nhận trong ngày, và bộ phận điều phối thường phải mất khoảng 6 đến 8 tiếng (đôi khi phải thức cả đêm) để thực hiệnviệc phân bổ đơn hàng lên xe và xác định đường đi cho các xe vào ngày hôm sau. Cáchlàm này tốn khá nhiều thời gian và công sức mà đôi khi lời giải thu được lại chưa hẳn tốt. Do đó, vấn đề tự động hóa trong khâu điều phối xe là một nhu cầu rấtcần thiết. ðiểm đặc biệt của bài toán này là ngoài vấn đề điều phối xe, bài toáncòn yêu cầu phải xếp lịch vào kho cho các xe, yêu cầu có thể được mô hình hóa dưới dạng bài toán Flexible Job Shop Scheduling – một bài toán thuộc lớp bài toán NP – khó. Sự lồng ghép của hai bài toán khó khiến cho bài toán giao hàng của Vinamilk trở nên khá phức tạp. ðề tài đã đề nghị một thuật giải metaheuristic dựa trên local search để giải quyết bài toán này, kết quả thực nghiệm được so sánh với kết quả xếp tay được lấy từ thực tế và kết quả đã được công bố dưới dạng bài báo của một phương pháp dựa trên quy hoạch động (áp dụng trên cùng bài toán). Bố cục luận văn Luận văn gồm có 5 chương: 2 Chương 1: trình bày tổng quan về bài toán điều phối xe (Vehicle Routing Problem) – bao gồm định nghĩa bài toán, các biến thể của bài toán và sơ lược về các hướng tiếp cận hiện nay để giải quyết bài toán. Chương 2: trình bày chi tiết về bài toán mà luận văn tập trung nghiên cứu và giải quyết bài toán giao hàng của Công Ty Cổ Phần Sữa Việt Nam – Vinamilk. Chương 3: trình bày các kĩ thuật liên quan mà luận văn sẽ sử dụng để giải quyết bài toán giao hàng của Vinamilk Chương 4: trình bày chi tiết về thuật giải metaheurisitic dựa trên local search mà luận văn đề nghị để giải quyết bài toán giao hàng của Vinamilk Chương 5: trình bày kết quả thực nghiệm khi áp dụngthuật giải đã đề nghị lên một số bộ dữ liệu thực tế của Vinamilk. Chương 6: trình bày kết luận và các hướng phát triển của đề tài

Trang 1

ðẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ðẠI HỌC KHOA HỌC TỰ NHIÊN

Trang 3

ii

Mục lục

Lời cảm ơn i

Mục lục ii

Danh mục các bảng iv

Danh mục các hình v

Phần mở ñầu 1

Lý do thực hiện và mục tiêu của ñề tài 1

Bố cục luận văn 1

Chương 1 Tổng quan về bài toán Vehicle Routing 3

1.1 Giới thiệu bài toán Vehicle Routing (VRP) 3

1.2 Các biến thể của bài toán VRP 4

1.3 Các hướng tiếp cận cho bài toán VRP 8

Chương 2 Bài toán giao hàng của công ty cổ phần sữa Việt Nam - Vinamilk 15

2.1 Một số khái niệm và ñặc trưng của bài toán 15

2.2 Ràng buộc của bài toán và thành phần của lời giải 17

2.3 Mục tiêu của bài toán 18

2.4 Các bài toán liên quan 18

2.5 Sự khác biệt của bài toán so với các bài toán VRP ñã ñược công bố 18

Chương 3 Các kĩ thuật liên quan 20

3.1 Thuật giải Tabu Search 20

3.2 Thuật giải Large Neighborhood Search 21

3.3 Bài toán Flexible Job Shop Scheduling 24

Chương 4 Thuật giải ñề nghị 32

Trang 4

iii

4.1 Bước 1: tạo ra một lời giải của bài toán nhưng bỏ qua vấn ñề xếp lịch vào

kho của các xe 33

4.2 Bước 2: Xếp lịch vào kho cho các xe 39

4.3 Bước 3: Chỉnh sửa các chuyến của các xe trễ (nếu có) 44

4.4 Bước 4: Thêm xe mới vào lời giải hiện tại 46

Chương 5 Kết quả thực nghiệm 49

Chương 6 Kết luận và hướng phát triền 54

6.1 Kết luận 54

6.2 Hướng phát triển 55

Tài liệu tham khảo 56

Danh mục các công trình của tác giả 62

Trang 5

iv

Danh mục các bảng

Bảng 2.1 Thông tin chi tiết về ñội xe của Vinamilk 15

Bảng 4.1 Sự tương quan giữa các khái niệm trong bài toán giao hàng của Vinamilk với các khái niệm trong bài toán FJSP 41

Bảng 5.1 Thông tin 19 bộ dữ liệu của Vinamilk 49

Bảng 5.2 Kết quả thực nghiệm (với bài báo [38]) 52

Bảng 5.3 Kết quả thực nghiệm mới 53

Trang 6

v

DANH MỤC CÁC HÌNH VÀ ĐỒ THỊ

Trang

Hình 1.1 Cấu trúc bộ gene của HPV 3 

Hình 1.2 Cấu trúc của protein E7 5 

Hình 1.3 Tác động của protein E7 lên các quá trình nội bào 6 

Hình 1.4 Hệ thống phát hiện trực tiếp 13 

Hình 1.5 Hệ thống avidin-biotin 13 

Hình 1.6 Hệ thống polymer – kháng thể thứ cấp – enzyme 14 

Hình 1.7 ELISA và immuno PCR Nguyên lý và độ nhạy của hai phương pháp 15 

Hình 1.8 Immuno-PCR cổ điển, sử dụng protein lai giữa protein A và streptavidin 17 

Hình 1.9 Immuno-PCR phổ biến 18 

Hình 1.10 Sơ đồ mô tả đoạn DNA marker được gắn cộng hợp vào kháng thể 19 

Hình 1.11 Immuno-PCR trực tiếp 20 

Hình 1.12 Immuno-PCR sử dụng các hạt từ phủ kháng thể 21 

Hình 1.13 Immuno-PCR sử dụng “bio-barcode” 21 

Hình 1.14 Immuno-PCR sử dụng LG protein và hệ thống phát hiện Tus-Ter 22 

Hình 2.1 Buồng đếm hồng cầu 31 

Hình 2.2 Sơ đồ phương pháp ELISA 38 

Hình 2.3 Sơ đồ phương pháp checkerboard 38 

Hình 2.4 Sơ đồ phương pháp immuno-PCR 39 

Hình 3.1 Mô hình phương pháp lai hóa tế bào miễn dịch sử dụng trong đề tài 41 

Hình 3.2 Lai hóa tế bào miễn dịch sử dụng KTĐD 1D5 trên dòng tế bào HeLa và C33A với các nồng độ kháng thể 10 µg/ml (A1, A2), 5 µg/ml (B1, B2), 2,5 µg/ml (C1, C2) 42 

Hình 3.3 Lai hóa tế bào miễn dịch sử dụng KTĐD 4H5 trên dòng tế bào HeLa và C33A với các nồng độ kháng thể 10 µg/ml (A1, A2), 5 µg/ml (B1, B2), 2,5 µg/ml (C1, C2) 43 

Trang 7

vi

Hình 3.4 Lai hóa tế bào miễn dịch sử dụng kháng thể 1D5 (10 µg/ml) trên các dòng

tế bào HeLa (A), C33A (B), K1 chuyển vector pEGFP-E7HPV18 (C),

CHO-K1 chuyển vector pEGFP-C2 (D), CaSki (E) 44 

Hình 3.5 Lai hóa tế bào miễn dịch sử dụng kháng thể 4H5 (10 µg/ml) trên các dòng tế bào HeLa (A), C33A (B), K1 chuyển vector pEGFP-E7HPV18 (C), CHO-K1 chuyển vector pEGFP-C2 (D), CaSki (E) 45 

Hình 3.6 Lai hóa tế bào miễn dịch trên dòng tế bào HeLa với kháng thể 1D5 (10 µg/ml), sử dụng tác nhân bộc lộ kháng nguyên là citrate pH 6 10 mM (A), EDTA pH 8 1 mM (B), không xử lý với tác nhân bộc lộ kháng nguyên (C) 46 

Hình 3.7 Lai hóa tế bào miễn dịch trên mẫu tế bào HeLa (A), CaSki (B), C33A (C) xử lý theo phương pháp ly tâm và trải lên 47 

Hình 3.8 Lai hóa tế bào miễn dịch trên các mẫu tế bào dịch phết cổ tử cung 49 

Hình 3.9 Mô hình kĩ thuật immuno-PCR và ELISA sử dụng trong đề tài 50 

Hình 3.10 Đồ thị xác định hằng số ái lực của KTĐD 4H5-biotin với kháng nguyên E7 HPV 18 tái tổ hợp tinh sạch 53 

Hình 3.11 PCR tạo DNA đánh dấu biotin 54 

Hình 3.12 Đồ thị khảo sát nồng độ kháng thể “bắt giữ” 1D5 55 

Hình 3.13 Đồ thị khảo sát nồng độ kháng thể “phát hiện” 4H5-biotin 56 

Hình 3.14 Đồ thị khảo sát nồng độ STV-AP 57 

Hình 3.15 Tối ưu hóa nồng độ DNA đánh dấu biotin sử dụng cho immuno-PCR 58 

Hình 3.16 Tối ưu hóa nồng độ streptavidin sử dụng cho immuno-PCR 59 

Hình 3.17 Tối ưu hóa tác nhân khóa giếng 60 

Hình 3.18 Kết quả immuno-PCR với protein E7 HPV 18 tái tổ hợp 61 

Trang 8

Phần mở ñầu

Lý do thực hiện và mục tiêu của ñề tài

Lớp bài toán ñiều phối xe (Vehicle Routing Problem – VRP) có ứng dụng rất rộng rãi trong nhiều lĩnh vực của ñời sống, ñặc biệt là trong lĩnh vực giao thông vận tải Mỗi bài toán VRP thực tế thường có các ràng buộc ñặc trưng riêng, nhưng nhìn chung tất cả ñều là bài toán NP-khó ðề tài này tập trung nghiên cứu và giải quyết một bài toán VRP thực tế, bắt nguồn từ nhu cầu ñiều phối các xe giao hàng của công ty Cổ phần sữa Việt Nam (Vinamilk), cơ sở TP.HCM Hiện nay, Vinamilk thực hiện việc ñiều phối xe giao hàng bằng tay với quy trình như sau: mỗi ngày, công ty sẽ nhận các ñơn ñặt hàng của khách hàng (số lượng ñơn hàng từ vài trăm ñến hơn một ngàn), ñến cuối ngày, nhân viên ñiều phối sẽ tổng hợp lại toàn bộ các ñơn ñặt hàng ñã nhận trong ngày, và bộ phận ñiều phối thường phải mất khoảng 6 ñến 8 tiếng (ñôi khi phải thức cả ñêm) ñể thực hiện việc phân bổ ñơn hàng lên xe và xác ñịnh ñường ñi cho các xe vào ngày hôm sau Cách làm này tốn khá nhiều thời gian và công sức mà ñôi khi lời giải thu ñược lại chưa hẳn tốt Do ñó, vấn ñề tự ñộng hóa trong khâu ñiều phối xe là một nhu cầu rất cần thiết ðiểm ñặc biệt của bài toán này là ngoài vấn ñề ñiều phối xe, bài toán còn yêu cầu phải xếp lịch vào kho cho các xe, yêu cầu có thể ñược mô hình hóa dưới dạng bài toán Flexible Job Shop Scheduling – một bài toán thuộc lớp bài toán NP – khó Sự lồng ghép của hai bài toán khó khiến cho bài toán giao hàng của Vinamilk trở nên khá phức tạp ðề tài

ñã ñề nghị một thuật giải metaheuristic dựa trên local search ñể giải quyết bài toán này, kết quả thực nghiệm ñược so sánh với kết quả xếp tay ñược lấy từ thực tế và kết quả ñã ñược công bố dưới dạng bài báo của một phương pháp dựa trên quy hoạch ñộng (áp dụng trên cùng bài toán)

Bố cục luận văn

Luận văn gồm có 5 chương:

Trang 9

- Chương 1: trình bày tổng quan về bài toán ñiều phối xe (Vehicle Routing Problem) – bao gồm ñịnh nghĩa bài toán, các biến thể của bài toán và sơ lược

về các hướng tiếp cận hiện nay ñể giải quyết bài toán

- Chương 2: trình bày chi tiết về bài toán mà luận văn tập trung nghiên cứu và giải quyết - bài toán giao hàng của Công Ty Cổ Phần Sữa Việt Nam – Vinamilk

- Chương 3: trình bày các kĩ thuật liên quan mà luận văn sẽ sử dụng ñể giải quyết bài toán giao hàng của Vinamilk

- Chương 4: trình bày chi tiết về thuật giải metaheurisitic dựa trên local search

mà luận văn ñề nghị ñể giải quyết bài toán giao hàng của Vinamilk

- Chương 5: trình bày kết quả thực nghiệm khi áp dụng thuật giải ñã ñề nghị lên một số bộ dữ liệu thực tế của Vinamilk

- Chương 6: trình bày kết luận và các hướng phát triển của ñề tài

Trang 10

Chương 1 Tổng quan về bài toán Vehicle Routing

1.1 Giới thiệu bài toán Vehicle Routing (VRP)

Bài toán ñiều phối xe (Vehicle Routing Problem) [59] - gọi tắt là VRP - là bài toán

mà trong ñó ta có sẵn một tập các xe (vehicle) và một tập các khách hàng

(customer), mỗi khách hàng yêu cầu một số lượng hàng nhất ñịnh, yêu cầu của bài

toán là phải phân phối hàng và tìm ñường ñi giao hàng cho các xe dựa trên một số mục tiêu cho trước sao cho tất cả các khách hàng ñều phải ñược giao hàng, một trong những mục tiêu phổ biến nhất là cực tiểu hóa tổng thời gian vận chuyển của

tất cả các xe Bài toán quen thuộc người ñưa thư (Travelling Salesman Problem -

gọi tắt là TSP) [16] chính là một trường hợp ñặc biệt của bài toán VRP với một xe

giao hàng duy nhất (người ñưa thư)

Bài toán VRP và các biến thể của nó ñều thuộc lớp các bài toán NP-khó [55] ðây

là một trong những bài toán có ứng dụng thực tế rất rộng lớn và ñã nhận ñược sự quan tâm, nghiên cứu của rất nhiều nhà khoa học trên thế giới trong suốt 50 năm

qua [4] Trong bài toán này, các xe sẽ xuất phát từ các kho hàng (depot) và ñi giao hàng cho các khách hàng, sau ñó quay trở về lại kho hàng Một số khái niệm chính

của bài toán gồm:

- Xe (vehicle): các phương tiện dùng ñể chuyên chở hàng, có thể có nhiều loại

xe khác nhau, chẳng hạn như xe tải nhỏ, xe tải lớn, xe gắn máy, Các khái

niệm gắn liền với loại xe bao gồm: sức chứa của xe (capacity) – thông số này cho biết số lượng hàng tối ña mà xe có thể chở, chi phí vận chuyển (gồm hai loại thông dụng: chi phí cố ñịnh - fixed cost - là chi phí cần thiết ñể xe có

thể khởi hành, chi phí này không phụ thuộc vào ñộ dài quãng ñường mà xe

phải ñi; chi phí ñộng - variable cost là chi phí tiêu tốn trên từng ñơn vị quãng ñường mà xe phải ñi), quãng ñường tối ña mà xe có thể ñi trong một ngày

(maximum route length), loại mặt hàng (commodity type) mà xe có thể chở,

Trang 11

- Kho hàng (depot): là nơi chứa hàng hóa và có thể cũng là ñịa ñiểm xuất

phát/ñịa ñiểm trở về của các xe, các xe sẽ lấy hàng tại kho ñể ñi giao hàng cho các khách hàng, sau khi giao xong, xe sẽ quay trở về lại kho hàng

- Khách hàng (customer): khách hàng có thể chỉ nhận hàng do xe giao tới, nhưng cũng có thể vừa nhận hàng (linehaul customer), vừa lấy hàng

(backhaul customer) Các khái niệm ñi kèm với khách hàng gồm: số lượng hàng mà khách yêu cầu (demand), loại mặt hàng mà khách yêu cầu, khoảng thời gian (time window) mà khách hàng cho phép xe ñến giao hàng (ví dụ:

khoảng thời gian của khách hàng A là [2p.m, 4p.m] nghĩa là khách hàng A chỉ cho phép xe ñến giao hàng (hoặc lấy hàng) trong khoảng thời gian từ

2p.m ñếm 4p.m, lượng thời gian cần thiết ñể thực hiện việc giao (nhận)

hàng (service time),

- Chuyến (route - trip): mỗi chuyến của một xe là một chu trình, với ñiểm xuất

phát và ñiểm kết thúc là kho hàng của xe, các ñiểm thành phần của chu trình tương ứng với ñịa ñiểm của các khách hàng mà xe ghé qua ñể giao (lấy) hàng

1.2 Các biến thể của bài toán VRP

Bài toán VRP có rất nhiều biến thể khác nhau dựa trên yêu cầu cụ thể của các bài toán thực tế Các biến thể này ñã tạo thành các nhánh nghiên cứu khác nhau, tất nhiên các phương pháp giải quyết các biến thể cũng có thể ñược chỉnh sửa ñể áp dụng qua lại lẫn nhau Một số biến thể quan trọng của bài toán VRP bao gồm [60][59]:

- Bài toán VRP với khoảng cách bất ñối xứng (Asymmetric VRP, gọi tắt là

AVRP): là bài toán VRP mà trong ñó, ñồ thị biểu diễn ñường ñi là một ñồ thị

có hướng Hầu hết các bài toán VRP trong thực tế ñều thuộc dạng này

- Bài toán VRP với nhiều kho hàng (Multi-Depot VRP, gọi tắt là MDVRP): bài

toán với nhiều kho hàng khác nhau, mỗi xe sẽ phụ thuộc vào một kho hàng

duy nhất (home depot)

Trang 12

- Bài toán VRP với ràng buộc sức chứa (Capacitated Vehicle Routing

Problem, gọi tắt là CVRP): trong bài toán này, mỗi loại xe có sức chứa

(capacity) khác nhau, yêu cầu bài toán là phải tìm ñường ñi cho các xe sao cho tổng lượng hàng mà xe phải chở tại thời ñiểm bất kì không ñược vượt quá sức chứa của xe

- Bài toán VRP với ràng buộc ñộ dài tối ña của quãng ñường mà xe ñược phép

ñi (Distance-Constrained VRP, gọi tắt là DVRP): trong bài toán này, gắn với

mỗi loại xe là một tham số thể hiện tổng ñộ dài quãng ñường tối ña mà mỗi

xe ñược phép ñi Yêu cầu bài toán là phải tìm ñường ñi cho các xe sao cho tổng quãng ñường mà mỗi xe phải ñi không ñược vượt quá tham số này

- Bài toán VRP với ràng buộc khoảng thời gian (VRP with Time Windows, gọi

tắt là VRPTW): trong bài toán này, mỗi khách hàng sẽ chỉ cho phép xe ñến

giao hàng trong một khoảng thời gian cho phép (time windows) nhất ñịnh, tương ứng với mỗi khách hàng i, khoảng thời gian này sẽ ñược biểu diễn bởi ñoạn [a i , b i ], nếu xe ñến ñịa ñiểm của khách hàng thứ i vào trước thời ñiểm

a i , xe sẽ phải ñứng chờ cho ñến thời ñiểm a i mới ñược giao hàng cho khách,

bên cạnh ñó, việc giao hàng của xe cho khách hàng thứ i cần kết thúc trước thời ñiểm b i

- Bài toán VRP với yêu cầu giao và nhận hàng (VRP Pickup and Delivery, gọi

tắt là VRPPD): bài toán này cho phép xe thực hiện cả hai chức năng - lấy hàng (pickup) từ một số khách hàng (linehaul customer) và ñem ñi giao (delivery) cho khách hàng khác (backhaul customer), bài toán này thường áp

dụng cho các dịch vụ vận chuyển hàng, trong ñó, khách hàng sẽ yêu cầu xe ñến chỗ mình ñể nhận hàng và giao ñến cho người nhận (một khách hàng khác) Khi ñó, tất nhiên xe phải ñến gặp khách hàng thứ nhất ñể lấy hàng trước, rồi mới có hàng ñể giao ñến cho người nhận Như vậy, trong bài toán

này sẽ có thêm một loại ràng buộc mới: ràng buộc thứ tự ñến gặp khách hàng (precedence constraint) Các xe phải tuân thủ thứ tự này, nghĩa là phải

Trang 13

gặp khách hàng ñặt giao hàng trước, rồi mới ñược ñến gặp khách hàng cần nhận hàng

- Bài toán VRP với yêu cầu giao hàng trước (VRP with Backhauls, gọi tắt là

VRPB): tương tự như bài toán VRPPD, bài toán này cũng cho phép xe giao

hàng và nhận hàng, nhưng có một chút khác biệt: xe không ñến gặp khách hàng ñể lấy hàng rồi giao cho khách hàng khác nữa mà ràng buộc thứ tự gặp

khách hàng ở ñây sẽ là: xe phải ñi giao hàng cho tất cả các khách hàng cần

nhận (linehaul customers) trước, rồi sau ñó mới ñến gặp các khách hàng cần giao (backhaul customers) ñể lấy hàng ñem về kho Wade và Salhi [10] ñã

ñề nghị một biến thể khác của bài toán VRPB, trong ñó, xe không cần phải giao hết hàng rồi mới ñược nhận hàng, mà có thể nhận hàng sớm hơn (tại một thời ñiểm nào ñó trong lúc giao hàng, thời ñiểm này ñược xác ñịnh dựa trên kinh nghiệm của tài xế, trạng thái hàng của xe tại thời ñiểm ñó,…)

- Bài toán VRP cho phép một xe ñi nhiều chuyến (bài toán này có rất nhiều tên gọi khác nhau, bao gồm: VRP with multiple use of vehicles, VRP with multi-

trips, VRP with multiple trips, VRP with multiple vehicle trips, gọi tắt chung

là VRPM): trong bài toán này, mỗi xe có thể chạy nhiều hơn một chuyến,

nghĩa là một chiếc xe có thể xuất phát từ kho hàng, ñi giao hàng, quay trở về kho hàng và lại lấy hàng ñi giao tiếp cho ñến khi tổng thời gian giao hàng của xe chạm mức cho phép

- Bài toán VRP cho phép chia nhỏ ñơn hàng (VRP with split delivery) [13]:

trong bài toán này, mỗi ñơn ñặt hàng của khách hàng ñược phép phân nhỏ ra thành các ñơn ñặt hàng với số lượng nhỏ hơn, khi ñó, một khách hàng có thể ñược giao hàng bởi nhiều hơn một xe Khi các ñơn ñặt hàng của các khách hàng có kích thước quá lớn, việc chia nhỏ các ñơn ñặt hàng này ra sẽ giúp tận dụng ñược tối ña sức chứa của xe

- Bài toán VRP với nhiều loại xe khác nhau [11]: là bài toán với tập các loại xe

có sức chứa và chi phí vận chuyển khác nhau Bài toán này có hai biến thể con, gồm:

Trang 14

+ Bài toán VRP với ñội xe cố ñịnh (Heterogeneous VRP, hoặc VRP with

Heterogeneous fleet of vehicles): Số lượng xe của mỗi loại là một hằng số

+ Bài toán VRP với ñội xe biến ñộng (Mixed fleet and size VRP, Fleet Size and

Mix VRP): Số lượng xe của mỗi loại cũng là một biến số, nghĩa là ngoài việc

ñịnh tuyến, ta còn cần phải xác ñịnh ñược số lượng xe mỗi loại cần dùng sao cho tốt nhất

- Bài toán VRP với yêu cầu loại xe phù hợp (VRP with site-dependence, gọi tắt

là SDVRP): trong bài toán này, mỗi khách hàng chỉ chấp nhận một số loại xe

nhất ñịnh, ñây cũng là một yêu cầu rất thực tế, chẳng hạn như với các khách hàng nằm trong hẻm nhỏ hoặc nằm ở ñường cấm xe tải lớn thì chỉ có các xe tải nhỏ hoặc xe máy mới có thể giao hàng ñến ñược

- Bài toán VRP với khách hàng ñược biểu diễn bởi các cung (Arc Routing

Problems )[12]: ñây là một bài toán ñặc biệt, khác với các bài toán VRP

thông thường, trong ñó, các khách hàng thay vì ñược biểu diễn bằng các ñiểm trong ñồ thị, thì sẽ ñược biểu diễn bằng các cung Bài toán này xuất phát từ yêu cầu của các bài toán thực tế, chẳng hạn như bài toán tìm ñường ñi cho các xe dọn tuyết trong mùa ñông, rải muối, rải cát lên mặt ñường băng

ñể hạn chế trơn trượt, khi ñó, các vị trí cần rải muối, cát hoặc lấy tuyết không

còn là các ñiểm nữa, mà là các ñoạn ñường

- Bài toán VRP với ñơn ñặt hàng theo chu kì (Periodic VRP): trong bài toán

này, các xe giao hàng cho mỗi khách hàng trong nhiều ngày (gọi là một chu kì), mỗi xe có thể gặp một khách hàng nhiều hơn một lần trong suốt chu kì Mỗi khách hàng sẽ có một tham số ñi kèm, quy ñịnh số lần mà xe phải ñến giao hàng cho khách trong suốt chu kì Một ứng dụng thực tế của bài toán này là bài toán thu gom rác với khách hàng là các siêu thị, các cửa hàng tạp hóa,…, trong ñó, các siêu thị lớn thường cần gom rác ngày một lần, trong khi

các cửa hàng tạp hóa nhỏ thì chỉ cần một tuần hai lần là ñủ

- Bài toán VRP ña mục tiêu (Multi Objective VRP): ñây là hướng bài toán mới

ñược phát triển trong những năm gần ñây do nhu cầu xuất phát từ thực tế

Trang 15

Trong bài toán này, ngoài mục tiêu cực tiểu hóa tổng chi phí (thời gian) vận chuyển, còn có các mục tiêu khác, chẳng hạn như: cực tiểu hóa số lượng xe cần dùng ñể phục vụ hết nhu cầu khách hàng, cân bằng về tổng quãng ñường, tổng thời gian phải ñi giữa các tuyến ñường nhằm ñảm bảo ñộ công bằng giữa các tài xế (bằng cách giảm thiểu ñộ chênh lệch ñộ dài, thời gian di chuyển giữa tuyến ñường dài nhất và tuyến ñường ngắn nhất), giảm thiểu rủi

ro khi chuyên chở các hàng hóa nguy hiểm, tạo mối quan hệ thân quen giữa tài xế và khách hàng

Tất nhiên, các biến thể trên của bài toán VRP có thể kết hợp lại với nhau ñể tạo nên các biến thể mới cho phù hợp với bài toán thực tế cụ thể Chẳng hạn như: kết hợp bài toán CVRP (bài toán VRP với ràng buộc sức chứa của xe) và bài toán AVRP (bài toán VRP với ñồ thị biểu diễn ñường ñi là ñồ thì có hướng), ta có bài toán ACVRP (bài toán bài toán VRP với ñồ thị biểu diễn ñường ñi là ñồ thị có hướng và

có ràng buộc sức chứa của xe) Bài toán mà luận văn này giải quyết là một bài toán VRP thực tế và cũng là một dạng biến thể kết hợp của các biến thể ñã nêu trên nhưng ñược bổ sung thêm một số yêu cầu ñặc trưng khác

1.3 Các hướng tiếp cận cho bài toán VRP

Các hướng tiếp cận cho bài toán VRP và các biến thể của nó có thể ñược chia làm 4 nhóm chính [4] [35]: nhóm các thuật toán chính xác, nhóm các thuật giải xấp xỉ, nhóm các thuật giải heuristics cổ ñiển và nhóm các thuật giải metaheuristic Sơ ñồ tóm tắt các hướng tiếp cận của từng nhóm ñược trình bày ở Hình 1 Sau ñây là chi tiết của từng nhóm:

- Nhóm các thuật toán chính xác (exact algorithms): là các thuật toán mà lời

giải thu ñược luôn ñảm bảo là lời giải tối ưu, các thuật toán chính xác cho bài VRP phần lớn ñược phát triển lên từ các thuật toán chính xác cho bài toán TSP và các biến thể của nó, gồm: các thuật toán branch and bound, quy hoạch ñộng (dynamic programming), các thuật toán dựa trên mạng phân luồng (network flow algorithms), các thuật toán set partitioning Do hạn chế

Trang 16

về mặt thời gian tìm kiếm, các thuật toán chính xác chủ yếu ñược sử dụng ñể giải quyết các bài toán VRP với kích thước nhỏ và số lượng ràng buộc hạn chế Với bài toán CVRP, các thuật toán chính xác hiện nay chỉ khả thi cho các bộ dữ liệu với số khách hàng nhỏ hơn hoặc bằng 135 [4]

- Nhóm các thuật giải xấp xỉ (approximate algorithms): là các thuật giải mà tỉ

lệ giữa chất lượng lời giải thu ñược so với lời giải tối ưu luôn ñược ñảm bảo

ở một mức nhất ñịnh cho trước Tương tự như các thuật toán chính xác, các thuật giải xấp xỉ cho bài toán TSP cũng ñược mở rộng ñể áp dụng cho bài toán VRP và các biến thể của nó [2] Các thuật toán ñược ñề nghị trong [33][34] là một trong các thuật toán tiêu biểu của nhóm này

- Nhóm các thuật giải heuristic cổ ñiển: các thuật giải này phát triển mạnh vào

khoảng các năm 1960 ñến 1990, hiện nay, các thuật giải này thường ñược dùng kèm trong các metaheuristic và ñảm nhận nhiệm vụ khởi tạo lời giải ban ñầu hoặc cải thiện chất lượng của lời giải sẵn có Sau ñây là một số thuật giải heuristic cổ ñiển tiêu biểu [4] [35]:

+ Nhóm các thuật giải khởi tạo (constructive heuristics):

• Các thuật giải Savings: ñược ñề nghị lần ñầu bởi Clarke và Wright [1] vào

năm 1964, thuật giải này xây dựng một lời giải theo phương pháp sau: ban ñầu, khởi tạo n chuyến tương ứng với n khách hàng, sau ñó, các chuyến này

sẽ ñược ghép lại với nhau cho ñến khi không thể ghép ñược nữa (do giới hạn sức chứa của xe), việc chọn các chuyến ñể ghép lại với nhau dựa trên một hàm saving Nhiều tác giả [61][62] ñã phát triển thêm các hàm saving khác nhau dựa trên phiên bản gốc của Clarke và Wright

• Các thuật giải Insertion: các thuật giải thuộc nhóm này sẽ xây dựng các

chuyến của lời giải bằng cách lần lượt chèn mỗi khách hàng vào một chuyến, các chuyến có thể ñược xây dựng ñồng thời hoặc tuần tự Tiêu chí

ñể chèn khách hàng vào các chuyến thường dựa trên nguyên lý của thuật

Trang 17

giải tham lam, một trong những tiêu chí ñơn giản nhất là chèn khách hàng vào chuyến sao cho tổng quãng ñường mà xe phải ñi thêm là nhỏ nhất

• Các thuật giải gom nhóm khách hàng trước, tìm ñường ñi sau (cluster-first,

route-second): quá trình tạo lập một lời giải ñược chia làm 2 bước – bước

thứ nhất: chia tập các khách hàng thành các tập con, mỗi tập con tương ứng với một chuyến, bước thứ 2: xác ñịnh ñường ñi cụ thể cho từng chuyến Hai thuật giải tiêu biểu nhất của nhóm này là thuật giải seed-based của Fisher và Jaikumar giới thiệu vào năm 1981[30] và thuật giải sweep-based của Gillet

và Miller giới thiệu vào năm 1974 [36]

+ Nhóm các thuật giải cải tiến chất lượng lời giải sẵn có (improvement

heuristics): các thuật giải thuộc nhóm này sẽ tìm cách cải tiến chất lượng của

lời giải hiện tại thông qua các bước chỉnh sửa lời giải hiện tại Các bước chỉnh sửa này ñược gọi là các phép move Có hai loại phép move cho bài toán VRP:

phép move tác ñộng lên một chuyến duy nhất (intra-route moves) phép move tác ñộng lên nhiều chuyến cùng một lúc (inter-route move) [37]

- Nhóm các thuật giải metaheuristic: bắt ñầu phát triển từ năm 1990, ñây là

nhóm các hướng tiếp cận có nhiều triển vọng nhất hiện nay và thu hút ñược

sự quan tâm của một lượng lớn các nhà nghiên cứu Tác giả M.Gendreau và các cộng sự ñã công bố một bài khảo sát chi tiết và khá ñầy ñủ về các thuật giải metaheuristic hiện nay cho bài toán VRP [41] Sở dĩ metaheuristícc phát triển mạnh mẽ trong những năm gần ñây là do trong nhiều trường hợp, các thuật giải metaheuristic cho phép tìm ñược các lời giải tương ñối tốt trong khoảng thời gian hợp lý cho các bài toán với không gian tìm kiếm quá lớn (ñặc biệt là các bài toán ứng dụng thực tế) mà các thuật toán chính xác hoặc các thuật toán xấp xỉ không thể khả thi Tuy nhiên, ñiểm bất lợi của các metaheuristic là vấn ñề lựa chọn giá trị phù hợp cho các tham số, cách làm thông dụng nhất hiện nay là dựa vào kinh nghiệm Các metaheuristic có thể chia làm hai nhóm chính:

Trang 18

+ Nhĩm các thuật giải metaheuristic dựa trên local search (local search

metaheuristics): Bắt nguồn từ một lời giải ban đầu (lời giải này gọi là lời giải

khởi tạo, cĩ thể được tạo thành từ nhiều phương pháp khác nhau, chẳng hạn như các constructive heursitics đã đề cập ở phần trên), các thuật giải Local Search sẽ thực hiện lặp đi lặp lại việc tìm kiếm trong miền khơng gian tìm kiếm của bài tốn nhằm mục đích tìm ra lời giải tối ưu, tại mỗi bước lặp của mình, thuật giải sẽ tìm kiếm và chỉ lựa ra một lời giải duy nhất để làm cơ sở cho bước lặp tiếp theo, đây chính là điểm khác biệt cơ bản nhất giữa nhĩm thuật giải Local Search so với nhĩm các thuật giải dựa trên quần thể, ở nhĩm các thuật giải dựa trên quần thể, sau mỗi bước lặp, kết quả thu được là cả một tập các lời giải, trong khi nhĩm Local Search chỉ chọn một lời giải duy nhất Tại mỗi bước lặp, thuật giải sẽ lấy lời giải duy nhất thu được từ bước lặp trước

làm lời giải hiện tại, thuật giải sẽ duyệt trong miền khơng gian láng giềng của

lời giải hiện tại để chọn ra lời giải thay thế cho lời giải hiện tại ở bước lặp kế sau Mỗi lời giải trong khơng gian láng giềng của lời giải hiện tại được gọi là

một láng giềng của lời giải hiện tại Sự tác động lên lời giải hiện tại để biến nĩ thành một lời giải láng giềng của nĩ gọi là một bước chuyển (move) Trong các local search, hai vấn đề quan trọng nhất cần quan tâm là tính tăng cường

(intensification) và tính đa dạng (diversification) của quá trình tìm kiếm, tính

tăng cường là khả năng tập trung tìm kiếm sâu ở những vùng khơng gian mà ta

dự đốn là sẽ chứa lời giải tối ưu, tính đa dạng là khả năng tìm đến những vùng khơng gian lời giải mới nhằm thốt ra khỏi các vùng chứa điểm tối ưu cục bộ Các local search khác nhau sẽ đưa ra các chiến lược khác nhau để đảm bảo sự tồn tại và cân bằng giữa hai yếu tố này Một số metaheuristic tiêu biểu của nhĩm này đã được áp dụng khá hiệu quả cho bài tốn VRP gồm:

• Thuật giải Tabu Search: được đề nghị lần đầu tiên bởi Fred Glover vào năm

1989 [40], thành phần chính quan trọng nhất của thuật giải Tabu Search là Tabu list, đây là một danh sách chứa một số phép move đã được áp dụng trong quá khứ, một phép move sẽ khơng được phép áp dụng lên lời giải hiện

Trang 19

tại chừng nào phép move này còn nằm trong Tabu list Nhiệm vụ của Tabu list là ñể tránh quay trở lại những lời giải ñã tìm trước ñó, nhằm tăng tính ña dạng của quá trình tìm kiếm Tuy nhiên, nếu một phép move ñang nằm trong Tabu list nhưng nó lại có thể giúp cải thiện chất lượng của lời giải tốt nhất hiện tại thì phép move này vẫn ñược chấp nhận sử dụng (aspiration criteria) Các thuật giải Tabu Search tiêu biểu cho bài toán VRP gồm [5][6][7][15]

• Thuật giải tôi luyện thép (Simulated Annealing): bắt nguồn từ thuật giải Metropolis-Hasting [22], thuật giải tôi luyện thép mô phỏng quá trình luyện thép trong tự nhiên vào lý thuyết ñề giải các bài toán tối ưu tổ hợp khó Ứng dụng tiêu biểu của thuật giải tôi luyện thép cho bài toán VRP có thể kể ñến bài báo [42]

• Các phiên bản deterministic của thuật giải tôi luyện thép: trong các phiên bản này, việc quyết ñịnh xem có chấp nhận một lời giải xấu hơn lời giải hiện tại hay không sẽ không dựa vào xác suất, mà ñược quyết ñịnh dựa vào kết quả của quá trình tìm kiếm trước ñó Các thuật giải tiêu biểu thuộc nhóm này gồm: thuật giải Threshold accepting, Record-to-record travel [43] và Great Deluge

• Thuật giải Variable Neighborhood Search (VNS): thuật giải VNS ñặc biệt ở chỗ cho phép tìm kiếm trên nhiều tập láng giềng khác nhau, nhờ ñó tăng tính ña dạng của quá trình tìm kiếm Các tập láng giềng sẽ ñược ñịnh nghĩa sẵn theo một ñộ ưu tiên cho trước, và tại mỗi bước lặp, các tập láng giềng sẽ ñược duyệt lần lượt, nếu lời giải láng giềng phát sinh ngẫu nhiên tập láng giềng có ñộ ưu tiên cao hơn không thể cải thiện chất lượng lời giải hiện tại, tập láng giềng kế tiếp sẽ ñược chọn ðể nâng cao chất lượng tìm kiếm, thuật giải VNS có thể kết hợp với các local search khác từ ñơn giản (thuật giải leo ñồi) ñến phức tạp (các metaheuristics khác thuộc nhóm local search) Các

Trang 20

thuật giải VNS cho hiệu quả cao ñối với các bài toán VRP ñược ñề cập ñến trong các bài báo [44] và [45]

• Thuật giải Large Neighborhood Search [14] và Adaptive Large Neighborhood Search [21]: các miền láng giềng ñược xét tại mỗi bước lặp của các thuật giải thuộc nhóm này thường có kích thước rất lớn, ñiều này sẽ giúp quá trình tìm kiếm có thể vượt ra khỏi những ñiểm tối ưu cục bộ

+ Nhóm các thuật giải dựa trên quần thể (population-based metaheuristics) gồm:

các thuật giải tiến hóa (Evolutionary Algorithms, gồm thuật giải di truyền [26] – Genetic Algorithm, và thuật giải Memetic [46]), những năm gần ñây còn có một số thuật giải khác dựa trên quy luật sống bầy ñàn của các loại ñộng vật trong tự nhiên như thuật giải bầy kiến (Ant Colony Algorithm) [9], thuật giải Particle Swarm Optimization [47]

Trang 21

Hình 1.1 Các hướng tiếp cận cho bài toán VRP

Trang 22

Chương 2 Bài toán giao hàng của công ty cổ phần sữa

Việt Nam - Vinamilk

2.1 Một số khái niệm và ñặc trưng của bài toán

Trạm xuất phát (home depot) và các kho hàng(depot) :

Vào ñầu ngày, tất cả các xe của công ty ñều khởi hành từ một trạm xuất phát duy nhất

(Xí Nghiệp Kho Vận Vinamilk – TP.HCM) và quay trở lại trạm xuất phát này sau khi

ñã giao hết số hàng ñược phân Trong quá trình ñi, xe sẽ ñến các kho hàng ñể lấy hàng

ñem ñi giao cho các khách hàng Hiện nay, Vinamilk TP.HCM có 2 kho hàng:

- Kho thứ nhất: Kho Trường Thọ -Thống Nhất (Quận Thủ ðức)

- Kho thứ hai: Nhà máy sữa Sài Gòn (Quận 12)

Các kho hàng này chỉ mở cửa cho xe lấy hàng trong khoảng thời gian từ 6h30 ñến 15h

Do ràng buộc về kích thước mặt bằng của kho, tại cùng một thời ñiểm, chỉ có tối ña 3

xe ñược vào mỗi kho cùng một lúc

Các loại mặt hàng:

Các loại mặt hàng lạnh của Vinamilk bao gồm hai nhóm:

- Nhóm kem – gồm các sản phẩm kem các loại

- Nhóm sữa chua - gồm các sản phẩm: sữa chua các loại, fromage, provi

Các xe chở hàng lạnh ñều yêu cầu phải có máy lạnh, nhưng nhóm kem yêu cầu nhiệt

ñộ thấp hơn nhóm sữa chua và mặt hàng khác Do ñó, xe chở ñược kem thì cũng có thể chở ñược các mặt hàng thuộc nhóm sữa chua, nhưng ñiều ngược lại thì không ñúng

ðội xe:

ðội xe lạnh của Vinamilk TP.HCM hiện nay gồm 23 chiếc (thuộc tổ xe Lạnh Phố), với sức chứa và khả năng chở khác nhau Trong ñó, có 11 xe có thể chở ñược cả kem

và sữa chua Các xe còn lại chỉ có thể chở sữa chua Tại một thời ñiểm, mỗi xe chỉ có

thể chở một nhóm mặt hàng Ở ñây, chi phí vận chuyển của các xe ñược xem là như

nhau (mặc dù sức chứa khác nhau) Mỗi xe có hai thông tin quan trọng: loại mặt hàng

mà xe có thể chở, sức chứa (tương ứng với từng loại mặt hàng) Vào ñầu ngày, tất cả các xe ñều tập trung sẵn ở một ñịa ñiểm chung duy nhất: Xí nghiệp kho vận Các xe phải quay trở lại ñịa ñiểm này sau khi kết thúc lịch trình hoạt ñộng trong ngày của mình Thông tin cụ thể về sức chứa của từng xe ñược liệt kê trong Bảng 2.1

Bảng 2.1 Thông tin chi tiết về ñội xe của Vinamilk

Trang 23

Sức chứa (ñơn vị: thùng)

STT

Sức chứa (ñơn vị: thùng) Sữa chua Kem Sữa chua Kem

trước khi bắt ñầu một chuyến mới; yêu cầu này giúp tài xế tránh ñược khó khăn khi phải xếp hàng lên xe khi lấy hàng ở các kho xen kẽ nhau nhiều lần trong quá trình ñi

giao hàng Bài toán cho phép một xe có thể ñi nhiều chuyến trong một ngày

- Loại mặt hàng (mỗi ñơn hàng chỉ thuộc một loại mặt hàng duy nhất)

- Số lượng hàng yêu cầu

- Kho hàng chứa ñơn hàng này (hàng ñể giao cho mỗi ñơn hàng sẽ ñược ñóng gói lại sẵn thành kiện và ñặt tại một kho nào ñó, khi ñi giao hàng, các xe bắt buộc phải ñến ñúng kho và lấy ñúng kiện hàng của ñơn hàng tương ứng)

Thời gian lấy/giao hàng:

Trang 24

Thời gian lấy hàng tại kho v

sẽ là tổng của hai thành ph

hàng phải lấy), và thời gian lấy(giao)

ñược tính bằng công thức:

Thời gian lấy hàng = t

Trong bài toán này, thời gian l

làm thủ tục tại mỗi ñịa chỉ giao hàng là 10 phút, t

Hình 2.1 Hình minh họa các khái niệm trong b

2.2 Ràng buộc của bài toán

Bài toán có 7 ràng buộc sau:

1 Các xe ñược phép ghé kho lấy h

2 Do giới hạn về thời gian hoạt ñộng của xe tải trong th

phép bắt ñầu giao hàng t

xe kết thúc trước 8h, xe ph

3 Thời ñiểm trở về lại trạm xuất phát của các xe không ñ

4 Tại mỗi thời ñiểm, mỗi xe chỉ ñ

5 Lượng hàng mà mỗi xe chở

của xe ñối với loại mặt h

6 ðối với mỗi chuyến, xe phải giao hết to

chuyến hiện tại ñể bắt ñầu một chuyến ñi mới

ại kho và thời gian giao hàng tại mỗi ñịa chỉ giao hàng c

ành phần: thời gian làm thủ tục (không phụ thuộc v

ời gian lấy(giao) hàng (phụ thuộc vào số lượng h

àng = tổng số thùng hàng * tốc ñộ lấy(giao) h

ời gian làm thủ tục tại kho ñược quy ñịnh là 15 phút, thgiao hàng là 10 phút, tốc ñộ lấy (giao) hàng là 3 giây/thùng

ọa các khái niệm trong bài toán giao hàng của Vinamilk

a bài toán và thành phần của lời giải

ộc sau:

ợc phép ghé kho lấy hàng trong khoảng thời gian từ 6h30 ñến 15h

ới hạn về thời gian hoạt ñộng của xe tải trong thành phố, các xe chỉ ñ

àng từ 8h Nghĩa là, nếu ñợt ghé kho lấy hàng ñ8h, xe phải ñứng chờ cho ñến 8h mới ñược phép ñi giao h

ời ñiểm trở về lại trạm xuất phát của các xe không ñược vượt quá 15h

ại mỗi thời ñiểm, mỗi xe chỉ ñược chở một loại hàng duy nhất

ỗi xe chở tại mỗi thời ñiểm không ñược vượt

ối với loại mặt hàng mà xe ñang chở

ối với mỗi chuyến, xe phải giao hết toàn bộ số hàng ñã lấy trư

ến hiện tại ñể bắt ñầu một chuyến ñi mới

ủa Vinamilk

ảng thời gian từ 6h30 ñến 15h

ố, các xe chỉ ñược àng ñầu tiên của

ợc phép ñi giao hàng

ợt quá 15h

ợt quá sức chứa

ước khi kết thúc

Trang 25

Tất cả các ràng buộc trên ñều là các ràng buộc cứng, nghĩa là lời giải của bài toán chỉ ñược chấp nhận khi thỏa tất cả các ràng buộc trên

Lời giải của bài toán gồm có ba thành phần:

- Tập xe sẽ sử dụng ñể giao hàng (là tập con của tập 23 xe của xí nghiệp)

- Thông tin về danh sách khách hàng, thứ tự giao hàng của từng chuyến của các

xe trong tập xe ñược chọn

- Thứ tự xếp hàng của các xe tại từng kho

2.3 Mục tiêu của bài toán

Bài toán có hai mục tiêu:

- Mục tiêu thứ nhất: Cực tiểu hóa số xe cần dùng ðây là mục tiêu quan trọng nhất và có ñộ ưu tiên cao nhất

- Mục tiêu thứ hai: Cực tiểu hóa tổng thời gian di chuyển (total traveling time)

của tất cả các xe – thời gian di chuyển này không tính thời gian chất hàng/bốc

dỡ hàng tại kho/vị trí khách hàng

2.4 Các bài toán liên quan

Bài toán giao hàng lạnh trong thành phố của Vinamilk là một dạng kết hợp của nhiều biến thể của bài toán VRP trong lý thuyết, bao gồm:

- Bài toán VRP với khoảng cách bất ñối xứng (AVRP): do dữ liệu ñường ñi lấy

từ thực tế nên ñồ thị biểu diễn khoảng cách giữa các ñiểm là ñồ thị có hướng

- Bài toán VRP với ràng buộc sức chứa (CVRP): các xe ñều có ràng buộc về sức chứa

- Bài toán VRP với ràng buộc về ñộ dài tối ña của quãng ñường mà mỗi xe có thể

ñi (DVRP): các xe phải về kho trước khoảng thời gian quy ñịnh là 4h chiều

- Bài toán VRP cho phép một xe ñi nhiều chuyến (VRPM): các xe ñược phép ñi nhiều chuyến trong một ngày

- Bài toán VRP với nhiều loại xe khác nhau (Heterogeneous VRP): tập 23 xe cho trước có sức chứa khác nhau ñối với từng loại mặt hàng

2.5 Sự khác biệt của bài toán so với các bài toán VRP ñã ñược công bố

- Bài toán của Vinamilk khác với các bài toán CVRP cơ bản vì có ñến hai loại mặt hàng, và sức chứa của các xe cũng tùy thuộc vào từng loại mặt hàng

Trang 26

- Bài toán của Vinamilk tuy có nhiều kho hàng, nhưng lại khác với bài toán Multi-depot VRP trong lý thuyết vì: ñối với bài toán Multi-depot VRP, mỗi xe

sẽ thuộc một kho cố ñịnh duy nhất, trong khi ở bài toán của Vinamilk, các xe có thể ñến bất kì kho hàng nào ñể lấy hàng; mặt khác, các khách hàng trong bài toán Multi-depot VRP có thể nhận hàng từ bất cứ kho hàng nào, trong khi ở bài toán của Vinamilk, mỗi ñơn hàng ñã ñược chỉ ñịnh sẵn kho chứa, và các xe bắt buộc phải giao ñúng kiện hàng của ñơn hàng tại kho ñã chỉ ñịnh

- Có lồng ghép một bài toán NP-khó khác ở bên trong – bài toán Flexible Job

Shop Scheduling [49]: do tại mỗi thời ñiểm, chỉ có tối ña 3 xe ñược vào một kho hàng lấy hàng cùng lúc, do ñó, nếu kho ñang hết chỗ, xe ñến lấy hàng phải ñứng chờ cho ñến khi có chỗ trống thì mới ñược vào, nếu xe phải chờ quá lâu thì có thể sẽ không kịp trở về xí nghiệp vào cuối ngày theo thời gian quy ñịnh (không vượt quá 15h) Do ñó, ngoài việc ñịnh tuyến cho các xe, một yêu cầu

khác của bài toán này là phải xếp lịch vào kho cho các xe Bài toán xếp lịch vào kho cho các xe có thể ñược mô hình hóa thành một bài toán Flexible Job Shop

Scheduling [49] – một lớp bài toán con thuộc lớp bài toán Machine Scheduling,

và cũng thuộc lớp bài toán NP khó Sự lồng ghép giữa hai bài toán khó (VRP và Flexible Job Shop Scheduling) khiến cho bài toán của Vinamilk trở nên rất phức tạp Theo khảo sát của tác giả thì cho ñến nay, bài toán VRP kết hợp với bài toán xếp lịch vào kho lấy hàng như vậy chỉ mới ñược ñề cập ñến trong một bài báo duy nhất [39], tuy nhiên, trong bài báo này, chỉ có một kho hàng duy nhất và tại mỗi thời ñiểm chỉ có 1 xe ñược phép vào kho lấy hàng – do ñó, bài

toán xếp lịch vào kho lấy hàng của [39] sẽ tương ñương với bài toán Job Shop

Scheduling [51] – bài toán tiền thân của bài toán Flexible Job Shop Scheduling

Trang 27

Chương 3 Các kĩ thuật liên quan

Phần này sẽ trình bày các kĩ thuật liên quan mà luận văn sử dụng ñể giải quyết bài toán ñiều phối xe của Vinamilk, gồm: thuật giải Tabu Search, thuật giải Large Neighborhood Search và bài toán Flexible Job Shop Scheduling

3.1 Thuật giải Tabu Search

Tabu Search là một trong những metaheuristic ñược áp dụng nhiều nhất cho các bài

toán tối ưu tổ hợp khó Trong phần này, chúng tôi sẽ giới thiệu sơ lược về các thành phần cơ bản nhất của thuật giải Tabu Search và cách hoạt ñộng của nó Ngoài các thành phần cơ bản này, thuật giải Tabu Search ñược áp dụng trong thực tế có rất nhiều biến thể, với rất nhiều chiến lược hiệu quả khác ñược bổ sung vào nhằm nâng cao khả năng tìm kiếm của thuật giải và ñược trình bày chi tiết tại tài liệu của tác giả Fred Glover [57], người ñược xem là cha ñẻ của thuật giải này

Bài toán mà thuật giải Tabu Search giải quyết là bài toán tối ưu, mục tiêu của bài toán

là tìm ra lời giải tốt nhất - lời giải mà tại ñó, hàm mục tiêu của bài toán ñạt giá trị cực

tiểu Hàm mục tiêu là hàm dùng ñể ño chi phí của một lời giải, lời giải có chi phí càng thấp thì càng tốt

Ý tưởng chính của thuật giải Tabu Search như sau: bắt nguồn từ một lời giải ban ñầu (lời giải này gọi là lời giải khởi tạo, có thể ñược tạo thành từ nhiều phương pháp khác nhau, chẳng hạn như: phương pháp thuật giải tham lam, phương pháp khởi tạo ngẫu nhiên, ), thuật giải Tabu Search sẽ thực hiện lặp ñi lặp lại việc tìm kiếm trong miền không gian tìm kiếm của bài toán nhằm mục ñích tìm ra lời giải tối ưu, tại mỗi bước lặp của mình, thuật giải Tabu Search sẽ tìm kiếm và chỉ lựa ra một lời giải duy nhất ñể làm cơ sở cho bước lặp tiếp theo

Tại mỗi bước lặp, Tabu Search sẽ lấy lời giải duy nhất thu ñược từ bước lặp trước làm lời giải hiện tại, thuật giải sẽ duyệt trong miền không gian láng giềng của lời giải hiện tại ñể chọn ra lời giải tốt nhất, lời giải này sẽ thay thế cho lời giải hiện tại ở trong bước lặp kế sau Mỗi lời giải trong không gian láng giềng của lời giải hiện tại ñược gọi là một láng giềng của lời giải hiện tại Sự tác ñộng lên lời giải hiện tại ñể biến nó thành một lời giải láng giềng của nó gọi là một bước chuyển

ðể tránh việc duyệt trở lại những lời giải ñã từng ñược duyệt, thuật giải Tabu Search

sử dụng một danh sách ñể lưu trữ một số bước chuyển ñã từng ñược sử dụng, gọi là

Trang 28

danh sách Tabu (Tabu list) Danh sách này sẽ chứa (một phần hoặc tất cả) thông tin

của những bước chuyển ñã ñược thực hiện trong một số bước lặp gần ñây, các bước

chuyển nằm trong danh sách Tabu ñược gọi là các bước chuyển Tabu (Tabu move)

Các bước chuyển này sẽ bị cấm sử dụng lại trong chừng nào nó còn nằm trong danh sách Tabu Một bước chuyển Tabu sẽ tồn tại trong danh sách Tabu trong một khoảng thời gian n bước lặp, sau ñó, bước chuyển này sẽ ñược loại ra khỏi danh sách Tabu và

trở về trạng thái bình thường (không bị cấm nữa), số n này ñược gọi là giá trị Tabu

tenure của bước chuyển, giá trị n này có thể cố ñịnh cho tất cả các bước chuyển hoặc

là một số ñược chọn ngẫu nhiên cho từng bước chuyển

Tuy nhiên, ñôi khi một số bước chuyển dù bị cấm (bước chuyển Tabu) nhưng nó lại có khả năng cải tiến chất lượng của lời giải tốt nhất hiện nay, do ñó, ñể tránh bỏ sót các

bước chuyển tốt này, Tabu Search ñưa ra một khái niệm nữa, ñó là khái niệm tiêu

chuẩn mong ñợi (aspiration criteria), cách áp dụng của tiêu chuẩn này như sau: nếu

một bước chuyển Tabu bất kì thỏa ñược tiêu chuẩn mong ñợi thì nó sẽ ñược loại ra khỏi danh sách Tabu ngay lập tức, cho dù giá trị Tabu tenure ñi kèm có là bao nhiêu ñi chăng nữa Tiêu chuẩn mong ñợi thường ñược dùng nhất là “nếu bước chuyển Tabu nào có thể làm cho lời giải hiện tại trở nên tốt hơn cả lời giải tốt nhất hiện nay thì bước chuyển Tabu ñó sẽ ñược loại ra khỏi danh sách Tabu ngay lập tức”

3.2 Thuật giải Large Neighborhood Search

Ý tưởng của thuật giải Large Neighborhood Search (gọi tắt là LNS) ñược ñề nghị lần ñầu tiên bởi Shaw [14] vào năm 1998 Thuật giải LNS là một thuật giải metaheuristic dựa trên Local Search, thuật giải thuộc nhóm các thuật giải Very Large Scale Neighborhood Search (gọi tắt là VLSN – các thuật giải Local Search với các miền láng giềng có kích thước rất lớn và biến ñộng) Với các thuật giải VLSN, các miền láng giềng ñược xét tại mỗi bước lặp thường có kích thước rất lớn, ñiều này sẽ giúp quá trình tìm kiếm có thể vượt ra khỏi những ñiểm tối ưu cục bộ, nhờ ñó có thể tìm ra ñược những lời giải gần với tối ưu toàn cục Tuy nhiên, chính vì kích thước miền láng giềng lớn mà các thuật giải VLSN khi chạy thường tốn rất nhiều thời gian Nhiều kĩ thuật ñã ñược ñề nghị ñể khắc phục vấn ñề này, từ ñó tạo nên nhiều biến thể VLSN khác nhau Thuật giải LNS chính là một trong những biến thể này Trong thuật giải LNS, việc duyệt miền láng giềng của lời giải hiện tại ñược thực hiện thông qua hai bước chính:

Trang 29

bước phá hủy (destroy) và bước chỉnh sửa (repair) [21] Tại bước phá hủy, một số phần tử của lời giải hiện tại sẽ bị loại ra, tạo nên một lời giải thành phần (partial

solution), sau ñó, tại bước chỉnh sửa, các phần tử vừa bị loại sẽ lần lượt ñược thêm trở

lại vào lời giải thành phần của bước trước, ñể tạo lại một lời giải hoàn chỉnh Như vậy, miền láng giềng tại mỗi bước lặp chính là tập các lời giải ñầy ñủ mới thu ñược sau khi

áp dụng hai bước phá hủy và chỉnh sửa lên lời giải hiện tại Phương pháp cụ thể ñược chọn ñể thực hiện bước phá hủy và bước chỉnh sửa sẽ quyết ñịnh lượng thời gian cần tiêu tốn cho một bước lặp Phương pháp ñơn giản nhất là chọn ngẫu nhiên tại bước phá hủy và thực hiện thêm các phần tử vào tại bước chỉnh sửa bằng một thuật giải tham lam ñơn giản

Hình 3.1 minh họa một bước lặp của thuật giải LNS cho bài toán CVRP với 21 khách hàng, trong ñó, hình phía trên bên trái là lời giải hiện tại, hình phía trên bên phải là lời giải sau khi thực hiện bước phá hủy, lời giải phía dưới là lời giải thu ñược sau khi thực hiện bước chỉnh sửa Ở ñây, tại bước phá hủy, 6 khách hàng sẽ ñược chọn ngẫu nhiên

ñể loại ra khỏi lời giải hiện tại (các khách hàng bị loại: ), và sau ñó sẽ thêm lần lượt trở lại dựa trên nguyên tắc của thuật giải tham lam như sau: tại mỗi bước thêm, chọn khách hàng c sao cho cực tiểu hóa ∆tc, trong ñó ∆tc là quãng ñường phải ñi thêm khi thêm c vào vị trí tốt nhất (vị trí mà tổng quãng ñường phải ñi thêm là ngắn nhất)

Hình 3.1 Mình họa một bước lặp của thuật giải LNS cho bài toán CVRP với 21

Trang 30

Hình 3.2 Mã giả của thuật giải LNS [21]

Hình 3.2 minh họa mã giả của thuật giải LNS, trong ñó, ñầu vào của thuật giải là một

lời giải hợp lệ (feasible solution) x, nghĩa là một lời giải thỏa tất cả các ràng buộc

cứng, x b là lời giải tốt nhất hiện tại, d(.) là hàm phá hủy, r(.) là hàm chỉnh sửa Ở ñây,

tại mỗi bước lặp, thay vì quét toàn bộ miền láng giềng và chọn ra lời giải tốt nhất,

thuật giải chỉ chọn một lời giải duy nhất x’ thuộc tập láng giềng N(x) (có thể phát sinh

ngẫu nhiên, hoặc chọn lời giải tốt nhất thuộc một tập con rất nhỏ của tập láng giềng

N(x)) (dòng 4) Tiêu chuẩn accept(x’.x) sẽ quyết ñịnh xem có chọn lời giải x’ thay thế

cho lời giải hiện tại hay không, hai tiêu chuẩn accept(x’.x) phổ biến nhất là:

- Chỉ chấp nhận các lời giải tốt hơn lời giải hiện tại: Nếu x’ < x thì

accept(x’.x)=true, ngược lại accept(x’.x)=false

- Chấp nhận theo tiêu chuẩn của thuật giải Simulated Annealing: Nếu

T ) x ( c ) ' x

< thì accept(x’.x)=true, ngược lại accept(x’.x)=false, với r là một số

ngẫu nhiên thuộc ñoạn [0,1]

Việc chọn phương pháp phá hủy và phương pháp chỉnh sửa sao cho hợp lý là các vấn

ñề rất quan trọng, quyết ñịnh tính hiệu quả của thuật giải LNS

- Quá trình phá hủy: việc chọn kích thước tập các phần tử bị loại ra khỏi lời giải

hiện tại rất quan trọng, nếu con số này quá nhỏ, quá trình tìm kiếm sẽ khó thoát

ra khỏi tối ưu cục bộ, nhưng nếu con số này quá lớn, việc tìm kiếm sẽ mất rất nhiều thời gian Hơn nữa, chiến lược chọn tập các phần tử bị loại cũng phải ñược chọn sao quá trình tìm kiếm có thể bao quát hết không gian lời giải, hoặc hướng ñược ñến nhiều vùng không gian lời giải có khả năng chứa tối ưu toàn cục, tránh việc “lẩn quẩn” quanh một miền không gian con duy nhất Do ñó, các chiến lược phá hủy thường có chứa yếu tố mang tính xác suất

Trang 31

- Quá trình chỉnh sửa: quá trình chỉnh sửa có thể thực hiện bằng phương pháp

heuristic (thông dụng nhất là thuật giải tham lam), hoặc bằng một thuật toán chính xác (có thể mô hình hóa về dạng Quy hoạch ràng buộc-Constraint Programming hoặc Quy hoạch nguyên hỗn hợp-Mixed Integer Programming và dùng các solver có sẵn ñể giải) Nếu sử dụng các phương pháp chính xác ñể giải, trong một số trường hợp sẽ giúp ñạt ñến tối ưu toàn cục nhanh hơn, tuy nhiên, trong một số trường hợp, có thể làm giảm tính ña dạng hóa (diversification) của quá trình tìm kiếm

3.3 Bài toán Flexible Job Shop Scheduling

3.3.1 Phát biểu bài toán

Bài toán Flexible Job Shop Scheduling là một mở rộng của bài toán Job Shop Scheduling và cũng là một bài toán NP-khó [58] Trong bài toán này, ta có:

-     là hạn chót của công việc J i, nghĩa là tất cả các thao tác của công

việc J i phải kết thúc việc xử lí trước thời ñiểm 

-     là thời ñiểm bắt ñầu sớm nhất của công việc J i, nghĩa là thao tác ñầu tiên  của công việc J i chỉ ñược phép thực hiện tại ngay hoặc sau thời ñiểm 

- Mỗi thao tác  của công việc Ji sẽ có một tập các máy    ñi kèm, ñó là tập các máy có thể xử lí ñược thao tác  (lưu ý là các tập  có thể giao nhau) Thời gian xử lí của thao tác  trên một máy !  ñược kí hiệu là

"#

Bài toán FJSP có hai yêu cầu:

- Yêu cầu thứ nhất - routing task: gán các thao tác của các công việc vào các

máy thích hợp (gán mỗi thao tác  vào một máy !  tương ứng)

Trang 32

- Yêu cầu thứ hai - sequencing task

của bài toán FJSP ñều ñược lấy từ b

[51]:

- Cực tiểu hóa thời gian kết t

trong ñó là thời gian kết thúc của

3.3.2 Biểu diễn lời giải bằ

Xét về thời gian xử lí của các

sequencing task: sau khi ñã gán các thao tác

ợp, cần sắp xếp thứ tự xử lí của các thao tác trên từng máy một cách hợp

ảm bảo thứ tự thực hiện ñã quy ñịnh sẵn của các thao tác thu

ọa một ví dụ của bài toán FJSP, trong ñó

Hình 3.3 Hình minh họa một bài toán FJSP

ợc thực hiện dựa tên một hàm mục tiêu cụ thể, các h

ợc lấy từ bài toán JSP, sau ñây là các hàm thông d

ực tiểu hóa thời gian kết thúc trễ nhất của các công việc :

ời gian kết thúc của công việc J i

ộ trễ (có trọng số) của các công việc :

ọng số thể hiện ñộ ưu tiên của công việc i, là ñ

ng (có trọng số) số lượng công việc bị trễ:

ọng số thể hiện ñộ ưu tiên của công việc i, = 1 n ngược lại = 0

ằng Disjunctive Graph

ề thời gian xử lí của các thao tác tại mỗi máy , ta có 2 trư

thao tác vào các máy ừng máy một cách hợp

Trang 33

- Trường hợp 1: Các "# trùng nhau với mọi ! , nghĩa là thời gian xử lí của mỗi thao tác  trên mỗi máy thuộc tập  là như nhau, khi ñó, giá trị "#

không phụ thuộc vào chỉ số k nên sẽ ñược thay bằng kí hiệu "

- Trường hợp 2: Các "# không trùng nhau

Trong khuôn khổ luận văn này, bài toán FJSP ñược xét tới là bài toán của trường hợp

1 Khi ñó, các máy trong tập  ñều tương ñương nhau và ta có thể biểu diễn lời giải

của bài toán bằng loại ñồ thị có tên là Disjunctive Graph [51] ðồ thị này có các ñặc

ñiểm sau (các kí hiệu của bài toán FJSP ñã phát biểu bên trên ñược sử dụng lại trong phần này):

- Là một ñồ thị có hướng với tập ñỉnh

diện cho một thao tác  của bài toán FJSP, mỗi ñỉnh   sẽ gắn liền với giá trị " – giá trị cho biết thời gian xử lí của thao tác 

- ðồ thị có hai tập cạnh:

+ Tập Conjunctive Arcs, hay còn gọi là tập Job Arcs: là tập cạnh có hướng biểu

diễn mối liên hệ giữa các thao tác trong cùng một công việc , một Conjunctive Arc nối từ ñỉnh   ñến ñỉnh   khi và chỉ khi thao tác  nằm trước thao tác

# trong dãy các thao tác của công việc 

+ Tập Disjunctive Arcs, hay còn gọi là tập Machine Arcs: là tập cạnh có hướng biểu

diễn mối liên hệ giữa các thao tác ñược xử lí trên cùng một máy, một Disjunctive Arc nối từ ñỉnh   ñến ñỉnh "  khi và chỉ khi thao tác  và thao tác %&cùng ñược xử lí trên cùng một máy, và  ñược xử lí trước %&

Bài toán FJSP ñã cho ta biết mối liên hệ giữa các thao tác thuộc cùng một công việc ,

nghĩa là ta ñã biết trước tập cạnh Conjunctive Arcs Tuy nhiên, tập cạnh Disjunctive

Arcs thì ta chưa biết và cần phải ñi tìm, bài toán chỉ cho biết hai ñỉnh nào có “khả

năng” ñược nối với nhau bằng một Disjunctive Arc: hai ñỉnh   và "  có thể

ñược nối với nhau bằng một Disjunctive Arc nếu và chỉ nếu  ' %&( ) Do vậy,

mục tiêu của bài toán FJSP là ñi xác ñịnh tập Disjunctive Arcs sao cho lời giải thu ñược là một lời giải hợp lệ: ñó là tập Disjunctive Arcs mà khi kết hợp với tập

Conjunctive Arcs sẽ không tạo ra chu trình trong ñồ thị biểu diễn lời giải

Trang 34

Trong ñồ thị Disjunctive Graph của bài toán FJSP, tập Conjunctive Arcs sẽ ñược biểu diễn bởi các cạnh nét liền, còn tập các Disjunctive Arc ứng cử viên sẽ ñược biểu diễn

bởi các cạnh nét ñứt Như vậy, mỗi cặp ñỉnh   và "  mà có ' %& ( ) sẽ

ñược nối với nhau bởi hai Disjunctive Arc ứng cử viên với chiều ngược nhau (vì  có thể ñược xử lí trước %& hoặc ngược lại)

Hình 3.4minh họa Disjunctive Graph của một bài toán FJSP và Hình 3.5 minh họa Disjunctive Graph của một lời giải của bài toán (các ñỉnh U, V1, V 2 , V 3 là các ñỉnh ảo ñược thêm vào ñể tính toán và sẽ ñược giải thích chi tiết ở phần 3.3.3

Hình 3.4 Hình minh họa Disjunctive Graph của một bài toán FJSP

Hình 3.5 Hình minh họa Disjunctive Graph của một lời giải bài toán FJSP

Trang 35

3.3.3 Thuật toán Critical path cho bài toán FJSP

Thuật toán Critcal path ñể tính thời gian kết thúc của các công việc :

Trong khuôn khổ luận văn này, hàm mục tiêu mà ta xét tới là: Cực tiểu hóa tổng ñộ trễ của các công việc :

*!,-+, trong ñó + là ñộ trễ của công việc J i và ñược tính bằng công thức:

+ ./01 ... Phương pháp thơng dụng để tính giá trị + phương pháp Critical Path [53] dựa Disjunctive Graph lời giải Trước tiên, ta thêm vào ñồ thị ñỉnh

sau:

- Một. .. giải toán FJSP

Thuật giải mà luận văn ñề nghị metaheurisitc dựa local search, thuật giải gồm có bốn bước, bước tập trung giải toán theo hướng khác nhau:

- Bước 1: tạo lời giải toán. .. vào

kho xe, nghĩa ta giả sử kho cho xe vào lấy hàng lúc ñược Lời giải thu ñược từ bước cho ta ước lượng số xe tối thiểu cần phải dùng cho toán

- Bước 2: từ lời giải thu từ

Ngày đăng: 07/07/2014, 23:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3]. G. Laporte, M. Gendreau , J. Y. Potvin, F. Semet, Classical and Modern Heuristics for the Vehicle Routing Problem, International Transaction in Operational Research, vol. 7, pp 285-300 Sách, tạp chí
Tiêu đề: International Transaction in Operational Research
[4]. G. Laporte (2009), Fifty Years of Vehicle Routing, Les Cahiers du GERAD, HEC Montréal, G–2009–43, 19 Sách, tạp chí
Tiêu đề: Fifty Years of Vehicle Routing
Tác giả: G. Laporte
Năm: 2009
[5]. J. F. Côté, J. Y. Potvin (2008), A tabu search heuristic for the vehicle routing problem with private fleet and common carrier, European Journal of Operational Research, 198(2), pp 464-469 Sách, tạp chí
Tiêu đề: European Journal of Operational Research
Tác giả: J. F. Côté, J. Y. Potvin
Năm: 2008
[6]. Li, F., Golden, B.L., and Wasil, E.A (2005), Very large-scale vehicle routing: New test problems, algorithms, and results, Computers and Operations Research, vol. 32, 1165-1179 Sách, tạp chí
Tiêu đề: Computers and Operations Research
Tác giả: Li, F., Golden, B.L., and Wasil, E.A
Năm: 2005
[7]. Cordeau, J.-F., Laporte, G., and Mercier (2004), A. Improved tabu search algorithm for the handling of route duration constraints in vehicle routing problems with time windows, Journal of the Operational Research Society, vol. 55, pp 542–546 Sách, tạp chí
Tiêu đề: Journal of the Operational Research Society
Tác giả: Cordeau, J.-F., Laporte, G., and Mercier
Năm: 2004
[8]. Prins, C (2004), A simple and effective evolutionary algorithm for the vehicle routing problem, Computers &amp; Operations Research, vol. 3, pp 1985–2002 [9]. Reimann, M., Doerner, K., and Hartl, R.F. D-Ants (2004), Savings based antsdivided and conquer the vehicle routing problem, Computers &amp; Operations Research, vol. 31, pp 563-591 Sách, tạp chí
Tiêu đề: Computers & Operations Research", vol. 3, pp 1985–2002 [9]. Reimann, M., Doerner, K., and Hartl, R.F. D-Ants (2004), Savings based ants divided and conquer the vehicle routing problem, "Computers & Operations Research
Tác giả: Prins, C (2004), A simple and effective evolutionary algorithm for the vehicle routing problem, Computers &amp; Operations Research, vol. 3, pp 1985–2002 [9]. Reimann, M., Doerner, K., and Hartl, R.F. D-Ants
Năm: 2004
[10]. A.C.Wade, S. Salhi (2002), An investigation into a new class of vehicle routing problem with backhauls, the International Journal of Management Science, vol. 30, pp 479 – 487 Sách, tạp chí
Tiêu đề: the International Journal of Management Science
Tác giả: A.C.Wade, S. Salhi
Năm: 2002
[12]. Wứhlk, S., A decade of capacitated arc routing (2007), in B.Golden, S.Ragavan and E.Wasil (editors), The Vehicle Routing Problem: Latest Advances and New Challenges, Springer-Verlag, Heidelberg, Germany, pp 29- 48 Sách, tạp chí
Tiêu đề: The Vehicle Routing Problem: Latest Advances and New Challenges
Tác giả: Wứhlk, S., A decade of capacitated arc routing
Năm: 2007
[13]. C. Archetti, M.G. Speranza (2008), The split delivery vehicle routing problem: a survey, in B.Golden, S.Ragavan and E.Wasil (editors), The Vehicle Routing Problem: Latest Advances and New Challenges, Springer-Verlag, Heidelberg, Germany, pp 3-29 Sách, tạp chí
Tiêu đề: The Vehicle Routing Problem: Latest Advances and New Challenges
Tác giả: C. Archetti, M.G. Speranza
Năm: 2008
[14]. P. Shaw (1998), Using constraint programming and local search methods to solve vehicle routing problems, in Proceedings of the 4 th International Conference on Principles and Practice of Constraint Programming (CP-98), Pisa, Italy, pp 417–431 Sách, tạp chí
Tiêu đề: in Proceedings of the 4"th" International Conference on Principles and Practice of Constraint Programming (CP-98)
Tác giả: P. Shaw
Năm: 1998
[15]. N. Christofidesand, S. Eilon (1969), An algorithm for the vehicle dispatching problem, Operational Research Quarterly, vol. 20, pp 309–318 Sách, tạp chí
Tiêu đề: Operational Research Quarterly
Tác giả: N. Christofidesand, S. Eilon
Năm: 1969
[16]. J.D.C. Little, K.G. Murty,D.W. Sweeney and C. Karel (1963), An algorithm for the travelling salesman problem, Operations Research, vol. 11, pp 972–989 Sách, tạp chí
Tiêu đề: Operations Research
Tác giả: J.D.C. Little, K.G. Murty,D.W. Sweeney and C. Karel
Năm: 1963
[17]. G. Laporte, H. Mercure and Y. Nobert (1986), An exact algorithm for the asymmetrical capacited vehicle routing problem, Networks, vol. 16, pp 33–46 Sách, tạp chí
Tiêu đề: Networks
Tác giả: G. Laporte, H. Mercure and Y. Nobert
Năm: 1986
[18]. N. Christofides, A. Mingozzi and P. Toth (1981), Exact algorithms for the vehicle routing problem, based on spanning tree shortest path relaxations, Mathematical Programming, vol. 20, pp 255–282 Sách, tạp chí
Tiêu đề: Mathematical Programming
Tác giả: N. Christofides, A. Mingozzi and P. Toth
Năm: 1981
[19]. D. Houck, J.C. Picard, M. Queyranne and R. Vemuganti (1980), The travelling salesman problem as a constrained shortest path problem: Theory and computation experience, Opsearch, vol. 17, pp 93–109 Sách, tạp chí
Tiêu đề: Opsearch
Tác giả: D. Houck, J.C. Picard, M. Queyranne and R. Vemuganti
Năm: 1980
[20]. M.L. Fisher (1994), Optimal solution of vehicle routing problems using minimum K-trees, Operations Research, vol. 42, pp 626–642 Sách, tạp chí
Tiêu đề: Operations Research
Tác giả: M.L. Fisher
Năm: 1994
[21]. S. Ropke and D. Pisinger (2006). An Adaptive Large Neighborhood Search Heuristic for the Pickup and Delivery Problem with Time Windows, Transportation Science, vol. 40, pp 455–472 Sách, tạp chí
Tiêu đề: Transportation Science
Tác giả: S. Ropke and D. Pisinger
Năm: 2006
[23]. Kirkpatrick, S , Gelatt, C.D, Vecchi, M.P (1983). Optimization by Simulated Annealing, Science, vol 220 (4598), pp. 671-680 Sách, tạp chí
Tiêu đề: Science
Tác giả: Kirkpatrick, S , Gelatt, C.D, Vecchi, M.P
Năm: 1983
[24]. William D. Harvey , Matthew L. Ginsberg (1995), Limited discrepancy search, in Proceedings of the 14th international joint conference on Artificial intelligence (IJCAI-95), Montreal, Quebec, Canada, pp 607-613 Sách, tạp chí
Tiêu đề: in Proceedings of the 14th international joint conference on Artificial intelligence (IJCAI-95)
Tác giả: William D. Harvey , Matthew L. Ginsberg
Năm: 1995
[25]. Russell Bent , Pascal Van Hentenryck (2004), A Two-Stage Hybrid Local Search for the Vehicle Routing Problem with Time Windows, Transportation Science, vol. 38 (4), pp 515-530 Sách, tạp chí
Tiêu đề: Transportation Science
Tác giả: Russell Bent , Pascal Van Hentenryck
Năm: 2004

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Các hướng tiếp cận cho bài toán VRP - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 1.1. Các hướng tiếp cận cho bài toán VRP (Trang 21)
Hình 2.1. Hình minh họa các khái niệm trong b 2.2. Ràng buộc của bài toán - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 2.1. Hình minh họa các khái niệm trong b 2.2. Ràng buộc của bài toán (Trang 24)
Hình 3.1 minh họa một bước lặp của thuật giải LNS cho bài toán CVRP với 21 khách  hàng, trong ủú, hỡnh phớa trờn bờn trỏi là lời giải hiện tại, hỡnh phớa trờn bờn phải là lời  giải sau khi thực hiện bước phỏ hủy, lời giải phớa dưới là lời giải thu ủược sa - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 3.1 minh họa một bước lặp của thuật giải LNS cho bài toán CVRP với 21 khách hàng, trong ủú, hỡnh phớa trờn bờn trỏi là lời giải hiện tại, hỡnh phớa trờn bờn phải là lời giải sau khi thực hiện bước phỏ hủy, lời giải phớa dưới là lời giải thu ủược sa (Trang 29)
Hình 3.2. Mã giả của thuật giải LNS  [21] - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 3.2. Mã giả của thuật giải LNS [21] (Trang 30)
Hình 3.3 minh họa một ví dụ của b - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 3.3 minh họa một ví dụ của b (Trang 32)
Hình 3.4. Hình minh họa Disjunctive Graph của một bài toán FJSP - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 3.4. Hình minh họa Disjunctive Graph của một bài toán FJSP (Trang 34)
Hình 3.4minh họa  Disjunctive Graph  của một bài toán FJSP và Hình 3.5 minh họa  Disjunctive Graph của một lời giải của bài toỏn (cỏc ủỉnh U, V1, V 2 , V 3  là cỏc ủỉnh ảo  ủược thờm vào ủể tớnh toỏn và sẽ ủược giải thớch chi tiết ở phần 3.3.3 - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 3.4minh họa Disjunctive Graph của một bài toán FJSP và Hình 3.5 minh họa Disjunctive Graph của một lời giải của bài toỏn (cỏc ủỉnh U, V1, V 2 , V 3 là cỏc ủỉnh ảo ủược thờm vào ủể tớnh toỏn và sẽ ủược giải thớch chi tiết ở phần 3.3.3 (Trang 34)
Hỡnh 3.6. Thuật toỏn Critical Path ủể tớnh - Phương pháp local search cho một bài toán giao hàng trong thực tế
nh 3.6. Thuật toỏn Critical Path ủể tớnh (Trang 37)
Hình 3.7. Hình minh họa   của một lời giải cho bài toán FJSP - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 3.7. Hình minh họa của một lời giải cho bài toán FJSP (Trang 37)
Hỡnh 3.8. Thuật toỏn Critical Path ủể tớnh &gt; - Phương pháp local search cho một bài toán giao hàng trong thực tế
nh 3.8. Thuật toỏn Critical Path ủể tớnh &gt; (Trang 38)
Hình 3.9. Hình minh họa   và &gt;   của một lời giải của bài toán FJSP - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 3.9. Hình minh họa và &gt; của một lời giải của bài toán FJSP (Trang 39)
Hình 4.1. Hình minh h 4.1.2. Bước 1.2: Cải thiện l - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 4.1. Hình minh h 4.1.2. Bước 1.2: Cải thiện l (Trang 43)
Bảng 4.1. Sự tương quan giữa các khái niệm trong bài toán giao hàng của Vinamilk  với các khái niệm trong bài toán FJSP - Phương pháp local search cho một bài toán giao hàng trong thực tế
Bảng 4.1. Sự tương quan giữa các khái niệm trong bài toán giao hàng của Vinamilk với các khái niệm trong bài toán FJSP (Trang 49)
Hỡnh 4.3. Thuật toỏn Critical Path (sau khi sửa ủổi) ủể tớnh - Phương pháp local search cho một bài toán giao hàng trong thực tế
nh 4.3. Thuật toỏn Critical Path (sau khi sửa ủổi) ủể tớnh (Trang 50)
Hỡnh 4.4. Thuật toỏn Critical Path (sau khi sửa ủổi) ủể tớnh &gt; - Phương pháp local search cho một bài toán giao hàng trong thực tế
nh 4.4. Thuật toỏn Critical Path (sau khi sửa ủổi) ủể tớnh &gt; (Trang 50)
Hình 4.5. Thuật giải của bước 3  4.4. Bước 4: Thêm xe mới vào lời giải hiện tại - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 4.5. Thuật giải của bước 3 4.4. Bước 4: Thêm xe mới vào lời giải hiện tại (Trang 54)
Hình 4.6. Thuật giải của bước 4 1.ðặt qcur = lời giải tốt nhất thu ủược từ cỏc bước trước 2.while (qcur vẫn còn vi phạm ràng buộc và  V(qcur)( ]) - Phương pháp local search cho một bài toán giao hàng trong thực tế
Hình 4.6. Thuật giải của bước 4 1.ðặt qcur = lời giải tốt nhất thu ủược từ cỏc bước trước 2.while (qcur vẫn còn vi phạm ràng buộc và V(qcur)( ]) (Trang 56)
Bảng 5.1. Thông tin 19 bộ dữ liệu của Vinamilk - Phương pháp local search cho một bài toán giao hàng trong thực tế
Bảng 5.1. Thông tin 19 bộ dữ liệu của Vinamilk (Trang 57)
Bảng 5.2. Kết quả thực nghiệm (với bài báo [38]) - Phương pháp local search cho một bài toán giao hàng trong thực tế
Bảng 5.2. Kết quả thực nghiệm (với bài báo [38]) (Trang 60)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w