Các hoạt động kho vận tại các bến cảng có thể được phân loại theo các loại hình sau đây: sắp xếp các hàng hóa cập bến vào trong khu vực kho bãi, bốc dỡ các hàng hóa trong khu vực kho bãi
Trang 1HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ
-Nguyễn Thanh Hòa
BÀI TOÁN SẮP XẾP KHO VẬN
VỚI RÀNG BUỘC SẮP XẾP
Chuyên ngành: Toán ứng dụng
Mã số: 8 46 01 12
TÓM TẮT LUẬN VĂN THẠC SĨ TOÁN HỌC
Hà Nội - 2021
Trang 2nghệ - Viện Hàn lâm Khoa học và Công nghệ Việt Nam.
Người hướng dẫn khoa học: Tiến sĩ Lê Xuân Thanh
Phản biện 1: Tiến sĩ Lê Hải Yến
Phản biện 2: Tiến sĩ Nguyễn Đức Mạnh
Luận văn được bảo vệ trước Hội đồng chấm luận văn họp tại Viện Hàn lâm Khoa học và Công nghệ Việt Nam
vào hồi 9 giờ 00 phút ngày 12 tháng 11 năm 2021
Có thể tìm hiểu luận văn tại:
- Thư viện Học viện Khoa học và Công nghệ
Trang 3Mở đầu
Với một lượng hàng hóa khổng lồ được sắp xếp và luân chuyển qua các bến cảng trên thế giới hàng ngày, chúng ta đang chứng kiến sự bùng nổ của thương mại quốc tế và chuỗi cung ứng toàn cầu Do đó, việc quản lý và sắp xếp hàng hóa một cách hiệu quả trong các bến cảng ngày càng trở nên quan trọng và thiết yếu Các hoạt động kho vận tại các bến cảng có thể được phân loại theo các loại hình sau đây: sắp xếp các hàng hóa cập bến vào trong khu vực kho bãi, bốc dỡ các hàng hóa trong khu vực kho bãi để vận chuyển đến các điểm đến khác, sắp xếp lại các hàng hóa trong cùng một khu vực kho bãi, kết hợp sắp xếp và bốc dỡ hàng hóa khi một số hàng hóa cần được sắp xếp vào khu vực kho bãi trong khi một số hàng hóa cần được bốc dỡ khỏi khu vực đó Trong các loại hình hoạt động kho vận đó, việc sắp xếp hàng hóa cập bến vào trong khu vực kho bãi đóng vai trò trung tâm, vì hiệu quả của hoạt động đó ảnh hưởng tới hiệu quả của các hoạt động khác
Sắp xếp kho vận là bài toán xuất hiện trong nhiều ngữ cảnh thực tế (chẳng hạn như trong các cảng container, các tàu con-tainer, các trạm đỗ tàu điện) Do đó, bài toán sắp xếp kho vận đã trở thành đối tượng nghiên cứu của một hướng chính trong vận trù học (như đã chỉ ra trong bài báo tổng quan [1]) Trong phần giới thiệu của bài báo [2], các tác giả đã trình bày một tổng quan cập nhật các nghiên cứu về chủ đề này: từ thiết kế của khu vực kho bãi đến sự cân bằng vật lý của các cấu hình sắp xếp, từ độ phức tạp tính toán đến phương pháp giải một số lớp bài toán này,
Trang 4từ các bài toán với dữ liệu chắc chắn đến các bài toán với dữ liệu không chắc chắn, v.v Trong phần tiếp theo của bài báo, các tác giả đã tổng quát hóa một số biến thể của bài toán sắp xếp kho vận, và nghiên cứu bài toán này với các ràng buộc sắp xếp
Sử dụng bài báo [2] làm tài liệu tham khảo chính, trong luận văn này, chúng tôi nghiên cứu một số bài toán tối ưu liên quan đến hoạt động sắp xếp kho vận Mô tả một cách ngắn gọn, trong các bài toán được chúng tôi nghiên cứu, cho trước một khu vực kho bãi được tổ chức dưới dạng các ngăn xếp (stack) Khu vực kho bãi này đã chứa sẵn một số hàng hóa (items) Hàng hóa đến bến cảng theo một dãy các tập hợp và cần được sắp xếp vào khu vực kho bãi Các ràng buộc mang tính kỹ thuật đối với quá trình sắp xếp hàng hóa vào kho bãi bao gồm:
• Trong mỗi ngăn xếp, các hàng hóa được sắp xếp theo thứ
tự vào sau ra trước (last-in-first-out)
• Các ngăn xếp có cùng chiều cao, hay chính xác hơn là có cùng số hàng hóa có thể chứa trong ngăn xếp
• Các ràng buộc sắp xếp được cho trước, trong đó quy định hàng hóa nào được sắp xếp lên trên hàng hóa nào
Chúng tôi quan tâm đến các mục tiêu sau
• Tối thiểu tổng số ngăn xếp được sử dụng
• Tối thiểu tổng số hàng hóa được sắp xếp ở vị trí không thuận lợi cho việc bốc dỡ theo thứ tự thời gian xuất bến
Trang 5Chương 1
Mô tả bài toán
1.1 Khu vực sắp xếp
Chúng ta được cho trước một khu vực kho bãi (còn gọi là khu
vực sắp xếp) được tổ chức dưới dạng m ngăn xếp (stack), mỗi
ngăn xếp có vị trí cố định Tập hợp các ngăn xếp được ký hiệu là
Q = {1, , m} Mỗi ngăn xếp có b tầng (level), và tập hợp các
tầng trong một ngăn xếp được ký hiệu là L = {1, , b} Như vậy
mỗi ngăn xếp có thể chứa được tối đa b đơn vị hàng hóa.
Hàng hóa được sắp xếp vào trong các ngăn xếp theo thứ tự vào sau ra trước Mỗi đơn vị hàng hóa được xếp vào trong một tầng nào đó của một ngăn xếp Hàng hóa phải được đặt trên mặt đất, hoặc trên một đơn vị hàng hóa khác đã được đặt trong khu vực sắp xếp
1.2 Thứ tự sắp xếp
Có tất cả n hàng hóa trong tập hợp I = {1, , n}, được phân
hoạch thành hai tập hợp: I f ixchứa các hàng hóa đã được sắp xếp
sẵn trong khu vực sắp xếp, I ∗ chứa các hàng hóa còn lại đang chờ được sắp xếp vào kho bãi Cấu hình sắp xếp của hàng hóa trong
tập hợp I f ix được cho trước cố định Hàng hóa trong tập hợp I ∗
Trang 6đến khu vực sắp xếp theo thứ tự I1 → I2 → → I K, trong đó
K là một số nguyên dương, I1, , I K lập thành một phân hoạch
của tập hợp I ∗, mỗi tập hợp này chứa các hàng hóa có cùng thời
gian đến bến cảng, và hàng hóa trong tập hợp I k phải được sắp xếp hết vào trong khu vực kho bãi trước khi sắp xếp hàng hóa
trong tập hợp I k+1 (với k = 1, , K − 1) Chúng ta có thể giả
sử không ngăn xếp nào có toàn bộ các tầng chứa hàng hóa thuộc
tập hợp I f ix
1.3 Ràng buộc sắp xếp
Theo thứ tự sắp xếp, hàng hóa đến trước không được phép xếp lên trên hàng hóa đến sau Tùy theo ngữ cảnh, có thể có thêm một số ràng buộc quy định hàng hóa nào được xếp lên trên từng đơn vị hàng hóa Các ràng buộc này có thể được mã hóa bởi ma
trận sắp xếp S = (s ij)∈ {0, 1} n ×n trong đó s
ij = 1nếu hàng hóa
i có thể xếp được lên hàng hóa j Để thuận tiện, chúng ta tích
hợp thứ tự sắp xếp vào trong ma trận sắp xếp
Ta luôn có s ii= 0với mọi i = 1, , n do không hàng hóa nào
có thể xếp lên trên chính nó Mật độ của một ma trận sắp xếp do
đó được tính bởi tỉ số của số phần tử có giá trị 1 so với số phần
tử nằm ngoài đường chéo chính của ma trận đó
Ràng buộc sắp xếp cũng có thể được biểu diễn bởi đồ thị sắp
xếp G S = (V, A) với tập đỉnh V = {1, , n} và tập các cung có
hướng
A = {(i, j) | i có thể xếp được lên trên j}.
Các ràng buộc sắp xếp có thể có tính chất bắc cầu theo nghĩa
nếu hàng hóa i có thể xếp được lên trên hàng hóa j, và hàng hóa
j có thể xếp lên trên hàng hóa k, thì hàng hóa i cũng có thể xếp lên trên hàng hóa k Ma trận sắp xếp được gọi là bắc cầu nếu với mọi i, j, k ∈ I = {1, , n} ta có s ij = 1 và s jk = 1thì cũng có
s ik= 1
Trang 71.4 Mục tiêu sắp xếp
Bài toán sắp xếp kho vận đơn giản nhất là bài toán xác định xem có thể tìm được một cách sắp xếp khả thi với các ràng buộc sắp xếp nêu trên hay không Nếu bài toán đó khả thi, ta quan tâm đến các mục tiêu sau đây
• #St: tối thiểu tổng số ngăn xếp được sử dụng.
• #BI: tối thiểu tổng số hàng hóa được sắp xếp ở vị trí không
thuận lợi cho việc bốc dỡ theo thứ tự thời gian xuất bến
Với mục tiêu này, mỗi hàng hóa i có một giá trị d i chỉ thời gian hàng hóa đó được bốc dỡ khỏi khu vực sắp xếp Hàng
hóa i được gọi là chặn hàng hóa j nếu chúng cùng trong một ngăn xếp và j cần được bốc dỡ sớm hơn i (tức là d j < d i)
Nếu hàng hóa i chặn hàng hóa j, ta nói i bị sắp xếp không
thuận lợi
Trang 8Chương 2
Tiếp cận giải
2.1 Các trường hợp giải được trong thời
gian đa thức
Định lý 1 Bài toán #St với b = 2 có thể giải trong thời gian
O(n 2.5).
Định lý 2 Bài toán #BI với b = 2 có thể giải trong thời gian
O(n3).
2.2 MIP formulations
Trong trường hợp b = 3, Định lý 4 [3] đã khẳng định rằng bài
toán tìm phương án sắp xếp khả thi là NP-đầy đủ ngay cả khi
không có hàng hóa xếp sẵn trong khu vực sắp xếp (I f ix=∅) và
ràng buộc sắp xếp có tính chất bắc cầu Trong trường hợp b = k với k ≥ 4, kết quả tương tự đã được chỉ ra trong Định lý 2.11 [6].
2.2.1 Mô hình 3-chỉ số
Chúng ta sử dụng các biến nhị phân sau
x iqℓ=
{
1 nếu hàng hóa i được xếp vào tầng ℓ của ngăn xếp q,
0 nếu ngược lại.
Trang 9F = {(i, q, l) ∈ I f ix ×Q×L|i ∈ I f ix được xếp trong ngăn q tầng ℓ }.
Ta có mô hình quy hoạch nhị phân cho bài toán #St như sau (St3 − index) min ∑
i ∈I
∑
q ∈Q
s.t. x iqℓ= 1 ∀(i, q, ℓ) ∈ F, (2.2)
∑
q ∈Q
∑
ℓ ∈L
x iqℓ= 1 ∀i ∈ I, (2.3)
∑
i ∈I
x iqℓ ≤ 1 ∀q ∈ Q, ℓ ∈ L, (2.4)
∑
j ∈I\{i}
s ij x jqℓ ≥ x i,q,ℓ+1 ∀i ∈ I, q ∈ Q, ℓ ∈ L\{b},
(2.5)
x iqℓ ∈ {0, 1} ∀i ∈ I, q ∈ Q, ℓ ∈ L.
(2.6)
Với bài toán #BI, ta sử dụng thêm các biến sau.
y iqℓ=
{
1 nếu i bị xếp không thuận lợi tại tầng ℓ của ngăn q,
0 nếu ngược lại.
Đặt B i ={j ∈ I | d j < d i } Ta có mô hình sau.
(BI3 − index) min ∑
i ∈I
∑
q ∈Q
∑
ℓ ∈L
s.t. x iqℓ= 1 ∀(i, q, ℓ) ∈ F,
(2.8)
∑
q ∈Q
∑
ℓ ∈L
x iqℓ= 1 ∀i ∈ I, (2.9)
∑
i ∈I
x iqℓ ≤ 1 ∀q ∈ Q,
∀ℓ ∈ L,
(2.10)
Trang 10j ∈I\{i}
s ij x jqℓ ≥ x i,q,ℓ+1 ∀i ∈ I, q ∈ Q,
ℓ ∈ L\{b},
(2.11)
y iqℓ ≤ x iqℓ ∀i ∈ I, q ∈ Q,
ℓ ∈ L,
(2.12)
|B i |(1 − x iqℓ + y iqℓ)≥ ∑
j ∈B i
∑
k<ℓ
x jqk ∀i ∈ I, q ∈ Q,
ℓ ∈ L,
(2.13)
x iqℓ ∈ {0, 1} ∀i ∈ I, q ∈ Q,
ℓ ∈ L.
(2.14)
2.2.2 Mô hình luồng mạng
Ta nhúng đồ thị sắp xếp G S = (V, A) vào một mạng G ′ S =
(V ′ , A ′)với V ′ = V ∪ {s, t} và A ′ = A ∪ A s ∪ A t, trong đó
• s là đỉnh nguồn, t là đỉnh đích,
• A s={(s, i) | i ∈ I ∗ hoặc i ∈ I f ix nằm trên cùng của 1 ngăn};
• A t={(j, t) | j ∈ I ∗ hoặc j ∈ I f ix nằm dưới cùng của 1 ngăn}.
Ký hiệu
A0 ={(i, j) ∈ I f ix × I f ix |i được xếp sẵn ngay trên j}.
Chúng ta sử dụng các biến x ij tương ứng với các cung (i, j) ∈ A ′
với ý nghĩa
x ij =
{
1 nếu i được xếp ngay trên j,
0 nếu ngược lại
Trang 11Ta có mô hình sau cho bài toán #St.
(StN et) min ∑
i ∈V
s.t ∑
i ∈V
x ij = 1 ∀ (i, j) ∈ A0 (2.17)
∑
j:(i,j) ∈A ′
x ij = 1 ∀i ∈ V (2.18)
∑
j:(j,i) ∈A ′
x ji= 1 ∀i ∈ V (2.19)
h j + b(1 − x ij)≥ h i+ 1 ∀(i, j) ∈ A (2.20)
h i ≤ b − 1 ∀i ∈ V (2.21)
h i ≥ 0 ∀i ∈ V (2.22)
x ij ∈ {0, 1} ∀(i, j) ∈ A ′ . (2.23)
Với bài toán #BI, ta sử dụng thêm các biến nhị phân y i với ý nghĩa y i = 1 nếu hàng hóa i bị xếp không thuận lợi Đặt
M := max {d1, , d n }, ta có mô hình sau đây cho bài toán #BI.
(BIN et) min ∑
i ∈V
s.t ∑
i ∈V
x ij = 1 ∀ (i, j) ∈ A0 (2.26)
∑
j:(i,j) ∈A ′
x ij = 1 ∀i ∈ V (2.27)
∑
j:(j,i) ∈A ′
x ji= 1 ∀i ∈ V (2.28)
h j + b(1 − x ij)≥ h i+ 1 ∀(i, j) ∈ A (2.29)
h i ≤ b − 1 ∀i ∈ V (2.30)
h i ≥ 0 ∀i ∈ V (2.31)
M y i ≥ d i − c i ∀i ∈ V (2.32)
c ≤ c + (1− x ) ∀i ∈ V (2.33)
Trang 12c i ≤ d i ∀(i, j) ∈ A (2.34)
x ij ∈ {0, 1} ∀(i, j) ∈ A ′ (2.35)
y i ∈ {0, 1} ∀i ∈ V (2.36)
2.2.3 Mô hình đóng gói
Mô hình này yêu cầu tính bắc cầu của ràng buộc sắp xếp Trong mô hình này, ta chỉ cần xác định xem hàng hóa nào cần được xếp vào trong ngăn xếp nào Vị trí của mỗi hàng hóa trong ngăn xếp của nó được xác định thông qua tính bắc cầu của ràng buộc sắp xếp giữa các hàng hóa trong cùng ngăn xếp Ta sử dụng
các biến nhị phân x i q với i ∈ I và q ∈ Q theo ý nghĩa
x ij =
{
1 nếu i được xếp vào ngăn q,
0 nếu ngược lại
Ta sử dụng thêm các biến z q với q ∈ Q với ý nghĩa
z q =
{
1 nếu có hàng hóa được xếp trong ngăn q,
0 nếu ngược lại
Ký hiệu
F bin={(i, q) ∈ I f ix × Q | i được xếp trong ngăn q}
và
F bin top ={(i, q) ∈ I f ix × Q | i là hàng I f ix cao nhất trong q }.
Ký hiệu tập hợp các ngăn xếp chứa ít nhất một hàng hóa loại I f ix
bởi Q f ix Với mỗi q ∈ Q f ix , gọi b q là số hàng hóa I f ix đã có sẵn
trong ngăn xếp đó Bài toán #St có thể mô hình hóa như sau (StBin) min ∑
q ∈Q
Trang 13s.t. x iq= 1 ∀(i, q) ∈ F bin , (2.38)
∑
i ∈I
x iq ≤ bz q ∀q ∈ Q, (2.39)
x iq ≤ z q ∀i ∈ I, q ∈ Q, (2.40)
∑
q ∈Q
x iq= 1 ∀i ∈ I, (2.41)
∑
j ∈I ∗ \{i}
s ij =s ji=0
x jq ≤ b(1 − x iq) ∀(i, q) ∈ I ∗ × Q, (2.42)
∑
j ∈I ∗ \{i}
s ji=0
x jq= 0 ∀(i, q) ∈ F top
bin , (2.43)
x iq ∈ {0, 1} ∀i ∈ I, q ∈ Q, (2.44)
z q ∈ {0, 1} ∀q ∈ Q. (2.45)
Với bài toán #BI, chúng ta cần xử lý các “hàng hóa tương đương” Ta nói các hàng hóa i, j là tương đương nếu
• chúng thuộc cùng một tập hợp hàng hóa I λ trong thứ tự
sắp xếp I f ix → I1→ → I K, và
• s ij = s ji= 1
Bổ đề 1 Cho trước một ma trận sắp xếp bắc cầu S = (s ij) ∈ {0, 1} n ×n và giả sử tồn tại các hàng hóa tương đương Khi đó ta
có thể chuyển S về một ma trận sắp xếp S ′ sao cho
(i) không có hàng hóa tương đương theo quan hệ định nghĩa bởi
S ′ ,
(ii) S ′ bắc cầu, và
(iii) mỗi phương án sắp xếp khả thi theo S có thể chuyển về một phương án khả thi theo S ′ mà không làm tăng số ngăn xếp được sử dụng cũng như số hàng hóa bị xếp ở vị trí không thuận lợi.
Với mỗi i ∈ I, đặt B ′
i={j ∈ I | s ij = 1, d j < d i } Ta sử dụng
Trang 14các biến sau.
β iq =
{
1 nếu i được xếp không thuận lợi trong ngăn q,
0 nếu ngược lại,
γ iq =
{
1 nếu i được xếp thuận lợi trong ngăn q,
0 nếu ngược lại
Ta có mô hình sau cho bài toán #BI.
i ∈I
∑
q ∈Q
s.t. β iq + γ iq= 1 ∀(i, q) ∈ F bin ,
(2.47)
∑
i ∈I
(β iq + γ iq)≤ b ∀q ∈ Q,
(2.48)
∑
q ∈Q
(β iq + γ iq) = 1 ∀i ∈ I, (2.49)
∑
j ∈I ∗ \{i}
s ij =s ji=0
(β jq + γ jq)≤ b(1 − β iq − γ iq) ∀(i, q) ∈ I ∗ × Q,
(2.50)
∑
j ∈I ∗ \{i}
s ji=0
(β jq + γ jq) = 0 ∀(i, q) ∈ F top
bin ,
(2.51)
∑
j ∈B ′
(β jq + γ jq)≤ b(1 − γ iq) ∀(i, q) ∈ I × Q,
(2.52)
β iq , γ iq ∈ {0, 1} ∀i ∈ I, q ∈ Q.
(2.53)
Trang 15Chương 3
Thực nghiệm số
3.1 Tạo dữ liệu
Một ví dụ số cụ thể của bài toán sắp xếp kho vận được xác định đầy đủ khi biết số lượng hàng hóa trong từng tập hợp theo thứ tự sắp xếp, cỡ của khu vực kho bãi (số ngăn xếp và chiều cao các ngăn xếp), cấu hình sắp xếp của các hàng hóa đã có sẵn trong khu vực kho bãi, thời gian xuất bến của mỗi hàng hóa, và ràng buộc sắp xếp thể hiện dưới dạng ma trận sắp xếp
Chúng tôi tạo ngẫu nhiên các ví dụ số cho các thử nghiệm, với
số hàng hóa như sau
n ∈ {40, 60, 80, 100, 120, 240, 480, 600}.
Thứ tự sắp xếp bao gồm 5 tập hợp I f ix → I1 → I2 → I3 → I4
Số phần tử trong mỗi tập hợp này được tạo ngẫu nhiên, với tổng
số phần tử bằng n xác định như trên Số phần tử trong I f ix bị giới hạn trên bởi n
5
Để tạo cấu hình sắp xếp cho các hàng hóa có sẵn trong kho bãi,
chúng tôi phân bố ngẫu nhiên số hàng hóa trong I f ix vào |I f ix |
ngăn xếp sao cho không có ngăn nào bị xếp đầy bởi các hàng hóa trong tập hợp này Thời gian xuất bến của mỗi hàng hóa được chọn ngẫu nhiên trong{1, 2, , 6}.
Trang 16Chúng tôi tạo ngẫu nhiên các ma trận sắp xếp bằng cách gán
với mỗi hàng hóa một bộ 3 tham số w1, w2, w3 và chọn giá trị cho các tham số này trong tập hợp {1, 2, 3} Với mỗi cặp hàng hóa
i, j ∈ I f ix ta đặt s ij = 1 nếu hàng hóa i được đặt ngay trên hàng hóa j trong cùng một ngăn xếp Với mỗi hàng hóa i ∈ I ∗ = I \I f ix
và bất kỳ hàng hóa j ∈ I, ta đặt s ij = 1nếu i đến sau j và w i
l ≤ w j l
với mọi l ∈ {1, 2, 3} Theo cách này, các ma trận sắp xếp thu được
sẽ có tính chất bắc cầu
Về kích cỡ kho bãi, chúng tôi chọn giá trị{4, 5, 6} cho số tầng
b trong các ngăn xếp Với bài toán #St, chúng tôi khởi tạo giá trị số ngăn xếp m = n
2 Với bài toán #BI, chúng tôi khởi tạo giá trị số ngăn xếp m là giá trị tối ưu của bài toán #St với dữ liệu
tương ứng
3.2 Kết quả thực nghiệm
Chúng tôi tiến hành các thực nghiệm trên máy tính PC In-tel(R) Core(TM) i5-4210U, CPU 1.7GHz and 4GB RAM Dữ liệu cho các bài toán được tạo bởi Visual Basic NET Chúng tôi sử dụng ZIMPL 3.3.2 [8] để cài đặt các mô hình, và sử dụng GUROBI 9.1.2 [9] giải số các mô hình này
Chúng tôi đã tiến hành 3 thực nghiệm Trong thực nghiệm đầu tiên, chúng tôi nhận thấy các mô hình sử dụng tiếp cận đóng gói có tốc độ giải số vượt trội hơn hẳn so với các mô hình sử dụng
2 tiếp cận còn lại Trong thực nghiệm thứ hai, chúng tôi thấy rằng thời gian chạy của các mô hình sử dụng tiếp cận 3 chỉ số và tiếp cận đóng gói giảm đáng kể khi số ngăn xếp được giảm xuống Trong thực nghiệm thứ ba, chúng tôi nhận thấy số hàng hóa bị xếp không thuận lợi giảm đáng kể khi số ngăn xếp tăng lên