Ví dụ 3.16:
Bài toán minf :
VD 3.1, 3.2, 3.7, 3.8, 3.9, 3.10, 3.12 có ij <0
với mọi ô loại (i,j) : bài toán có patư duy nhất.
Trong trường hợp này: pacbtư duy nhất, patư duy nhất.
Bài toán maxf :
VD 3.14 có
ij >0 với mọi ô loại (i,j) : bài toán có patư duy nhất.
Trong trường hợp này: pacbtư duy nhất, patư duy nhất
Bạn đang xem trước 20 trang tài liệu Bài giảng môn Tối ưu hóa - Chương 3 Bài toán vận tải, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ThS. Phạm Trí Cao * Chương 3 03/01/2014
1
CHƯƠNG 3:
BÀI TOÁN VẬN TẢI
I) BÀI TOÁN VẬN TẢI CÂN BẰNG
THU PHÁT
1) Bài toán
Có m địa điểm A1, A2, ..., Am cùng sản
xuất 1 loại hàng với các lượng hàng tương
ứng là a1, a2, .., am. Có n địa điểm tiêu thụ
loại hàng trên là B1 , B2 , ..., Bn với các
yêu cầu tương ứng là b1 , b2 ,.., bn.
Ta gọi Ai là trạm phát thứ i, Bj là trạm
thu thứ j.
Ta có các giả thiết sau:
* Hàng có thể chở từ trạm phát Ai bất kỳ đến trạm
thu Bj bất kỳ.
* Chi phí chuyên chở 1 đơn vị hàng từ trạm phát (i)
đến trạm thu (j) là cij , cij >=0
* Tổng lượng hàng có ở m trạm phát (tổng phát)
= tổng lượng hàng yêu cầu ở n trạm thu (tổng thu):
m
i i
a
1
=
n
j j
b
1
(đk cân bằng thu phát)
Hãy lập phương án vận chuyển hàng sao cho: các
trạm phát thì phát hết hàng, các trạm thu thì thu đủ
hàng và tổng chi phí vận chuyển là nhỏ nhất?
Giải:
Gọi xij là số đơn vị hàng chuyên chở từ trạm
phát (i) đến trạm thu (j).
* Điều kiện cho biến gọi: xij >=0 , i,j
* Điều kiện để các trạm phát thì phát hết hàng:
n
j ij
x
1
= ai : trạm phát (i) phát hết hàng
* Điều kiện để các trạm thu thì thu đủ hàng:
m
i ij
x
1
= bj : trạm thu (j) thu đủ hàng
* Tổng chi phí vận chuyển là:
f(X)=
m
i
n
j ij
xijc
n
j
m
i ij
xijc 1 11 1
ThS. Phạm Trí Cao * Chương 3 03/01/2014
2
Vậy mô hình bài toán vận tải là:
Tìm ma trận X= (xij)m*n sao cho:
f(X)=
n
j
m
i ij
xijc1 1
min (1)
n
j ij
x
1
= ai , i (2)
m
i ij
x
1
= bj , j (3)
xij >=0 , i,j (4)
2) Bảng vận tải
Ta ghi tất cả các tham số của bài toán vào
bảng sau, gọi là bảng vận tải:
T
F
B1
(b1)
Bj
(bj)
Bn
(bn)
A1
(a1)
c11
x11
c1j
x1j
c1n
x1j
Ai
(ai)
ci1
xi1
cij
xij
cin
xin
Am
(am)
cm1
xm1
cmj
xmj
cmn
xmn
Ví dụ số:
Giả sử ta có 2 trạm phát và 3 trạm thu. Lượng
hàng có ở các trạm phát, lượng hàng yêu cầu ở
các trạm thu, chi phí vận chuyển, và 1 pa vận
chuyển được cho trong bảng sau:
T
F
B1
( 30)
B2
(50)
B3
(20)
A1
(60)
7
[30]
3
[20]
4
[10]
A2
(40)
1 2
[30]
3
[10]
Ta có mô hình bài toán là:
f(X)= 7x11 + 3x12 + 4x13 + x21 + 2x22 + 3x23 min
x11 + x12 + x13 = 60
x21 + x22 + x23 = 40 x11 + x21 = 30 x12 + x22 = 50
x13 + x23 = 20 xij >=0, i= 1,2 ; j= 1,3
Ta thấy bài toán vận tải là trường hợp
riêng của bài toán quy hoạch tuyến tính.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
3
II) CÁC KHÁI NIỆM VÀ ĐỊNH NGHĨA
1) Ô chọn và ô loại
Ô nằm ở vị trí: dòng i, cột j gọi là ô (i,j)
X = (xij)m*n là 1 pa của bài toán vận tải
- Nếu xij > 0 thì ô (i,j) gọi là ô chọn (ô cơ sở)
- Nếu xij = 0 thì ô (i,j) gọi là ô loại (ô phi cơ
sở)
Quy ước:
Ô chọn là ô có dấu *
Ví dụ:
Xét VD số ở trên:
1 2 3
1 * * *
2 * *
Ta chỉ xét những ô có dấu * (ô chọn).
2) Dây chuyền và vòng
Dây chuyền là một dãy các ô liên tiếp
nhau (có thể liền kề nhau hoặc không)
thỏa:
- Đi ngang thì chỉ lấy 2 ô.
- Đi dọc thì chỉ lấy 2 ô.
- Đi ngang, đi dọc xen kẽ nhau.
Một dòng hoặc một cột mà dây chuyền
đi qua: hoặc không lấy ô nào hết, hoặc
chỉ lấy đúng 2 ô.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
4
Vòng là 1 dây chuyền khép kín, có ô bắt
đầu trùng với ô kết thúc.
Chú ý:
Một dòng hoặc một cột mà vòng đi qua:
nếu không lấy thì thôi, còn nếu lấy thì chỉ
lấy đúng 2 ô.
Nhận xét:
- Số ô trên vòng luôn là một số chẳn >=4.
- Số ô tối đa không tạo thành vòng trên
bảng có m dòng, n cột là m+n–1.
3) Phương án cực biên
Một pa mà các ô chọn không tạo thành
vòng gọi là pacb.
Ta luôn có: pacb có số ô chọn tối đa là
m+n–1.
Một pacb có đủ m+n-1 ô chọn gọi là pacb
không suy biến, nếu có ít hơn m+n-1 ô chọn
gọi là pacb suy biến.
Một pa mà các ô chọn tạo thành vòng gọi
là pa không cb.
Ví dụ:
1 2 3 4 1 2 3 4 1 2 3 4
1 * * * 1 * 1 * * *
2 * 2 * * 2 *
3 * * 3 * * 3 * *
H1 H2 H3
H1: pacb không suy biến vì không có vòng và số
ô chọn = 6 = 3+41.
H2: pacb suy biến vì không có vòng và số ô
chọn = 5 < 6 = 3+41.
H3: pa không cb vì có vòng (1,1) (1,4) (3,4) (3,1).
ThS. Phạm Trí Cao * Chương 3 03/01/2014
5
Định lý (mối liên hệ giữa ô chọn và ô
loại)
X là pacb không suy biến, có đủ m+n-1 ô
chọn. Nếu ta bổ sung 1 ô loại bất kỳ vào
bảng vận tải thì ô loại này sẽ tạo thành 1
vòng duy nhất với 1 số ô chọn đã có.
Chú ý:
Vòng này phải đi qua ô loại bổ sung vào,
không nhất thiết phải đi qua tất cả các ô
chọn.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
6
Định lý:
X là pacb của bài toán vận tải, nếu X chưa
tối ưu thì luôn tìm được một pacb mới X’ tốt
hơn X, nghĩa là: f(X’) <= f(X)
Định lý (sự tồn tại patư của bài toán vận
tải):
Bài toán vận tải luôn có patư.
Chứng minh:
Xem trong sách.
III) THUẬT TOÁN THẾ VỊ
Ta đưa ra thuật toán thế vị cho bài toán cân bằng
thu phát, minf.
1) Trường hợp bài toán có pacb không suy biến
Thuật toán gồm 4 bước như sau:
Bước1: Tìm pacb xuất phát (bảng vt xuất phát)
Quy ước:
- Nếu ô (i,j) có xij = p >=0 thì ta nói đã phân phối
cho ô (i,j) một lượng hàng là p.
- Nguyên tắc phân phối tối đa là nguyên tắc phân
phối cho ô (i,j) một lượng hàng lớn nhất có thể
được, nghĩa là: xij = min{ai,bj}.
Ví dụ 3.1:
F T 25 38 25 30
30 15 10 9 12
50 13 21 14 8
38 10 11 16 12
Dùng phương pháp chi phí bé
nhất lập bảng vận tải xuất phát?
Giải:
Bước 1: Bảng vận tải xuất phát
Ta có: TF = 30+50+38 = 118 = 25+38+25+30 = TT
(BT cân bằng thu phát)
T
F
25 38 25 30
30 15 10
[5]
9
[25]
12
50 13
21
[20]
14
8
[30]
38 10
[25]
11
[13]
16 12
ThS. Phạm Trí Cao * Chương 3 03/01/2014
7
Cách kiểm tra xem phân phối đúng không?
Các ô chọn không tạo vòng.
Số ô chọn <= m+n-1.
Tổng các số của ô chọn trên dòng i = ai
(VD dòng 1: 5 + 25 = 30)
Tổng các số của ô chọn trên cột j = bj
(VD cột 2: 5 + 20 + 13 = 38)
CHÚ Ý:
TA CÓ 5 CÁCH PHÂN PHỐI, NGƯỜI TA
HỔNG CẦN BIẾT BẠN PHÂN PHỐI
THEO CÁCH NÀO, MIỄN SAO KẾT QUẢ
THU ĐƯỢC LÀ PACB.
BƯỚC 2: TÌM HỆ THỐNG THẾ VỊ (ui ,vj):
ui gọi là thế vị dòng
vj gọi là thế vị cột
Ta xây dựng hệ thống thế vị (ui,vj) theo công
thức:
ui + vj = cij , với mọi ô chọn (i,j) (*)
Quy ước:
Chọn u1 = 0.
LƯU Ý:
Quá trình tìm hệ thống thế vị (ui,vj) chỉ được canh
theo ô chọn.
BƯỚC 3: KIỂM TRA DẤU HIỆU TỐI ƯU
Tính ij = ui + vj - cij : lượng kiểm tra của ô (i,j)
* Nếu ij <=0, i,j : pa đang xét là patư.
Thuật toán kết thúc.
* Nếu có ij >0 : pa đang xét chưa tối ưu.
Chuyển sang bước 4.
Chú ý:
ij = 0 với ô (i,j) là ô chọn.
Nhận xét:
Ô chọn ở chương 3 Biến cơ sở ở chương 1
ThS. Phạm Trí Cao * Chương 3 03/01/2014
8
Bước 4: Cải tiến pa (tìm pacb mới tốt hơn)
4.1) Tìm ô điều chỉnh:
Ô điều chỉnh là ô có dương lớn nhất.
rs= max{ij/ij>0} nên ô (r,s) là ô điều chỉnh.
Ô điều chỉnh sẽ là ô loại bổ sung vào trong bảng
vận tải mới.
4.2) Tìm vòng điều chỉnh: Lập vòng điều chỉnh đi
qua ô điều chỉnh (r,s) và 1 số ô chọn đã có.
Lưu ý: Vòng điều chỉnh này tồn tại duy nhất, phải
đi qua ô điều chỉnh.
Vòng điều chỉnh không nhất thiết phải đi qua tất
cả các ô chọn.
4.3) Xác định lượng điều chỉnh q:
Trên vòng điều chỉnh ta đánh dấu +, liên
tiếp, với quy ước ô điều chỉnh được đánh dấu
đầu tiên và mang dấu +.
Ta chỉ xét những ô nằm trên vòng điều chỉnh.
Lượng điều chỉnh q là số xij nhỏ nhất trong
những ô mang dấu . Giả sử đó là ô (t,h). Ô
(t,h) sẽ là ô bị loại ra trong bảng vận tải mới.
q = min{xij / với mọi ô (i,j) mang dấu } = xt,h
nên ô (t,h) sẽ bị loại ra trong bảng vận tải mới.
Nhận xét:
Với pp đơn hình, qua mỗi bảng ta loại
ra 1 véc tơ và bổ sung vào 1 véc tơ
mới. Với thuật toán thế vị, qua mỗi
bảng ta loại ra 1 ô và bổ sung vào 1 ô
mới.
4.4) Tìm pacb mới X’:
Pa X ứng với bảng vận tải cũ, pa X’ ứng với bảng
vận tải mới. Và f(X’) <= f(X)
Ta có: X’= (x’ij)
xij + q , ô (i,j) mang dấu +
x’ij = xij – q , ô (i,j) mang dấu –
xij , ô (i,j) không mang dấu
Lưu ý:
Qua mỗi bảng, giá trị hàm mục tiêu giảm 1 lượng là
q.rs : f(X’) = f(X) – q.rs
Sau khi chuyển bảng xong, ta quay trở lại bước 2.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
9
Bước 4.4: Xác định pacb mới
Ta có pacb mới như sau:
T
F
25 38 25 30 ui
30 15
6
10
[5]
9
[25]
12
15
0
50 13 +
7
21
* [20]
14
6
8
[30]
11
38 10
[25]
11 +
[13]
16
6
12
14
1
vj 9 10 9 3
Bước 4: chuyển bảng
T
F
25 38 25 30 ui
30 15
6
10
[5]
9
[25]
12
8
0
50 13
[20]
21
7
14
1
8
[30]
4
38 10
[5]
11
[33]
16
6
12
7
1
vj 9 10 9 4
Ta có ij <=0, i,j : pa đang xét là tối ưu.
fmin = f(X*) = 10(5) + 9(25) + 13(20) + 8(30)
+ 10(5) + 11(33) = 1188
Chú ý: Khi xác định ô điều chỉnh theo công thức
rs = max{ij / ij >0} nếu có nhiều ô để chọn thì
ta làm thế nào?
Qua mỗi bảng hàm mục tiêu giảm 1 lượng là q.rs
, f(X’) = f(X)- q.rs .
Lưu ý: Trong quá trình tìm lượng điều chỉnh q,
nếu ta có q đạt tại nhiều ô mang dấu .
Ví dụ q = min{xij / với mọi ô (i,j) mang dấu } =
xt,h = xe,f
Ta làm như thế nào? Có thể loại ra nhiều ô cùng
lúc không?
Xem chi tiết trong sách.
Ghi patư cho VD3.1?
Ví dụ 3.2:
T
F
30 35 25 10
15 1 3 2 5
35 6 8 1 10
10 3 2 6 5
40 3 9 4 9
ThS. Phạm Trí Cao * Chương 3 03/01/2014
10
Có thể loại ra 1 trong 2 ô (1,1), (4,2). Ta loại ra ô (1,1).
T
F
30 35 25 10 ui
15 1
* [15]
3 +
4
2
-2
5
2
0
35 6
-4
8
[10]
1
[25]
10
-2
1
10 3
-7
2
[10]
6
-11
5
-3
-5
40 3 +
[15]
9
[15]
4
-2
9
[10]
2
vj 1 7 0 7
T
F
30 35 25 10 ui
15 1
-4
3
[15]
2
-6
5
-2
0
35 6
-4
8
[10]
1
[25]
10
-2
5
10 3
-7
2
[10]
6
-11
5
-3
-1
40 3
[30]
9
[0]
4
-2
9
[10]
6
vj -3 3 -4 3
Ta có ij <=0, i,j : pa đang xét là tối ưu.
fmin = f(X*) = 3(15) + 8(10) + . + 9(0) + 9(10) = 350
Ghi patư của VD3.2?
2) Trường hợp bài toán có pacb suy biến
Ví dụ 3.3:
T
F
60 70 40 30
100 12 6 9 12
80 9 8 7 11
20 11 7 6 10
Ta không thể áp dụng thuật toán thế vị cho pacb
suy biến.
Cách giải quyết: Khi gặp pacb suy biến ta có 2
cách giải quyết sau:
Cách 1: Thêm ô chọn đặc biệt
Ta thêm các ô chọn đặc biệt (i,j) thỏa:
- Có xij = 0
- Các ô chọn đặc biệt này không tạo thành vòng
với các ô chọn đã có.
Lưu ý: Vậy ta thêm bao nhiêu ô chọn, và thêm
vào ở vị trí ô nào?
Ta thêm ô chọn đặc biệt là ô (3,2).
ThS. Phạm Trí Cao * Chương 3 03/01/2014
11
Ta thêm ô chọn đặc biệt là ô (3,2).
F \ T 60 70 40 30 ui
100 12
5
6 +
[70]
9
4
12
[30]
0
80 9
[60]
8
0
7
[20]
11
3
2
20 11
3
7
* [0]
6
[20]
10 +
3
1
vj 7 6 5 12
F \ T 60 70 40 30 ui
100 12
2
6
[70]
9
1
12
[30]
0
80 9
[60]
8
3
7
[20]
11
0
1
20 11
3
7
3
6
[20]
10
[0]
2
vj 10 6 8 12
Ta có ij <= 0, i,j : pa đang xét tối ưu
fmin = 70(6) + 30(12) + + 20(6) + 0(10) = 1580
Cách 2: Phân phối lại
F \ T 60 70 40 30 ui
100 12
* [30]
6
[70]
9
1
12 +
2
0
80 9 +
[30]
8
-5
7
[20]
11
[30]
-3
20 11
-3
7
-5
6
[20]
10
0
4
vj 12 6 10 14
F \ T 60 70 40 30 ui
100 12
2
6
[70]
9
1
12
[30]
0
80 9
[60]
8
-3
7
[20]
11
[0]
1
20 11
-3
7
-3
6
[20]
10
0
2
vj 10 6 8 12
Ta có ij <= 0 , i, j: pa đang xét tối ưu
fmin = 70(6) + 30(12) + + 20(6) + 0(10) = 1580
ThS. Phạm Trí Cao * Chương 3 03/01/2014
12
Lưu ý:
Tùy theo cấu trúc của bài toán mà
cách 1 hay cách 2 cho kết quả tốt hơn,
ta không thể dự đoán trước được.
Tùy thuộc vào “linh cảm” của bạn !!!
IV) BTVT KHÔNG CÂN BẰNG THU PHÁT
BTVT không cân bằng thu phát là BTVT có tổng
phát tổng thu.
Thuật toán thế vị chỉ áp dụng cho bài toán vận
tải CBTP, do đó ta phải chuyển bài toán
KHÔNG CBTP về bài toán CBTP.
1) Tổng phát > tổng thu
* Đưa bài toán ban đầu (P) về bài toán CBTP
(P*) bằng cách thêm cột trạm thu giả có yêu cầu
= tổng phát tổng thu. Các ô nằm trên cột trạm
thu giả gọi là các ô giả, các ô ban đầu gọi là các
ô thực.
* Chi phí vận chuyển của các ô giả đều bằng 0.
* Dùng thuật toán thế vị giải bài toán (P*). Trong
patư của (P*), ta bỏ đi cột trạm thu giả thì được
patư của (P).
Chú ý:
Khi tìm pacb xuất phát, ta ưu tiên phân phối cho
các ô thực trước, khi xét hết ô thực rồi thì mới
xét đến các ô giả.
Nhận xét:
Ô giả ở chương 3 Biến phụ ở chương 1
Ví dụ 3.4:
F \ T 120 130 50
100 10 8 12
150 15 10 14
80 9 11 12
HD:
Tổng phát = 330 > 300 = tổng thu thêm cột
trạm thu giả thứ 4 có yêu cầu = 330 - 300 = 30
ThS. Phạm Trí Cao * Chương 3 03/01/2014
13
Phương pháp chi phí bé nhất
F \ T 120 130 50 (30) ui
100 10 +
3
8
[100]
12
0
0
2
0
150 15
* [40]
10 +
[30]
14
[50]
0
[30]
2
80 9
[80]
11
7
12
4
0
6
4
vj 13 8 12 2
Bảng vận tải mới
F \ T 120 130 50 (30) ui
100 10
[40]
8
[60]
12
0
0
2
0
150 15
3
10
[70]
14
[50]
0
[30]
2
80 9
[80]
11
4
12
1
0
3
1
vj 10 8 12 2
Ta có ij <=0, i,j : pa đang xét tối ưu
fmin = 3000
Ghi patư của bài toán?
2) Tổng phát < tổng thu
* Đưa bài toán ban đầu (P) về bài toán CBTP
(P*) bằng cách thêm dòng trạm phát giả có
lượng hàng = tổng thu tổng phát.
Các ô nằm trên dòng trạm phát giả gọi là
các ô giả, các ô ban đầu gọi là các ô thực.
* Chi phí vận chuyển của các ô giả đều bằng
0.
* Dùng thuật toán thế vị giải bài toán (P*).
Trong patư của (P*), ta bỏ đi dòng trạm phát
giả thì được patư của (P).
Ví dụ 3.6:
F \ T 15 25 30 27
35 5 1 4 2
20 3 4 7 8
17 2 6 9 3
HD:
tổng phát = 35+20+17 = 72 < tổng thu
= 15+25+30+27 = 97
Thêm dòng trạm phát giả thứ 4
có lượng hàng = 97-72 = 25
ThS. Phạm Trí Cao * Chương 3 03/01/2014
14
Phương pháp chi phí bé nhất
F \ T 15 25 30 27 ui
35 5
-4
1
[25]
4
-2
2
[10]
0
20 3 +
3
4
2
7
[20]
8
-1
5
17 2
[15]
6
-4
9
-6
3 +
[2]
1
(25) 0
-1
0
-1
0 +
[10]
0
* [15]
-2
vj 1 1 2 2
Ô điều chỉnh (2,1)
F \ T 15 25 30 27 ui
35 5
-4
1
[25]
4 +
1
2
[10]
0
20 3 +
[15]
4
-1
7
[5]
8
-4
2
17 2
* [0]
6
-4
9
-3
3 +
[17]
1
(25) 0
-4
0
-4
0
[25]
0
3
-5
vj 1 1 5 2
Ô điều chỉnh là (1,3)
F \ T 15 25 30 27 ui
35 5
-5
1
[25]
4
[0]
2
[10]
0
20 3
[15]
4
0
7
[5]
8
-3
3
17 2
-1
6
-4
9
-4
3
[17]
1
(25) 0
-4
0
-3
0
[25]
0
-2
-4
vj 0 1 4 2
Ta có ij <=0, i, j : pa đang xét tối ưu.
fmin = 176
Ghi patư của bài toán?
V) BTVT CÓ Ô CẤM
1) Cấm tuyến đường vận chuyển
Các bài toán vận tải ta đã xét, giả thiết hàng có thể
chở từ trạm phát bất kỳ đến trạm thu bất kỳ.
Trong thực tế đôi khi ta không thể vận chuyển hàng
trên 1 số tuyến đường vì nhiều lý do.
Ta không thể vận chuyển hàng từ Ai đến Bj tương
ứng với ô (i,j) nên ô này không thể phân phối hàng
vào được, do đó nó sẽ là ô cấm.
Lập bài toán (M) với các ô cấm có chi phí vận
chuyển = M >0 (rất lớn).
Dùng t/toán thế vị giải bt (M), có patư là X*(M).
ThS. Phạm Trí Cao * Chương 3 03/01/2014
15
Định lý:
Nếu trong X*(M) có các thành phần ứng với ô
cấm đều bằng 0 thì bài toán ban đầu (P) có patư.
Patư chính là X*(M).
Nếu trong X*(M) có thành phần ứng với ô cấm
khác 0 thì (P) không có patư.
Nhận xét:
Ô cấm ở chương 3 Biến giả ở chương 1
Lưu ý:
Ta phân phối cho ô thực trước, ô cấm sau.
Ví dụ 3.8:
Bài toán (P)
F \ T 25 38 25 30
30 15 10 9 12
50 13 21 14 8
38 10 11 16 12
Cấm các tuyến đường A2 B2, A3 B3
Phương pháp chi phí bé nhất
F \ T 25 38 25 30 ui
30 15
6
10
[5]
9
[25]
12
M+6
0
50 13 +
M14
M
* [20]
14
M15
8
[30]
M10
38 10
[25]
11 +
[13]
M
10M
12
M+7
1
vj 9 10 9 M+18
F \ T 25 38 25 30 ui
30 15
6
10
[5]
9
[25]
12
8
0
50 13
[20]
M
14M
14
1
8
[30]
4
38 10
[5]
11
[33]
M
10M
12
7
1
vj 9 10 9 4
Ta có ij <=0, i,j : pa đang xét là tối ưu
fmin = f(X*(M)) = 10(5)+ 9(25)+ +10(5)+11(33) = 1188
Kết luận?
ThS. Phạm Trí Cao * Chương 3 03/01/2014
16
Ví dụ 3.10:
Bài toán (P)
F \ T 25 40 15 50
50 8 3 4 7
50 1 7 5 3
30 2 2 6 4
Cấm tuyến A1 B2, A1 B4
HD:
Bài toán (M)
F \ T 25 40 15 50 ui
50 8 +
M-10
M
[10]
4
[15]
M
[25]
0
50 1
* [25]
7
-4
5
-M+2
3 +
[25]
3-M
30 2
-2
2
[30]
6
-M
4
-2
2-M
vj M-2 M 4 M
F \ T 25 40 15 50 ui
50 8
[25]
M
[10]
4
[15]
M
[0]
0
50 1
-M+10
7
-4
5
-M+2
3
[50]
3-M
30 2
-M+8
2
[30]
6
-M
4
-2
2-M
vj 8 M 4 M
Ta có ij <=0, i,j : pa đang xét tối ưu
Ta có x12 = 10 0 (ô cấm) nên bài toán (P)
không có patư.
2) Cấm không cho phát hàng vào ô giả
Bài toán có ô cấm còn xuất hiện trong trường hợp
bài toán không CBTP:
Tổng phát > tổng thu:
Thêm điều kiện là một trạm phát nào đó phải
phát hết hàng.
Cách làm:
Ô nằm ở vị trí: dòng trạm phát phải phát hết
hàng, cột trạm thu giả là ô cấm.
Lưu ý:
Trình tự phân phối các ô: ô thực, ô giả, ô cấm.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
17
Ví dụ 3.11:
F \ T 120 130 50
100 10 8 12
150 15 10 14
80 9 11 12
Trạm A2 phát hết hàng.
HD:
Cách 1:
F \ T 120 130 50 (30) ui
100 10
3
8
[100]
12
0
0 +
M2
0
150 15
[40]
10 +
[30]
14
[50]
M
* [30]
2
80 9
[80]
11
7
12
4
0
M6
4
vj 13 8 12 M2
F \ T 120 130 50 (30) ui
100 10 +
3
8
[70]
12
0
0
[30]
0
150 15
* [40]
10 +
[60]
14
[50]
M
2 M
2
80 9
[80]
11
7
12
4
0
4
4
vj 13 8 12 0
F \ T 120 130 50 (30) ui
100 10
[40]
8
[30]
12
0
0
[30]
0
150 15
3
10
[100]
14
[50]
M
2 M
2
80 9
[80]
11
4
12
1
0
1
1
vj 10 8 12 0
Ta có ij <=0, i,j : pa đang xét tối ưu
fmin = 3060
Cách 2: Lợi dụng patư của VD3.4 : xem trong sách.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
18
Tổng phát < tổng thu:
Thêm điều kiện là một trạm thu nào đó
yêu cầu phải thu đủ hàng.
Cách làm:
Ô nằm ở vị trí: dòng trạm phát giả, cột
trạm thu phải thu đủ hàng là ô cấm.
Lưu ý:
Trình tự phân phối các ô: ô thực, ô giả, ô
cấm.
Ví dụ 3.12:
Bài toán (P)
F \ T 60 60 80 100
80 1 7 6 8
60 5 4 6 5
110 6 3 2 9
Trạm thu B4 phải thu đủ hàng.
HD:
Cách 1: Tổng phát= 200 < tổng thu= 230
Bài toán (M) tương ứng
F \ T 60 60 80 100 ui
80 1
[60]
7
0
6
0
8
[20]
0
60 5
-7
4
* [30]
6
-3
5 +
[30]
-3
110 6
-9
3
[30]
2
[80]
9
-5
-4
(50) 0
M-7
0 +
M-1
0
M-2
M
[50]
M-8
vj 1 7 6 8
F \ T 60 60 80 100 ui
80 1
[60]
7
-M+1
6
-M+1
8
[20]
0
60 5
-7
4
-M+1
6
-M-2
5
[60]
-3
110 6
M-10
3
[30]
2
[80]
9 +
M-6
M-5
(50) 0
M-7
0 +
[30]
0
-1
M
* [20]
M-8
vj 1 -M+8 -M+7 8
ThS. Phạm Trí Cao * Chương 3 03/01/2014
19
F T 60 60 80 100 ui
80 1
[60]
7
-5
6
-5
8
[20]
0
60 5
-7
4
-5
6
-8
5
[60]
-3
110 6
-4
3
[10]
2
[80]
9
[20]
1
(50) 0
-1
0
[50]
0
-1
M
-M+6
-2
vj 1 2 1 8
Ta có ij <=0, i,j : pa đang xét tối ưu
fmin = 890
Ví dụ 3.13:
Bài toán (P)
F \ T 60 60 80 100
80 1 7 6 8
60 5 4 6 5
110 6 3 2 9
Cấm tuyến đường A3 B2.
Trạm thu B4 phải thu đủ hàng.
fmin = 940
Bài giải chi tiết xem trong sách.
VI) BÀI TOÁN DẠNG VẬN TẢI CÓ HÀM
MỤC TIÊU CỰC ĐẠI
Với bài toán minf thì ý nghĩa cij là chi phí vận
chuyển, còn với maxf thì ý nghĩa cij là lợi nhuận
có được khi vận chuyển hàng.
Cách 1 (giải gián tiếp)
Xem chi tiết trong sách.
Nhận xét:
Qua cách giải gián tiếp, ta thấy chỉ có những gì
liên quan đến cij mới bị đổi dấu, còn liên quan
đến xij, ai, bj không bị thay đổi.
Cách 2 (giải trực tiếp)
Thuật toán thế vị minf được thay đổi như sau:
B1) Tìm pacb ban đầu: phân phối theo lợi nhuận
lớn nhất.
B2) Xác định hệ thống thế vị: Giống như cũ.
B3) Kiểm tra tính tối ưu:
ij = ui + vj cij
* ij >=0 , i,j : pa đang xét là patư.
Xong thuật toán.
* Có ij <0 : pa đang xét chưa tối ưu.
Sang B4.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
20
B4) Chuyển sang bảng vận tải mới:
* Ô điều chỉnh là ô có âm nhỏ nhất.
rs = min{ij / ij <0}
* Các công việc còn lại giống như cũ.
Ví dụ 3.14:
F \ T 50 18 32 20
40 30 28 3 10
25 27 14 11 2
30 5 14 11 22
25 9 16 6 12
Cách 2:
Bước 1) Bảng vận tải xuất phát.
F T 50 18 32 20 ui
40 30
[40]
28 +
4
3
11
10
15
0
25 27 +
[10]
14
7
11
* [15]
2
20
-3
30 5
22
14
7
11
[10]
22
[20]
-3
25 9
13
16
[18]
6 +
[7]
12
5
-8
vj 30 24 14 25
Bước 4:
F T 50 18 32 20 ui
40 30
[25]
28
[15]
3
15
10
19
0
25 27
[25]
14
11
11
4
2
24
-3
30 5
18
14
7
11
[10]
22
[20]
-7
25 9
9
16
[3]
6
[22]
12
5
-12
vj 30 28 18 29
Ta có ij >= 0, i,j : pa đang xét tối ưu
fmax = f(X*) = 2575 . Ghi patư của bài toán?
ThS. Phạm Trí Cao * Chương 3 03/01/2014
21
Ví dụ 3.15:
F \ T 35 30 55
30 10 9 8
50 7 6 7
40 5 4 3
f max
Cấm tuyến A3 B3
HD:
Ô cấm (3,3) có lợi nhuận là –M với M>0 (rất lớn)
F \ T 35 30 55 ui
30 10
[30]
9
0
8 +
-M-3
0
50 7
M+5
6
M+5
7
[50]
M+2
40 5 +
[5]
4
[30]
M
* [5]
-5
vj 10 9 -M+5
F \ T 35 30 55 ui
30 10
[25]
9
0
8
[5]
0
50 7
2
6
2
7
[50]
-1
40 5
[10]
4
[30]
M
M+3
-5
vj 10 9 8
Ta có ij >= 0, i,j : pa đang xét tối ưu
fmax = f(X) = 1020
Ghi patư của bài toán.
Quy ước:
Nếu trong đề thi không nói gì về f thì có
nghĩa là f min.
Còn nếu muốn f max thì sẽ nói rõ trong
đề.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
22
VII) VẤN ĐỀ VỀ PATƯ DUY NHẤT
Định lý:
Bài toán có các pacbtư là X1, X2, , Xk thì patư tổng
quát có dạng X=
k
i
iXi1
, với
k
i i1
1 , 0<=i <=1
Lưu ý:
Tất cả pa có từ bảng vận tải đều là pacb, pa có từ bảng
tối ưu (là bảng mà từ đó ta lấy ra patư) là pacbtư.
Ta có các kết quả sau:
Xét bảng vận tải tối ưu.
B1) Nếu ij 0 với mọi ô loại (i,j) : Bài toán có patư
duy nhất.
B2) Nếu có ij = 0 ứng với ô loại (i,j) : Bài toán có
thể có patư khác.
Cách xác định xem có patư khác hay không:
* Lấy ô loại (i,j) có ij = 0 làm ô điều chỉnh.
* Xác định vòng điều chỉnh.
* Xác định lượng điều chỉnh q.
Có 2 khả năng xảy ra:
* Lượng điều chỉnh q = 0 : Bài toán có patư duy
nhất.
* Lượng điều chỉnh q > 0 : Bài toán có patư không
duy nhất.
Lưu ý:
Phân biệt pacb và pacbtư, phân biệt patư và pacbtư.
Ví dụ 3.16:
Bài toán minf :
VD 3.1, 3.2, 3.7, 3.8, 3.9, 3.10, 3.12 có ij <0
với mọi ô loại (i,j) : bài toán có patư duy nhất.
Trong trường hợp này: pacbtư duy nhất, patư
duy nhất.
Bài toán maxf :
VD 3.14 có ij >0 với mọi ô loại (i,j) : bài toán
có patư duy nhất.
Trong trường hợp này: pacbtư duy nhất, patư
duy nhất.
Ví dụ 3.17 : Xem lại VD 3.3, cách 1.
Ở bảng tối ưu ta có:
Ô loại (2,4) có = 0, lấy ô loại này làm ô điều chỉnh.
Tìm vòng điều chỉnh, xác định lượng điều chỉnh q
F \ T 60 70 40 30 ui
100 12
2
6
[70]
9
1
12
[30]
0
80 9
[60]
8
3
7
[20]
11 +
0
1
20 11
3
7
3
6 +
[20]
10
* [0]
2
vj 10 6 8 12
Ta có q= 0 nên bài toán có patư duy nhất.
Trong trường hợp này: pacbtư duy nhất, patư duy nhất.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
23
Ví dụ 3.18:
Xem lại VD 3.4.
Bảng tối ưu:
F \ T 120 130 50 (30) ui
100 10
[40]
8
[60]
12 +
0
0
2
0
150 15
3
10 +
[70]
14
* [50]
0
[30]
2
80 9
[80]
11
4
12
1
0
3
1
vj 10 8 12 2 B1
Ta có ij <=0, i,j : pa đang xét tối ưu
0080
50700
06040
1X
fmin = 3000
Ở bảng 1: Ta có ô loại (1,3) có =0 nên lấy làm
ô điều chỉnh. Tìm vòng điều chỉnh. Lượng điều
chỉnh q= 50 >0 nên bài toán có patư khác.
Từ bảng 1 ta được bảng 2.
F \ T 120 130 50 (30) ui
100 10
[40]
8 +
[10]
12
* [50]
0
-2
0
150 15
-3
10
[120]
14 +
0
0
[30]
2
80 9
[80]
11
-4
12
-1
0
-3
-1
vj 10 8 12 -2 B2
0080
01200
501040
2X
Ở bảng 2: Ta có ô loại (2,3) có =0 nên lấy làm ô
điều chỉnh. Biến đổi từ bảng 2 ta quay về bảng 1.
Vậy bài toán có 2 pacbtư là X1 và X2.
Patư tổng quát có dạng:
X= X1 + (1-)X2 với 0 <= <= 1
Trong trường hợp này: pacbtư không duy nhất,
patư không duy nhất.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
24
Ví dụ 3.19:
Xem lại VD 3.5
F \ T 50 100 50 (20) ui
50 5
-2
6
[25]
6 +
[25]
0
-3
0
75 7
-2
8
[75]
9
-1
0
-1
2
95 6
[50]
9 +
0
9
[25]
0
[20]
3
vj 3 6 6 -3 B1
25050
0750
25250
1X
Ở bảng 1: ô điều chỉnh là (3,2).
Nếu loại ra ô (1,2), từ bảng 1 ta được bảng 2.
Nếu loại ra ô (3,3), từ bảng 1 ta được bảng 3.
F \ T 50 100 50 (20) ui
50 5
-2
6 +
0
6
[50]
0
-3
0
75 7
-2
8
[75]
9
-1
0
-1
2
95 6
[50]
9
* [25]
9 +
[0]
0
[20]
3
vj 3 6 6 -3 B2
02550
0750
5000
2X
Ở bảng 2: lấy ô (1,2) làm ô điều chỉnh,
biến đổi từ bảng 2 quay về bảng 1.
Ở bảng 3: lấy ô (3,3) làm ô điều chỉnh,
biến đổi từ bảng 3 quay về bảng 1.
ThS. Phạm Trí Cao * Chương 3 03/01/2014
25
F \ T 50 100 50 (20) ui
50 5
-2
6 +
[0]
6
[50]
0
-3
0
75 7
-2
8
[75]
9
-1
0
-1
2
95 6
[50]
9
* [25]
9 +
0
0
[20]
3
vj 3 6 6 -3 B3
Ta có X3 = X2
Trong trường hợp này: pacbtư không duy nhất,
patư không duy nhất.
Mời ghé thăm trang web:
98
https://sites.google.com/a/ueh.edu.vn/phamtricao/
https://sites.google.com/site/phamtricao/
Các file đính kèm theo tài liệu này:
- chuong_3_bai_toan_van_tai_unlocked_5075.pdf