Bài toán Traveling ThiefProblem|

Một phần của tài liệu Khóa luận tốt nghiệp Khoa học máy tính: Giải thuật mô phỏng luyện thép cải tiến với quy hoạch động cho bài toán người bán hàng với ràng buộc sức chứa (Trang 20 - 79)

Trong phan này, chúng em sẽ giới thiệu tổng quan hoàn cảnh, lý do ra đời của bài toán Traveling Thief Problem, từ đó đưa ra khái niệm tổng quát và ví dụ

cụ thể của bài toán.

12.1 Tổng quan

Để có thể mô hình hóa tốt hơn các bài toán tối ưu đa tổ hợp ở ngoài thực tế, bài

toán "Traveling Thief Problem" (TTP) được dé xuất vào năm 2013 bởi Bonyadi,

Michalewicz và Barone IHỆ Bài toán là tổ hợp của 2 bài toán NP-hard nổi tiếng:

Traveling Saleman Problem (TSP) và Knapsack Problem (KP). Trong TTP, một

tên trộm xuất phát từ thành phố đầu tiên, sau đó phải ghé thăm mỗi thành

phố đúng một lần và quay lại thành phố mà hắn xuất phát. Ở mỗi thành phố

hắn có thể mang theo các vật phẩm được phân phối tại thành phố đó. Những

vật phẩm này có lợi nhuận và trọng lượng cụ thể. Tên trộm thuê một cái túi

Chương 1. Giới thiệu 4

dùng để chứa đồ có một sức chứa nhất định (trọng lượng tối đa mà cái túi

có thể chứa). Bài toán TTP chứa hai bài toán con là TSP và KP phụ thuộc lẫn nhau vì trọng lượng của các vật phẩm làm chậm tên trộm dẫn đến tên trộm

sẽ di chuyển trong thời gian dài hơn, dẫn đến chỉ phí gia tăng do tên trộm phải thuê chiếc cái túi. Tốc độ của tên trộm tỉ lệ nghịch với trọng lượng của cái túi mà tên trộm mang theo. Mục tiêu của bài toán là tối đa hóa lợi nhuận của tên trộm có được từ tổng giá trị các vật phẩm hắn lấy đi trừ đi tiền thuê cái cái túi. Sự kết hợp của 2 bài con KP và TSP với một sự phụ thuộc lẫn nhau

là một van dé thú vị. Việc lay các vật phẩm sao cho tối ưu sẽ phụ thuộc vào tuyến đường tên trộm đi và di chuyển sao cho tối ưu sẽ phụ thuộc vào các vật phẩm trong cái túi. Do đó việc tìm lời giải cho bài toán TTP sao cho cân bằng giữa 2 bài toán TSP và KP là rất khó.

Traveling Thief Problem (TTP) được tạo ra bởi vì Bonyadi, Michalewicz và

Barone cho thấy rằng nghiên cứu và so sánh các phương pháp metaheuristics

đang quá tập trung vào một số bài toán NP-hard cụ thể[4|. Do đó có một

khoảng cách ngày càng lớn giữa các vấn đề thực tế và các vấn đề lý thuyết. Khoảng cách ngày càng tăng do thực tế trở nên phức tạp hơn trong khi các bài toán lý thuyết vẫn giữ nguyên trong 50 năm. Bài toán TTP sinh ra để thu hẹp khoảng cách này bằng cách trở thành một bài toán có hai đặc điểm quan trọng của các van dé thực tế: Nó chứa hai bài toán con và có sự phụ thuộc

giữa chúng.

1.2.2 Dinh nghĩa bài toán

Trong phần này, chúng em sẽ đưa một định nghĩa cho Traveling Thief Prob-

lem (TTP), như được dé xuất từ [4]. Cho một tập hợp n thành phố là N =

1,2,..., với thành phố 1 được chỉ định là thành phố xuất phát và một tập hợp

m vật phẩm là M = 1,2,..., phân phối trong các thành phố trừ thành phố đầu tiên, gán một tập con của các vật phẩm M; = 1,2,...,m; cho thành phố i. Mỗi vật phẩm k được phân bổ cho thành phố i được biểu thị là l„ ~ (pix, Wik),

với hai thuộc tính: lợi nhuận p; và trọng lượng w;,. Khoảng cách dj ; giữa các

Chương 1. Giới thiệu 5

thành phố i và j (i,j € N) được xác định. Từ thành phố xuất phát, kẻ trộm phải thăm các thành phố còn lại mỗi thành phố đúng một lần và trở lại thành phố xuất phát. Khi đi qua mỗi thành phó, kẻ trộm có thể lay các vật phẩm được phân bổ cho thành phố đó, đảm bảo rằng tổng trọng lượng của các vật phẩm tên trộm lay không vượt quá sức chứa của cái túi C. Kẻ trộm di chuyển với tốc độ tỉ lệ nghịch với trọng lượng cái túi mà hắn ta mang, đạt tốc độ tối

da Umax khi khụng mang theo gi cả và tốc độ tối thiểu ứmĂn khi trọng lượng cái túi bằng C. Đối với mỗi đơn vị thời gian di chuyển, kẻ trộm phải trả một khoản phí thuê cái túi là R cho đến khi chu trình được hoàn thành. Dựa trên các điều kiện đã nêu, kẻ trộm phải cố gắng tìm ra một chu trình và kế hoạch lay các vật phẩm phù hợp để tối ưu hóa cả lợi nhuận và chi phí.

Một biểu diễn của một giải pháp cho TTP có thể được thể hiện như sau:

s Chu trình IT = (#,...„),x¡ € N là một vector giữ hoán vị của tập hợp

các thành phố N.

© Kế hoạch lấy đồ P = (2,..., Ynm;), Yik 0,1 là một vector nhị phân, với

Vik = 1 quyết định rang vật phẩm k được chon trong thành phố i, và 0

trong trường hợp ngược lại.

Mục tiêu là tìm ra một chu trình IT và một kế hoạch chon vật phẩm P dẫn đến lợi nhuận tối đa, có thể tính bằng hàm mục tiêu sau:

n ` = Axixis4 Ax nx,

Z(ILP) = V0 YO picyik -—R | YO = (1.1)

j—2 k=1 ¡=1 Umax — max — Uy,

trong đó v = TH là một giá trị hằng số được xác định bởi các tham số

được đặt trước, Wy, = ;=2 al 1 Pjk¥jk là trọng lượng hiện tại của cái túi tại

thành phố x;. Lợi nhuận tổng cộng được định nghĩa bằng tổng lợi nhuận của các vật phẩm được chọn trừ đi tổng chỉ phí thuê cái túi, bằng tổng thời gian

kẻ trộm ghé thăm tất cả các thành phố trên chu trình IT nhân với phí thuê R.

Chương 1. Giới thiệu 6

12.3. Vidu

Gia sử chúng ta có một ví dụ của bài toán TTP theo định nghĩa trên như sau,

được thể hiện trên hình[1.1|

© Hang số: 0 = 4,1m = 6,C =5,0max = 1, 0„¡„ = 0.1, = 0.01.

e Ma trận kẻ: Biểu diễn khoảng cách giữa các thành phố

— 5 9 4 D= 5 — 7 10

9 7 — 6

4 10 6 —

° Vật phẩm: Các cặp (pix, wx) biểu diễn cho vật phẩm lạ: lạị = (4,1),

la = (1,3) , lại = (4,6) , lạ = (3,1), lạ = (7,3), lạ = (5,2).

Giả sử ta có được một lời giải cho bài toán TTP theo hình [1.1| là tập hợp

của:

¢ Chu trình II = (1,2,4,3)

© Kế hoạch lay đồ P = (1,0,0,1,1,0)

Gọi tx, là thời gian tên trộm di chuyển từ thành phố x sang thành phố

y. Ta có thể tính được giá trị của hàm mục tiêu Z từ lời giải (II, P) trên từ

công thức Tên trộm bắt đầu chu trình từ thành phố 1 đến thành phố

2 với khoảng cách dj là 5 theo ma trận kể. Trọng lượng chiếc túi từ thành phố 1 (W)) là 0 do tên trộm chưa lay món dé nào, do đó vận tốc tên trộm là

Ve = Umax = 1 và ta có f¿ = 5. Tại thành phố 2, tên trộm lay di Ip, dẫn đến W> = 1 và vận tốc tên trộm giảm còn v, = 0.82. Tên trộm di từ thành phố

2 sang thành phố 4 có đạ„ = 10 với vận tốc này và mat í„ = 12.20 đơn vị thời gian. Tại thành phố 4, tên trộm lấy đi lạ, khối lượng cái túi hiện tại là

W, = 4 dẫn đến v, = 0.28. Tên trộm di chuyển từ thành phố 4 sang 3 với

Chương 1. Giới thiệu 7

There are N cities, each city except city 1 has k items

\é Start

LO @ mi —— l;2(weight: 3, profit: 1)

aN + ie ay ee

4>(weight: 2, profit: 5)

| | | | F—*

HINH 1.1: Ví dụ bài toán TTP

d43 = 6 mất thời gian t43 = 21.43. Cuối cùng, tại thành phố 3 tên trộm lay

đi laạ dẫn đến W3 = 5 bằng với tải trọng của cái túi C = 5 và sẽ phải di chuyển với tốc độ ứ,„;„ = 0.1. Tờn trộm quay về thành phố 1 với quóng đường dại = 9 và mất t3; = 90. Tổng kết lại thì tổng thời gian di chuyển của tên trộm là T = ty, + to4 + t43 + t3,1 = 128.62, do đó tổng chỉ phí hắn phải bỏ ra

là R x T = 0.01 x 128.62 = 1.29. Tên trộm đã lay đi 3 món đồ In, 132, lạị với tổng giá trị là 14. Vậy ta sẽ có giá trị của hàm mục tiêu Z = 14 — 1.29 = 12.71.

13 Ung dụng

Bài toán TTP có nhiều ứng dụng thực tế trong các lĩnh vực như logistics, vận tải, giao hàng, quản lý lịch hẹn, bảo mật, v.v. Dưới đây là một số ví dụ cụ thể:

Chương 1. Giới thiệu 8

e Trong ngành logistics và vận tai, TTP được sử dụng để tối ưu hóa lộ

trình của các phương tiện vận chuyển như xe tải, tàu biển, và máy bay. Điều này giúp giảm thiểu thời gian di chuyển, nhiên liệu tiêu thụ, và chỉ phí vận chuyển. Các công ty vận chuyển và dịch vụ giao hàng thường sử dụng các giải thuật TTP để lên kế hoạch giao hàng một cách hiệu quả.

© Trong quản lý lịch hẹn, TTP có thể được sử dụng để sắp xếp thứ tự các

cuộc hẹn sao cho tối ưu hóa thời gian và chỉ phí. Ví dụ, một bác sĩ có thể ứng dung TTP để lên lịch khám bệnh cho các bệnh nhân ở các địa điểm khác nhau, trong khi cân nhắc đến các yêu tố như thời gian di chuyển, thời gian khám, và thu nhập từ mỗi bệnh nhân.

e Trong bảo mật, các thuật toán TTP có thể được sử dụng để thiết kế các

hệ thống mã hóa và giải mã an toàn. Ví dụ, một hệ thống mã hóa có thể ứng dụng TTP để tạo ra một chuỗi các khóa bí mật, mỗi khóa tương ứng với một thành phố trong bài toán TTP. Sau đó, hệ thống sẽ mã hóa thông tin bằng cách sử dụng các khóa theo thứ tự được xác định bởi lộ trình của bài toán TSP. Để giải mã, hệ thống cần phải tìm ra lộ trình và các

khóa tương ứng.

¢ Bài toán vận tải thùng nước [28}: Bài toán TTP được sử dung để tối ưu

hóa việc chuyển các bể nước có kích thước khác nhau từ nhà máy đến các khách hàng. Các bể nước có thể được đóng gói vào nhau để tiết kiệm không gian trên xe tải, nhưng cần phải được tháo ra ở các trạm cơ sở trước khi giao hàng. Mục tiêu là chọn ra một tập hợp các bể nước và một

lộ trình giao hàng sao cho tổng giá trị của việc giao hàng là cao nhất. Tổng giá trị này tỷ lệ với tỉ lệ giữa tổng giá của các bể nước được giao và tổng quãng đường xe tải đi. Bài toán này có ít nhất hai bài toán con là chọn các bể nước để giao và xác định lộ trình giao hàng. Việc giải quyết từng bài toán con riêng biệt không đảm bảo tìm được giải pháp tối ưu

cho bài toán toàn cục.

Chương 1. Giới thiệu 9

e Thiết kế mach in: Bài toán TTP được sử dụng để thiết kế các mạch in

trong các mạch tích hợp quy mô lớn. Một trong những ứng dụng của

bài toán TSP là trong thiết kế mạch in, mục tiêu là nối các chân của các

linh kiện điện tử bằng các dây sao cho tổng chiều dài của các dây là nhỏ nhất. Tuy nhiên, đây chỉ là một phần của bài toán. Bài toán hoàn chỉnh bao gồm hai phần là đặt các linh kiện điện tử lên một tắm bảng (phần này gọi là đặt vị trí) và nối các chân của các linh kiện theo một cách nào

đó sao cho lượng dây sử dụng là nhỏ nhất (phần này gọi là dây nối). Trong thiết kế mach in, đôi khi các dây không thể cắt nhau, do đó cần phải sử dụng các lớp khác nhau để đặt các dây. Mục tiêu là tối thiểu hóa

số lượng lớp sử dụng. Bài toán này có ít nhất hai bài toán con là đặt vị trí các linh kiện và dây nồi các chân. Việc giải quyết từng bài toán con riêng biệt không đảm bảo tìm được giải pháp tối ưu cho bài toán toàn cục.

1.4 Đóng góp của nhóm

Nhóm chúng em đã tiến hành mở rộng nghiên cứu các thuật toán heuristics

cho bài toán Traveling Thief Problem:

s® Nghiên cứu va thử nghiệm các thuật toán state-of-the-art cho bài toán

Traveling Thief Problem.

¢ Dua ra thuật toán SAVI (lay cảm hứng từ thuật toán CS2SA*|29]) và phát

triển thêm thuật toán Simulated Anealing với phương pháp Vertex In-

sertion tối ưu với Quy Hoạch Động.

e Tiến hành thử nghiệm trên tập TTP Benchmark để chứng minh độ

hiệu quả của thuật toán.

1.5 Câu trúc của luận văn

Cau trúc phan còn lại của bài luận văn nay được trình bày như sau:

Chương 1. Giới thiệu 10

se Chương 2 sẽ giới thiệu các thuật toán Local Search, các thuật toán cho 2

bài toán con TSP và KP. Từ đó đưa ra cái nhìn tổng quan để hiểu hơn các thuật toán state-of-the-art đã được đề ra trước đó.

* Chương 3 sẽ giới thiệu chi tiết về thuật toán SAVI, bao gồm cách thức

hoạt động, mã giả và các kỹ thuật tăng cường hiệu suất.

se Chương 4 sẽ dua ra tập TIP Benmark dùng để đánh giá thuật toán.

Thuật toán SAVI sẽ được đánh giá, so sánh với các thuật toán state-of- the-art khác.

e Chương 5 tổng kết luận văn và dé ra một số phương án cho các nghiên

cứu tương lai.

11

Chương 2

e 2 e

Hướng giai pháp hiện nay

Như đã trình bày ở mục 1.2 thì bài toán Traveling Thief Problem (TTP) được

tạo ra từ sự kết hợp của hai bài toán con là Traveling Saleman Problem (TSP)

và Knapsack Problem (KP). Trong mỗi bài toán con thì sẽ có những thuật toán tối ưu riêng. Với mỗi thuật toán tối ưu đó sẽ sử dụng một số thuật toán hoặc

thao tác để tối ưu kết quả. Ở trong chương này chúng em sẽ trình bày về các

thuật toán sẽ được sử dụng đến trong hướng giải pháp của chúng em của bài luận văn này. Cụ thể như sau, đầu tiên chúng em sẽ trình bày về các thuật toán local search (thuật dùng để tối ưu kết quả cho các bài toán con), sau đó chúng em sẽ trình bày về các thuật toán dùng để giải quyết hai bài toán con, cuối cùng chúng em sẽ trình bày các thuật toán state-of-the-art hiện nay giải quyết TTP.

2.1 Local search

Tìm kiếm cục bộ (Local search) là một thuật toán tìm kiếm thường được sử dụng trong lĩnh vực trí tuệ nhân tạo và các bài toán tối ưu hóa (ví dụ như TSP). Thuật toán này bắt đầu từ một giải pháp ban đầu và sau đó thực hiện

các bước thay đổi để cải thiện giải pháp đó. Những thay đổi này thường được thực hiện thông qua các toán tử (operator). Mỗi lần áp dụng toán tử sẽ tạo ra một giải pháp lân cận (neighboring solution), nếu giải pháp lân cận có điểm đánh giá tốt hơn giải pháp ban đầu, thì giải pháp ban đầu sẽ bị thay thế bằng

Chương 2. Hướng giải pháp hiện nay 12

giải pháp lân cận. Nếu một giải pháp không có giải pháp lân cận nào có điểm đánh giá tốt hơn, thì giải pháp đó là một tối ưu cục bộ đối với bài toán đó. Việc liên tục lặp đi lặp lại quá trình thay thế giải pháp hiện tại bởi một giải pháp

lân cận tốt hơn được gọi là một thuật toán leo đồi (hill climbing algorithm)

(được thể hiện trong thuật toán Ilbên dưới).

Algorithm 1 HILL CLIMBING

1: x — một giải pháp ban đầu

2: while chưa gặp điều kiện dừng do

3 x€Cargmax/cw(x) f(x’) > ƒ là hàm đánh giá

4: > N là lân cận của x 5: end while

Phương pháp này có ưu điểm là có thể tìm được lời giải chấp nhận được trong thời gian không quá lâu (có thể nhanh với một số trường hợp). Nhưng

nó có nhược điểm đó là có thể bị mắc kẹt ở các điểm tối ưu cục bộ hoặc các điểm dừng, dẫn tới không đảm bảo tìm được lời giải tối ưu toàn cục. Đối với Traveling Thief Problem thì local search được sử dụng để tối ưu kế hoạch chọn các vật phẩm (packing plan) (của bài toán con Knapsack Problem - KP)

hoặc là tối ưu chu trình (tour) (của bài toán con Traveling Saleman Problem

- TSP) mà tên trộm di chuyển (định nghĩa sơ lược về TSP và KP được chúng

em trình bày trong phần 2.2 và 2.3). Trong phần này, chúng em sẽ trình bày

về một số thuật toán local search được sử dụng trong hướng giải pháp của

nhóm trong luận văn này.

2.1.1 2-opt

2-opt là một phương pháp tìm kiếm cục bộ thường được sử dụng chủ yếu

trong bài toán người du lịch (Traveling Salesman Problem - TSP), mục tiêu

của thuật toán là có gắng cải thiện một chu trình đã có bằng cách thay đổi các cặp cạnh không liên tiếp. Ngoài được sử dụng cho TSP, nó còn có thể được sử dụng cho bắt kỳ bài toán mà kết quả ở dạng hoán vị.

Chương 2. Hướng giải pháp hiện nay 13

@——® “` @—O-O.

\ z

HHNHBNNMN.INN HAAG IIE)

HÌNH 2.1: 2-opt (Hình bên trái là chu trình ban đầu, hình bên phải

là chu trình sau khi áp dụng 2-opt lên đoạn từ đỉnh thứ 3 tới đỉnh

thứ 5 trong đồ thị ban đầu)

Ý tưởng của 2-opt khi áp dụng để tối ưu một chu trình như sau. Đầu tiên

sẽ chọn một đoạn liên tiếp các đỉnh từ i tới j với 1 <i <j < n (với n6 là số

đỉnh trong chu trình). Sau đó dao ngược đoạn được chọn lại thì sẽ được một

giải pháp lân cận (Hình 2.1), rồi đánh giá giải pháp lân cận vừa có được. Tiếp

đó tiễn hành so sánh với giải pháp hiện có, nêu kết quả đánh giá tốt hơn thì ta thay thế giải pháp hiện có bằng giải pháp lân cận, ngược lại thì ta giữ nguyên giải pháp hiện có. Quá trình được lặp đi lặp lại đến khi không thể tối ưu được nữa. Thuật toán này có hiệu quả rất tốt trong việc tối ưu kết quả dựa trên một kết quả đã có ban đầu.

Dễ dàng nhìn thấy mọi đoạn từ / tới 7 sao cho 1 <i <j <n thì đều có thể được chọn để thực hiện 2-opt, vì thế có thể chọn tới O(n?) đoạn, tương ứng với O(n) giải pháp lân cận (neighboring solution). Với số lượng giải

pháp lân cận lớn như vậy thì khi giải quyết các trường hợp (instances) có kích

thước lớn sẽ không hiệu quả. Trong bài báo dé xuất về thuật toán CS2SA* và

CS2SAR của Yafrani và các cộng sự [29], đã dé cập đến việc sử dung Delaunay

triangulation [8] như một bộ tạo ứng viên cho thuật toán 2-opt. Delaunay

triangulation cũng được sử dụng trong thuật toán memetic ở [21]. Với một

giải pháp hiện có, thay vì phải đánh giá hết tất cả O(n) giải pháp lân cận,

Một phần của tài liệu Khóa luận tốt nghiệp Khoa học máy tính: Giải thuật mô phỏng luyện thép cải tiến với quy hoạch động cho bài toán người bán hàng với ràng buộc sức chứa (Trang 20 - 79)

Tải bản đầy đủ (PDF)

(79 trang)