Upload
dung-nguyen
View
26
Download
0
Embed Size (px)
DESCRIPTION
tu
Citation preview
12/22/2009 2 [email protected]
§1: Một số tính chất của BT vận tải (VT)
Dạng tổng quát của bài toán VT là:
Trong đó ai>0 (i=1..m) bj>0 (j=1..n)
1 1
1
1
min (1)
( 1,2,... ) (2)
( 1,2,..., ) (3)
0 ( 1,2,3... ; 1,2,..., ) (4)
ij ij
ij
ij
ij
m n
i j
n
ij
m
ji
c x
x a i m
x b j n
x i m j n
= =
=
=
→
= =
= =
≥ = =
∑ ∑
∑
∑
12/22/2009 3 [email protected]
Ta gọi bài toán này là bài toán vận tải cổ điển.
Có thể viết (2) và (3) dưới dạng:
Trong đó: A0=(a1, a2, ..., am); Aij là cột các hệ số của
ẩn xij.
Aij là một vecto m+n chiều, có hai thành phần bằng 1,
đó là thành phần thứ i và thành phần thứ m+j, còn các
thành phần khác đều bằng 0.
11 1 21 211 1 21 2
1 01
( ... ) ( ... ) ...
( .. )
n nn n
m mnm mn
A x A x A x A x
A x A x A
+ + + + + +
+ + + =
12/22/2009 4 [email protected]
Đặt:
Nếu thì bài toán vận tải (1), (2), (3), (4) được gọi
là bài toán cân bằng thu phát.
Ký hiệu A là ma trận rằng buộc và
x=(x11, ..., x1n, x21,..., x2n,...., xm1,...,xmn)
c=(c11, ..., c1n, c21,..., c2n,...., cm1,...,cmn)
1 1
,m n
i ji j
a a b b= =
= =∑ ∑
a b=
12/22/2009 5 [email protected]
thì bài toán VT có thể viết dưới dạng:
f(x) = tcx → min
Ax = A0
x ≥ 0
12/22/2009 6 [email protected]
Bài toán VT được coi là đã biết, nếu biết vecto
lượng phát a = (a1, .., am), vecto lượng thu b = b1,..,bn)
và ma trận cước phí c=(cij). Khi đó ta ký hiệu bài toán
vận tải đó là <a, b, c>.
* Định lý:
Để vài toán vận tải (1), (2), (3), (4) có phương án
tối ưu, điều kiện cần và đủ là có điều kiện cân bằng
thu phát a b=
12/22/2009 7 [email protected]
Bài toán VT có thể được viết
dưới dạng bảng như sau:
cmn...cmj...cm2cm1am
...
cịjci2ci1ai
...
c2nc2jc22c21a2
c1nc1jc12c11a1
bn...bj...b2b1
12/22/2009 8 [email protected]
§ 2: Các tính chất của bài toán
2.1. Chu trình
Một dãy ô có dạng:
(i1, j1), (i1, j2), (i2, j2),...(ik, jk), (ik,j1)
hay
(i1, j1), (i2, j1), (i2, j2),...(ik, jk), (i1,jk)
được gọi là một chu trình
12/22/2009 9 [email protected]
Tập các ô Γ là tập con của U = {(i,j), i=1,..m;
j=1..n} được gọi là chứa chu trình nếu như từ các ô
của tập Γ có thể lập được ít nhất một chu trình. Nếu
trái lại thì ta nói tập ô đó không chứa chu trình.
12/22/2009 10 [email protected]
2.1. Chu trình...
2.2. Các tính chất của bảng VT. Phương án cực biên.
* Định lý:
Điều kiện cần và đủ để tập hợp ô Γ không chứa
chu trình là hệ vecto tương ứng với nó, tức hệ {Aịj:
(i,j)Є Γ}, độc lập tuyến tính.
12/22/2009 11 [email protected]
* Hệ quả
Nếu bảng VT gồm có m dòng và n cột thì tập ô
không chứa chu trình có tối đa là m+n-1 ô.
2.1. Chu trình...
12/22/2009 12 [email protected]
* Định lý 2
giả sử bảng vận tải gồm m dòng và n cột, E là tập
ô gồm m + n – 1 ô không chứa chu trình, (i,j) là một ô
của bảng không thuộc E. Khi đó có một
chu trình duy nhất qua ô (i, j).
{i,j}F E= ∪
2.1. Chu trình...
12/22/2009 13 [email protected]
* Định lý 3:
giả sử F là một tập gồm m+n ô, chứa chu
trình duy nhất V và (i, j) Є V. Khi đó ô E = F \
{(i,j)} sẽ không chứa chu trình.
* Chú ý:
Trong phương án x, nếu xij > 0 thì ta nói ô
(i, j) là ô chọn (hay ô sử dụng)
2.1. Chu trình...
12/22/2009 14 [email protected]
* Định lý 4:
phương án x = (xij) của bài toán vận tải (1)-(4) là
phương án cực biên khi và chi khi tập ô chọn ứng với nó,
tức là tập ô H(x)={(i,j): xij>0} không chứa chu trình.
* Định lý 5
Tập ô không rỗng sẽ chứa ít nhất một chu
trình nếu trong mỗi dòng và mỗi cột của bảng VT hoặc là
không có ô nào của Γ, hoặc có ít nhất hai ô của Γ.
UΓ ⊂
2.1. Chu trình...
12/22/2009 15 [email protected]
Phương pháp xây dựng chu trình (nếu có) chứa
trong một tập ô Γ cho trước qua các bước sau:
Bước 1: Xoá các dòng và cột chứa không quá một ô
của Γ để được bảng mới.
Bước 2: Đối với bảng mới ta lặp lại bước 1 và quá
trình cứ tiếp tục như vậy cho đến khi thu được một bảng
có tính chất:
+ hoặc là không còn một ô nào của Γ – khi đó ta kết
luận Γ không chứa chu trình
2.1. Chu trình...
12/22/2009 16 [email protected]
+ hoặc là mỗi dòng và mỗi cột có ít nhất hai ô của
Γ – từ đó ta lập các chu trình bằng cách xuất phát từ
một ô nào đó của bảng.
2.1. Chu trình...
12/22/2009 17 [email protected]
2.1. Chu trình...
* Ví dụ
Cho tập F gồm các ô được đánh dấu “*” của bảng
vận tải dưới đây, hãy chỉ ra chu trình chứa trong F.
**4
**3
***2
**1
54321
12/22/2009 18 [email protected]
LG:
xoá cột 4, ta được bản mới ở đó mỗi dòng và mỗi cột
chứa đúng hai ô của F. từ đó ta xây dựng được chu
trình.
12/22/2009 19 [email protected]
§ 3: Vấn đề tính các ước lượng
giả sử x = (xij) là phương án cực biên của bài toán
với tập ô chọn H(x) gồm m + n – 1 ô (kể cả ô chọn –
không) không chứa chu trình.
ta phải tìm các ước lượng Δij ứng với mỗi vecto Aij
ngoài cơ sở của x, từc là ứng với mỗi ô loại (i, j).
gọi (i,j) là ô loại nào đó. Khi ấy tập ô
Gồm m+n ô nên F chứa chu trình duy nhất quá ô (i,j), nó
có dạng:
( ) ( , ){ }F H x i j= ∪
12/22/2009 20 [email protected]
V={(i,j), (i,j1), (i1,j1),...,(ik,jk), (ik,j)}
(V gồm 2k+2 ô; 2k+2 < m+n)
Từ đó ta xây dựng được công thức tính Δij như sau:
1 1 1 1 2
0 ... (*)ijij ij ij ijk k k
ti j i j i j i jc x c c c c c c c∆ = − = − + − − + −
12/22/2009 21 [email protected]
* Ví dụ 3.1:
Bài toán VT với phương án cực biên x ban đầu
của nó được cho bởi bảng.
(Tr 146)
12/22/2009 22 [email protected]
* Định lý 1:
nếu ta thay ma trận cước phí c=(cij) bởi ma trận
c’=(c’ij), trong đó c’ij=c’ij+ri+sj, tức là nếu ta cộng vào
cước phí ở mỗi ô của dòng i với cùng một số ri, cộng
vào cước phí ở mỗi cột j với cùng một số sj, thì sẽ
được một bài toán VT mới tương đương với bài toán
đầu.
12/22/2009 23 [email protected]
* Áp dụng ĐL vào tính toán
- ta chọn các số ri và si sao cho: c’ij=cij+ri+sj=0
Với mọi ô (i, j) Є H(x) (việc giải hệ pt trên gọi là Quy –
không các ô chọn)
- sau khi quy – không các ô chọn, theo công thức
(*) ta có biểu thức đơn giản của các ước lượng:
Δ=-c’ij tức là (Δ)=(-c’ij)
12/22/2009 24 [email protected]
* Ví dụ 3.2:
Hãy quy – không các ô chọn với bảng cước phí
được cho như sau:
12/22/2009 25 [email protected]
* Định lý 2
giả sử x=(xij) là một phương án cực biên của bài toán vận
tải với tập ô chọn H(x), và c’ij=0 với mọi ô (i,j) ЄH(x) (tức là
đã quy không các ô chọn)
a) Nếu c’ij>=0 với mọi (i,j) không thuộc H(x) thì x là phương án
tối ưu của bài toán.
b) Nếu tồn tại ô (i,j) không thuộc H(x) sao cho c’ij<0 thì ta có thể
xây dựng được phương án cực biên x’ tốt hơn x, nếu x không
suy biến (nói chung x’ không xấu hơn x)
12/22/2009 26 [email protected]
* Xây dựng phương án cực biên x’
giả sử x=(xij) là một phương án của bài toán vận tải và tập
ô chọn của nó chứa chu trình. Khi đó, có thể điều chỉnh x để
được một phương án cực biên không xấu hơn x (tức
giả sử tập ô chọn chứa chu trình V. Đánh dấu các ô trong
V bởi các dấu “+” và “-” sao cho hai ô liên tiếp không đánh
cùng một dấu (ô đầu tiên và ô cuối cùng được coi là hai ô liên
tiếp).
x ( ) ( )f x f x≤
12/22/2009 27 [email protected]
Gọi V+ và V- theo thứ tự là tập các ô được đánh
dấu “+” và “-”. Và giả sử (nếu không đúng thì đánh
dấu lại)
ij ij
( , ) ( , )i j V i j V
c c+ −∈ ∈
≤∑ ∑
12/22/2009 28 [email protected]
Khi đó ta có
Với θ=min{xij: (i,j)ЄV-}
Khi đó ta nói phương án x’ thu được từ x bằng
cách phá vỡ chu trình V.
'
( , )
( , )
( , )
ij
ij
x i j V
x x i j V
x i j V
θ
θ
+
−
+ ∈
= − ∈ ∉
ij
ij
nÕu
nÕu
nÕu
12/22/2009 29 [email protected]
Nếu trong tập ô chọn của x’ vẫn còn chứa chu
trình thì bằng cách phá vỡ nó ta lại xây dựng được
phương án mới không xấu hơn x’. Cứ tiếp tục như
vậy, sau một số hữu hạn vước ta sẽ thu được phương
án mà tập ô chọn của nó không chứa chu trình.x
12/22/2009 30 [email protected]
* Ví dụ 3.3:
cho bài toán vận tải được thể hiện bởi bảng dưới
đây, trên đó các cước phí được viết ở góc trên bên trái
của mỗi ô, và một phương án của bài toán là x = (xij).
Các số xij được viết ở góc dưới bên phải củ mỗi ô
tương ứng, và chỉ viết nếu xij > 0, nếu không biết thì
được hiểu là xij = 0. hãy xây dựng phương án cực biên
không xấu hơn x.
12/22/2009 31 [email protected]
12/22/2009 33 [email protected]
12/22/2009 34 [email protected]
§ 4: MỘT SỐ PP XÂY DỰNG PHƯƠNG ÁN CỰC BIÊN BAN ĐẦU
1. Phương pháp tìm phương án cực biên
a) Quy ước
Phương án cực biên x của bài toán vận tải với m
trạm phát và n trạm thu (bảng vận tải có kích thước
mxn) là không suy biến nếu tập ô chọn H(x) = {(i,j):
xij > 0) của nó gồm đúng m+n-1 ô, suy biến nếu H(x)
có ít hơn m+n-1 ô.
Chú ý: H(x) không chứa chu trình.
12/22/2009 35 [email protected]
b) Định nghĩa ô – chọn – không:
- giả sử x là một phương án cực biên suy biến. Khi
đó, bao giờ ta cũng có thể bổ xung vào tập ô chọn của
nó một số ô để được tập ô mới gồm đúng m+n-1 ô
không chứa chu trình. Các ô bổ xung gọi là các ô -
chọn – không (chú ý: nếu (i,j) là ô bổ xung thì xij=0).
12/22/2009 36 [email protected]
- giả sử phương án cực biên có đúng m+n-1 ô
chọn, kể cả ô-chọn-không; các ô còn lại của bảng
được gọi là ô loại. Mỗi ô chọn (kể cả ô – chọn –
không) được gọi là ô cơ sở, mỗi ô loại được gọi là ô
phi cơ sở.
tập ô cơ sở của phương án cực biên tối ưu được
gọi là tập ô cơ sở tối ưu.
12/22/2009 37 [email protected]
c) Định nghĩa phân phối tối đa
giả sử x=(xij) là một phương án của bài toán vận
tải. Khi đó ta nói đã phân phối ô (i, j) một lượng xij.
Nếu xij=min(ai, bj) thì ta nói ô (i, j) được phân phối tối
đa.
12/22/2009 38 [email protected]
d) Phương pháp tìm phương án cực biên
1) lấy ô (s, t) bất kỳ của bảng vận tải và phân phối
tối đa của nó, tức là đặt xst=min(as, bt). Khi đó:
+ nếu as <= bt thì ta xoá bỏ dòng s và đổi lượng
thu bt thành b’t=bt-as
+ nếu as >= bt thì ta xoá bỏ cột t và đổi lượng phát
as thành as’=as-bt.
12/22/2009 39 [email protected]
+ nếu gặp trường hợp as=bt thì ta cũng chỉ xoá
dòng s mà thôi, không xoá đồng thời cả dòng s lẫn cột
t và coi bt’ = 0 bình đẳng như các lượng thu khác khi
phân phối. Đây là một trong những dấu hiệu thu được
phương án cực biên suy biến, và ô – chọn – không sẽ
tự xuất hiện theo cách đó mà không phải tìm kiếm. (ta
cũng có thể xoá cột t, không xoá dòng s, nhưng phải
đổi lượng phát as thành as’ = as - bt = 0)
12/22/2009 40 [email protected]
2) sau khi đã xoá xong dòng s hoặc cột t trong thao tác
ở bước 1) ta được bảng mới thứ nhất. Lặp lại thao tác
bước 1) đối với bảng mới này ta thu được bảng mới
thứ 2. quá trình cứ tiếp tục như vậy, sau đúng m+n-1
lần phân phối thì kết thúc.
12/22/2009 41 [email protected]
* Chú ý:
Trong thực hành, người ta thường chọn ô (s, t)
theo các pp sau đây đối với mỗi bảng:
+ Phương pháp góc tây bắc: (s, t) là ô nằm ở góc trên
bên trái mỗi bảng.
+ phương pháp cực tiểu cước phí (hay cực tiểu theo
bảng, đường gần): (s, t) là ô mà cst là cước phí nhỏ
nhất trong mỗi bảng.
12/22/2009 42 [email protected]
+ phương pháp cực tiểu cước phí theo dòng (cột):
(s,t) là ô mà cst là cước phí nhỏ nhất của dòng (cột)
đầu tiên của mỗi bảng.
+ Phương pháp Fô-ghen: ta gọi hiệu giữa cước phí
thấp thứ nhì và cước phí thấp nhất của mỗi dòng (mỗi
cột) là độ lệch của mỗi dòng (mỗi cột) đó.
(s, t) là ô mà cstlà cước phí nhỏ nhất trên dòng hay
cột có chênh lệch lớn nhất.
12/22/2009 43 [email protected]
* Ví dụ 4.1.
Tìm phương án cực biên của bài toán vận tải với các
số liệu: vectơ lượng phát a = (90, 100, 110), vectơ
lượng thu b = (50, 80, 95, 75) và ma trận cước phí là:
11 2 16 3
5 10 6 8
4 12 5 9
c
=
12/22/2009 44 [email protected]
12/22/2009 46 [email protected]
* PP cực tiểu cước phí
12/22/2009 47 [email protected]
§ 5 THUẬT TOÁN THẾ VỊ
1. Thuật toán thế vị
Bước 1: Tìm phương án cực biên ban đầu x = (xij).
Bước 2: Quy – không các ô chọn. Nếu c’ij >0 với mọi ô
(i,j) của bảng thì kết thúc việc tính toán và kết luận x
là phương án tối ưu. Nếu trái lại, tức là tồn tại ô (i,j)
sao cho c’ij<0 thì chọn c’
ij=min{c’ij, c
’ij<0} và chuyển
sang bước 3.
12/22/2009 48 [email protected]
Bước 3: Lập chu trình V đi qua ô (s, t) và một số ô xác định nào
đó của H(x). Tính θ = min{xij: (i,j) Є V+}
Chuyển sang bước 4.
Bước 4: Xây dựng x’=(xij) theo công thức
'
( , )
( , )
( , )
ij
ij
x i j V
x x i j V
x i j V
θ
θ
+
−
+ ∈
= − ∈ ∉
ij
ij
nÕu
nÕu
nÕu
Với θ=min{xij: (i,j)ЄV-}
12/22/2009 49 [email protected]
Cho x’ đóng vai trò x rồi quay lại bước 2.
12/22/2009 50 [email protected]
2. Cách trình bày khi tiến hành thuật toán thế vị
- Bảng đầu tiên ta chỉ viết vào các ô chọn các thành
phần tương ứng của các phương án cực biên. Tìm một hệ
thống thế vị của nó và viết vào bên phải (các ri) và phía
dưới (các sj) của bảng.
- Bảng thứ 2 là bảng thể hiện ma trận cước phí c’
(c’ij=ri+sj+cij=-Δij); nếu không xuất hiện dấu hiệu tối ưu thì
căn cứ vào bảng này ta lập chu trình trên bảng đầu tiên,
nhưng phương án cực biên mới lại được thể hiện ngay trên
bảng thứ 2 đó
12/22/2009 51 [email protected]
Đến đây ta cho bảng thứ hai đóng vai trò bảng đầu
tiên và cứ lặp lại như vậy cho đến khi thu được
phương án tối ưu và cứ lặp lại như vậy cho đến khi
thu được phương án tối ưu (chú ý rằng trong bảng thứ
hai nói trên không cần ghi lại bảng cước phí (cij) đã
cho, vì ta đã biết tập phương án tối ưu không thay đổi
khi thay (cij) bởi (c’ij), hơn nữa lại thuận lợi hơn trong
tính toán vì bảng (c’ij) có ít nhất m+n-1 thành phần
bằng 0)
12/22/2009 52 [email protected]
3. Ví dụ
* Ví dụ 01:
Xét bài toán vận tải trong ví dụ 4.1 với phương án
cực biên tìm được bằng phương pháp cực tiểu theo
dòng. Ta có bảng
12/22/2009 53 [email protected]
* Ví dụ 02:
giải bài toán vận tải cho bởi vecto lượng phát a =
(100, 400, 230), vecto lượng thu b = (320, 180, 110,
120) và ma trận cước phí
6 3 16 9
5 3 7 8
1 8 12 10
c
=
12/22/2009 54 [email protected]
* Ví dụ 9:
Cho bài toán vận tải (a, b, c) và một phương án x
= (xij) của nó, trong đó a = (35, 90, 75, 100), b = (50,
80, 70, 60, 40),
71 3 12 6
87 11 5 3
66 7 1 8
25 2 8 4
c
=
12/22/2009 55 [email protected]
a) Hãy điều chỉnh phương án x để thu được phương
án cực biên không xấu hơn x.
b) giải bài toán đã cho xuất phát từ
20 0 0 0 15
0 5 25 60 0
30 0 45 0 0
0 75 0 0 25
x
=
x
x
12/22/2009 56 [email protected]