Tải bản đầy đủ (.pdf) (46 trang)

Khắc phục hiện tượng suy biến trong bài toán vận tải

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.98 MB, 46 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC

TRỊNH XUÂN BÁCH

KHẮC PHỤC HIỆN TƯỢNG SUY BIẾN
TRONG BÀI TOÁN VẬN TẢI

Chuyên ngành: TOÁN ỨNG DỤNG
Mã số: 60.46.01.12

LUẬN VĂN THẠC SĨ TOÁN HỌC

Người hướng dẫn khoa học:
GS.TS. TRẦN VŨ THIỆU

THÁI NGUYÊN - NĂM 2013

1Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




i

Mục lục
Mục lục

i

Lời cảm ơn



ii

Mở đầu

1

1 Bài toán vận tải tuyến tính

4

1.1

Bài tốn và tính chất . . . . . . . . . . . . . . . . . . . . .

4

1.2

Phương pháp tìm phương án cực biên ban đầu . . . . . . .

9

1.2.1

Phương pháp min cước . . . . . . . . . . . . . . . .

9

1.2.2


Phương pháp góc tây bắc . . . . . . . . . . . . . . . 11

1.3

Tiêu chuẩn tối ưu . . . . . . . . . . . . . . . . . . . . . . . 13

1.4

Thuật toán thế vị . . . . . . . . . . . . . . . . . . . . . . . 14

1.5

Ví dụ minh họa . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Bài toán vận tải suy biến và cách khắc phục

20

2.1

Thế nào là suy biến . . . . . . . . . . . . . . . . . . . . . . 20

2.2

Ví dụ xoay vòng . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3

Bài toán nhiễu . . . . . . . . . . . . . . . . . . . . . . . . . 29


2.4

Cách khắc phục xoay vòng . . . . . . . . . . . . . . . . . . 32

2.5

Ví dụ minh họa tránh xoay vòng . . . . . . . . . . . . . . . 33

Kết luận.

42

Tài liệu tham khảo

43

2Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




ii

Lời cảm ơn
Trong suốt q trình làm luận văn, tơi luôn nhận được sự hướng dẫn
và giúp đỡ của GS.TS Trần Vũ Thiệu (Viện Hàn lâm Khoa học và Công
nghệ Việt Nam). Tơi xin chân thành bày tỏ lịng biết ơn sâu sắc đến thầy.
Tôi xin cảm ơn quý thầy, cơ giảng dạy lớp cao học khóa 5 (2011 − 2013)
đã mang đến cho tơi nhiều kiến thức bổ ích trong khoa học và cuộc sống.

Mặc dù đã có nhiều cố gắng nhưng luận văn khó tránh khỏi những thiếu
sót. Tác giả mong nhận được những ý kiến đóng góp của quý thầy, cô và
bạn đọc để luận văn được hồn thiện hơn.
Xin trân trọng cảm ơn!
Hải Phịng, tháng 01 năm 2013.
Người viết Luận văn

Trịnh Xuân Bách

3Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




1

Mở đầu
Tối ưu hố (Optimization) là một mơn tốn học ứng dụng đã và đang
được nghiên cứu, giảng dạy và học tập ở rất nhiều trường đại học, cao
đẳng trong nước cho sinh viên các ngành toán học, tin học, kinh tế và kĩ
thuật. Trong các bài toán tối ưu thì quan trọng nhất và đáng chú ý nhất
là các bài tốn tối ưu tuyến tính. Qui hoạch tuyến tính là bài toán tối
ưu đơn giản nhất, được ứng dụng rộng rãi nhất trong nhiều lĩnh vực khác
nhau của kinh tế, đời sống và quốc phịng. Chính vì vậy đây cũng là bài
tốn được nghiên cứu đầy đủ và hồn chỉnh nhất, cả về mặt lí thuyết và
tính tốn, cũng đã có nhiều sách và giáo trình viết về vấn đề này, ở đây
tơi xin trình bày một phần nhỏ của bài toán tối ưu.
Bài toán vận tải (Transportation Problem) của qui hoạch tuyến tính là
bài tốn tối ưu được ứng dụng rộng rãi trong thực tiễn. Trong bài toán
này hàm mục tiêu là tuyến tính (nghĩa là chi phí vận chuyển tỉ lê thuận với

lượng hàng vận chuyển) và các ràng buộc của bài tốn có dạng đặc biệt.
Nhờ khai thác cấu trúc đặc biệt này, người ta đã đề ra các phương pháp
riêng, hiệu quả hơn hẳn so với việc áp dụng phương pháp đơn hình tổng
quát vào bài toán. Đáng chú ý là phương pháp thế vị (xem [1]), phương
pháp qui không chọn ô (xem [2] ), phương pháp thu hẹp chính tắc,...
Mơ hình tốn học của bài tốn vận tải có dạng một bài tốn qui hoạch
tuyến tính chính tắc:

min cT x : Ax = b, x ≥ 0
với A ∈ Rm×n , b ∈ Rm , c ∈ Rn cho trước. Ta thường giả thiết rank (A) =

m và m ≤ n. Với bài toán này, các phương án cực biên (còn gọi là lời giải
cơ sở) thường hay "suy biến", tức là có số thành phần dương nhỏ hơn

4Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




2

m. Suy biến có thể dẫn đến hiện tượng xoay vịng, khi giải bài tốn theo
thuật tốn đơn hình, hậu quả là q trình giải khơng thể kết thúc. Để
tránh gặp xoay vòng, người ta đã đề ra nhiều biện pháp khắc phục khác
nhau. Chẳng hạn, khi giải qui hoạch tuyến tính theo thuật tốn đơn hình
người ta thường áp dụng qui tắc từ vựng, qui tắc Wolfe, qui tắc Bland hay
qui tắc cột phụ Srishna, ... (xem[3]).
Bài toán vận tải tuyến tính có dạng một qui hoạch tuyến tính chính
tắc, vì thế nó cũng thường gặp hiện tượng suy biến và do đó nguy cơ xoay
vịng cũng có thể xảy ra, khi giải bài toán theo qui luật thế vị. Mặc dù

thực tế giải bài toán cho thấy xoay vịng trong bài tốn vận tải rất hiếm
khi xảy ra. Tuy nhiên, về lý thuyết nghiên cứu hiện tượng xoay vịng và
tìm cách khắc phục nó là một việc làm cần thiết và có ích. Đối với bài
tốn vận tải vấn đề khắc phục suy biến và xoay vòng đơn giản hơn nhiều
so với bài tốn qui hoạch tuyến tính tổng qt.
Luận văn này nhằm mục đích tìm hiểu và giới thiệu nội dung và phương
pháp giải bài toán vận tải với hàm mục tiêu tuyến tính: nêu mơ hình và
các tính chất cơ bản của bài tốn, giới thiệu thuật toán thế vị giải bài
toán. Vấn đề đối ngẫu và quan hệ đối ngẫu trong bài toán vận tải cũng
được đề cập tới. Luận văn còn đề cập tới bài tốn vận tải suy biến, hiện
tượng xoay vịng và phương pháp khắc phục xoay vịng trong bài tốn vận
tải. Luận văn bao gồm lời nói đầu, hai chương, kết luận và danh mục tài
liệu tham khảo:
Chương 1 với tiêu đề "Bài tốn vận tải tuyến tính" trình bày nội dung
và các tính chất cơ bản của bài tốn vận tải tuyến tính. Tiếp đó, đề cập
tới phương pháp tìm phương án cực biên ban đầu của bài toán. Sau đó,
trình bày cơ sở lý luận và nội dung thuật tốn thế vị (một biến thể của
thuật tốn đơn hình) giải bài tốn vận tải. Cuối chương, nêu ra ví dụ số
để minh họa cho thuật tốn giải đã trình bày.
Chương 2 với tiêu đề "Bài toán vận tải suy biến và cách khắc phục"
trình bày bài tốn vận tải suy biến và ví dụ dẫn đến xoay vịng trong bài
tốn vận tải. Sau đó, để khắc phục xoay vịng ta xét bài toán nhiễu, tức là
bài toán với số liệu đầu vào thay đổi đôi chút so với các số liệu ban đầu.

5Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




3


Chứng minh mọi phương án cực biên trong bài toán nhiễu đều khơng suy
biến, do đó khơng xảy ra hiện tượng xoay vịng khi giải nó theo thuật tốn
thế vị.

6Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




4

Chương 1
Bài tốn vận tải tuyến tính
Chương này đề cập tới bài tốn vận tải tuyến tính (chi phí vận chuyển tỉ
lệ thuận với lượng hàng vận chuyển), đó là dạng bài tốn qui hoạch tuyến
tính đơn giản nhất và được ứng dụng rộng rãi nhất trong thực tiễn. Phần
đầu của chương trình bày nội dung và các tính chất cơ bản của bài tốn.
Tiếp đó đề cập tới phương pháp tìm phương án cực biên ban đầu của bài
tốn. Sau đó trình bày cơ sở lý luận và nội dung thuật toán thế vị (một
biến thể của thuật toán đơn hình) giải bài tốn vận tải. Cuối chương nêu
ví dụ số minh họa cho thuật toán giải. Nội dung của chương được tham
khảo chủ yếu từ các tài liệu [1], [2] và [3].

1.1

Bài tốn và tính chất

Bài tốn vận tải có nội dung như sau: Giả sử có m kho chứa một
loại hàng (xi măng chẳng hạn) K1 , ..., Km (gọi là các điểm phát), kho


i = 1, ..., m có ai > 0 đơn vị hàng. Cần vận chuyển số hàng này tới n hộ
tiêu thụ H1 , ..., Hn (gọi là các điểm thu), hộ j = 1, ..., n cần bj > 0 đơn
vị hàng. Cước phí vận chuyển một đơn vị hàng từ điểm phát Ki tới điểm
thu Hj là cij ≥ 0. Vấn đề đặt ra là cần vận chuyển từ mỗi điểm phát tới
mỗi điểm thu bao nhiêu đơn vị hàng sao cho thỏa mãn nhu cầu của mọi
điểm thu và tổng chi phí vận chuyển tồn bộ số hàng là nhỏ nhất?
Ký hiệu xij là lượng hàng cần vận chuyển từ điểm phát i tới điểm thu j .

7Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




5

Khi đó mơ hình tốn học của bài tốn vận tải có dạng như sau:
m

n

cij xij → min

f (x) =

(cực tiểu tổng chi phí vận chuyển) (1.1)

i=1 j=1

với các điều kiện

n

xij = ai , i = 1, 2, ..., m (mọi điểm phát giao hết hàng),

(1.2)

xij = bj , j = 1, 2, ..., n

(1.3)

j=1
m

(mọi điểm thu nhận đủ hàng),

i=1

xij ≥ 0, i = 1, ..., m, j = 1, ..., n

(lượng hàng vận chuyển không âm).
(1.4)

Ở đây, m là số kho chứa hàng (điểm phát),
n là số nơi tiêu thụ hàng (điểm thu),

ai là lượng hàng có (cung) ở điểm phát i (i = 1, 2, ..., m),
bj là lượng hàng cần (cầu) ở điểm thu j (j = 1, 2, ...n),
cij là chi phí vận chuyển một đơn vị hàng từ điểm phát i tới điểm thu j,
xij biểu thị lượng hàng vận chuyển cần tìm từ điểm phát i tới điểm thu j.
Điều kiện cần và đủ để bài tốn (1.1)-(1.4) giải được là phải có điều

kiện cân bằng thu phát, nghĩa là tổng cung bằng tổng cầu:

α1 + a2 + ... + am = b1 + b2 + ... + bn .

(1.5)

Bài toán vận tải (1.1)-(1.4) là một dạng đặc biệt của qui hoạch tuyến
tính. Để thấy rõ điều này ta sắp xếp các biến số theo thứ tự

x11 , x12 , ..., x1n , x21 , x22 , ..., x2n , ..., xm1 , xm2 , ..., xmn
và viết lại hệ ràng buộc chính (1.2)-(1.3) dưới dạng hệ m + n phương trình

8Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




6

của m × n biến số xij như sau:

 x11 + ... + x1n


x21 + ... + x2n






 x11

 x12




...


x1n

......

= a1
= a2

xm1 + ... + xmn = am
+x21
......
+x11
= b1
+x22
......
= b2
...
...... ...
...
+x21
...... + xmn = bn


Ký hiệu A là ma trận hệ số của hệ phương trình trên (m + n hàng và

m × n cột ),
x = (x11 , ..., x1n , x21 , ..., x2n , ..., xm1 , ..., xmn )T -véctơ cột m×n thành phần,
c = (c11 , ..., c1n , x21 , ..., c2n , ..., cm1 , ..., cmn )T -véctơ cột m × n thành phần,
b = (a1 , a2 , ..., am , b1 , b2 , ..., bn )T -véctơ cột vế phải (m + n thành phần).
Bài toán vận tải (1.1)-(1.4) được viết lại thành bài tốn qui hoạch tuyến
tính dạng chính tắc:
f = c, x → min,
(1.6)
Ax = b, x ≥ 0.

(1.7)

Ta gọi Aij là véctơ cột của ma trận A tương ứng với biến xij . Dễ thấy
véctơ này có hai thành phần bằng 1 tại dịng thứ i và dòng thứ m + j , còn
các thành phần khác bằng 0.
Véctơ x thỏa mãn (1.2)-(1.4) gọi là một phương án của bài toán vận
tải. Một phương án đạt cực tiểu (1.1) gọi là phương án tối ưu hay lời giải.
Phương án x là phương án cực biên khi và chỉ khi các véctơ cột Aij của
ma trận A tương ứng với các xij > 0 là độc lập tuyến tính. Sau đây ta sẽ
giả thiết điều kiện cân bằng thu phát (1.5).
Do bài tốn vận tải có m + n ràng buộc chính, nên ta nghĩ rằng mỗi
phương án cực biên cũng có m + n thành phần dương, nhưng thực tế nó
chỉ có nhiều nhất m + n − 1 thành phần dương, vì trong số các ràng buộc
này có một ràng buộc là thừa (có thể bỏ đi mà không làm ảnh hưởng tới
lời giải của bài toán). Một phương án cực biên của bài toán gọi là không
suy biến nếu số phần tử của tập hợp G = {(j; j) : xij > 0} bằng m+n−1,
gọi là suy biến nếu số phần tử của tập hợp G nhỏ hơn m + n − 1.


9Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




7

Với điều kiện (1.5) bài tốn vận tải (1.1)-(1.4) có các tính chất sau đây:
1. Bài tốn ln có phương án và tập hợp các phương án của bài toán
là giới nội.
2. Một trong các ràng buộc (1.2)-(1.3) là thừa và hạng của hệ ràng buộc
này bằng m + n − 1.
3. Nếu các lượng cung và cầu ai , bj là các số ngun thì bài tốn sẽ có
lời giải nguyên.
Có thể dùng các phương pháp của qui hoạch tuyến tính để giải bài tốn
vận tải. Tuy nhiên do bài tốn này có dạng đặc biệt nên người ta đã đề
ra nhiều thuật toán giải hiệu quả. Một trong số đó là thuật tốn thế vị.
Thuật tốn này được ta xem xét ở phần sau.
Thông thường khi giải bài toán vận tải ta ghi lại dữ liệu của bài toán
dưới dạng một bảng chữ nhật, gọi là bảng vận tải (Bảng 1.1).
Bảng 1.1. Bảng vận tải

Hình 1.1:

Trong đó c = (c11 , ..., c1n , x21 , ..., c2n , ..., cm1 , ..., cmn )T là véctơ hệ số
mục tiêu của bài toán vận tải. Bảng gồm m hàng (i = 1, 2, ..., m) và n
cột j = (1, 2, ..., n). Chỗ giao nhau ở hàng i, cột j kí hiệu là ơ (i; j). Mỗi

10Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





8

hàng tương ứng với một trạm phát, mỗi cột tương ứng với một trạm thu.
Số ghi ở đầu mỗi hàng là lượng cung, số ghi ở đầu mỗi cột là lượng cầu.
Chi phí vận chuyển cij ghi ở góc trên bên trái của ô (i; j), lượng hàng vận
chuyển xij sẽ ghi ở góc dưới bên phải của ơ. Ơ (i; j) biểu thị tuyến đường
vận chuyển từ trạm phát i đến trạm thu j . (Đặt cij = ∞ nếu không thể
chuyển hàng từ i đến j ).
Định nghĩa 1.1. Ta gọi dây chuyền là tập hợp các ô có dạng

(i1 ; j1 ) , (i1 ; j2 ) , (i2 ; j2 ) , (i2 ; j3 ) , ..., (is ; js ) , (is ; js+1 )
hoặc

(i1 ; j1 ) , (i2 ; j1 ) , (i2 ; j2 ) , (i3 ; j2 ) , ..., (is ; js ) , (is+1 ; js ) .
Một dây chuyền khép kín (js+1 = j1 hoặc is+1 = i1 ) gọi là một chu trình.
Như vậy, mỗi cặp ô liền nhau trong dây chuyền ở trên cùng một hàng
hay cùng một cột, và số ô trên mỗi dây chuyền có thể chẵn hay lẻ. Một
chu trình bao giờ cũng gồm một số chẵn các ơ.
Ví dụ 1.1. Chu trình.

Hình 1.2:

Ta có một số định lý và hệ quả quan trọng sau.
Định lí 1.1. Hệ véctơ Aij của bài tốn vận tải là độc lập tuyến tính khi
và chỉ khi các ô tương ứng với các véctơ này khơng tạo thành chu trình.


11Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




9

Hệ quả 1.1. Ma trận x = (xij )m×n là phương án cực biên của bài toán
vận tải khi và chỉ khi tập hợp ô (i; j) mà xij > 0 khơng chứa chu trình.
Định lí 1.2. Giả sử T là một tập hợp gồm m + n − 1 ô của bảng vận tải,
không tạo thành chu trình. Khi đó, mỗi ơ (p; q) ∈ T sẽ tạo với các ơ thuộc
/

T một chu trình duy nhất.

1.2

Phương pháp tìm phương án cực biên ban đầu

Để giải bài toán vận tải (1.1)-(1.4) với điều kiện (1.5) theo phương pháp
thế vị, trước hết ta cần biết một phương án cực biên khơng suy biến của
bài tốn. Có nhiều cách để tìm một phương án như thế. Sau đây là hai
phương pháp thơng dụng và có hiệu quả nhất, thường được sử dụng để
tìm phương án cực biên ban đầu cho bài toán vận tải thỏa mãn điều kiện
cân bằng thu phát.

1.2.1

Phương pháp min cước


Trong bảng vận tải (Bảng 1.1), ta chọn ô (p; q) sao cho cpq = min {cij : ∀(i; j)}.
Nếu cực tiểu đạt tại nhiều ơ thì ta chọn một ơ bất kỳ trong số các ơ đó.
Sau đó phân phối hàng nhiều nhất có thể theo tuyến p → q , nghĩa là đặt

xpq = min {ap , bq } .
Trừ lượng hàng vừa phát vào khả năng thu, phát của hàng p và cột q .
Tiếp đó, ta xóa hàng p nếu điểm phát p đã hết hàng, hoặc cột q nếu điểm
thu q đã nhận đủ hàng. Khi cả hàng, cột đều hết và đủ hàng thì chỉ xóa
hàng hoặc cột, khơng xóa đồng thời cả hai. Trong bảng cịn lại, ta lại tìm
ơ có cước phí nhỏ nhất và phân phối tối đa lượng hàng cịn lại vào ơ này
(lượng này có thể bằng 0). Phương án x thu được có đúng m + n − 1 ơ
đã phân hàng, nó là một phương án cực biên vì các ơ đã chọn khơng tạo
thành chu trình.
Ví dụ 1.2. Tìm phương án cực biên của bài tốn vận tải.

12Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




10

Bài toán: "Cần vận chuyển xi măng từ 3 kho K1 , K2 , K3 tới 4 công
trường xây dựng T1 , T2 , T3 , T4 . Cho biết lượng xi măng có ở mỗi kho,
lượng xi măng cần ở mỗi công trường va giá cước vận chuyển (ngàn đồng)
một tấn xi măng từ mỗi kho tới mỗi công trường như sau:
Bảng 1.2.

Vấn đề là tìm kế hoạch vận chuyển xi măng từ các kho tới các công
trường sao cho mọi kho phát hết lượng xi măng có, mọi công trường nhận

đủ lượng xi măng cần và tổng chi phí vận chuyển là nhỏ nhất?"
Cước phí nhỏ nhất trong bảng là 15 đạt tại hai ô (2; 1) và (2; 4). Ta chọn
ô thứ nhất và phân vào ô này lượng hàng x21 = min {200, 130} = 130.
Cột 1 đã nhận đủ hàng nên bị loại (không phân hàng vào ơ đó nữa). Hàng

2 chỉ cịn lại lượng phát a2 = 200 − 130 = 70.
Trong bảng còn lại (ba cột cuối), ta chọn ơ (2; 4) có cước phí nhỏ
nhất (bằng 15) và phân vào ơ này lượng hàng x24 = min {70, 140} = 70.
Lúc này hàng 2 đã hết hàng nên bị loại. Cột 4 còn thiếu lượng hàng
b4 = 140 − 70 = 70.
Trong bảng còn lại (ba cột cuối hàng 1 và 3), ta chọn ơ có cước phí nhỏ
nhất (bằng 18) và phân vào ô này lượng hàng x12 = min {170, 160} = 160.
Cột 2 đã nhận đủ hàng nên bị loại. Hàng 1 còn lại lượng phát a1 =
170 − 160 = 10.

13Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




11

Tiếp đó, ta phân vào ơ (1; 3) lượng hàng x13 = min {10, 120} = 10.
Đến đây hàng 1 cũng hết hàng, chỉ có hàng 3 là cịn hàng. Cuối cùng, ta
phân vào hai ô cuối của hàng này lượng hàng x13 = 120 − 10 = 110 và

x34 = 180 − 110 = 70. Đến đây mọi hàng (cột) đã phát hết (nhận đủ)
hàng, ta đặt xij = 0 đối với mọi ơ (i, j) cịn lại.
Kết quả ta nhận được phương án cực biên cho ở bảng (1.2). Giá trị
hàm mục tiêu tương ứng bằng 12950. Sau này ta sẽ thấy giá trị cực tiểu

fmin = 12140.
1.2.2

Phương pháp góc tây bắc

Trước hết ta lập bảng vận tải T với các số liệu ai , bj , cij , i = 1, ..., m, j =

1, ..., n.
Bắt đầu từ ơ ở vị trí góc tây bắc của bảng vận tải T (ô (1; 1)), ta điền
lượng hàng x11 lớn nhất có thể vào đó, tức là chuyển một lượng hàng lớn
nhất có thể từ điểm xuất phát 1 đến điểm thu 1. Dễ thấy
x11 = min {a1 , b1 } .
Có một trong ba khả năng sau có thể xảy ra:

• If x11 = a1 < b1
Then (điểm phát 1 đã hết hàng, điểm thu 1 còn cần b1 − a1 đơn
vị hàng) Xóa hàng thứ nhất của bảng T ta thu được bảng T gồm

(m − 1) hàng và n cột với lượng phát, thu tương ứng:
ai = ai i = 2, 3, ..., m,
b1 = b1 − x11 = b1 − a1 ; bj = bj j = 2, 3, ..., n;
• If x11 = b1 < a1
Then (điểm phát 1 còn dư a1 − b1 đơn vị hàng, điểm thu 1 đã thỏa
mãn nhu cầu) Xóa cột thứ nhất của bảng T ta thu được bảng T gồm

m hàng và (n − 1) cột với lượng phát, thu tương ứng:
a1 = a1 − x11 = a1 − b1 ; ai = ai i = 2, 3, ..., m,
bj = bj j = 2, 3, ..., n,

14Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





12

• If x11 = b1 = a1
Then (điểm phát 1 đã hết hàng, điểm thu 1 đã thỏa mãn nhu cầu )
Ta quy ước chỉ xóa cột thứ nhất của bảng T ta thu được bảng T
gồm m hàng và (n − 1) cột với lượng phát, thu tương ứng:

a1 = 0 a1 = ai i = 2, 3, ..., m,
bj = bj , j = 2, 3, .., n;
Đối với bảng T , ta lại thực hiện thủ tục chuyển hàng như đã áp dụng
đối với bảng T : Bắt đầu từ ơ ở góc tây bắc của bảng T , xác định khối
lượng vận chuyển lớn nhất có thể (khối lượng hàng có thể bằng 0) từ điểm
phát đến điểm thu tương ứng, tức điền lượng hàng vận chuyển lớn nhất có
thể vào ơ này... Cứ tiếp tục phân phối hàng như vậy cho đến khi mọi hàng
(cột) đã phát hết (nhận đủ) hàng. Khi đó ta sẽ nhận được phương án cực
biên gồm m + n − 1 ơ được chọn, khơng tạo thành chu trình. Những ô

(i; j) không được phân phối hàng có xij = 0.
Ví dụ 1.3. Xét bài tốn vận tải với véctơ lượng phát a, lượng thu b và
ma trận chi phí C như sau

a = (50, 70, 80)T , b = (60, 30, 40, 70)T ,



2 4 5 1

50 0 0 0



C =  3 6 4 8  , x0 =  10 30 30 0



1 2 5 3

0






0 10 70

Kết quả tìm phương án cực biên ban đầu x0 theo phương pháp góc tây
bắc được trình bày ở bảng trên. Các thành phần dương của phương án x0
được ghi vào góc dưới bên phải mỗi ơ tương ứng(các thành phần bằng 0
bỏ qua khơng ghi). Trình tự phân phối hàng theo chiều mũi tên (đường
nét đứt). Ta thấy rằng, phương án x0 này chính là phương án cực biên của
bài tốn.
Nhận xét 1.1. Theo phương pháp góc tây bắc, sau mỗi lần phân phối
hàng, ta sẽ xóa đi được 1 hàng (hoặc 1 cột) của bảng. Do đó, đúng sau

m + n − 1 lần phân phối thủ tục trên phải kết thúc (do ở lần cuối ta xóa
15Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





13

được cả hàng lẫn cột) và phương án xây dựng theo phương pháp góc tây
bắc sẽ có khơng q m + n − 1 thành phần dương.

1.3

Tiêu chuẩn tối ưu

Đối ngẫu của bài toán vận tải ban đầu (bài toán (1.1)-(1.4)) là
m

g(y) =

n

bj vj → max

ai ui +
i=1

(1.8)

j=1

với điều kiện


ui + vj ≤ cij , i = 1, ..., m, j = 1, ..., n,

(1.9)

trong đó y = (u1 , ..., um , v1 , ..., vn )T .
Để đơn giản việc trình bày, giả sử rằng bài tốn vận tải ban đầu là
không suy biến, tức các phương án cực biên của nó đều khơng suy biến.
Cách nhận biết và khắc phục khi gặp phương án cực biên suy biến sẽ được
trình bày chi tiết trong phần bên dưới đây.
Cho phương án x0 . Như thường lệ, kí hiệu G x0 = (i; j) ∈ T |x0 > 0 .
ij
Sau đây là điều kiện cần và đủ để phương án x = (x0 ) là phương án tối
ij
ưu.
Định lí 1.3. Phương án x0 = (x0 ) của bài toán vận tải là phương án tối
ij
ưu khi và chỉ khi tồn tại các số ui , i = 1, ..., m và vj , j = 1, ..., n thỏa mãn
đồng thời

ui + vj ≤ cij , ∀(i; j) ∈ T

(1.10)

.ui + vj = cij , ∀(i; j) ∈ G(x0 ).

(1.11)

Giả sử x0 là phương án cực biên không suy biến. Ta có các véctơ


Aij | (i; j) ∈ G(x0 ) độc lập tuyến tính và G(x0 ) = m + n − 1. Do
đó hệ (1.11) tương ứng
ui + vj = cij , (i; j) ∈ G(x0 )
có m + n − 1 phương trình độc lập tuyến tính với nhau và m + n biến

ui , i = 1, ..., m, và vj , j = 1, ..., n. Do đó để giải hệ này, có thể cho một
16Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




14

biến giá trị tùy ý (thông thường cho u1 = 0) và các ẩn còn lại được xác
định duy nhất bằng phương pháp thế. Như vậy, mỗi phương án cực biên
không suy biến x0 = (x0 ) tương ứng với một bộ số ui , i = 1, ..., m và
ij

vj , j = 1, ..., n (sai khác một hằng số) thỏa mãn (1.11). Ta gọi các số
ui , vj này là các thế vị. Các đại lượng ∆ := ui + vj − cij được gọi là các
ước lượng. Khi đó, điều kiện (1.10) được viết lại là
∆ij ≤ 0, ∀(i; j) ∈ T.
Định lý sau đây cho ta biết dấu hiệu nhận biết phương án cực biên
không suy biến x0 chưa phải tối ưu và từ đó chuyển sang một phương án
cực biên x1 mà tại đó giá trị hàm mục tiêu tốt hơn tại x0 .
Định lí 1.4. Giả sử x0 là phương án cực biên khơng suy biến của bài tốn
vận tải và ui , i = 1, ..., m, và vj , j = 1, ..., n là bộ các thế vị tương ứng
của nó.
Nếu tồn tại ơ (ik ; jk ) ∈ G(x0 )sao cho ∆ik ik > 0
/


(1.12)

thì x0 khơng là phương án tối ưu và từ x0 ta chuyển đến được một phương
án cực biên x1 tốt hơn x0 , tức

f x1 < f x0 .

1.4

Thuật tốn thế vị

Như đã trình bày ở trên, thuật toán thế vị giải bài toán vận tải xuất
phát từ một phương án cực biên. Việc xác định một phương án cực biên
của bài toán vận tải đơn giản hơn rất nhiều so với việc tìm phương án cực
biên của một bài toán quy hoạch tuyến tính tổng qt và việc đó được
trình bày ở trên. Ở đây ta giới thiệu thuật toán thế vị giải bài tốn vận tải
khơng suy biến, tức là các phương án cực biên ban đều có đúng (m+n−1)
thành phần dương, với giả thiết đã biết trước một phương án cực biên.
Thuật toán thế vị
Bước khởi tạo: Dùng phương pháp min cước (hay phương pháp góc tây
bắc) tìm phương án cực biên không suy biến x0 = (x0 ). Tập ô chọn tương
ij
17Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




15


ứng với x0 là G x0 = (i; j) ∈ T |x0 > 0 gồm đúng (m + n − 1) ơ khơng
ij
chứa chu trình và. Đặt chỉ số vịng lặp k = 1.
Bước 1:Xác định các thế vị: ui , i = 1, ..., m, và vj , j = 1, ..., n tương
ứng với xk−1 bằng cách giải hệ phương trình dạng tam giác (1.11):

u1 = 0, ui + vj = cij , ∀(i; j) ∈ G(xk−1 )
Bước 2:Tính các ước lượng: ∆ij = ui + vj − cij , ∀(i; j) ∈ G(xk−1 ).
/
(Để ý là ta ln có ∆ij = ui + vj − cij = 0, ∀(i; j) ∈ G(xk−1 ) ) Điền
ước lượng ∆ij với (i; j) ∈ G(xk−1 ) vào góc bên phải của ô (i; j).
/
Bước 3: Kiểm tra tối ưu:
If ∆ij ≤ 0, ∀(i; j) ∈ G(xk−1 ).
/
Then dừng thuật toán (x0 là phương án tối ưu theo Định lý(1.3)).
Else Chuyển bước 4.
Bước 4: Điều chỉnh phương án (nếu cần)
4a) Xác định ô điều chỉnh (is ; js ) với ∆r;s = max ∆ij > 0|∀(i; j) ∈ G(xk−1 ) .
/
4b) Tìm chu trình duy nhất K trong tập G(x0 ) ∪ (r; s).
4c) Chia các ô thuộc K thành ô lẻ K1 và ô chẵn K2 với qui ước

(r; s) ∈ K1 .
k−1
4d) Xác định lượng điều chỉnh h = min xk−1 : (i; j) ∈ K2 = xpq
ij
4e) Xây dựng phương án







k−1
xij =






cực biên mới xk với
k−1
xij , khi (i; j) ∈ K,
/
k−1
xij + h, khi (i; j) ∈ K1 ,
k−1
xij − h, khi (i; j) ∈ K2 .

Ta có G(xk ) := G(xk−1 )\ {(p; q)} ∪ {(r; s)} và G(xk ) khơng chứa chu
trình, tức là xk là phương án cực biên.
4f) Gán k := k + 1, quay lại bước 1 để thực hiện vòng lặp k mới.
Định lí 1.5. Nếu bài tốn vận tải khơng suy biến thì thuật tốn thế vị là
hữu hạn, tức là sau hữu hạn bước ta sẽ nhận được phương án tối ưu.

18Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





16

Mệnh đề 1.1. Nếu các lượng phát ai , i = 1, ..., m và các lượng thu bj

, j = 1, ..., n đều là các số nguyên thì bài tốn vận tải ban đầu sẽ có nghiệm
tối ưu với các thành phần đều nguyên.
Chú ý 1.1. Trong trường hợp bài tốn vận tải suy biến, có hai dấu hiệu
để nhận biết:

• Lượng điều chỉnh h = 0 (bước 4d). Khi đó ta vẫn thực hiện thuật
tốn một cách bình thường, nghĩa là ơ điều chỉnh (r; s) sẽ trở thành ô
chọn của phương án cực biên mới xk và xk = 0 cịn ơ (p; q) ∈ K2 ứng
rs
k−1
với xpq = 0 sẽ trở thành ô loại đối với phương án xk . Tuy nhiên, kết
quả điều chỉnh không làm thay đổi phương án cực biên (xk − 1 = xk )
mà chỉ làm thay đổi tập véctơ cơ sở của phương án đó.
• Lượng điều chỉnh h đạt tại nhiều ô khác nhau thuộc K2 . Khi đó ta
sẽ loại một trong những ơ này theo qui tắc ngẫu nhiên.
Chú ý 1.2. (Dấu hiệu bài tốn có phương án tối ưu duy nhất và khơng
duy nhất)

• Nếu phương án cực biên không suy biến x0 thỏa mãn tiêu chuẩn
∆ij = ui + vj − cij < 0, ∀(i; j) ∈ G(x0 )
/
thì đó là phương án tối ưu duy nhất của bài tốn vận tải.

• Ngược lại, nếu phương án cực biên không suy biến x0 là phương án tối

ưu và tồn tại ô (r; s) ∈ G(x0 ) có ∆rs = 0 thì x0 khơng phải phương
/
án tối ưu duy nhất của bài toán vận tải. Tương tự thuật tốn đơn
hình giải bài tốn quy hoạch tuyến tính, muốn tìm một phương án
cực biên tối ưu khác x0 , ta chọn (r; s) làm ô điều chỉnh và thực hiện
tiếp một số bước lặp theo thuật tốn thế vị.
Sau đây là một số ví dụ minh họa cho thuật tốn thế vị.

19Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




17

1.5

Ví dụ minh họa

Ví dụ 1.4. Giải bài tốn vận tải bằng thuật toán thế vị với véctơ cung a,
véctơ cầu b và ma trận cước phí C như sau:

a = ( 170 180 200 ) , b = ( 120 130 140 160 )



22 20 25 18
10 0 0 160




C =  40 45 35 30  , x0 =  110 0 70 0



30 15 15 25

0

130 70






0

Giải:
Bài tốn này có m = 3 điểm phát và n = 4 điểm thu và thỏa mãn điều
kiện cân bằng thu phát (1.5). Phương án cực biên ban đầu x0 được tìm
theo phương pháp min cước có tập ơ chọn là

G x0 = {(1; 1) , (1; 4) , (2; 1) , (2; 3) , (3; 2) , (3; 3)} ,
gồm 6 = m + n − 1 ô không chứa chu trình và giá trị hàm mục tiêu

f (x0 ) = 12950.
Vòng lặp thứ nhất.
Bước 1. Các thế vị tương ứng với x0 :
u0 = ( 0 18 −2 ) , v 0 = ( 22 17 17 18 ) .

Các ước lượng ∆ij = ui + vj − c ghi trong ma trận ∆0 dưới đây.


0
−3 −8 0


∆0 =  0 −10 0 6 



−10

0

0

−9

Bước 3. Phương án x0 chưa tối ưu vì cịn ∆24 = 6 > 0
và (2; 4) ∈ G(x0 ).
/
Bước 4. Điều chỉnh phương án:
4a) Ơ điều chỉnh (r; s) = (2; 4) vì

∆24 = max ∆ij > 0 : (i; j) ∈ G(x0 ) = 6 > 0
/
20Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





18

.
4b) Chu trình điều chỉnh gồm 4 ơ K = {(2; 4), (1; 4), (1; 1), (2; 1)}
4c) Các ô lẻ K1 = {(2; 4), (1; 1)} và các ô chẵn K2 = {(1; 4), (1; 1)}.
4d) Lượng điều chỉnh h = min x0 = 160, x0 = 110 = x0 = 110
14
21
21
Ô điều chỉnh (p, q) = (2, 1).
4e) Phương án cực biên mới:

120

x1 =  0


0

0

0

0


70 110 



130 70

50



0

tương ứng với G(x1 ) = {(1; 1) , (1; 4) , (2; 3) , (2; 4) , (3; 2) , (3; 3)}
và f (x1 ) = 12290 < f (x0 ) = 12950
Vòng lặp thứ hai.
Bước 1. Các thế vị tương ứng với x1 :

u1 = ( 0 12 −8 ) , v 1 = ( 22 23 23 18 ) .
Các ước lượng ∆ij = ui + vj − c ghi trong ma trận ∆1 dưới đây.


0
3 −2 0


0 
∆1 =  −6 −10 0



−16

0


0

−15

Bước 3. Phương án x1 chưa tối ưu vì cịn ∆12 = 3 > 0
và (1; 2) ∈ G(x1 ).
/
Bước 4. Điều chỉnh phương án:
4a) Ơ điều chỉnh (r; s) = (1; 2) vì

∆12 = max ∆ij > 0 : (i; j) ∈ G(x1 ) = 3 > 0.
/
4b) Chu trình điều chỉnh gồm 6 ô K = {(1; 2), (3; 2), (3; 3), (2; 3), (2; 4), (1; 4)}
4c) Các ô lẻ K1 = {(1; 2), (3; 3), (2; 4)} và các ô chẵn K2 = {(3; 2), (2; 3), (1; 4)}.
4d) Lượng điều chỉnh

h = min x1 = 130, x1 = 70, x1 = 50 = x1 = 50
23
14
32
14

21Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




19


Ô điều chỉnh (p; q) = (1; 4).
4e) Phương án cực biên mới:


120 50 0
0


x2 =  0 0 20 160 



0

80 120

0

tương ứng với G(x2 ) = {(1; 1) , (1; 2) , (2; 3) , (2; 4) , (3; 2) , (3; 3)}
và f (x2 ) = 12140 < f (x1 ) = 12290
Vòng lặp thứ ba.
Bước 1. Các thế vị tương ứng với x2 :

u2 = ( 0 15 −5 ) , v 2 = ( 22 20 20 15 ) .
Các ước lượng ∆ij = ui + vj − c ghi trong ma trận ∆2 dưới đây.


0
0 −5 −12



0 
∆2 =  −3 −10 0



−13

0

0

−15

Do tất cả các ước lượng ∆ij < 0 với mọi (i; j) ∈ G(x2 ) nên kết thúc
/
thuật toán và ta nhận được phương án tối ưu nhất là


120 50 0
0


x2 =  0 0 20 160  .



0

80 120


22Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

0




20

Chương 2
Bài toán vận tải suy biến và cách
khắc phục
Chương này đề cập tới bài toán vận tải suy biến. Giải thích hiện tượng
suy biến và nêu ví dụ xoay vịng trong bài tốn vận tải. Bằng cách xây
dựng bài tốn nhiễu thích hợp có thể chứng minh được rằng mọi phương
án cực biên của bài tốn đều khơng suy biến, vì thế trong q trình giải
bài tốn theo thuật tốn thế vị ta khơng gặp xoay vịng và thuật toán kết
thúc sau một số hữu hạn bước lặp. Nội dung của chương được tham khảo
chủ yếu từ các tài liệu [3], [4] và [5].

2.1

Thế nào là suy biến

Để hiểu rõ khái niệm suy biến, ta hãy xét một ví dụ đơn giản.
Ví dụ 2.1. Tìm phương án cực biên ban đầu của bài tốn vận tải 4 × 4
với véctơ cung a, véctơ cầu b và ma trận cước phí C cho dưới đây.

a =( 1 1


8

5

C =

6

2

1 1 )T , b =( 1 1 1 1 )T ;


7 9 9
1 0 . .



2 7 8
 0  . 1 0 .
, x = 


1 4 9
 . . 1 0


3 2 6
. . . 1






.




Giải. Phương án cực biên ban đầu x0 = x0 lập theo phương pháp
ij
Góc Tây - Bắc, các ô được chọn lần lượt là (1.1) , (1.2) , (2.2) , (2.3) , (3.3) . (3.4)

23Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




21

và (4.4): chỉ ghi giá trị các biến cơ sở, các biến ngồi cơ sở đều có giá trị
bằng 0 (ơ có dấu ".") với f x0 = 20.
Như đã trình bày ở Chương 1, trong bài tốn vận tải có tất cả m + n
ràng buộc đẳng thức (khơng kể các ràng buộc khơng âm), nhưng chỉ có

m + n − 1 ràng buộc độc lập tuyến tính (ràng buộc còn lại là thừa) và mỗi
phương án cực biên của bài tốn có vừa đúng m + n − 1 biến cơ sở, tương
ứng với m + n − 1 ô của bảng, các ô này không chứa chu trình. Phương án
cực biên gọi là khơng suy biến nếu giá trị của các biến cơ sở trong phương

án đó đều dương. Nếu trái lại (có biến cơ sở nhận giá trị 0) thì phương án
cực biên đó gọi là suy biến (hay thối hóa).
Với bài tốn vận tải cho ở Ví dụ (2.1) và phương án cực biên x0 đã xây
dựng ta thấy trong bảy (= m+n−1) biến cơ sở (x11 , x12 , x22 , x23 , x33 , x34 , x44 )
chỉ có bốn biến nhận giá trị dương, đó là x11 = x22 = x33 = x44 = 1 > 0,
ba biến cịn lại có giá trị bằng 0 (x12 = x23 = x34 = 0). Như vậy x0 là
phương án cực biên suy biến.
Trong quá trình giải bài tốn vận tải một phương án cực biên (suy biến
hoặc khơng suy biến) có thể bị biến đổi thành một phương án cực biên suy
biến, đó là trường hợp khi có nhiêu biến ngồi cơ sở cùng đạt tiêu chuẩn
chọn làm biến loại khỏi cơ sở. Trong trường hợp này phương án cực biên
tiếp theo sẽ suy biến, bởi vì biến đạt tiêu chuẩn những khơng bị loại sẽ
nhận giá trị 0.
Với bài toán mà mọi phương án cực biên của nó đều khơng suy biến thì
khơng xảy ra hiện tượng xoay vịng và thuật tốn giải sẽ kết thúc sau một
số hữu hạn bước (do hàm mục tiêu giảm thực sự sau mỗi vòng lặp và do
số phương án cực biên của bài toán là hữu hạn). Nhưng bài tốn có các
phương án cực biên suy biến thì có nguy cơ xảy ra xoay vịng, tức là khi
giải bài toán ta gặp lại phương án cực biên và cơ sở đã có trước đó, hậu
quả là thuật tốn giải khơng thể kết thúc. Vì thế muốn tránh xoay vòng
ta cần làm sao cho mọi phương án cực biên của bài tốn đều khơng suy
biến. Phương pháp trình bày ở mục 2.3 sẽ thực hiện việc này.
Nhận xét 2.1. Một dạng đặc biệt của bài toán vận tải thường hay gặp

24Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




22


suy biến là bài toán phân việc với nội dung như sau: Có n người (i = 1,
2, ... , n) và n công việc (j = 1, 2, ... , n). Để giao cho người i thực hiện
công việc j cần một chi phí (đào tạo chẳng hạn) là cij > 0. Vấn đề đặt
ra là cần phân cho người nào làm việc gì (mỗi người chỉ làm một việc và
mỗi việc chỉ do một người làm) sao cho chi phí tổng cộng là nhỏ nhất? Mơ
hình tốn học của bài tốn phân việc này có dạng một bài toán vận tải với
m = n và mọi ai = bj = 1(tổng cung = tổng cầu = n).

2.2

Ví dụ xoay vịng

Với bài tốn qui hoạch tuyến tính (khác bài tốn vận tải) người ta đã
xây dựng các ví dụ xoay vịng khi biến có ước lượng dương lớn nhất luôn
được chọn để đưa vào cơ sở. Nhưng cho đến nay người ta chưa gặp và cũng
chưa có ví dụ nào cho thấy có xảy ra xoay vịng trong bài tốn vận tải, khi
biến đưa vào cơ sở ln được chọn là biến có ước lượng dương lớn nhất.
Ví dụ sau đây cho thấy hiện tượng suy biến có thể dẫn đến xoay vịng
trong bài tốn vận tải, nếu biến đưa vào cơ sở ln được chọn là biến có
ước lượng dương, nhưng khơng nhất thiết chọn biến có ước lượng dương
lớn nhất.
Ví dụ 2.2. (Xoay vịng xảy ra khi khơng dùng qui tắc "Ước lượng dương
lớn nhất").
Xét bài tốn vận tải được mô tả trong bảng bên dưới. Các cước phí cij ghi
ở góc trên bên trái, các biến xij ghi ở góc dưới bên phải của các ơ trong
bảng, lượng cung ai của hàng i ghi ở góc trên bên trái và thế vị hàng ui
ghi ở góc dưới bên phải các ô ở cột tận cùng bên phải, lượng cầu bj của
cột j ghi ở góc trên bên trái và thế vị cột vj ghi ở góc dưới bên phải các
ô ở hàng dưới cùng của bảng.


25Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




×