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

bài toán vận tải phân tuyến tính

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 (799.34 KB, 55 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
NGUYỄN TRÀ GIANG
BÀI TOÁN VẬN TẢI
PHÂN TUYẾN TÍNH
LUẬN VĂN THẠC SĨ TOÁN HỌC
Thái Nguyên - Năm 2012
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
NGUYỄN TRÀ GIANG
BÀI TOÁN VẬN TẢI
PHÂN TUYẾN TÍNH
Chuyên ngành: TOÁN ỨNG DỤNG
Mã số : 60.46.36
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 2012
Số 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 NÓI ĐẦU 1
Nội dung 4
1 BÀI TOÁN VẬN TẢI VỚI HÀM MỤC TIÊU TUYẾN
TÍNH 4
1.1 Bài toán và các tính chất . . . . . . . . . . . . . . . . . . . 4
1.2 Tìm phương án cực biên ban đầu . . . . . . . . . . . . . . 9
1.3 Tiêu chuẩn tối ưu . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Phương pháp thế vị . . . . . . . . . . . . . . . . . . . . . . 17


1.5 Ví dụ minh họa . . . . . . . . . . . . . . . . . . . . . . . . 19
2 BÀI TOÁN VẬN TẢI VỚI HÀM MỤC TIÊU PHÂN TUYẾN
TÍNH 25
2.1 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 Phương pháp giải . . . . . . . . . . . . . . . . . . . . . . . 28
2.3 Ví dụ minh họa . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4 Bài toán đối ngẫu . . . . . . . . . . . . . . . . . . . . . . . 45
Kết luận 50
Tài liệu tham khảo 52
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1
LỜI NÓI ĐẦU
Bài toán vận tải đã khá quen thuộc trong lý thuyết qui hoạch tuyến
tính. 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
toá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 giải 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ị, phương pháp qui không ô chọn, phương pháp thu hẹp chính tắc.
Có thể xét mở rộng bài toán vận tải theo nhiều hướng khác nhau, như
thay đổi điều kiện ràng buộc: vận tải khi không có cân bằng cung cầu
(cung vượt quá cầu hoặc cầu vượt quá cung), vận tải có trung chuyển, vận
tải có hạn chế năng lực thông qua, vận tải có vận chuyển ngược; hoặc thay
đổi dạng của hàm mục tiêu: vận tải với hàm mục tiêu phân tuyến tính (tỉ
số của hai hàm tuyến tính), vận tải với hàm mục tiêu lồi hay lõm, v.v
Chẳng hạn, bài toán vận tải phân tuyến tính tìm phương án vận chuyển
làm cực tiểu tỉ số của chi phí vận chuyển hàng hoá trên tổng lợi nhuận
thu được khi vận chuyển toàn bộ số hàng đó. Tuy hàm mục tiêu của bài
toán là phi tuyến, nhưng các ràng buộc của bài toán vẫn có cùng cấu trúc
như của bài toán vận tải thông thường, vì thế có thể vận dụng các phương

pháp giải bài toán vận tải đã biết cho bài toán vận tải mở rộng.
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ế các kiến thức về qui hoạch tuyến tính chính tắc nói chung đều
có thể áp dụng vào bài toán vận tải tuyến tính nói riêng. Ràng buộc của
bài toán vận tải tuyến tính và phân tuyến tính có cấu trúc vận tải nên
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
2
miền ràng buộc của các bài toán này có các tính chất đặc biệt. Có thể khâi
thác các tính chất đó để xây dựng thuật toán giẩi riêng, hiệu quả.
Luận văn này đề cập tới bài toán vận tải với hàm mục tiêu tuyến tính
và phân tuyến tính: giới thiệu nội dung, mô hình và các tính chất cơ bản
của bài toán; giới thiệu thuật toán thế vị giải bài toán vận tải tuyến tính
và dạng mở rộng của nó để giải bài toán vận tải phân tuyến tính. Vấn đề
đối ngẫu và các quan hệ đối ngẫu của bài toán vận tải tuyến tính và phân
tuyến tính cũng được đề cập tới.
Nội dung luận văn được chia thành hai chương.
Chương 1 với tiêu đề "Bài toán vận tải với hàm mục tiêu 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 toán vận tải tuyến tính.
Tiếp đó, đề cập tới phương pháp "min cước" và phương pháp "góc Tây
- Bắc" để 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 toán thế vị (một biến thể của thuật
toán đơn hình) giải hiệu quả bài toán vận tải. Cuối chương nêu ví dụ số
để minh họa cho thuật toán giải.
Các kiến thức về bài toán vận tải nói chung và thuật toán thế vị nói
riêng sẽ cần đến ở chương sau, khi xét bài toán vận tải phân tuyến tính.
Chương 2 với tiêu đề "Bài toán vận tải với hàm mục tiêu phân tuyến
tính" đề cập tới một mở rộng bài toán vận tải tuyến tính, bằng cách thay
hàm mục tiêu tuyến tính bằng hàm mục tiêu phân tuyến tính (tỉ số của
hai hâm tuyến tính), hàm này có tính chất đơn điệu theo từng phương.
Dựa vào cấu trúc đặc biệt của bài toán, chương này nêu ra điều kiện để

phương án của bài toán là tối ưu và nêu thuật toán thế vị mở rộng giải
bài toán. Thuật toán có kèm theo ví dụ số để minh họa. Cuối chương đề
cập tới bài toán đối ngẫu của bài toán vận tải phân tuyến tính và nêu
các quan hệ đối ngẫu giữa hai bài toán gốc và đối ngẫu, tương tự như lý
thuyết đối ngẫu trong qui hoạch tuyến tính.
Do thời gian và kiến thức còn hạn chế nên luận văn này mới chỉ đề cập
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3
tới những nội dung cơ bản của bài toán vận tải phân tuyến tính, chưa đi
sâu vào các chi tiết thực thi thuật toán. Trong quá trình viết luận văn
cũng như trong xử lý văn bản chắc chắn không tránh khỏi những sai sót
nhất định. Tác giả luận văn rất mong nhận được sự góp ý của các thầy cô
và các bạn đồng nghiệp để luận văn được hoàn thiện hơn.
Nhân dịp này, tác giả xin bày tỏ lòng biết ơn sâu sắc đến thầy hướng
dẫn GS-TS Trần Vũ Thiệu đã tận tình giúp đỡ trong suốt quá trình làm
luận văn.
Tác giả xin trân trọng cảm ơn các thầy, cô giáo Trường Đại học Khoa
học- Đại học Thái Nguyên, Viện Toán học-Viện Khoa học và Công nghệ
Việt Nam, đã giảng dạy và tạo mọi điều kiện thuận lợi trong quá trình tác
giả học tập và nghiên cứu.
Thái Nguyên, tháng 07 năm 2012.
Người thực hiện
Nguyễn Trà Giang
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4
Chương 1
BÀI TOÁN VẬN TẢI VỚI HÀM
MỤC TIÊU TUYẾN TÍNH
Chương này xét bài toán vận tải với hàm mục tiêu 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 toán

qui hoạch tuyến tính đơn giản nhất và được áp dụng rộng rãi trong thực
tiễn.
Mục 1.1 giới thiệu mô hình bài toán và các tính chất cơ bản. Mục 1.2
nêu phương pháp min cước và phương pháp góc Tây-Bắc tìm phương án
cực biên ban đầu của bài toán. Điều kiện tối ưu được đưa ra ở Mục 1.3 và
thuật toán thế vị cùng cơ sở lý luận của thuật toán được trình bày ở Mục
1.4. Ví dụ số được xây dựng ở Mục 1.5.
Nội dung của chương chủ yếu tham khảo từ các tài liệu [1] , [2] và [4].
1.1 Bài toán và các tính chất
Mô hình toán học của bài toán vận tải có dạng như sau:
m

i=1
n

j=1
c
ij
x
ij
→ min (cực tiểu tổng chi phí vận chuyển) (1.1)
với các điều kiện:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
5
n

j=1
x
ij
= a

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

i=1
x
ij
= b
j
, j = 1, 2, , n (mọi điểm thu nhận đủ hàng) (1.3)
x
ij
≥ 0, i = 1, , m, j = 1, , n (lượng hàng vận chuyển không âm) (1.4)
Ở đây m là kho hàng (điểm phát), n là nơi tiêu thụ hàng (điểm thu).
a
i
là lượng hàng có (cung) ở điểm phát i (i=1,2, ,m).
b
j
là lượng hàng cần (cầu) ở điểm thu j (j=1,2, ,n).
c
ij
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.
x
ij
biểu thị lượng hàng vận chuyển cần tìm từ điểm phát i đến điểm
thu j.
Điều kiện cần và đủ để bài toá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:

a
1
+ a
2
+ + a
m
= b
1
+ b
2
+ + b
n
(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ự
x
11
, x
12
, , x
1n
, x
21
, x
22
, , x
2n
, , x
m1
, x

m2
, , x
mn
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 của m × n biến số x
ij
như sau:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
6

















x
11
+ x
12

+ + x
1n
= a
1
,
x
21
+ x
22
+ + x
2n
= a
2
,

x
m1
+ x
m2
+ + x
mn
= a
m
,
x
11
+ x
21
+ x
m1

= b
1
,
x
12
+ x
22
+ x
m2
= b
2
,

x
1n
+ x
2n
+ x
mn
= b
n
.
Ký hiệu A là ma trận hệ số của hệ phương trình trên (gồm m + n hàng
và m × n cột).
x = (x
11
, x
12
, , x
1n

, x
21
, x
22
, , x
2n
, , x
m1
, x
m2
, , x
mn
)
T
là véctơ cột m × n thành phần,
c = (c
11
, c
12
, , c
1n
, c
21
, c
22
, , c
2n
, , c
m1
, c

m2
, , c
mn
)
T
là véc tơ cột m × n thành phần,
b = (a
1
, a
2
, , a
m
, b
1
, b
2
, , b
n
)
T
là 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 toán quy hoạch
tuyến tính dạng chính tắc:
f = < c, x > → min,
Ax = b, x ≥ 0.
Ta gọi A
ij
là véctơ cột của ma trận A ứng với biến x
ij
. Dễ thấy rằng

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 A
ij
của
ma trận A ứng với các x
ij
> 0 là độc lập tuyến tính.Sau đây ta sẽ giả thiết
là có điều kiện cân bằng thu phát (1.5).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
7
Do bài toá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 = {(i, j) : x
ij
> 0} bằng m+n-1, gọi là suy
biến nếu |G| < m+n-1.
Để cho gọn, 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 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 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 c
ij
ghi ở góc trên bên trái của ô (i,j), lượng hàng

vận chuyển x
ij
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 c
ij
= ∞ nếu không
thể chuyển hàng từ i đến j.
Bảng 1.1. Bảng vận tải
Thu
b
1
· · · b
j
· · · b
n
Phat
c
11
c
1j
c
1n
a
1
· · · · · ·
x
11
x
1j
x

1n
.
.
.
.
.
. · · ·
.
.
. · · ·
.
.
.
c
i1
c
ij
c
in
a
i
· · · · · ·
x
i1
x
ij
x
in
.
.

.
.
.
. · · ·
.
.
. · · ·
.
.
.
c
m1
c
mj
c
mn
a
m
· · · · · ·
x
m1
x
mj
x
mn
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
8
Với điều kiện (1.5) bài toán vận tải (1.1) - (1.4) có các tính chất quan
trọng sau đây.
Định lý 1.1.

a)Bài toán vận tải luôn luôn có phương án tối ưu.
b) Hạng của hệ phương trình (1.2) - (1.3) của bài toán bằng m + n -
1.
c) Nếu lượng cung cầu a
i
, b
j
là các số nguyên thì bài toán này sẽ có lời
giải nguyên.
Có thể dùng các phương pháp của quy hoạch tuyến tính để giải bài toán
vận tải. Tuy nhiên do bài toá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ả. Trong số đó có thuật toán thế vị sẽ xét ở
mục 1.4 dưới đây. Định nghĩa 1.1. Ta gọi dây chuyền là tập hợp các ô
có dạng:
(i
1
, j
1
), (i
1
, j
2
), (i
2
, j
2
), (i
2
, j
3

) (i
s
, j
s
), (i
s
, j
s+1
)
hoặc
(i
1
, j
1
), (i
2
, j
1
), (i
2
, j
2
), (i
3
, j
2
) (i
s
, j
s

), (i
s+1
, j
s
).
Một dây chuyền khép kín (j
s+1
= j
1
hoặc i
s+1
= i
1
) 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. Dãy ô đánh dấu "•" trong Hình 1.1 a) và b) lập thành các dây
chuyền, còn các ô với dấu • trong Hình 1.1 c) - e) lập thành các chu trình.
a)
b)
c)
d)
e)
Hình 1.1 Dây chuyền: a) - b).Chu trình: c) - e).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9
Cho G là một tập hợp ô bất kỳ của bảng vận tải. Một ô thuộc G gọi
là ô treo nếu nó là ô duy nhất của G trên hàng hay trên cột của ô đó. Với
tập hợp ô cho ở Hình 1.1 a) thì ô (1,1) và ô (4,3) là các ô treo. Nếu loại

khỏi G ô treo (1,1) thì ô (1,2) sẽ trở thành ô treo của tập hợp ô còn lại.
Ta có mối liên hệ quan trọng sau đây.
Định lý 1.2. Hệ véctơ {A
ij
: (i, j) ∈ G} của bài toán vận tải (1.1) - (1.4)
là độc lập tuyến khi và chỉ khi tập hợp các ô thuộc G không tạo thành chu
trình.
Hệ quả 1.1. Véctơ x = {x
ij
}
m×n
là một phương án cực biên của bài toán
khi và chỉ khi tập hợp các ô (i, j) mà x
ij
> 0 không lập thành chu trình.
Hệ quả 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.
Chu trình nói tới trong hệ quả trên có thể tìm bằng cách loại dần các ô
treo của tập hợp ô G = T ∪{(p, q)}. Ví dụ, tập hợp ô T ở Hình 1.1 b) gồm
m + n -1 = 7 ô, không tạo thành chu trình. Bổ sung vào T ô (4, 2) /∈ T
(ô đánh dấu  ) ta được G = T ∪ {(4, 2)}. Khi đó, bằng cách loại khỏi G
ô treo (3,3) (ô duy nhất của G trên cột 3), rồi ô treo (3,2) đối với tập ô
G

= G\{3, 3} (ô duy nhất của G’ trên hàng 3), ta nhận được chu trình
(gồm 6 ô):
C = {(4, 2), (4, 1), (2, 1), (2, 4), (1, 4), (1, 2)}
1.2 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 của bài toán.
Có nhiều cách để tìm một phương án như thế. Sau đây là một vài phương
pháp thông dụng và có hiệu quả.
a) Phương pháp min cước
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10
Trong bảng vận tải 1.1 ta chọn ô (p, q) sao cho c
pq
= min{c
ij
: ∀(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
x
pq
= min{a
p
, b
q
}.
Trừ lượng hàng vừa phân phối 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 đã phát hết hàng, hoặc cột thu
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 chọn ô 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 ô đã được 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.
Tìm phương án cực biên ban đầu của bài toán vận tải với các số liệu
cho ở bảng 1.2.

Bảng 1.2. Phương án cực biên xây dựng theo phương pháp min cước
Thu
Phát
130 160 120 140
170
20 18
160
22
10
25
200
15
130
25 30 15
70
180
45 30 40
110
35
70
Thu
Phát
130 160 120 140
170
20 18
160
22
10
25
200

15
130
25 30 15
70
180
45 30 40
110
35
70
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11
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 x
21
= 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 a

1
= 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 x
24
= min{70, 140} = 70. Lúc
này hàng 2 đã phát hết hàng nên bị loại. Cột 4 chỉ còn thiếu lượng hàng
b

4
= 140 − 70 = 70.
Trong bảng còn lại (ba cột cuối hàng 1 và 3), ta chọn ô (1,2) có cước phí

nhỏ nhất (bằng 18) và phân vào ô này lượng hàng x
12
= min{170, 160} =
160. Cột 2 đã nhận đủ hàng nên bị loại. Hàng 1 chỉ còn lại lượng phát
a

1
= 170 − 160 = 10.
Tiếp đó, ta phân vào ô (1,3) lượng hàng x
13
= 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 x
33
= 120 − 10 = 110 và
x
34
= 180 − 110 = 140 − 70 = 70. Đến đây mọi hàng (cột) đã phát hết
(nhận đủ) hàng, ta dặt x
ij
= 0 đối với mọi ô (i,j) còn lại.
Kết quả ta được phương án cực biên cho ở bảng trên. 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 f
min
= 12140.
b) 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 a
i
, b
j

, c
ij
, i = 1, , m, j =
1, , n.
• Bắt đầu từ ô ở vị trí góc tây bắc của bảng T (ô(1,1)), ta điền lượng hàng
x
11
lớn nhất có thể vào đó, tức cho chuyển một lượng hàng lớn nhất có
thể từ điểm phát 1 đến điểm thu 1. Dễ thấy
x
11
= min{a
1
, b
1
}
Có một trong ba khả năng sau có thể xảy ra:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12
♦ Nếu x
11
= a
1
< b
1
thì điểm phát 1 đã hết hàng, điểm thu 1 còn cần
b
1
− a
1

đơ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:
a
i

= a
i
; i = 2, 3, , m,
b
1

= b
1
− x
11
= b
1
− a
1
; b
j

= b
j
, j = 2, 3, , n;
♦ Nếu x
11
= b
1
< a

1
thì điểm phát 1 còn a
1
− b
1
đơ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:
a
1

= a
1
− x
11
= a
1
− b
1
; a
i

= a
i
, i = 2, 3, , m,
b
j

= b
j

; j = 2, 3, , n;
♦ Nếu x
11
= b
1
= a
1
thì đ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:
a
1

= 0; a
i

= a
i
; i = 2, 3, , m,
b
1

= b
j
, 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 này 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 đến khi loại hết được tất cả các hàng

và các cột của bảng vận tải. Những ô (i, j) không được phân phối hàng có
x
ij
= 0
Ví dụ: Xét lại bài toán vận tải cho ở Ví dụ 1.2
Bảng 1.3
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
13
130 160 120 140
170
20
130
18
40
22 25
200
15 25
120
30
80
15
180
45 30 40
40
35
140
130 160 120 140
170
20
130

18
40
22 25
200
15 25
120
30
80
15
180
45 30 40
40
35
140
j
b
i
a
Kết quả tìm phương án cực biên xuất phát x
0
theo phương pháp góc tây
bắc được trình bày ở bảng 1.3. Các thành phần dương của phương án x
0
đượ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 đứt
nét). Giá trị hàm mục tiêu tương ứng bằng 15200.
1.3 Tiêu chuẩn tối ưu
Xét bài toán vận tải
min f(x) =
m


i=1
n

j=1
c
ij
x
ij
(P T)
v.đ.k
n

j=1
x
ij
= a
i
, i = 1, , m
m

i=1
x
ij
= b
j
, j = 1, , n
x
ij
≥ 0, i = 1, , m, j = 1, , n.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14
Bài toán đối ngẫu của bài toán này là
max g(y) =
m

i=1
a
i
u
i
+
n

j=1
b
j
v
j
(DT )
với điều kiện u
i
+ v
j
≤ c
ij
, i = 1, , m, j = 1, , n,
trong đó y = (u
1
, , u

m
, v
1
, , v
n
)
T
.
Để đơn giản việc trình bày, giả sử rằng bài toán (1.1) - (1.4) không suy
biến, tức mọi 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ẽ trình bày ở phần
sau
Cho phương án x
0
. Ký hiệu G(x
0
) = {(i, j) ∈ T


x
0
ij
> 0}. Sau đây là điều
kiện cần và đủ để phương án x
0
= (x
0
ij
) là phương án tối ưu.
Phương án x

0
= (x
ij
0
) của bài toán vận tải là phương án tối ưu khi và
chỉ khi tồn tại các số u
i
, i = 1, , m, và v
j
, j = 1, , n thỏa mãn
u
i
+ v
j
≤ c
ij
, ∀(i, j) ∈ T (1.6)
u
i
+ v
j
= c
ij
, ∀(i, j) ∈ G(x
0
) (1.7)
Chứng minh.
(⇒) Giả sử phương án x
0
= (x

0
ii
) là phương án tối ưu của bài toán vận
tải (1.1) - (1.4). Theo định lý đối ngẫu mạnh, bài toán đối ngẫu có phương
án tối ưu y
0
= (u
1
, , u
m
, v
1
, , v
n
)
T
. Do y
0
là phương án chấp nhận được
của bài toán đối ngẫu nên nó thỏa mãn mọi ràng buộc của bài toán, tức
u
i
+ v
j
≤ c
ij
; i = 1, , m; j = 1, , n.
Đây chính là điều kiện (1.6). Hơn nữa, vì x
0
là phương án tối ưu của bài

toán gốc và y
0
là phương án tối ưu của bài toán đối ngẫu nên theo định
lý về độ lệch bù ta có

c − A
T
y
0
, x
0

= 0 ⇒ nếu x
0
ij
> 0 thì u
i
+ v
j
= c
ij
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15
hay điều kiện (1.7) được thỏa mãn.
(⇐) Cho phương án x
0
= (x
0
ii
). Giả sử tồn tại các số u

i
; i = 1, , m và
v
j
; j = 1, , n thỏa mãn (1.6) và (1.7). Ta phải chứng minh x
0
là phương
án tối ưu. Thật vậy, do có (1.7) và do x
0
ij
= 0 với (i, j) /∈ G(x
0
) nên giá trị
hàm mục tiêu tại x
0

f(x
0
) =
m

i=1
n

j=1
c
ij
x
0
ij

=
m

i=1
n

j=1
(u
i
+ v
j
)x
0
ij
(1.8)
Giả sử x = (x
ij
) là một phương án bất kỳ của bài toán vận tải. Ta có
f(x) =
m

i=1
n

j=1
c
ij
x
ij
1.6


m

i=1
n

j=1
(u
i
+ v
j
)x
ij
=
m

i=1
u
i
n

j=1
x
ij
+
n

j=1
v
j

m

i=1
x
ij
=
m

i=1
u
i
a
i
+
n

j=1
v
j
b
j
(vì x là một phương án)
=
m

i=1
u
i
n


j=1
x
0
ij
+
n

j=1
v
j
m

i=1
x
0
ij
(vì x
0
là một phương án)
(1.8)
=
m

i=1
(u
i
+ v
j
)x
0

ij
= f(x
0
)
Vậy x
0
là phương án tối ưu của bài toán vận tải đang xét.
Chú ý 1.1 : Giả sử x
0
là phương án cực biên không suy biến. Ta có các
véc tơ {A
ij


(i, j) ∈ G(x
0
) } độc lập tuyến tính và


G(x
0
)


= m + n − 1.
Do đó hệ (1.8) tương ứng
u
i
+ v
j

= c
ij
, (i, j) ∈ G(x
0
)
có m + n - 1 phương trình độc lập tuyến tính với nhau và m + n biến
u
i
, i = 1, , m và v
j
, j = 1, , n. Do đó để giải hệ này, có thể cho một
biến giá trị tùy ý (thông thường cho u
1
= 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 x
0
= (x
0
ij
) tương ứng với các bộ số u
i
, i = 1, , m và
v
j
, j = 1, , n. (sai khác một hằng số) thỏa mãn (1.8). Ta gọi các số u
i
, v
j
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

16
này là các thế vị. Các đại lượng ∆
ij
:= u
i
+ v
j
− c
ij
được gọi là các ước
lượng. Khi đó, điều kiện (1.4) được viết lại là

ij
≤ 0, ∀(i, j) ∈ T
Định lý 1.3. Giả sử x
0
là phương án cực biên không suy biến của bài
toán vận tải và u
i
, v
j
, i = 1, , m, j = 1, , n là bộ các thế vị tương ứng
với nó. Nếu
∃ ô (i
k
, j
k
) /∈ G(x
0
) sao cho ∆

i
k
j
k
> 0 (1.9)
thì x
0
không phải phương án tối ưu và từ x
0
ta chuyển đến được một
phương án cực biên x
1
tốt hơn x
0
, tức
f(x
1
) < f(x
0
)
Cách xây dựng x
1
như sau:
Do x
0
là phương án cực biên không suy biến nên


G(x
0

)


= m + n −
1 và G(x
0
) không chứa chu trình. Tập G(x
0
) ∪ {(i
k
, j
k
)} chứa một chu
trình K duy nhất đi qua (i
k
, j
k
). Lần lượt đánh dấu các ô trong K bởi các
dấu + và -, xuất phát từ ô (i
k
, j
k
) với dấu +, sao cho không có hai ô nào
cạnh nhau trong K lại dược đánh dấu bởi cùng một dấu. Ký hiệu
K
+
:= {các ô trong K được đánh dấu +},
K

:= {các ô trong K được đánh dấu -},

Xây dựng x
1
= (x
1
ij
) theo công thức
x
1
ij
=



x
0
ij
+ θ nếu (i, j) ∈ K
+
x
0
ij
− θ nếu (i, j) ∈ K

x
0
ij
, nếu (i, j) /∈ K
(1.10)
với
θ = min{x

0
ij
|(i, j) ∈ K

} = x
0
i
r
j
r
. (1.11)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
17
Vì x
0
là phương án cực biên không suy biến nên θ > 0.
Có thể thấy x
1
là một phương án cực biên của bài toán với x
1
i
r
j
r
= θ > 0
và G(x
1
) = (G(x
0
)\{(i

r
,j
r
)}) ∪ {(i
k
,j
k
)}
Hơn nữa,
f(x
1
) = f(x
0
) − θ∆
i
k
j
k
< f(x
0
).
Ô (i
k
, j
k
) được gọi là ô điều chỉnh và K được gọi là chu trình điều chỉnh.
1.4 Phương pháp thế vị
Mục này giới thiệu phương pháp thế vị giải bài toán vận tải. Thuật
toán xuất phát từ một phương án cực biên ban đầu không suy biến x
0

.
Do bài toán vận tải luôn có nghiệm nên từ x
0
chỉ có một trong hai trường
hợp sau xảy ra:
i) Nếu x
0
thỏa mãn tiêu chuẩn tối ưu thì dừng thuật toán: x
0
là phương
án tối ưu của bài toán.
ii) Ngược lại, ta chuyển đến phương án cực biên x
1
thỏa mãn f(x
1
) ≤
f(x
0
); Gán x
0
:= x
1
và lặp lại quá trình tính toán với x
0
mới.
Thuật toán thế vị
Bước khởi tạo. Giả sử đã biết phương án cực biên không suy biến x
0
=
(x

0
ij
). Tập ô chọn tương ứng với x
0
là G(x
0
) = {(i, j)


x
0
ij
> 0 } gồm m+n-
1 phần tử và không chứa chu trình.
Bước 1. Xác định các thế vị u
i
, i = 1, , m, và v
j
, j = 1, , n tương ứng
với phương án cực biên x
0
bằng việc giải hệ phương trình.
u
i
+ v
j
= c
ij
∀(i, j) ∈ G(x
0

).
Bước 2. Tính các ước lượng

ij
= u
i
+ v
j
− c
ij
∀(i, j) /∈ G(x
0
) (Luôn có ∆
ij
= 0∀(i, j) ∈ G(x
0
))
Điền ước lượng ∆
ij
với (i, j) /∈ G(x
0
) vào góc dưới bên phải của ô (i,j).
Bước 3. (Kiểm tra điều kiện tối ưu)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
18
Nếu ∆ ≤ 0 với mọi (i, j) /∈ G(x
0
) Thì dừng thuật toán (x
0
là phương

án tối ưu (Tiêu chuẩn tối ưu)). Trái lại, Chuyển bước 4.
Bước 4. (Điều chỉnh phương án)
(4.a) Xác định ô điều chỉnh (i
s
, j
s
) với

i
s
j
s
= max{∆
ij
> 0|(i, j) /∈ G(x
0
)}
(4.b) Tìm chu trình điều chỉnh duy nhất K trong tập G(x
0
) ∪ (i
s
, j
s
).
(4.c) Đánh dấu lần lượt các ô trong chương trình bởi dấu (+) và (-) với
(i
s
, j
s
) ∈ K

+
.
(4.d) Xây dựng phương án mới x
1
= (x
1
ij
) với
x
1
ij
=



x
0
ij
+ θ nếu (i, j) ∈ K
+
x
0
ij
− θ nếu (i, j) ∈ K

x
0
ij
, nếu (i, j) /∈ K
trong đó θ = x

0
i
r
j
r
= min{x
0
ij
|(i, j) ∈ K

}. Ta có
G(x
1
) :=

G(x
0
)\(i
r
, j
r
)

∪ (i
s
, j
s
)
và G(x
1

) không chứa chu trình (tức x
1
là phương án cực biên mới).
(4.e) Gán x
0
:= x
1
; G(x
0
) := G(x
1
) và quay lại Bước 1.
Định lý 1.4. Nếu bài toán (1.1) - (1.4) không suy biến thì thuật toán thế
vị là hữu hạn, tức sau hữu hạn phép tính ta sẽ nhận được nghiệm tối ưu.
Chú ý 1.2: (Dấu hiệu nhận biết phương án cực biện suy biến và cách
khắc phục)
Trường hợp bài toán vận tải suy biến, có hai dấu hiệu để nhận biết:
i) θ = 0. Khi đó, ta vẫn thực hiện thuật toán một cách bình thường,
nghĩa là ô điều chỉnh (i
s
, j
s
) sẽ trở thành ô chọn của phương án cực biên
mới x
1
với x
1
i
s
j

s
= 0, còn ô i
r
, j
r
ứng với x
0
i
r
j
r
= θ ở trên chu trình điều
chỉnh sẽ trở thành ô loại đối với phương án x
1
. Tuy nhiên, kết quả điều
chỉnh không làm thay đổi phương án cực biên mà chỉ thay đổi tập véctơ
cơ sở ứng với phương án đó;
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
19
ii) θ đạt tại nhiều ô khác nhau. Khi đó, ta sẽ loại một trong những ô
này theo quy tắc ngẫu nhiên.
Chú ý 1.3: (Dấu hiệu bài toán có phương án tối ưu duy nhất)
Nếu phương án cực biên không suy biến x
0
thỏa mãn tiêu chuẩn

ij
= u
i
+ v

j
− c
ij
< 0∀(i, j) /∈ G(x
0
)
thì đó là phương án tối ưu duy nhất của bài toán vận tải;
Ngược lại, nếu phương án cực biên không suy biến x
0
là phương án tối ưu
và tồn tại ô (i
p
, j
p
) /∈ G(x
0
) có ∆
i
p
j
p
= 0 thì x
0
không phải phương án tối
ưu duy nhất của bài toán vận tải.
1.5 Ví dụ minh họa
Giải bài toán vận tải với số liệu và phương án cực biên ban đầu cho ở
bảng 1.2 Giải bài toán vận tải bằng thuật toán thế vị với véctơ lượng phát
a, véctơ lượng thu b, ma trận chi phí C = (c
ij

) và phương án cực biên
xuất phát x
0
như sau:
a = (50, 70, 80)
T
, b = (60, 30, 40, 70)
T
C =

2 4 5 1
3 6 5 8
1 2 5 3

, x
0
=

50 0 0 0
10 30 30 0
0 0 10 70

Giải. Bài toá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. Phương án cực biên x
0
có tập ô chọn tương
ứng là
G(x
0
) = {(1, 2), (1, 3), (2, 1), (2, 4), (3, 3), (3, 4)}

và giá trị hàm mục tiêu f(x
0
) = 12950.
Vòng lặp thứ nhất. Các số liệu tính toán tương ứng với phương án
cực biên x
0
. Cụ thể
Bước 1. Xác định các thế vị: Giải hệ phương trình (1.11) ứng với các ô
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
20
(i, j) ∈ G(x
0
) sau khi đã gán u
i
:= 0 như sau:
Ô (1, 1) : u
1
+ v
1
= c
11
= 2 ⇒ v
1
= 2 − 0 = 2;
Ô (2, 1) : u
2
+ v
1
= c
21

= 3 ⇒ u
2
= 3 − 2 = 1;
Ô (2, 2) : u
2
+ v
2
= c
22
= 6 ⇒ v
2
= 6 − 1 = 5;
Ô (2, 3) : u
2
+ v
3
= c
23
= 4 ⇒ v
3
= 4 − 1 = 3;
Ô (3, 3) : u
3
+ v
3
= c
33
= 5 ⇒ u
3
= 5 − 3 = 2;

Ô (3, 4) : u
3
+ v
4
= c
34
= 3 ⇒ v
4
= 3 − 2 = 1;
Bước 2. Tính các ước lượng tương ứng với các ô (i, j) /∈ G(x
0
).
Ô (1, 2) : ∆
12
= u
1
+ v
2
− c
12
= 0 + 5 − 4 = 1;
Ô (1, 3) : ∆
13
= u
1
+ v
3
− c
13
= 0 + 3 − 5 = −2;

Ô (1, 4) : ∆
14
= u
1
+ v
4
− c
14
= 0 + 1 − 1 = 0;
Ô (2, 4) : ∆
24
= u
2
+ v
4
− c
24
= 1 + 1 − 8 = −6;
Ô (3, 1) : ∆
31
= u
3
+ v
1
− c
31
= 2 + 2 − 1 = 3;
Ô (3, 2) : ∆
32
= u

3
+ v
2
− c
32
= 2 + 5 − 2 = 5;
Bước 3. Vì còn có ∆
12
= 1 > 0, ∆
31
= 3 > 0 và ∆
32
= 5 > 0 và các ô
(1,2),(3,1),(3,2) không thuộc G(x
0
) nên phương án cực biên x
0
chưa phải
là phương án tối ưu.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
21
Bảng 1.3.
701053
3521
33
-6303010
8463
21
0-2150
1542

10
70403060u
i
1
3
5
2
v
j
701053
3521
33
-6303010
8463
21
0-2150
1542
10
70403060u
i
1
3
5
2
v
j
a
i
b
i

Bước 4. (Điều chỉnh phương án) Ta chọn ô (i
s
, j
s
) = (3, 2) làm ô điều
chỉnh vì

32
= max{∆
12
, ∆
31
, ∆
32
} = max{1, 3, 5} = 5.
Ghép ô(3,2) vào tập G(x
0
) ta được chu trình K = (3,2),(3,3),(2,3),(2,2)
với K
+
= {(3, 2), (2, 3)} và K

= {(3, 3), (2, 2)}. Khi đó
θ = min{x
0
ij
|(i, j) ∈ K

} = min{x
0

33
, x
0
22
} = min{10, 30} = 10 = x
0
33
Do đó (i
r
, j
r
) = (3, 3). Tiến hành điều chỉnh phương án ta chuyển sang
phương án cực biên mới x
1
với giá trị hàm mục tiêu bằng
f(x
1
) = f(x
0
) − θ∆
32
= 690 − 10 × 5 = 640
và sang vòng lặp thứ hai với x
0
:= x
1
.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
22
Bảng 1.4.

70-510-2
3521
803
-1402010
8463
701
5-2150
1542
500
70403060u
i
6
3
5
2
v
j
70-510-2
3521
803
-1402010
8463
701
5-2150
1542
500
70403060u
i
6
3

5
2
v
j
a
i
b
i
Vòng lặp thứ 2. Các số liệu tính toán tương ứng với phương án cực
biên x
0
mới được biểu diễn ở Bảng 1.4. Vì còn ∆
12
= 1 > 0, ∆
14
= 5 > 0
và các ô (1,2),(1,4) không thuộc G(x
0
) nên x
0
chưa phải phương án tối ưu.
Dễ thấy, trong bước lặp này ta có (i
s
, j
s
) = (1, 4). Chu trình K thuộc tập
G(x
0
) ∪ {(1, 4)} là
K = {(1, 4), (1, 1), (2, 1), (2, 2), (3, 2), (3, 4)}

với K
+
= {(1, 4), (2, 1), (3, 2)} và K

= {(1, 1), (2, 2), (3, 4)}. Vậy
θ = min{x
0
ij
|(i, j) ∈ K

} = min{x
0
11
, x
0
22
, x
0
34
} = min{50, 20, 70} = 20 = x
0
22
.
Do đó (i
r
, j
r
) = (2, 2). Tiếp tục điều chỉnh phương án của thuật toán, ta
chuyển sang phương án cực biên x
1

mới với giá trị hàm mục tiêu là
f(x
1
) = f(x
0
) − θ∆
14
= 640 − 20 × 5 = 540
Gán x
0
:= x
1
và chuyển sang Vòng lặp thứ ba.
Vòng lặp thứ ba. Các số liệu tính toán tương ứng với phương án x
0
mới tại vòng lặp này được trình bày ở Bảng 1.5.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

×