Chuong 4_Bai Toan XNK(VT)

Post on 31-Dec-2015

26 views 0 download

description

tu

Transcript of Chuong 4_Bai Toan XNK(VT)

12/22/2009 thanhpd05@gmail.com 1

LOGO

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

12/22/2009 2 thanhpd05@gmail.com

§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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

Đặ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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

§ 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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

* 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 thanhpd05@gmail.com

* Đị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 thanhpd05@gmail.com

* Đị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 thanhpd05@gmail.com

* Đị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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

+ 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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

§ 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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

* 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 thanhpd05@gmail.com

* Đị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 thanhpd05@gmail.com

* Á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 thanhpd05@gmail.com

* 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 thanhpd05@gmail.com

* Đị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 thanhpd05@gmail.com

* 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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

* 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 thanhpd05@gmail.com

12/22/2009 32 thanhpd05@gmail.com

* Ví dụ 3.4

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

12/22/2009 33 thanhpd05@gmail.com

12/22/2009 34 thanhpd05@gmail.com

§ 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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

- 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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

+ 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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

* 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 thanhpd05@gmail.com

+ 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 thanhpd05@gmail.com

* 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 thanhpd05@gmail.com

12/22/2009 45 thanhpd05@gmail.com

BG:

* PP góc tây bắc

12/22/2009 46 thanhpd05@gmail.com

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

12/22/2009 47 thanhpd05@gmail.com

§ 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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

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

12/22/2009 50 thanhpd05@gmail.com

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 thanhpd05@gmail.com

Đế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 thanhpd05@gmail.com

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 thanhpd05@gmail.com

* 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 thanhpd05@gmail.com

* 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 thanhpd05@gmail.com

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 thanhpd05@gmail.com