Tải bản đầy đủ (.pdf) (79 trang)

Nghiên cứu bài toán định tuyến xe, ứng dụng trong tối ưu hóa thu gom rác thải đô thị (LV thạc sĩ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.86 MB, 79 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

HỨA MẠNH TUYỂN
HỆ THỐNG THÔNG TIN

Hứa Mạnh Tuyển

NGHIÊN CỨU BÀI TOÁN ĐỊNH TUYẾN XE, ỨNG DỤNG
TRONG TỐI ƯU HÓA THU GOM RÁC THẢI ĐÔ THỊ

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

2015 – 2017
Hà Nội - 2016
HÀ NỘI


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

Hứa Mạnh Tuyển

NGHIÊN CỨU BÀI TOÁN ĐỊNH TUYẾN XE, ỨNG DỤNG
TRONG TỐI ƯU HÓA THU GOM RÁC THẢI ĐÔ THỊ

Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.01.04

LUẬN VĂN THẠC SĨ KỸ THUẬT


(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS. NGUYỄN TRỌNG KHÁNH

Hà Nội - 2016


LỜI CẢM ƠN
Để hoàn thành luận văn tốt nghiệp “Nghiên cứu bài toán định tuyến xe và
ứng dụng trong tối ưu hóa thu gom rác thải đô thị” lời đầu tiên tôi xin gửi cám ơn
sâu sắc nhất tới TS. Nguyễn Trọng Khánh đã hướng dẫn và chỉ bảo tôi tận tình
trong suốt thời gian làm khóa luận.
Tôi xin chân thành cảm ơn Ban giám hiệu nhà trường, các thầy cô giáo
Trường Học viện Công nghệ Bưu chính Viễn thông, các giảng viên đã truyền đạt
cho tôi những kiến thức, kỹ năng, tạo mọi điều kiện giúp đỡ, động viên, chia sẻ để
tôi hoàn thành bản luận văn này. Ngoài ra tôi cũng xin cảm ơn chương trình hỗ trợ
đề tài nghiên cứu khoa học của Dự án hợp tác Đại học thể chế giữa Học viện Nông
nghiệp Việt Nam và Hội đồng liên đại học Pháp ngữ vương quốc Bỉ đã hỗ trợ tôi
thực hiện luận văn này.
Bản luận văn chắc chắn còn nhiều thiết sót, rất mong được các thầy cô giáo
trong hội đồng chấm luận văn xem xét, góp ý kiến để luận văn được hoàn thiện hơn.
Tôi xin chân thành cảm ơn!
Hà nội, tháng

năm 2016

HỌC VIÊN

Hứa Mạnh Tuyển



LỜI CAM ĐOAN
Với mục đích học tập, nghiên cứu để nâng cao trình độ chuyên môn nên tôi
đã làm luận văn này một cách nghiêm túc và hoàn toàn trung thực. Trong luận văn,
tôi có sử dụng tài liệu tham khảo của một số tác giả, tôi đã nêu trong phần tài liệu
tham khảo ở cuối luận văn. Tôi xin cam đoan và chịu trách nhiệm về nội dung, sự
trung thực trong luận văn tốt nghiệp Thạc sĩ của mình.
Hà nội, tháng

năm 2016

HỌC VIÊN

Hứa Mạnh Tuyển


1

MỤC LỤC
LỜI CẢM ƠN ..................................................................................................1
LỜI CAM ĐOAN ............................................................................................2
MỤC LỤC ........................................................................................................1
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT .....................................3
DANH MỤC CÁC BẢNG ..............................................................................4
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ..........................................................5
MỞ ĐẦU ..........................................................................................................6
CHƯƠNG 1. GIỚI THIỆU VỀ BÀI TOÁN ĐỊNH TUYẾN XE ...................7
1.1. Tổng quan về lĩnh vực tối ưu hóa tổng hợp ..........................................7
1.2. Bài toán định tuyến xe và một số biến thể ............................................7

1.3. Một số giải thuật áp dụng cho bài toán VRP ......................................12
1.3.1. Giải thuật láng giềng gần nhất ......................................................13
1.3.2. Giải thuật tìm kiếm cục bộ ...........................................................16
1.3.3. Giải thuật tối ưu hóa đàn kiến ACO .............................................18
1.4. Kết luận ...............................................................................................29
CHƯƠNG 2. ĐỊNH TUYẾN XE TRONG TỐI ƯU HÓA THU GOM RÁC
THẢI ĐÔ THỊ ...........................................................................................................30
2.1. Phát biểu bài toán ................................................................................30
2.2. Hàm mục tiêu ......................................................................................33
2.3. Đề xuất giải pháp .................................................................................34
2.3.1. Giải thuật ......................................................................................35
2.3.2. Thực nghiệm bằng mô hình đa tác tử ...........................................42
2.4. Kết luận ...............................................................................................44
CHƯƠNG 3. TỐI ƯU HÓA THU GOM RÁC THẢI THÀNH PHỐ HÀ
GIANG ......................................................................................................................45
3.1. Hệ thống thu gom rác thải Thành phố Hà Giang ................................46
3.2. Tối ưu hóa thu gom rác thải tại thành phố Hà Giang ..........................50
3.2.1. Lộ trình tối ưu ...............................................................................52


2

3.2.2. Thí nghiệm với mô hình đa tác tử ................................................52
3.2.3. Kết quả và đánh giá ......................................................................53
3.3. Mô hình hệ thống tối ưu thu gom rác thải mở rộng ............................57
3.4. Kết luận ...............................................................................................61
CHƯƠNG 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...............................62
TÀI LIỆU THAM KHẢO..............................................................................63
PHỤ LỤC LUẬN VĂN .................................................................................68



3

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt

ABM

Agent Based Model

Mô hình dựa trên tác tử

ACO

Ant Colony Optimize

Tối ưu hóa đàn kiến

Ant System

Hệ kiến

AS

Cơ sở dữ liệu


CSDL
CSP

Covering Salesman Problem

CVRP

Capacity-constrained VRPs

DVRP

GCSP
GEO
GIS

GTSP

MST

Time- or distance-constrained
VRPs

Bài toán người bán hàng bao trùm
Bài toán định tuyến phương tiện với
ràng buộc về năng lực chuyên chở
Bài toán định tuyến phương tiện với
ràng buộc về thời gian hoặc khoảng
cách

Covering Bài toán người bán hàng bao trùm


Generalized
Salesman Problem

tổng quát

Geographical

Dữ liệu thông tin địa lý

Geographical

Information

System
Generalized

Traveling

Salesman Problem
Minimum

Spanning

Tree

Problem

OVRP


Open Vehicle Routing Problem

S-ACO

Simple Ant Colony Optimize

SVRP

Split Vehicle Routing Problem

Bản đồ số
Bài toán người bán hàng tổng quát
Bài toán cây khung nhỏ nhất
Bài toán định tuyến phương tiện mở
Giải thuật tối ưu hóa đàn kiến đơn
giản
Bài toán định tuyến phương tiện chia
tách

TSP

Traveling Salesman Problem

Bài toán người bán hàng

VRP

Vehicle Routing Problem

Bài toán định tuyến phương tiện



4

DANH MỤC CÁC BẢNG
Bảng 2.1. Giải thuật định tuyến

36

Bảng 2.2. Giải thuật tối ưu hóa đàn kiến ACO

40

Bảng 2.3. Giải thuật tính tổng xác suất

41

Bảng 2.4. Giải thuật tính toán xác suất lựa chọn

41

Bảng 2.5. Giải thuật tính toán tỉ lệ phụ thuộc mùi và khoảng cách

42

Bảng 2.6. Giải thuật cập nhật lại mùi kiến trên các cung đường

42

Bảng 3.1. Lộ trình thực tế và thể tích rác ca sáng


50

Bảng 3.2. Lộ trình thực tế và thể tích rác ca chiều

50


5

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1. Ví dụ bài toán người bán hàng bao trùm CSP
Hình 1.2. Ví dụ thực thi giải thuật láng giềng gần nhất cho bài toán
người bán hàng
Hình 1.3. (a) Ví dụ một trạng thái của bài toán người bán hàng. (b) Một
số láng giềng sinh ra sau khi thay đổi 2 cung.
Hình 1.4. Thí nghiệm chiếc cầu đôi. (a) Hai nhánh có kích thước bằng
nhau, (b) Một nhánh có kích thước gấp đôi nhánh kia

10
15

18

20

Hình 1.5. Thí nghiệm chiếc cầu đôi mở rộng.

22


Hình 1.6. Đồ thị tương ứng với mô hình trong thí nghiệm chiếc cầu đôi.

24

Hình 1.7. Các con kiến xây dựng các giải pháp để tìm đường đi từ tổ
(nút nguồn) đến nguồn thức ăn (nút đích) trên một đồ thị.

27

Hình 2.1. Quá trình thu gom và vận chuyển rác thải đô thị

31

Hình 2.2. Mô hình tính toán đề xuất

35

Hình 3.1. Quá trình thu gom rác thải ở thành phố Hà Giang

47

Hình 3.2. Bản đồ số các điểm tập kết rác và bãi rác của thành phố Hà
Giang

48

Hình 3.3. Áp dụng mô hình tại thành phố Hà Giang

51


Hình 3.4. Mô hình mô phỏng dựa trên tác tử.

55

Hình 3.5. Thử nghiệm lộ trình tối ưu tính toán được.

58

Hình 3.6. Mô phỏng hệ thống hỗ trợ quản lý thu gom vận chuyển rác
thải mở rộng

59


6

MỞ ĐẦU
Bài toán định tuyến phương tiện (Vehicle Routing Problem – VRP) đã xuất
hiện trên thế giới từ khá lâu trong hàng thập niên và có nhiều biến thể khác nhau tùy
thuộc vào từng kịch bản nội dung cụ thể. Vận chuyển rác thải có thể coi như một
bài toán định tuyến tìm đường đi có chi phí thấp nhất đi qua các điểm tập kết rác,
nhằm giảm tổng chi phí quản lý thu gom, vận chuyển rác thải. So với bài toán VRP
cổ điển, bài toán vận chuyển rác thải có thêm hai ràng buộc mới: (i) ràng buộc về
trọng tải của các xe cuốn ép rác; và (ii) ràng buộc về thứ tự các điểm phải viếng
thăm, cụ thể tất cả xe cuốn ép rác cần phải quay về điểm xử lý rác (bãi rác), trước
khi quay về điểm xuất phát.
Xe cuốn ép rác có sức chứa giới hạn, kết hợp với thể tích rác tại các điểm thu
gom có thể thay đổi, do đó xảy ra trường hợp khi chỉ mới hoàn thành gom rác được
một phần trên tuyến đường định sẵn thì xe cuốn ép rác đã đầy và phải thực hiện di
chuyển tới điểm xử lý rác, sau đó xe cuốn ép rác tiếp tục di chuyển lại đến điểm thu

gom tiếp theo trên lộ trình đã định sẵn. Vấn đề này làm tăng quãng đường di chuyển
của xe cuốn ép rác. Nên có thể đường đi ngắn nhất, nhưng chưa hẳn là đường đi có
chi phí tối ưu nhất.
Do đó, dưới sự hướng dẫn của TS. Nguyễn Trọng Khánh tôi tìm hiểu đề tài
“Nghiên cứu bài toán định tuyến xe, ứng dụng trong tối ưu hóa thu gom rác thải đô
thị”. Luận văn sẽ tập trung nghiên cứu các bài toán định tuyến xe, và biến thể của
chúng. Để từ đó áp dụng cho bài toán thu gom rác thải rắn đô thị, với 2 ràng buộc
cụ thể về giới hạn thể tích xe cuốn ép rác, và điểm kết thúc bắt buộc (điểm xử lý
rác) trước khi quay lại điểm xuất phát. Giải pháp đưa ra sẽ được áp dụng thử
nghiệm cho việc thu gom rác thải tại thành phố Hà Giang.


7

CHƯƠNG 1. GIỚI THIỆU VỀ BÀI TOÁN ĐỊNH TUYẾN
XE
1.1. Tổng quan về lĩnh vực tối ưu hóa tổng hợp
Tối ưu hóa bản chất là một ngành Toán học và được ứng dụng hiệu quả trong
nhiều ngành khác nhau. Từ các lĩnh vực gần gũi với Toán học như Công nghệ thông
tin, thiết kế chế tạo máy đến các lĩnh vực ít gần gũi hơn như quy hoạch tài nguyên,
điều khiển tự động, quản trị kinh doanh, kiến trúc đô thị, … đều có rất nhiều ứng
dụng, đặc biệt trong việc xây dựng hệ hỗ trợ ra quyết định và phát triển các hệ
thống lớn. Do đó, các lĩnh vực của tối ưu hóa ngày càng trở nên đa dạng. Một cách
tổng quát, bài toán được phát biểu như sau:
Cho trước một hàm 𝑓: 𝐴 → 𝑅 (từ tập A tới tập số thực R), tìm một phần tử x0
thuộc A sao cho 𝑓 (𝑥0 ) ≤ 𝑓(𝑥) với mọi x thuộc A (tìm cực tiểu hóa) hoặc sao cho
𝑓 (𝑥0 ) ≥ 𝑓(𝑥) với mọi x thuộc A (tìm cự đại hóa).
Tối ưu hóa tổng hợp (Combinatorial optimization) quan tâm tới các bài toán
mà trong đó tập các lời giải khả thi là rời rạc hoặc có thể rút gọn về một tập rời rạc.
Trong toán học ứng dụng và lý thuyết khoa học máy tính, tối ưu hóa tổng hợp là

một chủ đề về việc tìm kiếm một đối tượng tối ưu từ một tập hợp hữu hạn của các
đối tượng. Trong các bài toán tối ưu hóa tổng hợp, tìm kiếm tập lời giải đầy đủ
nhiều khi không khả thi trong thời gian thực của cuộc sống, bằng cách khác, lĩnh
vực tối ưu hóa tổng hợp quan tâm tới các bài toán mà phạm vi mà các lời giải khả
thi là rời rạc hoặc có thể rút gọn về một tập rời rạc với mục tiêu là tìm ra lời giải tốt
nhất. Một số bài toán nổi tiếng trong lĩnh vực tối ưu hóa tổng hợp là bài toán người
bán hàng (traveling salesman problem – TSP) và bài toán cây khung nhỏ nhất
(minimum spanning tree problem - MST)

1.2. Bài toán định tuyến xe và một số biến thể
Để xem xét bài toán định tuyến xe (Vehicle Routing Problem – VRP) đầu
tiên ta xem xét một trường hợp đặc biệt của nó, đó là bài toán người bán hàng
(Traveling Salesman Problem –TSP). Bài toán người bán hàng (TSP) và một số


8

biến thể của nó, như bài toán người bán hàng tổng quát GTSP (Generalized
Traveling Salesman Problem), bài toán người bán hàng bao trùm CSP (Covering
Salesman Problem), bài toán người bán hàng bao trùm tổng quát GCSP
(Generalized Covering Salesman Problem) [8] là những bài toán thuộc lớp các bài
toán NP-khó, thuộc thể loại tối ưu rời rạc hay tổng hợp được nghiên cứu trong lý
thuyết tối ưu hoặc lý thuyết khoa học máy tính. Bài toán được phát biểu như sau. Có
một người giao hàng cần đi giao hàng tại n thành phố. Anh ta xuất phát từ một
thành phố nào đó, đi qua các thành phố khác để giao hàng và trở về thành phố ban
đầu. Mỗi thành phố chỉ đến một lần, khoảng cách từ một thành phố đến các thành
phố khác đã được biết trước. Hãy tìm một chu trình (một đường đi khép kín thỏa
mãn điều kiện trên) sao cho tổng độ dài các cạnh của chu trình là nhỏ nhất. Bài toán
được nêu ra lần đầu tiên năm 1930 và là một trong những bài toán được nghiên cứu
sau nhất trong tối ưu hóa. Nó thường được dùng làm thước đo cho nhiều phương

pháp tối ưu hóa. Mặc dù bài toán rất khó giải trong trường hợp tổng quát, có nhiều
phương pháp giải chính xác cũng như các phương pháp heuristic đã được tìm ra để
giải quyết một số trường hợp có rất nhiều thành phố, lên tới hàng chục ngàn. Ngay
trong hình thái đơn giản nhất của bài toán, bài toán người bán hàng đã có nhiều ứng
dụng trong công tác lập kế hoạch, thiết kế vi mạch, … Theo các lý thuyết về độ
phức tạp tính toán, bài toán người bán hàng với phiên bản cơ bản nhất là tìm chu
trình đi qua tất cả các đỉnh đúng một lần và có độ dài nhỏ hơn L cho trước thuộc lớp
NP-đầy đủ. Bởi vậy, có rất nhiều khả năng thời gian tính toán xấu nhất của bất kỳ
biến thể thuật toán người bán hàng nào đều tăng theo sấp số nhân cùng chiều với số
lượng thành phố. Bài toán người bán hàng có rất nhiều ứng dụng thực tế, thậm chí
trong dạng thức nguyên thủy của nó cũng có rất nhiều ứng dụng như lập kế hoạch,
lĩnh vực vận tải hàng hóa (logistic), sản xuất các bộ vi xử lý, bảng mạch, … Thay
đổi một chút, bài toán người bán hàng hay xuất hiện dưới dạng thức như là một bài
toán con trong rất nhiều lĩnh vực như việc phân tích gen trong sinh học. Trong
những ứng dụng này, khái niệm thành phố có thể thay đổi thành các đối tượng khác,
như các điểm hàn trên bảng mạch, các mảng DNA trong GEN, và khái niệm khoảng


9

cách có thể biểu diễn bởi thời gian du lịch hay giá thành, hay giống như sự so sánh
giữa các mảng DNA với nhau. Trong nhiều ứng dụng, các hạn chế truyền thống như
giới hạn tài nguyên hay giới hạn thời gian còn làm cho bài toán trở nên khó hơn.
Bài toán người bán hàng tổng quát (Generalized Traveling Salesman
Problem - GTSP) được biết đến như một biến thể của bài toán người bán hàng TSP.
Cũng như trong TSP, ta xem xét n thành phố và khoảng cách giữa n thành phố biết
trước. Biến thể GTSP có đôi chút khác biệt là tập hợp n thành phố được phân chia
thành m cụm các thành phố. Một giải pháp tối ưu GTSP là tìm chu trình có khoảng
cách nhỏ nhất mà người bán hàng chỉ thăm đúng một nút của mỗi cụm. Bài toán
GTSP có nhiều ứng dụng thực tế như định tuyến máy bay, giao thư, định tuyến

phương tiện, tổ chức tập tin trong máy tính, … Tìm kiếm các giải pháp hiệu quả đối
với các bài toán GTSP tổng hợp được coi là rất quan trọng trong nhiều ngành, đặc
biệt là các tổ chức luôn phải cân nhắc tới vấn đề về chi phí vận chuyển do giá nhiên
liệu tăng cao.
Bài toán người bán hàng bao trùm (Covering Salesman Problem - CSP) là
một biến thể của bài toán TSP. Trong bài toán CSP mục tiêu là tìm kiếm chu trình
có chiều dài nhỏ nhất của một tập con của n thành phố, mà sao cho mỗi nút không
nằm trong chu trình thì nằm trong một khoảng cách giới hạn đã được định nghĩa
trước d từ một thành phố bất kỳ thuộc chu trình. Ví dụ trong hình sau đây mô tả rõ
hơn bài toán CSP, ô vuông viền màu đen đậm là kho hàng, các ô vuông màu trắng
là các cơ sở bán hàng, các hình tròn nhỏ là khách hàng. Đối với bài toán TSP, ta
phải tìm chu trình có chiều dài nhỏ nhất đi qua tất cả các khách hàng, đối với bài
toán CSP, ta tìm chu trình nhỏ nhất đi qua tất cả các cơ sở bán hàng, các khách hàng
mà nằm trong phạm vi bán kính di của cơ sở bán hàng i thì ta không quan tâm nữa,
do đó độ khó của bài toán CSP được giảm xuống so với bài toán TSP.


10

Hình 1.1. Ví dụ bài toán người bán hàng bao trùm CSP
Bài toán người bán hàng bao trùm tổng quát (Generalized Covering Salesman
Problem – GCSP). Tương tự bài toán CSP, tuy nhiên mỗi thành phố i cần phải
viếng thăm ít nhất ki lần, và đó là một chi phí tương ứng với mỗi thành phố được
viếng thăm. Ta cần tìm kiếm một lộ trình có chi phí nhỏ nhất mà mỗi thành phố i
được viếng thăm ít nhất ki lần. Bài toán GCSP cũng có một số thể thức phổ biến
được đề cập, thể thức đầu tiên, mỗi thành phố chỉ được viếng thăm một lần, thể thức
thứ hai, mỗi thành phố được viếng thăm hơn một lần nhưng không được phép ở lại
“qua đêm” (có nghĩa là để viếng thăm lại một thành phố thì phải đến một thành phố
khác trước khi trở về thành phố này), thể thức thứ 3 có thể viếng thăm mỗi thành
phố nhiều hơn một lần một cách dồn dập (không cần tới thành phố khác trước khi

quay trở lại thành phố này).


11

Theo lý thuyết toán học của độ phức tạp tính toán, phiên bản chính của bài
toán người bán hàng (ràng buộc độ dài chu trình nhỏ hơn số L cho trước) thuộc lớp
NP-đầy đủ. Vì vậy, không có lời giải hiệu quả nào cho việc giải bài toán người bán
hàng. Hay nói cách khác, giống như thời gian thực thi thuật toán xấu nhất cho bất
kỳ bài toán người bán hàng nào cũng tăng theo hàm mũ cùng mới số lượng thành
phố, vì vậy trong nhiều trường hợp chỉ với vài trăm thành phố cũng đã mất tới vài
trăm năm CPU để tìm lời giải một cách chính xác.
Bài toán định tuyến phương tiện (The Vehicle Routing Problem - VRP) là
bài toán tối ưu hóa tuyến đường đi giao hàng hoặc tối ưu hóa tuyến đường đi thu
thập từ một hoặc nhiều vị trí xuất phát (kho) đến một số thành phố hoặc khách hàng
nằm rải rác trên bản đồ địa lý với một số ràng buộc kèm theo. Bài toán VRP đóng
vai trò quan trọng trong lĩnh vực phân phối hoặc vận chuyển hàng hóa (logistics).
Tồn tại một loạt các bài toán VRP và những nghiên cứu lớn trong phân lớp của bài
toán.
Ta gọi đồ thị G=(V,A) là một đồ thị với V={1,…,n} là tập hợp các đỉnh biểu
diễn các thành phố với các kho đặt ở đỉnh số 1, và A là tập hợp các cạnh, là các
cung đường kết nối các thành phố. Các cạnh (𝑖, 𝑗) ∀𝑖 ≠ 𝑗 được liên kết với một ma
trận C = (cij). Trong một số hoàn cảnh, cij có thể được coi như là chi phí viếng thăm
(travel cost) hoặc thời gian viếng thăm (travel time). Khi ma trận C đối xứng, ta có
thể thay thế tập cạnh A bởi một tập các cạnh vô hướng E. Thêm vào đó, giả sử có m
xe có sẵn ở kho, trong đó mL<=m<=mU. Khi mL= mU, m được gọi là cố định, khi
mL=1 và mU=n-1 thì m được gọi là tự do. Khi m không cố định, bài toán thường liên
quan tới chi phí cố định f để sử dụng một chiếc xe. Để cho đơn giản, giả định tất cả
các phương tiện là giống hệt nhau và có cùng thể tích (tải trọng) chuyên chở D.
Bài toán VRP sẽ thực hiện tìm kiếm các tuyến đường để các phương tiện di

chuyển với chi phí thấp nhất mà:
i) Mỗi thành phố trong V\{1} được đi qua đúng một lần bởi đúng một
phương tiện.


12

ii) Tất cả các tuyến đường xuất phát từ kho (tại thành khố 1) và kết thúc cũng
ở kho. Có một số biến thể, ví dụ OVRP (Open Vehicle Routing Problem) phương
tiện không nhất thiết phải quay về kho (điểm xuất phát).
iii) Một số ràng buộc khác được thỏa mãn.
Thông thường có một số các ràng buộc phổ biến khác như sau:
i) Ràng buộc về trọng lượng, thể tích: một trọng lượng, thể tích không âm d i
được đính kèm vào mỗi thành phố i>1 và tổng trọng lượng, thể tích của bất kỳ
tuyến đường nào cũng không vượt quá khả năng chuyên chở của xe. Ràng buộc về
trọng lượng, thể tích tạo nên biến thể của VRP là CVRP (Capacity-constrained
VRPs).
ii) Số lượng của các thành phố trên bất kỳ tuyến đường nào đều được chặn
trên bởi q (đó là trường hợp cụ thể của mục (i) với di =1 cho tất cả i>1 và D=q).
iii) Ràng buộc về tổng thời gian: độ dài của bất kỳ quãng đường nào cũng
không vượt quá một số L; điều này đồng nghĩa với việc tổng thời gian di chuyển cij
và thời gian dừng lại δi tại mỗi thành phố i trên đường đi không vượt quá một
ngưỡng thời gian cho trước. Bài toán VRP với ràng buộc về thời gian hoặc khoảng
cách tạo nên biến thể DVRP (Time- or distance-constrained VRPs).
iv) Cửa sổ thời gian: mỗi thành phố i phải được viếng thăm trong vòng một
khoảng thời gian [ai,bi] và tại thành phố i được phép chờ đợi.
v) Mối quan hệ ưu tiên giữa các cặp của thành phố: thành phố i phải được
viếng thăm trước thành phố j.
Lưu ý, danh sách các ràng buộc bên trên không có tính chất đầy đủ.


1.3. Một số giải thuật áp dụng cho bài toán VRP
Các giải thuật được sử dụng để giải quyết bài toán VRP thông thường được
phân chia thành hai nhóm chính, nhóm các giải thuật chính xác (exact algorithms)
và nhóm các giải thuật heuristic (heuristic algorithms).
Đối với phân nhóm các giải thuật chính xác được sử dụng để giải quyết các
bài toán VRP thông thường được phân chia thành ba loại chính: (i) các phương
pháp tìm kiếm trực tiếp trên cây (direct tree search methods); (ii) lập trình động


13

(dynamic programming) và (iii) lập trình tuyến tính số nguyên (integer linear
programming). Số lượng các thuật toán thực tế được giới thiệu rất nhiều, trong
phạm vi của luận văn chủ yếu thực hiện tập trung vào các giải thuật heuristic.
Các giải thuật heuristic được sử dụng để giải quyết bài toán VRP thường
được bắt nguồn từ các giải thuật heuristic được sử dụng để giải quyết các bài toán
TSP. Thuật toán tìm kiếm láng giềng gần nhất, thuật toán “chèn thêm” có thể sử
dụng để giải quyết CVRP và DVRP mà không cần phải sửa đổi nhiều. Tuy nhiên,
khi áp dụng những phương pháp này cho VRP phải đảm bảo các tuyến đường cho
xe phải khả thi.

1.3.1. Giải thuật láng giềng gần nhất
Thuật toán Láng giềng gần nhất là một trong những thuật toán đầu tiên được
dùng để tìm lời giải cho bài toán người bán hàng, và thường cho kết quả chênh lệch
trong phạm vi 20% so với đường đi tối ưu. Nó chạy nhanh hơn rất nhiều so với việc
kiểm tra mọi tuyến đường và một số thuật toán khác.
Thuật toán được mô tả như sau:
Input: Đồ thị G=(X,V).
X = Tập đỉnh
Y= Tập cạnh

D = Ma trận khoảng cách của đồ thị G
Output: Lộ trình tối ưu
Giải thuật:
1. 𝑥 = nút xuất phát bất kỳ và cũng là nút hiện hành.
2. Z = tập đỉnh đã qua. 𝑍 ← 𝑍 ∪ {𝑥} (đánh dấu đã qua x).
3. 𝑥 ← 𝑦 {

𝑦, 𝑡 ∈ 𝑋\𝑍
𝐷(𝑥, 𝑦) ≤ 𝐷(𝑥, 𝑡)∀𝑡 ∈ 𝑋\𝑍, 𝑦 ≠ 𝑡

4. If 𝑋\𝑍 ≠ ∅ go to step 2
Thứ tự mà các nút được đi qua chính là kết quả của thuật toán.

Thuật toán láng giềng gần nhất dễ cài đặt và chạy nhanh, nhưng đôi khi nó
có thể bỏ qua các tuyến đường ngắn hơn mà mắt thường dễ nhận ra. Kết quả của
thuật toán này cần được kiểm tra trước khi sử dụng để phòng trường hợp một tuyến
đường ngắn hơn bị bỏ qua.


14

Trong trường hợp xấu nhất, thuật toán này có thể tính toán ra các tuyến
đường dài gấp r lần tuyến đường tối ưu. Trong đó, r là một tỷ lệ tùy ý, nghĩa là, với
mỗi hằng số r, tồn tại một bài toán người bán hàng sao cho độ dài của tuyến đường
là kết quả của thuật toán láng giềng gần nhất lớn hơn hoặc bằng r lần độ dài tuyến
đường tối ưu.
Hình ảnh sau thể hiện việc thực thi giải thuật láng giềng gần nhất cho bài
toán người bán hàng.

Xuất phát từ nút A, tìm đường đi ngắn nhất tới nút G.


Láng giềng gần nhất B được chọn.


15

Láng giềng gần nhất D được chọn.

Láng giềng gần nhất F được chọn.

Cuối cùng đích G được chọn.
Hình 1.2. Việc thực thi giải thuật láng giềng gần nhất cho bài toán người
bán hàng


16

1.3.2. Giải thuật tìm kiếm cục bộ
Trong khoa học máy tính, giải thuật leo đồi (Hill Climbing) là một kỹ thuật
tối ưu toán học thuộc họ tìm kiếm cục bộ (Local Search). Nó thực hiện tìm một
trạng thái tốt hơn trạng thái hiện tại để mở rộng. Để biết trạng thái tiếp theo nào là
tốt hơn (lớn hơn hoặc nhỏ hơn), nó dùng một hàm H để xác định trạng thái nào là
tốt nhất.
Thuật toán leo đồi dễ dàng tìm thấy một giải pháp tốt cục bộ (local optimum)
nhưng khó tìm thấy giải pháp tốt nhất (global optinum) trong tất cả các giải pháp
được đưa ra (search space). Thuật toán leo đồi phù hợp để giải các bài toán có biểu
đồ lồi (convex) như là tìm kiếm đơn giản (simplex programming) trong lập trình
tuyến tính, tìm kiếm nhị phân.
Tính đơn dơn giản của giải thuật khiến nó trở thành lựa chọn đầu tiên trong
số các giải thuật tối ưu. Nó được sử dụng rất nhiều trong trí tuệ nhân tạo, dùng cho

mục đích đi đến trạng thái đích từ một node bắt đầu. Việc chọn node tiếp theo và
node bắt đầu có thể thay đổi nhiều giải thuật khác nhau.
Trong khoa học máy tính, tìm kiếm cục bộ là một phương pháp heuristic để
giải quyết các bài toán tối ưu khó. Tìm kiếm cục bộ có thể sử dụng trong các bài
toán mà có thể được tính bằng cách tìm một giải pháp tối đa hóa một tiêu chí nào đó
trong số các giải pháp được đưa ra. Giải thuật tìm kiếm cục bộ chuyển từ giải pháp
này đến giải pháp khác trong không gian các giải pháp được đưa ra (không gian tìm
kiếm) bằng cách áp dụng những thay đổi cục bộ cho đến khi một giải pháp được coi
là tối ưu được tìm thấy hoặc thời gian giới hạn trôi qua.
Tìm kiếm cụ bộ được áp dụng trong rất nhiều bài toán khác nhau, bao gồm
các bài toán trong khoa học máy tính, toán học, tìm kiếm tối ưu, kỹ thuật xây dựng,
sinh học. Ví dụ bài toán người du lịch (Traveling Salesman Problem - TSP), bài
toán định tuyến phương tiện (Vehicle Routing Problem - VRP).
Giải thuật leo đồi được thể hiện như sau:
Input: bài toán tối ưu tổng hợp
Output: Trạng thái với hàm mục tiêu lớn nhất (hoặc cực đại địa phương)


17

Giải thuật:
1. 𝑥 = trạng thái ngẫu nhiên được lựa chọn
2. 𝑌 = tập trạng thái hàng xóm của 𝑥
3. If ∀yi 𝜖𝑌: 𝐻𝑎𝑚𝑀𝑢𝑐𝑇𝑖𝑒𝑢(yi ) < 𝐻𝑎𝑚𝑀𝑢𝑐𝑇𝑖𝑒𝑢(𝑥) then
Exit and return 𝑥
4. x ← yi , trong đó 𝑖 = 𝐴𝑟𝑔𝑀𝑎𝑥𝑖 (𝐻𝑎𝑚𝑀𝑢𝑐𝑇𝑖𝑒𝑢(𝑦𝑖 ))
5. Trở lại bước 2
Trong đó 𝐻𝑎𝑚𝑀𝑢𝑐𝑇𝑖𝑒𝑢(𝑥) là hàm mục tiêu.

Một số đặc điểm của thuật toán leo đồi:

- Đơn giản, dễ lập trình. Khi lập trình không cần sử dụng các cấu trúc dữ liệu
để biểu diễn các nút, nhớ tập biên.
- Như các giải thuật tìm kiếm cục bộ khác, leo đồi sử dụng ít bộ nhớ do
không phải lưu lại các trạng thái. Tại mỗi thời điểm, thuật toán chỉ cần lưu lại trạng
thái hiện thời và một tráng thái láng giềng.
- Dễ gặp lời giải tối ưu cục bộ.
Khi thiết kế thuật toán leo đồi với cách chuyển động sang trạng thái láng
giềng tốt nhất, việc lựa chọn chuyển động rất quan trọng. Nếu nhiều chuyển động,
từ trạng thái hiện thời có thể sinh ra nhiều láng giềng. Do thuật toán cần so sánh tất
các láng giềng để tìm ra trạng thái tốt nhất, mỗi bước của vòng lặp sẽ đòi hỏi nhiều
thời gian do phải tính hàm mục tiêu cho tất cả láng giềng. Ngược lại, nếu sinh ra tập
láng giềng nhỏ sẽ dễ dẫn tới cực trị địa phương.
Ví dụ minh họa áp dụng giải thuật leo đồi cho bài toán người bán hàng. Cho
một đồ thị n nút, trong đó hai nút bất kỳ được kết nối với nhau bằng một cung. Cần
tìm đường đi xuất phát từ một nút, qua tất cả các nút khác đúng một lần và quay về
nút xuất phát sao cho độ dài đường đi là nhỏ nhất. Bài toán này mô phỏng trường
hợp một người bán hàng cần đi qua tất cả các thành phố đúng một lần và quay về
nơi xuất phát với chi phí nhỏ nhất.
Trạng thái: Mỗi trạng thái là một chu trình Hamilton, tức là chu trình qua các
đỉnh đúng một lần.
Hàm mục tiêu: Là độ dài của chu trình Hamilton. Cần tìm trạng thái có hàm
mục tiêu nhỏ nhất.


18

Chuyển động: Chuyển động theo quy luật thay đổi k cung, k=2,3,4, …. Ví dụ
với k bằng 2, từ trạng thái hiện thời lấy ra 2 cung không liền nhau, bỏ hai cung đó
và nối nút đầu cung này với nút cuối cung kia để tạo ra 2 cung mới. Với mỗi cặp
cung như vậy ta được một láng giềng mới của trạng thái hiện thời. Trong ví dụ dưới

đây, bằng cách thay đổi 2 cung, ta có thể tạo ra 5 láng giềng cho mỗi trạng thái.

Hình 1.3. (a) Ví dụ một trạng thái của bài toán người bán hàng. (b) Một
số láng giềng sinh ra sau khi thay đổi 2 cung.

1.3.3. Giải thuật tối ưu hóa đàn kiến ACO
Tối ưu hóa đàn kiến ACO (Ant Colony Optimization) lần đầu tiên được
Marco Dorigo giới thiệu vào năm 1992, tối ưu hóa đàn kiến ACO còn được gọi
dưới một tên khác là Hệ thống đàn kiến (Ant System - AS). Tối ưu hóa đàn kiến ban
đầu được áp dụng cho bài toán người bán hàng (TSP) [16].


19

Trong tự nhiên, từ sự cảm nhận một cách trực quan thì loài kiến được xem
như là mù hoàn toàn và hành động của chúng mang tính chất mò mẫm. Một kết quả
nghiên cứu hết sức quan trọng sớm được công nhận là mọi hành vi của đàn kiến
như: quá trình trao đổi thông tin giữa các con kiến với nhau hoặc giữa các con kiến
với môi trường bên ngoài đều dựa trên việc sử dụng một chất dịch được chính mỗi
con kiến tạo ra. Hóa chất có mùi này được gọi là Pheromones [16], [18].
Theo phản xạ tự nhiên, trong quá trình di chuyển các con kiến đi đến đâu sẽ
tự động tiết một chất dịch có mùi được gọi là pheromones ra đến đó. Tại mỗi vị trí
di chuyển, một con kiến sẽ quyết định lựa chọn hướng đi dựa trên nồng độ chất
pheromones của hướng đó, ưu tiên lựa chọn hướng có nồng độ chất pheromones cao
hơn. Trong trường hợp tại vị trí mà nồng độ chất pheromones bằng nhau hoặc nồng
độ chất pheromones là không có thì con kiến sẽ quyết định lựa chọn hướng đi một
cách ngẫu nhiên. Cứ như thế, các con kiến sẽ đi theo dấu chân của nhau và tạo nên
một con đường đi của cả đàn kiến mà ta thường quan sát thấy trong tự nhiên.
a) Thí nghiệm chiếc cầu đôi
Hành vi đi kiếm ăn của đàn kiến được quan sát cụ thể trong thực tế; các loài

kiến giao tiếp, trao đổi thông tin của kiến đều dựa trên một yếu tố trung gian đó là
nồng độ pheromones [16], [18].
Trong quá trình di chuyển từ tổ đến nguồn thức ăn và ngước lại, chúng đã
lưu lại dấu tích của nồng độ pheromones trên đường đi, từ đó hình thành nên một
“vết mùi pheromones”. Các con kiến có thể ngửi mùi pheromones, chúng có xu
hướng sẽ lựa chọn đường đi theo xác suất, đường đi này sẽ được đánh dấu dựa trên
hướng đi nơi có nồng độ chất pheromones cao.
Tác động của chất dịch pheromone tới hành vi của một số loài kiến đã được
kiểm tra trong các thử nghiệm của một số nhà nghiên cứu. Một trong những thí
nghiệm nổi bật nhất là thí nghiệm chiếc cầu đôi được thiết kế bởi Deneubourg và
các đồng nghiệp [16]. Các tác giả đã tiến hành xây dựng một cây cầu kết nối tổ của
đàn kiến với nguồn thức ăn của chúng. Các nhà khoa học đã thử nghiệm với các tỉ


20

lệ r = ll / ls giữa độ dài hai nhánh của cây cầu (trong đó ll là độ dài của nhánh dài và
ls là độ dài của nhánh ngắn hơn).
Trong lần thử nghiệm thứ nhất, tỉ lệ độ dài hai nhánh của cây cầu là r = 1 (ll
= ls) (Hình 1.4a). Ban đầu, thì các con kiến được lựa chọn được đi từ tổ đến nguồn
thức ăn và ngược lại một cách ngẫu nhiên và với cùng một xác suất. Việc lựa chọn
một trong hai nhánh của cây cầu được quan sát cẩn thận theo thời gian. Kết quả là:
mặc dù khi khởi hành các con kiến lựa chọn đường đi một cách ngẫu nhiên. Sau đó
theo thời gian, tất cả các con kiến đều sử dụng chung một nhánh của cây cầu.

Hình 1.4. Thí nghiệm chiếc cầu đôi. (a) Hai nhánh có kích thước bằng
nhau, (b) Một nhánh có kích thước gấp đôi nhánh kia
Kết quả này được giải thích như sau:
Khi khởi hành, trên 2 nhánh của cây cầu đều chưa có pheromones. Do đó,
các con kiến có thể chọn một trong các nhánh với cùng một xác suất. Tuy nhiên, do

sự lựa chọn là ngẫu nhiên lên sau một thời gian số lượng kiến đi trên những các
nhánh sẽ khác nhau. Bởi vì loài kiến sẽ ngửi chất pheromones trong khi di chuyển,
dần dần số lượng pheromones trên những nhánh cũng sẽ khác nhau theo thời gian,
điều này càng kích thích thêm đàn kiến sẽ lựa chọn nhánh có nồng độ chất
pheromones cao hơn, và như vậy đến một thời gian nào đó tất cả các con kiến sẽ hội
tụ về cùng một nhánh.
Trong thí nghiệm thứ hai, tỷ lệ về độ dài giữa hai nhánh của cây cầu được
thiết lập là r = 2, do đó chiều đường đi của nhánh dài sẽ gấp 2 lần so với nhánh ngắn


21

(Hình 1.bb). Trong trường hợp này, ở hầu hết các thử nghiệm thì sau một khoảng
thời gian thì tất cả các con kiến chỉ lựa chọn đường đi ở nhánh ngắn hơn. Trong thí
nghiệm thứ hai, các con kiến rời khỏi tổ để khám phá môi trường xung quanh và
đến một điểm quyết định, tại đó chúng phải lựa chọn một trong hai nhánh. Vì lý do
ban đầu hai nhánh của cây cầu đều xuất hiện như nhau trước lũ kiến nên chúng sẽ
lựa chọn một cách ngẫu nhiên. Vì thế, có thế dự kiến rằng, trung bình thì một nửa
số kiến sẽ chọn nhánh ngắn và nửa còn lại sẽ chọn nhánh dài, mặc dù các dao động
ngẫu nhiên đôi khi có thể ưu tiên chọn một nhánh này hoặc nhánh khác.
Khi đàn kiến hội tụ về một nhánh và xây dựng được một kết nối giữa tổ kiến
và nguồn thức ăn. Ta quan sát hiện tượng trong một thí nghiệm mở rộng: khi khởi
đầu chỉ có nhánh dài được đưa vào phạm vi đàn kiến di chuyển qua; sau 30 phút thì
một nhánh ngắn hơn được thêm vào (Hình 1.5). Trong trường hợp này thì nhánh
ngắn không được lựa chọn thường xuyên và đàn kiến hiện đang mắc trên nhánh dài.
Điều này có thể được giải thích bởi nồng độ chất pheromones ở nhánh dài cao và
làm chậm tốc độ bay hơi của chất pheromones. Thực tế, đa số các con kiến đều
chọn nhánh dài vì tại nhánh này nồng độ pheromones cao, ngay cả khi có sự xuất
hiện của nhánh ngắn.
Quá trình bốc hơi của pheromones rất có lợi cho quá trình thăm dò, khám

phá ra những con đường mới, tuy nhiên quá trình bốc hơi này diễn ra khá chậm:
thời gian tồn tại của pheromones được so sánh với thời gian tiến hành cuộc thử
nghiệm, có nghĩa là chất pheromones bốc hơi quá chậm để cho các con kiến có thể
“quên” đi con đường không tối ưu mà chúng đã hội tụ để có thể khám phá ra con
đường mới ngắn hơn và có thể “học được”.


×