56
12/22/2009 [email protected] 1 LOGO Chương 4: BÀI TOÁN VẬN TẢI

Chuong 4_Bai Toan XNK(VT)

Embed Size (px)

DESCRIPTION

tu

Citation preview

Page 1: Chuong 4_Bai Toan XNK(VT)

12/22/2009 [email protected] 1

LOGO

Chương 4: BÀI TOÁN VẬN TẢI

Page 2: Chuong 4_Bai Toan XNK(VT)

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

= =

=

=

= =

= =

≥ = =

∑ ∑

Page 3: Chuong 4_Bai Toan XNK(VT)

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

+ + + + + +

+ + + =

Page 4: Chuong 4_Bai Toan XNK(VT)

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=

Page 5: Chuong 4_Bai Toan XNK(VT)

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

Page 6: Chuong 4_Bai Toan XNK(VT)

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=

Page 7: Chuong 4_Bai Toan XNK(VT)

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

Page 8: Chuong 4_Bai Toan XNK(VT)

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

Page 9: Chuong 4_Bai Toan XNK(VT)

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.

Page 10: Chuong 4_Bai Toan XNK(VT)

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.

Page 11: Chuong 4_Bai Toan XNK(VT)

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...

Page 12: Chuong 4_Bai Toan XNK(VT)

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...

Page 13: Chuong 4_Bai Toan XNK(VT)

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...

Page 14: Chuong 4_Bai Toan XNK(VT)

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...

Page 15: Chuong 4_Bai Toan XNK(VT)

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...

Page 16: Chuong 4_Bai Toan XNK(VT)

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...

Page 17: Chuong 4_Bai Toan XNK(VT)

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

Page 18: Chuong 4_Bai Toan XNK(VT)

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.

Page 19: Chuong 4_Bai Toan XNK(VT)

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= ∪

Page 20: Chuong 4_Bai Toan XNK(VT)

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∆ = − = − + − − + −

Page 21: Chuong 4_Bai Toan XNK(VT)

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)

Page 22: Chuong 4_Bai Toan XNK(VT)

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.

Page 23: Chuong 4_Bai Toan XNK(VT)

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)

Page 24: Chuong 4_Bai Toan XNK(VT)

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:

Page 25: Chuong 4_Bai Toan XNK(VT)

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)

Page 26: Chuong 4_Bai Toan XNK(VT)

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≤

Page 27: Chuong 4_Bai Toan XNK(VT)

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+ −∈ ∈

≤∑ ∑

Page 28: Chuong 4_Bai Toan XNK(VT)

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

Page 29: Chuong 4_Bai Toan XNK(VT)

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

Page 30: Chuong 4_Bai Toan XNK(VT)

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.

Page 31: Chuong 4_Bai Toan XNK(VT)

12/22/2009 31 [email protected]

Page 32: Chuong 4_Bai Toan XNK(VT)

12/22/2009 32 [email protected]

* Ví dụ 3.4

cũng câu hỏi như ví dụ 3.3 đối với bảng

Page 33: Chuong 4_Bai Toan XNK(VT)

12/22/2009 33 [email protected]

Page 34: Chuong 4_Bai Toan XNK(VT)

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.

Page 35: Chuong 4_Bai Toan XNK(VT)

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).

Page 36: Chuong 4_Bai Toan XNK(VT)

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.

Page 37: Chuong 4_Bai Toan XNK(VT)

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.

Page 38: Chuong 4_Bai Toan XNK(VT)

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.

Page 39: Chuong 4_Bai Toan XNK(VT)

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)

Page 40: Chuong 4_Bai Toan XNK(VT)

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.

Page 41: Chuong 4_Bai Toan XNK(VT)

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.

Page 42: Chuong 4_Bai Toan XNK(VT)

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.

Page 43: Chuong 4_Bai Toan XNK(VT)

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

=

Page 44: Chuong 4_Bai Toan XNK(VT)

12/22/2009 44 [email protected]

Page 45: Chuong 4_Bai Toan XNK(VT)

12/22/2009 45 [email protected]

BG:

* PP góc tây bắc

Page 46: Chuong 4_Bai Toan XNK(VT)

12/22/2009 46 [email protected]

* PP cực tiểu cước phí

Page 47: Chuong 4_Bai Toan XNK(VT)

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.

Page 48: Chuong 4_Bai Toan XNK(VT)

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-}

Page 49: Chuong 4_Bai Toan XNK(VT)

12/22/2009 49 [email protected]

Cho x’ đóng vai trò x rồi quay lại bước 2.

Page 50: Chuong 4_Bai Toan XNK(VT)

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 đó

Page 51: Chuong 4_Bai Toan XNK(VT)

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)

Page 52: Chuong 4_Bai Toan XNK(VT)

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

Page 53: Chuong 4_Bai Toan XNK(VT)

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

=

Page 54: Chuong 4_Bai Toan XNK(VT)

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

=

Page 55: Chuong 4_Bai Toan XNK(VT)

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

Page 56: Chuong 4_Bai Toan XNK(VT)

12/22/2009 56 [email protected]