VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
School of Applied Mathematics and Informatics
Báo cáo Các
phương pháp tối ưu
Chủ đề: Bài toán vận tải mở rộng
Giảng viên hướng dẫn: Phạm Thị Hồi
Nhóm sinh viên thực hiện: Nhóm 5
Trần Huy Hồng
Vũ Thị Tâm
Vũ Đức Trung
Vũ Trung Hiếu
Thiều Quang Bách
Tống Thị Huyền
20185362
20185403
20185417
20185355
20185327
20173532
Võ Thùy Phương
Trần Xuân Hiếu
Trần Hải Phong
Trần Viết Tài
Trần Văn Bắc
20185394
20185354
20185393
20185402
20185325
Mục lục
1 Lời nói đầu
2
2 Nhắc lại
3
3 Bài tốn khơng cân bằng thu phát
3.1 Tổng lượng phát lớn hơn tổng lượng thu (Cung lớn hơn cầu) . . . . . . . . .
3.2 Tổng lượng thu lớn hơn tổng lượng phát (Cầu lớn hơn cung) . . . . . . . . .
3
3
8
4 Bài toán vận tải với ràng buộc bất đẳng thức
8
5 Bài toán lập kho hàng
5.1 Mơ hình bài tốn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Ví dụ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
11
12
6 Bài tốn vận tải có ơ cấm
16
7 Bài tốn vận tải dạng max
7.1 Mơ hình bài tốn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Ví dụ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
18
19
8 Bài toán phân việc
8.1 Thuật toán Hungarian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Ví dụ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
22
22
9 Tổng kết
24
1
1
Lời nói đầu
Ngay từ thế kỷ XVIII, nhà tốn học L.Euler 1 đã viết "Vì thế giới được thiết lập một
cách hồn hảo nhất và vì nó là sản phẩm của đấng sáng tạo tinh thơng nhất, nên khơng thể
tìm thấy một cái gì mà khơng mang tính chất cực đại hay cực tiểu nào đó."
Từ xa xưa, trong nhiều tình huống xã hội, từ cuộc sống đời thường đến các hoạt động
kinh tế, kỹ thuật, ... người ta luôn muốn tìm ra phương pháp tốt nhất để đạt mục tiêu mong
muốn trong những điều kiện ràng buộc nhất định. Đó chính là các bài tốn tối ưu. Chính
những nỗ lực giải các bài tốn này đã góp phần phát triển Toán học thể kỷ XVII - XVIII.
Ngày nay, với sự trợ giúp của cuộc cách mạng công nghệ lần thứ tư, quy hoạch toán học
ngày càng phát triển mạnh mẽ. Các phương pháp tối ưu đã được ứng dụng rộng rãi trong
mọi lĩnh vực khoa học, kỹ thuật, kinh thế, viễn thông, khai thác dữ liệu, ...
Quy hoạch tuyến tính là một bộ phận quan trọng của quy hoạch tốn học. Theo bản tin
của Liên đồn Tốn học thế giới 1/2005: Một trong những thành tựu vĩ đại của thế ký XX
là đã phát minh ra và phát triển lý thuyết quy hoạch tuyến tính. Đây là mơ hình toán của
nhiều bài toán thực tế thuộc các lĩnh vực khác nhau. Trong báo cáo này chúng em nghiên cứu
và trình bày về bài tốn vận tải, một trong những ứng dụng thành cơng của quy hoạch
tuyến tính.
Theo một thống kê của Mỹ, có đến 85% các bài tốn quy hoạch tuyến tính gặp trong ứng
dụng thực tế có dạng bài toán vận tải hoặc các dạng mở rộng của nó. Bài tốn vận tải giải
quyết vấn đề phân phối hàng hóa từ một số điểm cung cấp đế một số điểm tiêu thụ sao cho:
tổng chi phí ít nhất, cự ly vận chuyển nhỏ nhất, ... Nó được áp dụng trong thực tế để xác
định vị trí đặt nhà kho, cửa hàng hay nhà xưởng mới khi xem xét một số phương án về địa
điểm xây dựng ...
Bài báo cáo khơng tránh khỏi nhiều thiếu sót, rất mong được cơ cùng các bạn đọc góp ý
thêm.
Hà Nội, ngày 8 tháng 5 năm 2021
1
Leonhard Euler (15/4/1707 - 18/9/1783) là một nhà toán học, nhà vật lý học, nhà thiên văn học, nhà lý
luận và kỹ sư người Thụy Sĩ. Ông (cùng với Archimedes và Newton) được xem là một trong những nhà toán
học lừng lẫy nhất với khám phá quan trọng và rất ảnh hưởng trong nhiều ngành toán học, như vi tích phân
và lý thuyết đồ thị, đồng thời có những đóng góp tiên phong cho một số ngành như tơ pơ và lý thuyết số giải
tích. Ơng cũng giới thiệu nhiều thuật ngữ và ký hiệu toán học hiện đại, đặc biệt cho ngành giải tích tốn học,
nổi bật là khái niệm hàm số toán học.
2
2
Nhắc lại
Mơ hình tốn học bài tốn vận tải
m
n
min f (x) =
cij xij
(P T )
i=1 j=1
n
v.đ.k.
xij = ai ,
i = 1, · · · , m
(2.0.1)
xij = bj ,
j = 1, · · · , n
(2.0.2)
xij ≥ 0,
i = 1, · · · , m, j = 1, · · · , n.
(2.0.3)
j=1
m
i=1
3
Bài tốn khơng cân bằng thu phát
3.1 Tổng lượng phát lớn hơn tổng lượng thu (Cung lớn hơn cầu)
n
m
bj
ai >
j=1
i=1
Tức là tồn tại điểm không phát hết hàng. Khi đó ràng buộc 2.0.1 trong (P T ) đổi lại là:
n
(3.1.4)
xij ≤ ai
j=1
Vậy để đưa về bài toán ban đầu, ta chỉ cần thêm vào điểm thu giả với cước phí tại các ơ đó
đều là 0. Bài tốn với m điểm phát và n+1 điểm thu là :
m n+1
min f (x) =
cij xij
i=1 j=1
n+1
v.đ.k.
xij = ai ,
i = 1, · · · , m
xij = bj ,
j = 1, · · · , n + 1
xij ≥ 0,
i = 1, · · · , m, j = 1, · · · , n + 1.
j=1
m
i=1
3
(3.1.5)
Bài toán thỏa mãn điều kiện cân bằng thu phát có thể giải bằng Thuật tốn thế vị nhận
được phương án tối ưu x∗ = (x∗ij ), i = 1, ..., m, j = 1, ..., n + 1.
Nếu x∗i(n+1) > 0 thì ở điểm phát thứ i cịn đọng lượng hàng là x∗i(n+1) .
Ví dụ: Xét bài tốn vận tải với các dữ liệu về lượng phát, lượng thu và ma trận chi phí
cho dưới bảng 3.1:
bj
80
ai
70
90
100
6
5
3
1
9
7
5
8
2
9
4
6
100
160
140
Bảng 3.1
3
4
ai = 400 >
i=1
bj = 340
j=1
Bài tốn này có tổng lượng phát lớn hơn tổng thu.
Vì vậy ta thêm trạm thu giả n+1=5 với yêu cầu là b5 = 400 − 340 = 60 và đặt
c15 = c25 = c35 = 0. Ta thu được bài toán cân bằng thu phát. PACB x0 xác định theo phương
pháp cực tiểu chi phí và kết quả tính các thế vị như bảng dưới:
4
vj
ui
bj
ai
−4
0
−2
1
0
80
70
100
90
60
6
0
5
3
9
−5
7
−5
5
−
40
8
160
60
0
+
−
−6
2
8
0
+
100
−10
7
1
70
9
40
4
7
50
6
0
140
−3
80
1
60
6
Bảng 3.2
Từ Bảng 3.2, chọn (is , js )=(2,5) làm ô điều chỉnh, tiếp tục thuật toán thế vị ta chuyển
sang phương án cực biên mới x1 . Các số liệu tương ứng với x1 được biểu diễn ở Bảng 3.
vj
ui
bj
ai
3
7
5
1
0
80
70
100
90
60
6
0
5
9
2
7
0
2
5
90
8
10
0
160
−6
2
−1
1
100
−3
0
3
70
9
−7
40
4
6
50
0
140
80
−3
60
−6
−1
Bảng 3.3
Nhận xét rằng, trong bảng 3.3 ta có ∆12 = ∆13 = 2 = max{∆ij > 0|(i, j) ∈
/ G(x1 )} Ta có thể
chọn bất kì một trong hai ô này làm ô điều chỉnh. Sau đây,ta xét cả hai cách chọn này.
Cách thứ nhất.Nếu chọn ô điều chỉnh là ơ (1,3) và thực hiện biến đổi tiếp thì ta nhận được
5
0 0 10 90 0
Bảng tương ứng với phương án cực biên tối ưu x∗ của bài toán, x∗ = 0 70 30 0 60
80 0 60 0 0
vj
ui
bj
ai
1
5
3
1
−2
80
70
100
90
60
6
0
5
9
0
7
1
0
10
5
−2
90
8
0
160
−6
2
1
3
100
−5
2
70
9
−5
30
4
6
60
0
140
80
−3
60
−4
−1
Bảng 3.4
0
Trở lại bài tốn ban đầu, ta có phương án vận chuyển tối ưu là xopt = 0
80
opt
với giá trị tối ưu là f (x ) = 1160. Điểm phát thứ nhất và điểm phát thứ
hàng. Điểm phát thứ hai còn 60 đơn vị hàng.
0
70
0
ba
10 90
30 0
60 0
đã phát hết
Vì Bảng 3.4 cịn có 12 = 0 và ô (1,2) ∈
/ G(x∗ ) nên phương án x∗ không phải phương án
cực biên tối ưu duy nhất của bài toán. Thực hiện biến đổi theo thuật toán thế vị, ta nhận
được Bảng tương ứng với phương án cực biên tối ưu thứ hai xopt của bài toán ban đầu là
6
vj
ui
bj
ai
1
5
3
1
−2
80
70
100
90
60
6
0
5
3
9
0
10
7
5
−2
90
8
0
160
−6
2
1
0
100
−5
2
1
60
9
−5
40
4
6
60
0
140
−3
80
−4
60
−1
Bảng 3.5
Từ bảng 3.5, nếu tiếp tục chọn ô (1,3) ∈
/ G(x∗ ) có ∆13 = 0 làm ơ điều chỉnh và biến đổi
theo thuật toán thế vị ta lại quay lại Bảng. Như vậy, bài tốn chỉ có hai phương án cực biên
tối ưu và tập nghiệm tối ưu của nó là
F∗ = {x = λx∗ + (1 − λ)x∗ với 0 ≤ x ≤ 1}
0 10 − 10λ
10λ
90 0
= x = 0 60 + 10λ 40 − 10λ 0 60 với 0 ≤ λ ≤ 1
80
0
60
0 0
Cách thứ hai Từ bảng 3.3, nếu chọn ô điều chỉnh là ơ (1,2) và biến đổi tiếp thì ta nhận
được Bảng 3.5 tương ứng với PACB tối ưu x∗ của bài toán mở rộng cân bằng thu phát. Tiếp
tục thực hiện biến đổi tiếp từ Bảng 3.5 với ô điểu chỉnh (1,3) có 13 = 0, ta trở lại Bảng 3.4
với PACB tối ưu x∗ đã biết.
7
3.2 Tổng lượng thu lớn hơn tổng lượng phát (Cầu lớn hơn cung)
n
m
bj >
j=1
ai
i=1
Tức là hàng ở điểm phát không đủ nhu cầu ở mọi điểm thu. Khi đó ràng buộc 2.0.2 trong
P T đổi lại là:
m
(3.2.6)
xij ≤ bj
i=1
Vậy để đưa về bài toán ban đầu, ta chỉ cần thêm vào điểm phát giả với cước phí tại các ơ
đó đều là 0. Bài toán với m+1 điểm phát và n điểm thu là :
m+1 n
min f (x) =
cij xij
i=1 j=1
n
v.đ.k.
xij = ai ,
i = 1, · · · , m + 1
xij = bj ,
j = 1, · · · , n
xij ≥ 0,
i = 1, · · · , m + 1, j = 1, · · · , n.
j=1
m+1
i=1
trong đó c(m+1)j = 0, j = 1, · · · , n. Bài toán thoả mãn điều kiện cân bằng thu phát do đó
có thể giải bằng các phương pháp thế vị.
4
Bài toán vận tải với ràng buộc bất đẳng thức
Trong thực tế, nhiều mơ hình bài tốn vận tải có dạng:
m
n
min f (x) =
cij xij
(4.0.1)
i=1 j=1
n
v.đ.k.
xij ≤ ai ,
i = 1, · · · , m
(4.0.2)
xij ≥ bi ,
j = 1, · · · , n
(4.0.3)
xij ≥ 0,
i = 1, · · · , m, j = 1, · · · , n.
(4.0.4)
j=1
m
i=1
Điều kiện (4.0.2) có nghĩa là các điểm phát có thể khơng phát hết hàng. Điều kiện (4.0.3) có
nghĩa là các điểm thu quá nhu cầu có thể tiêu thụ được.
8
Điều kiện cần và đủ để bài toán (4.0.1) -(4.0.4) có phương án tối ưu như sau:
Định lý 1
Bài tốn (4.0.1) -(4.0.4) cố phương án tối ưu khi và chỉ khi tổng lượng phát không bé
hơn tổng lượng thu, nghĩa là
m
n
ai ≥
i=1
bj
(4.0.5)
j=1
Chứng minh
Theo Định lý tồn tại bài toán vận tải có nghiệm tối ưu khi và chỉ khi tổng lượng thu bằng
tổng lượng phát
⇒ Dấu "=" đã được chứng minh
Việc áp dụng thuật toán thế vị để giải bài toán với ràng buộc đẳng thức được chia làm
hai trường hợp, phụ thuộc vào điều kiện (4.0.5). Cụ thể:
Trường hợp 1: Ta có
m
n
ai =
i=1
bj ,
j=1
tức bài tốn thỏa mãn điều kiện cân bằng thu phát.
Khi đó, mọi phương án chấp nhận được của bài toán (4.0.1) -(4.0.4) đều thỏa mãn (4.0.2) và
(4.0.3) dưới dạng dấu đẳng thức, tức:
n
xij = ai ,
i = 1, · · · , m
xij = bi ,
j = 1, · · · , n
j=1
m+1
i=1
Vì vậy, việc giải được bài toán ban đầu trở về giải bài toán vận tải với điều kiện cân bằng thu
phát (sử dụng thuật toán thế vị để giải).
Trường hợp 2: Ta có
m
n
ai >
i=1
bj ,
j=1
tức tổng lượng phát lớn hơn tổng lượng thu.
Ta dễ dàng chứng minh được rằng:"Nếu x∗ là nghiệm tối ưu của (4.0.1) -(4.0.4) thì x∗ thỏa
mãn chặt ràng buộc (4.0.3)" (Theo Định lý tồn tại)
9
Nhắc lại:
Định lý tồn tại:
Bài tốn vận tải có phương án tối ưu khi và chỉ khi tổng tất cả các lượng phát bằng
tổng tất cả lượng thu, tức là
m
n
ai =
i=1
bj
j=1
Như vậy, bài toán ban đầu tương đương với bài toán sau:
m
n
min f (x) =
cij xij
i=1 j=1
n
v.đ.k.
xij ≤ ai ,
i = 1, · · · , m
xij = bi ,
j = 1, · · · , n
xij ≥ 0,
i = 1, · · · , m, j = 1, · · · , n.
j=1
m
i=1
Mơ hình bài tốn này phù hợp với thực tế khi các điểm thu tự cân đối chỉ nhận đủ hàng.
Ta sử dụng kĩ thuật thêm trạm thu giả (n + 1), đưa thêm biến phụ xi(n+1) ≥ 0, i = 1, · · · , m
ứng với hệ số mục tiêu ci(n+1) = 0, i = 1, ..., m. Lúc này bài toán giải được bằng phương pháp
thế vị và nhận được phương án tối ưu x∗ = (x∗ij )m×(n+1) (Quay về bài tốn khơng cân bằng
thu phát trong trường hợp cung lớn hơn cầu)
opt
∗
Chú ý: Phương án tối ưu của bài toán ban đầu là xopt = (xopt
ij ) với xij = xij với ∀i =
1, ..., m; j = 1, ..., n. Nếu x∗i(n+1) ≥ 0 thì có nghĩa là điểm phát thứ i còn thừa một lượng hàng
x∗i(n+1) đơn vị.
10
5
Bài tốn lập kho hàng
5.1 Mơ hình bài tốn
Giả sử một tập đoàn gồm m nhà máy sản xuất một loại hàng hóa với sản lượng tương
ứng là ai , i = 1, ..., m và họ đã sản xuất sẵn nold kho chứa hàng với trữ lượng là b1 , b2 , ..., bnold .
Người ta định xây dựng nnew kho mới. Bài toán đặt ra là mỗi kho mới phải được thiết kế để
chứ bao nhiêu hàng và tìm phương án vận chuyển hết hàng từ m nhà máy đến n = nold + nnew
kho sao cho chi phí vận chuyển là nhỏ nhất với giả thiết các kho mới có thể chứa được lượng
hàng khơng hạn chế. Cho biết cước phí vận chuyển một đơn vị hàng từ nhà máy i đến kho j
là cij ; i = 1, ..., m; j = 1, ..., n.
Với giả thiết các kho mới có lượng hàng chứa được khơng hạn chế, ta có thể dể dàng đưa bài
tốn về dạng vận tải cầu vượt cung bằng việc đặt:
m
bj =
ai , ∀j = nold + 1, ..., nold + nnew
i=1
Do đó, ta chỉ cần thêm điểm phát giả với lượng phát:
n
m
am+1 =
bj −
j=1
ai
i=1
và c(m+1)j = 0 ∀j = 1, ..., n. Khi đó bài tốn ban đầu tương đương với bài toán sau:
m+1 n
min f (x) =
cij xij
i=1 j=1
n
v.đ.k.
xij = ai ,
i = 1, · · · , m + 1
xij = bj ,
j = 1, · · · , n
xij ≥ 0,
i = 1, · · · , m + 1, j = 1, · · · , n.
j=1
m+1
i=1
Giả sử x∗ = (x∗ij ) là nghiệm tối ưu của bài tốn trên. Khi đó, mỗi kho mới được thiết kế
với trữ lượng là:
m
b∗j =
x∗ij
i=1
Phương án tối ưu của bài toán là:
opt
∗
xopt = (xopt
ij ) với xij = xij , với mọi i = 1, m; j = 1, n
11
5.2 Ví dụ
Một liên hợp nhà máy sản xuất xi măng và đã có 3 kho. Họ dự định xây thêm 2 kho nữa
(với lượng chứa tùy ý) sao cho 5 kho này có thể chứa hết xi măng cần chuyển ra khỏi các
nhà máy. Thông tin về lượng phát, lượng thu được cho ở dưới. Hãy xác định trữ lượng hai
kho cần xây dựng và phương án vận chuyển sau khi có hai kho này sao cho tổng chi phí vận
chuyển là nhỏ nhất.
bj
75
ai
80
100
90
490
65
80
270
270
1
9
8
10
2
2
4
10
9
4
9
3
2
5
2
0
0
0
0
0
Bảng 5.1
Giải:
Bài tốn có m = 3, nold = 3, nnew = 2 và n = nold + nnew = 5.
Gán lượng thu b4 = b5 = 3i=1 ai = 270. Đặt điểm phát (m + 1) = 4 với lượng phát:
5
a4 =
3
ai = 490
bj −
j=1
i=1
và các cước phí c4j = 0 với ∀j = 1, 5
Giải bài toán với 4 điểm phát và 5 điểm thu:
Dùng phương pháp cực tiểu chi phí tìm điểm cực biên, ta thu được: f (x0 ) = 940 Ta có bảng:
12
vj
ui
0
bj
ai
1
5
4
10
10
75
65
80
270
270
1
80
9
8
−4
75
−1
−2
−10
2
100
4
9
0
490
0
−9
2
3
0
−5
5
45
80
0
−6
8
4
5
10
+
5
−7
2
−10
−
9
55
3
2
−4
10
−2
90
10
+
220
6
0
−
270
Bảng 5.2
Chọn ô (1,5) là ô điều chỉnh với chu trình K như trên bảng. Khi đó:
θ = min{x0ij | (i, j) ∈ K − } = 5
Khi đó f (x1 ) = f (x0 ) − θ∆15 = 900. Ta có bảng:
vj
ui
0
bj
ai
80
1
1
−3
2
2
2
75
65
80
270
270
9
−
−12
75
7
0
−2
100
90
490
2
+
8
4
6
9
10
3
0
−1
−8
9
−1
2
10
0
2
−6
55
−8
10
−5
4
−
5
0
0
−3
0
0
+
225
Chọn ơ (2,1) là ơ điều chỉnh với chu trình K như trên bảng. Khi đó:
θ = min{x1ij | (i, j) ∈ K − } = 45
13
−5
2
Bảng 5.3
Khi đó f (x2 ) = f (x1 ) − θ∆21 = 630. Ta có bảng:
5
45
80
+
0
−
265
vj
ui
0
bj
ai
1
80
1
3
2
2
2
75
65
80
270
270
9
−
8
−6
30
1
2
100
4
+
−2
9
90
0
490
0
−1
+
1
−2
0
1
−1
2
80
0
50
−6
5
10
+
4
−7
2
−8
−8
9
55
3
2
−6
10
−
45
0
10
0
0
270
−
220
Bảng 5.4
Chọn ô (4,2) là ô điều chỉnh với chu trình K như trên bảng. Khi đó:
θ = min{x2ij | (i, j) ∈ K − } = 30
Khi đó f (x3 ) = f (x2 ) − θ∆42 = 600. Ta có bảng:
vj
ui
0
2
bj
ai
80
100
0
2
1
2
2
75
65
80
270
270
1
9
8
−1
2
−7
4
−2
90
490
9
−8
10
0
−2
9
2
−
0
−5
2
−2
80
30
80
4
5
0
+
2
−8
−7
25
3
0
−7
10
75
1
10
0
−1
0
270
+
1
−
190
Bảng 5.5
Chọn ơ (3,5) là ơ điều chỉnh với chu trình K như trên bảng. Khi đó:
θ = min{x3ij | (i, j) ∈ K − } = 10
Khi đó f (x4 ) = f (x3 ) − θ∆35 = 590. Ta có bảng:
14
vj
ui
0
2
bj
ai
80
100
0
2
2
2
2
75
65
80
270
270
1
9
8
−1
2
−7
4
−2
90
490
9
9
−3
0
0
2
−5
80
40
4
5
0
−2
80
−7
2
−9
2
−8
−8
25
3
0
−6
10
75
0
10
0
0
10
0
270
180
Bảng 5.6
Dễ thấy các ∆ ≤ 0 nên:
0 0 0
0
80
75 25 0
0
0
x∗ =
0
0 80 0
10
0 40 0 270 180
là phương án tối ưu của bài toán bổ sung.
Vậy kho thứ tư cần được xây dựng để chứa 3i=1 x∗i4 = 0 đơn vị hàng hóa (tức là không cần
thiết để xây dựng). Tương tự kho thứ năm cần được xây dựng để chứa 3i=1 x∗i5 = 90 đơn vị
hàng hóa. Sau khi đã xây dựng hai kho này, phương án vận chuyển tối ưu là:
0 0 0 0 80
=
75 25 0 0 0
0 0 80 0 10
xopt
Giá trị tối ưu của bài toán là f (xopt ) = 590.
15
6
Bài tốn vận tải có ơ cấm
Trong thực tế, có trường hợp không thể vận chuyển hàng từ điểm phát i đến điểm thu j.
Khi đó (i,j) là ơ cấm
Phương pháp
Sử dụng phương pháp cực tiểu chi phí
• Đặt cij = M , trong đó (i,j) là ơ cấm, M là giá trị lớn có thể là +∞ tượng trưng
cho cước phí rất cao
• Nếu PATU của bài tốn có ô cấm có thành phần xij > 0 tại ô cấm (i,j) thì bài
tốn khơng có PATU
• Nếu PATU của bài tốn có ơ cấm có thành phần xij = 0 tại tất cả ơ cấm (i,j) thì
bài tốn có PATU
Ví dụ: Một cơng ty có ba nhà máy cung cấp sản phẩm của họ cho bốn nhà kho. Công suất
hàng tháng của các nhà máy lần lượt là 120, 200 và 180 đơn vị. yêu cầu hàng tháng của các
kho lần lượt là 100, 140, 110 và 120. Chi phí vận chuyển đơn vị như sau:
Nhà máy
I
II
III
Giải.
P
15
25
3
Bài tốn có m = 3 và n = 4. Vì
Nhà
Q
24
15
kho
R
30
12
-
S
20
15
20
4
ai = 500 >
i=1
bj = 470 nên ta thêm trạm thu giả T là nơi
j=1
thu gom các sản phẩm dư thừa sau khi phát, với lượng thu là: b5 = 30. Không vận chuyển từ
I đến Q tức (1, 2) là ô cấm, nên đặt cước phí c12 = M . Tương tự, khơng có đường đi từ II
đến P và III đến R nên c21 = c33 = M
Sử dụng phương pháp cực tiểu chi phí xác định được phương án cực biên xuất phát và các số
liệu tính tốn theo thuật tốn thế vị tương ứng với nó ở bảng 6.1
Từ Bảng 6.1, sau 2 lần điều chỉnh phương án, ta nhận được phương án cực biên tối ưu x∗
ở Bảng 6.2:
100 0
0
0 20
0 110 90 0
x∗ = 0
0 140 0 30 10
100 0
0
0
opt
0 110 90
Như vậy, phương án tối ưu của bài toán ban đầu là: x = 0
0 140 0 30
Kho P nhận đủ 100 đơn vị từ nhà máy I, kho Q nhận đủ 140 đơn vị từ nhà máy III, kho R
nhận đủ 110 đơn vị từ nhà máy II, kho S nhận đủ 120 đơn vị, trong đó 90 đơn vị từ nhà máy
II, 30 đơn vị từ nhà máy I. Và nhà máy I thừa 20 đơn vị, nhà máy III thừa 10 đơn vị.
16
vj
bj
ui
ai
5
7
10
10
0
100
140
110
120
30
15
0
0
−
15 − M
24
M
−23
12
−10
15
30
0
200
20 − M
25
10
20
+
120
90
5
30
M
180
−14
15
110
20
M
5
90
0
+
−
10
13 − M
140
10
30
Bảng 6.1
vj
bj
ui
ai
15
15
17
20
0
100
140
110
120
30
15
0
15 − M
100
24
10 − M
0
−13
12
−14
15
15
20
0
110
−5
90
20
M
0
180
10
140
Bảng 6.2
17
0
200
25
0
20
120
M
−5
30
M
17 − M
30
10
7
Bài tốn vận tải dạng max
7.1 Mơ hình bài tốn
Mơ hình tốn học của bài tốn là
m
n
max f (x) =
cij xij
i=1 j=1
n
v.đ.k.
xij = ai ,
i = 1, · · · , m
xij = bj ,
j = 1, · · · , n
xij ≥ 0,
i = 1, · · · , m, j = 1, · · · , n.
j=1
m
i=1
Điều kiện cân bằng thu phát thoả mãn nên khi đó
• Giải trực tiếp bài toán vận tải dạng min tương đương với hàm f = −f
• Giải trực tiếp như sau:
* Xây dựng phương án cực biến xuất phát từ x0 bằng phương pháp góc Tây Bắc
hoặc phương pháp cực đại chi phí, tức ưu tiên phân một lượng hàng lớn nhất có
thể vào ơ (i0 , j0 ) sao cho ci0 j0 là lớn nhất trong các chi phí ứng với các ô đang cần
xem xét
* Việc xác định các thế vị tương ứng bài tốn tìm min, tức giải hệ
ui + vj = càj ∀(i, j) ∈ G(x0 )
* Tính các đại lượng
∆ij = ui + vj − cij ∀(i, j) ∈
/ G(x0 )
* Kiểm tra điều kiện tối ưu
If ∆ij ≥ 0 với mọi (i, j) ∈
/ G(x0 )
Then dừng thuật toán(x0 là phương án tối ưu)
Else (tức ∃∆ij < 0 với ((i, j) ∈
/ G(x0 )) ta chọn ô (is , js ) là ô điều chỉnh ứng
với
∆is js = min{∆ij < 0 | (i, j) ∈
/ G(x0 )
Sau đó xác định chu trình điều chỉnh và xây dựng phương án cực biên x0 mới
giống như với bài toán min.
18
7.2 Ví dụ
Đề bài: Giải bài tốn vận tải (P T max ) với vecto lượng phát, vecto lượng thu và
ma trận chi phí như sau:
a = (50, 70, 80)T , b = (40, 60, 100)T
9 8 5
C = 4 6 1
8 4 2
Bảng 7.1 biểu diễn các thông tin tương ứng với phương án cực biên xuất
phát x0 được xác định theo "cực đại chi phí" và f (x0 ) = 920. Vì cịn ∆13 = −2 < 0
0
và ô (1, 3) ∈G(x
/
) nên x0 chưa phải phương án cực biên. Chọn (1, 3) làm ô điều
chỉnh, xác định chu trình điều chỉnh K = {(3, 1), (3, 3), (1, 3), (1, 1)} và chuyển
sang Bảng 7.2 tương ứng với phương án cực biên x1 và f (x1 ) = 940.
1
Bảng 7.2 cịn ơ (3, 1) ∈G(x
/
) có ∆31 = −2 < 0 nên x1 cũng chưa là phương án tối
ưu. Chọn ô (3, 1) làm ô điều chỉnh, xác định chu trìn điều chỉnh
K = {(3, 1), (3, 3), (1, 3), (1, 1)}
và chuyển sang Bảng 7.3 tương ứng với phương án cực biên x3
Bảng 7.3 có ∆ij > 0 với mọi (i, j) ∈
/ G(x2 ) nên
0 0 50
2
x = 0 60 10
40 0 40
là phương án tối ưu của bài toán với giá trị tối ưu là fmax = f (x0 ) = 1020
19
vj
ui
bj
ai
9
8
3
40
60
100
9
0
8
50
5
40
4
−2
-2
10
6
1
+
70
3
8
−1
+
−
−
50
4
20
2
80
0
3
80
Bảng 7.1
vj
ui
bj
ai
9
10
5
40
60
100
9
0
50
8
+
−
2
40
4
−4
6
10
1
70
1
8
−3
5
80
60
4
10
2
+
−
-2
3
80
Bảng 7.2
20
vj
bj
ui
ai
11
10
5
40
60
100
9
0
8
5
50
2
4
2
6
50
1
70
−4
3
8
60
4
10
2
80
−3
40
3
40
Bảng 7.3
8
Bài tốn phân việc
Bài tốn: Giả sử có n người và n công việc. Để giao cho người i, i ∈ {1, ..., n}, làm công
việc j, j ∈ {1, ..., n}, cần một chi phí là cij . Vấn đề là cần tìm phương án để phân cơng cho
người nào làm việc gì (mỗi người chỉ làm một việc, mỗi việc chỉ cho một người làm) sao cho
tổng chi phí là nhỏ nhất. Mơ hình tốn học của bài toán này là:
n
n
minf (x) =
cij xij
(P T work )
i=1 j=1
n
v.d.k.
xij = 1,
i = 1, 2, ...n
(8.0.1)
xij = 1,
j = 1, 2, ...n
(8.0.2)
i = 1, ..., n.j = 1, ..., n
(8.0.3)
j=1
n
j=1
xij ∈ {0, 1},
Đây chính là một trường hợp của bài tốn vận tải cân bằng thu phát trong đó số trạm
phát bằng số trạm thu và ai = bj = 1 với mọi i, j = 1, ..., n nhưng các biến chỉ nhận giá trị 0
hoặc 1. Có thể thay điều kiện xij ≥ 0 và nguyên với mọi i = 1, ..., n, j = 1, ..., n.
Bài tốn phân việc cũng là mơ hình tốn học của nhiều bài tốn thực tế khác (khơng liên
quan gì đến phân cơng cơng việc), chẳng hạn: bài tốn phân công cho các nhà máy sản xuất
các sản phẩm khác nhau sao cho đạt hiệu quả cao nhất,...
21
8.1 Thuật toán Hungarian
Thuật toán như sau:
Bước 1. Chọn giá trị chi phí nhỏ nhất ở mỗi hàng.
ci,min = min{cij |j ∈ 1, n}, i = 1, n
Bước 2. Giảm chi phí mỗi hàng đi giá trị chi phí nhỏ nhất
cnew
= cold
ij
ij − ci,min
Bước 3. Làm tương tự với các cột chưa có giá trị chi phí nào bằng 0.
Bước 4. Thuật toán kết thúc khi tất cả các hàng và các cột đều có ít nhất một giá trị chi
phí bằng 0.
Khi đó sự phân cơng cơng việc được đặt ở các vị trí giá trị chi phí 0 thì bài tốn sẽ đạt
min.
8.2 Ví dụ
Bài Tốn: Một nhà máy có 3 máy tự động thực hiện đồng thời các cơng việc. Bảng chi
phí thực hiện cơng việc của các máy như sau:
Công việc
I
II
III
1
5
14
15
Máy
2
7
10
13
3
9
12
16
Máy
2
7
10
13
3
9
12
16
Giải.
Bước 1: Chọn giá trị chi phí nhỏ nhất ở mỗi hàng.
Cơng việc
I
II
III
1
5
14
15
Bước 2: Giảm chi phí mỗi hàng đi giá trị chi phí nhỏ nhất.
Cơng việc
I
II
III
1
0
4
2
Máy
2
2
0
0
3
4
2
3
22
Cột của máy 3 vẫn chưa có giá trị chi phí nào bằng 0 nên lặp lại với cột 3:
Cơng việc
Công việc
I
II
III
1
0
4
2
Máy
2
2
0
0
I
II
III
1
0
4
2
Máy
2 3
2 2
0 0
0 1
3
4
2
3
Bước 3: Sự phân công được đặt ở tại các giá trị chi phí bằng 0.
Từ đó, ta phân: máy 1 làm cơng việc I, máy 2 làm công việc III, máy 3 làm công việc II.
Tổng chi phí là: 5 + 12 + 13 = 30.
23
9
Tổng kết
Một trong những ứng dụng thành công bậc nhất của lý thuyết quy hoạch tuyến tính
chính là việc giải thành cơng bài tốn vận tải. Theo thống kê của Mỹ, có đến 85% các bài
tốn quy hoạch tuyến tính gặp trong thực tế có dạng bài tốn vận tải hoặc các dạng mở rộng
của nó. Trên thực tế, chúng ta dễ dàng bắt gặp hình ảnh của bài tốn vận tải trong nhiều
vấn đề khác nhau, có thể kể đến đó là bài tốn tối ưu chi phí khi giao nhận, vận chuyển hàng
hố . . . Điều đó chứng tỏ tầm quan trọng và độ ảnh hưởng rộng lớn mà bài toán này tác
động lên cuộc sống của chúng ta.
Bài tốn vận tải có vơ vàn ứng dụng trong thực tế, tuy nhiên những ứng dụng điển hình,
thể hiện tác động to lớn của nó đối với nền kinh tế, đó là Bài tốn Tối thiểu hố chi phí giao
hàng (Minimize shipping costs), Bài tốn Xác định vị trí cho chi phí thấp (Determine low
cost location), Bài tốn Tìm lịch trình sản xuất với chi phí tối thiểu (Find minimum cost
production schedule) và Bài toán Hệ thống phân phối quân đội (Military distribution system).
Với thuật toán thế vị giải bài toán vận tải, mặc dù thuật toán này có độ phức tạp mũ, nó
vẫn là thuật tốn được dùng nhiều nhất để giải bài toán vận tải do sự chính xác, dễ hiểu và
dễ sử dụng của nó. Tuy nhiên, như đã nói ở trên, thuật tốn này có độ phức tạp mũ nên thời
gian thực hiện của nó cũng sẽ là một điểm hạn chế đáng kể.
Ta có thể có nhiều hướng để giải bài tốn vận tải. Đối với thuật tốn thế vị, để tìm phương
án ban đầu ta có thể dùng Quy tắc góc Tây Bắc (Northwest corner rule), Phương pháo xấp
xỉ Vogel (Vogel’s Approximation Method), Phương pháp cực tiểu chi phí (Minimum-Cost
Method) và Phương pháp phân phối sửa đổi (The modified distribution (MODI) method) .
Ngồi thuật tốn thế vị đã nêu, bài tốn vận tải cũng có một số hướng giải khác cũng có thể
dẫn đến kết quả tối ưu như Thuật toán di truyền,. . .
References
[1] Nguyễn Thị Bạch Kim, Các phương pháp tối ưu: Lý thuyết và thuật toán,NXB Bách
Khoa Hà Nội, 2014.
[2] Đinh Bá Hùng Anh, Bài giảng bài toán vận tải. />
24