Tải bản đầy đủ (.doc) (64 trang)

Nghiên cứu một số bài toàn mở rộng: vận tải ba chỉ số không hạn chế và có hạn chế khả năng thông qua, bài toán vận tải ba chỉ số khoảng và giới thiệu một số bài toán vận tải đa mục tiêu

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 (360.3 KB, 64 trang )

Website: Email : Tel (: 0918.775.368

lời mở đầu
Cùng với sự phát triển mạnh mẽ của khoa học kỹ thuật, các bài toán tối u xuất
hiện ngày càng nhiều và tính phức tạp của chúng ngày càng lớn. Phạm vi và khả
năng ứng dụng của các bài toán tối u cũng ngày càng đa dạng và phong phú.
Lớp bài toán tối u quan trọng đợc nghiên cứu đầu tiên và đợc ứng dụng nhiều
nhất là bài toán quy hoạch tuyến tính (linear programming). Đó là mô hình toán
học của một lớp rộng lớn các bài toán ứng dụng trong kinh tế và kỹ thuật. Do đó
cấu trúc của lớp bài toán quy hoạch tuyến tính có nhiều tính chất rất tốt về mặt toán
học, ngời ta đà tìm đợc các thuật giải rất hữu hiệu cho bài toán này. Năm 1947 nhà
toán học Mỹ G.B. Dantzig đà nghiên cứu và đề xuất ra thuật toán đơn hình
(simplex method) để giải bài toán quy hoạch tuyến tính. Thuật toán đơn hình đợc
phát triển mạnh mẽ trong những năm sau đó và đợc xem là một phơng pháp kinh
điển để giải các bài toán quy hoạch tuyến tính. Đây là một phơng pháp đợc sử dụng
có thể nói là rộng rÃi nhÊt. Cã ba lý do chÝnh:
Mét lµ: RÊt nhiỊu vÊn ®Ị thùc tÕ, trong nhiỊu lÜnh vùc kh¸c nhau cã thể đa về
bài toán quy hoạch tuyến tính.
Hai là: Trong nhiều phơng pháp giải các bài toán phi tuyến, bài toán tuyến
tính xuất hiện nh là một bài toán phụ cần phải giải trong nhiều bớc lặp.
Ba là: Phơng pháp đơn hình là phơng pháp hiệu quả để giải bài toán quy
hoạch tuyến tính.
Ngày nay, bằng thuật toán đơn hình và các dạng cải biên của chúng, ngời ta
có thể giải rất nhanh các bài toán QHTT cỡ lớn.
Lớp các bài toán vận tải là trờng hợp đặc biệt của quy hoạch tuyến tính, bởi
vậy có thể dùng các phơng pháp của quy hoạch tuyến tính để giải. Tuy nhiên, do
tính chất đặc thù riêng của nó, ngời ta xây dựng các phơng pháp giải riêng.
Thông thờng khi nói đến bài toán vận tải ta thờng liên hệ ngay đến bài toán
vận tải hai chỉ số, bởi đây là bài toán vận tải kinh điển có những phơng pháp giải
hay. Bên cạnh đó, ngời ta còn xét một số các bài toán vận tải mở rộng nh bài toán
vận tải ba chỉ số, bài toán vận tải khoảng, bài toán vận tải đa mục tiêu và rất nhiều


bài toán khác, đó là các biến thể của bài toán vận tải kinh điển trên.
Trong khuôn khổ khoá luận này, em xem xét và nghiên cứu một số bài toán
mở rộng trong lớp các bài toán vận tải mở rộng đó. Đó là các bài toán: Bài toán
vận tải ba chỉ số (solid transport problem) không hạn chế và có hạn chế khả năng
thông qua, Bài toán vận tải ba chỉ số khoảng (interval solid transport problem)
và giới thiệu một số Bài toán vận tải đa mục tiêu.

Trang: 1


Website: Email : Tel (: 0918.775.368

Cuèi cïng, em xin bày tỏ lòng biết ơn sâu sắc nhất đối với thày giáo hớng dẫn
Thạc sỹ Vũ Tiến Việt, ngời đà tận tình chỉ bảo, giúp đỡ em trong quá trình hoàn
thành khoá luận này. Em cũng xin chân thành cảm ơn sự giúp đỡ nhiệt tình của các
thầy cô trong khoa Toán - Tin, Học viện An ninh Nhân d©n.

Trang: 2


Website: Email : Tel (: 0918.775.368

Chơng I. Bài toán quy hoạch tuyến tính
Trong việc nghiên cứu các bài toán tối u nói chung, giải tích lồi giữ một vai
trò rất quan trọng. Nó đợc sử dụng làm cơ sở toán học trong việc xây dựng các
thuật toán.
Quy hoạch tuyến tính là một trong những lớp bài toán tối u đợc nghiên cứu
trọng vẹn cả về phơng diện lý thuyết lẫn thực hành, Bài toán vận tải là một dạng
đặc biệt của QHTT. Do đó chơng này nhằm giới thiệu một số khái niệm và kiến
thức cơ bản về giải tích lồi và QHTT.

1.1 Một số khái niệm về giải tích lồi
1.1.1 Không gian Euclude
Một vector n chiều trên trờng số thực là một bộ đợc sắp thứ tự gåm n sè thùc
x=(x1, x2, ..., xn). C¸c xi, i =1, ..., n gọi là các thành phần hay toạ độ của vector. Ví
dụ x=(4,5,10,20).
Hai vectơ x và y gọi lµ b»ng nhau x=y, nÕu xi=yi, i =1, ..., n.
XÐt hai phép toán trên các vector:
Phép cộng: x+y=(x1+y1, x2+y2, ..., xn+yn)
Phép nhân: x=(x1, x2, ..., xn), R
Khi đó tập hợp tất cả các vector n chiều trong đó xác định phép cộng các
vector, nhân một số thực với vector nh trên tạo thành không gian tuyến tính n chiều
trên trờng số thực R, ký hiệu Rn.
Các vector x(i) Rn, i =1, ..., m đợc gọi là độc lập tuyÕn tÝnh nÕu:
m

 x
i

(i )

 0   i 0, i 1, m

i 1

m

NÕu: x   i x (i ) víi Ýt nhÊt mét i  0 th× x gọi là tổ hợp tuyến tính của
i 1

m


các x , i =1, ..., m. Hơn nữa nếu i 0, i =1, ..., m và
(i)



i

1 thì x gọi là tổ hợp

i 1

lồi của các x(i), i =1, ..., m.
Trong Rn có n vector độc lập tuyến tính lập thành cơ sở của nó.
Giả sử e(1), e(2), ..., e(n) là một cơ sở của Rn thì bất kỳ một vector x Rn đều là
tổ hợp tuyến tính của các vector e(1), e(2), ..., e(n). Ta gäi tÝch v« híng cđa hai vector
x=(x1, x2, ..., xn) vµ y=(y1, y2, ..., yn), ký hiƯu, <x,y>, lµ mét sè b»ng.

Trang: 3


Website: Email : Tel (: 0918.775.368

n

 x, y xi y i
i 1

Tích vô hớng là một dạng song tuyến tính, đối xứng, không âm, tức là:
1. <x,y> = <y, x>. x,y  Rn

2. <x(1) + x(2), y >=< x(1), y >+< x(2), y>. x(1), x(2), y  Rn
3. <x,y> = <x,y>. x,y  Rn
4. <x,x>  0, x Rn dÊu b»ng xÈy ra khi vµ chØ khi x= 0.
Độ dài của vector x=(x1, x2, ..., xn) là một số xác định bởi.
x x, x

n

x

2
i

i 1

Khoảng cách giữa hai vector x và y là một số xác định bởi:
x, y  x  y   x  y , x  y  

n

x

i

 yi 

2

i 1


Kh«ng gian vector trong đó có tích vô hớng và khoảng cách nh trên gọi là
không gian Euclude.
1.1.2 Tập compact
DÃy {x(k) }Rn k=1, 2, ... đợc gọi là có giới hạn x(0) khi k   vµ viÕt
lim x(k) = x(0), nÕu
k





lim  x ( k ) , x ( 0 ) 0
k

Hình cầu tâm a bán kính là tập S=xRn :x-a . Hình cầu này tạo nên
- lân cận của điểm a, hay gọi là lân cận của a.
* Nếu tập ARn chứa cùng với điểm x một lân cận của nó thì x gọi là điểm
trong của A. NÕu trong l©n cËn bÊt kú cđa x  A có các điểm của A và các điểm
không thuộc A thì x gọi là điểm biên của tập hợp A.
* Một tập ARn gọi là giới nội nếu nó đợc chứa trong một hình cầu tâm O
nào đó, tức là tồn tại số đủ lớn sao cho với mọi xA,x . Mét d·y {x(k)} héi
tơ th× bao giê cịng giới nội.
* Một tập hợp GRn đợc gọi là mở nếu với mọi xG đều tồn tại một hình cầu
tâm x nằm gọn trong G. Một tập FRn đợc gọi là đóng nếu với mọi dÃy hội
x (k ) F
tơ{x(k)} F ta ®Ịu cã: klim


Mét tËp chøa mäi ®iĨm biên của nó là tập đóng.


Trang: 4


Website: Email : Tel (: 0918.775.368

* TËp C đợc gọi là tập Compact nếu từ mọi dÃy vô hạn {x (k)} thuộc C đều có
thể trích ra một d·y con {x(ki)} héi tơ tíi phÇn tư thc C. Tập C là Compact khi và
chỉ khi C đóng và giíi néi. TËp Compact M cđa tËp ®ãng C cịng ®ãng trong C. TËp
con ®ãng M cđa tËp Compact cịng Compact.
Hàm f(x) liên tục trên tập Compact C thì sẽ đạt cực trị trên tập ấy.
1.1.3 Tập lồi
Cho hai điểm a, b Rn. Ta gọi đờng thẳng qua a, b là tập điểm có dạng
xRn : x = a + (1-)b, R.
Đoạn thẳng nối hai điểm a, b là tập lồi các điểm có dạng
xRn :x = x + (1-)y, 0    1
* Mét tËp MRn đợc gọi là một đa tạp affine nếu với hai điểm bất kỳ
x, y M thì toàn bộ đờng thẳng ®i qua hai ®iĨm ®ã cịng thc M.
Tøc lµ x + (1-)y M : x,y M,  R.
* Mét siªu phẳng trong không gian Rn là tập hợp tất cả các điểm
x=(x1, x2, ..., xn) Rn thỏa mÃn phơng trình tuyÕn tÝnh
a1x1+ a2x2+ ... + anxn =  trong ®ã a1, a2, ..., an , R
* Tập hợp các điểm x=(x1, x2, ..., xn) Rn thoản mÃn bất phơng trình tuyến
tính a1x1+ a2x2+ ... + anxn đợc gọi là nửa không gian đóng.
* Nửa không gian đợc cho bởi a1x1+ a2x2+ ... + anxn < đợc gọi là nửa không
gian mở.
* Tập XRn đợc gọi là tËp låi nÕu cïng víi viƯc chøa hai ®iĨm x, y nó chứa cả
đoạn thẳng chứa hai điểm ấy, tức là chứa tất cả các điểm có dạng:
x + (1-)y, 0    1
VÝ dơ vỊ c¸c tËp låi: Không gian Euclide, các nửa không gian, mặt phẳng, nửa
mặt phẳng, hình chữ nhật, hình vuông, hình elip, hình hộp, hình cầu ...

* Một tập hợp là giao của một số hữu hạn các nửa không gian đóng đợc gọi là
tập lồi đa diện.
Mệnh đề: Giao của hai tập lồi là một tập lồi.
Hệ quả 1. Giao của một số bất kỳ tập hợp lồi là tập lồi.
Hệ quả 2. Miền chứa nghiệm của một hệ bất phơng trình tuyến tính dạng.
là một tập lồi (đa diện lồi). Một tập lồi đa diện giới nội gọi là một đa diện.

a1 1 x1


 a 2 1 x1

.
.
.
.
.


a
x


n1
1

a1 2
x 2
a 22
x 2

.
a

.
n

2

.
x

.
2

 . .. 
a1n
x n
 ... 
a 2 n
x n
.
.
.
.
.
.
 . ..
a nn

.

x n

b
1
b2
.
.
.
bn

Giao của tất cả các tập låi chøa tËp X gäi lµ bao låi cđa nã, ký hiệu [X]
1.1.4 Hàm lồi
* Một hàm số f(x) xác định trên tập lồi C Rn đợc gọi là hàm lồi trên C, nếu
với mọi x, y C và 0    1 ta cã f(x + (1-)y)  f(x) + (1-)f(y).
Trang: 5

.
.


Website: Email : Tel (: 0918.775.368

* Hµm f(x) đợc gọi là hàm lồi chặt nếu với mọi x, y C vµ 0    1 ta cã.
f(x + (1-)y) f(x) + (1-)f(y).
* Hàm f(x) đợc gọi là hàm lõm (lõm chặt) nếu - f(x) là hàm lồi (lồi chặt)
* Hàm f(x) xác định trên C đạt cực tiểu tuyệt đối tại x* C nếu
f(x*) f(x): xC
* Hàm f(x) đạt cực tiểu địa phơng tại x* C nếu tồn tại lân cận mở U của x*
sao cho f(x*)  f(x): xC U
MƯnh ®Ị 1: BÊt kỳ điểm cực tiểu địa phơng nào của hàm lồi trên tập lồi cũng

là điểm cực tiểu tuyệt đối.
Hệ quả: Bất kỳ điểm cực đại địa phơng nào của hàm lõm cũng là cực đại tuyệt
đối.
Mệnh đề 2: Cực đại của một hàm lồi (nếu có) trên một tập lồi có điểm cực
biên bao giờ cũng đạt tại một điểm cực biên.
1.2 Bài toán Quy hoạch tuyến tính
QHTT bắt nguồn từ những nghiên cứu của nhà toán học Nga nổi tiếng, Viện
sỹ L.V. Kantorovich trong một loạt các công trình về bài toán kế hoạch hoá sản
xuất, công bố năm 1938. Năm 1947 nhà toán học Mỹ G.B. Dantzig đà nghiên cứu
và đề xuất phơng pháp đơn hình (Simplex method) để giải bài toán QHTT. Năm
1952 phơng pháp đơn hình đà đợc chạy trên máy tính điện tử của Mỹ.
1.2.1 Bài toán quy hoạch tuyến tính
Bài toán tổng quát.
Để nhất quán lập luận ta xét bài toán tìm cực đại, sau đó ta xét cách chuyển
bài toán tìm cực tiểu sang tìm cực đại. Bài toán tổng quát của QHTT có dạng:
Ký hiệu: A=(aij)mxn là ma trận với các phÇn tư aij
n

1.1

 c x  max
j j

j 1

n

 a x  , ,  b , i 1,..., m
ij j


1.2

i

j 1

1.3
(1.1) gọi là hàm mục tiêu, (1.2) là các rằng buộc.
Nếu gặp bài toán Min, tức là
x j 0, j 1,..., n

n

f  x   c j x j min
j 1

D
Thì giữ nguyên ràng buộcxvà
đa về bài to¸n Max b»ng c¸ch
n

f  x    c j x j  max
j 1

xD

Trang: 6


Website: Email : Tel (: 0918.775.368


Nếu bài toán Max có phơng án tối u là x* thì bài toán min cũng có phơng án
là x* và fmin=-fmax
Thật vậy, vì x* là phơng
án tối
u của bài toán Max nên ta cã:
n
n
f

max

  c j x *j   c j x j ,
j 1

x  D

hay

j 1

n

n

c
j 1

*
j x j  c j x j ,


x  D

j 1

Chøng tỏ x* là phơng án tối u của bài toán Min vµ
n

f min  c j x *j  f

max

j 1

Dạng chuẩn và dạng chính tắc.
Ngời ta thờng xét bài toán quy hoạch tuyến tính dới hai dạng sau:
-Dạng chuÈn:
n

c

j

x j  max

j 1

n

a


x j bi ,

ij

i 1,..., m

j 1

x j 0,

j 1,..., n

-Dạng chính tắc:
n

c

j

x j max

j 1

n

a

ij


x j bi , i 1,...m

j 1

x j 0, j 1,..., n

Đa bài toán QHTT về dạng chuẩn hoặc dạng chính tắc.
Bất kỳ QHTT nào cũng có thể đa về một trong hai dạng chuẩn hoặc chính tắc
nhờ các phép biến đổi tuyến tính sau:
i) Một ràng buộc
n

a

ij

x j bi

j 1

Có thể đa về ràng buộc
lại



n
j 1






n
j 1

a ij x j bằng
bi

cách nhân hai vế với (-1) và viết

a ' ij x j b' i .

ii) Mét rµng buéc đẳng thức
n

a

ij

x j bi

j 1

có thể thay bằng hai ràng buộc bất đẳng thức:
n

aij x j bi ,
j 1

n




a

ij

x j  bi

j 1

Trang: 7


Website: Email : Tel (: 0918.775.368

iii) Mét biÕn xj không bị ràng buộc dấu có thể thay thế bởi hiệu của hai biến
không âm bằng cách đặt:
iv) Một ràng buộc bất đẳng thức
n

a

ij

x j bi

j 1

x j x j  x j , víi x j 0, x j 0


Có thể đa về ràng buộc đẳng thức bằng cách đa vào biến phụ yi 0:
n

a

ij

x j y i bi

j 1

Về nguyên tắc, áp dụng nhiều lần các phép biến đổi (i), (ii) và (iii) ta có thể đa
một bài toán QHTT bất kỳ về dạng chuẩn, sau đó áp dụng nhiều lần phép biến đổi
(iv) ta sẽ đa nó về dạng chính tắc.
Giải bài toán QHTT bằng phơng pháp hình học.
Xét bài toán QHTT dới d¹ng chn víi hai biÕn sè:
c1 x1  c 2 x 2  max
a i1 x1  a i1 x 2 bi ,
D 
j 1,2
 x j 0,

i 1,..., m

Tõ ý nghĩa hình học ta biết rằng mỗi bất phơng trình tuyến tính ai1x1+ai2x2 bi xác
định một nửa mặt phẳng.
Nh vậy miền ràng buộc D đợc xác định nh là giao của một nửa mặt phẳng và
sẽ là một đa giác lồi trên mặt phẳng. Phơng trình c1x1+c2x2= khi thay đổi sẽ xác
định trên mặt phẳng các đờng thẳng song song với nhau mà ta sẽ gọi là các đờng

mức (với giá trị mức ). Mỗi điểm
D sẽ nằm trên một đờng mức với
x x1 , x2
mức
Bài toán đặt
thể phát biểu theo ngôn ngữ hình học nh sau: trong số các đ ra
ccó
1 x1 c2 x2 .
ờng mức cắt tập D, hÃy tìm đờng mức với gía trị lớn nhất.
Nếu dịch chuyển song song các ®êng møc theo híng vector ph¸p tun cđa
chóng n  c , c thì giá trị mức sẽ tăng, nếu dịch chuyển theo hớng ngợc lại thì giá
trị mức sẽ giảm. Vì vậy để giải bài toán đặt ra, ta có thể tiến hành nh sau.
Bắt đầu từ một đờng mức cắt D, ta dịch chuyển song song các ®êng møc theo
híng vector ph¸p tun (c1,c2) cho ®Õn khi việc dịch chuyển tiếp theo làm cho đờng
mức không còn cắt D nữa thì dừng. Điểm của D (có thể nhiều điểm) nằm trên đờng
mức cuối cùng này sẽ là lời giải tối u cần tìm, còn giá trị của hàm mục tiêu tại đó
chính là giá trị tối u của bài toán.
Ví dụ: Xét bài toán:
1

2

f(x)= 4x1+5x2max
8
2 x1  x 2

7
 x1  2 x 2

x2

3

x1

0,

Trang: 8
x2

0


Website: Email : Tel (: 0918.775.368

XÐt ®êng møc: 4x1+5x2=10. Đờng mức này đi qua hai điểm (0,2) và (2.5,0).
Ta có x*=(3,2), fmax=22

y

và x* là một đỉnh của D. Qua phơng pháp hình học ta thấy rằng:
n
- Nếu quy hoạch tuyến
tính có phơng án tối u thì có ít nhất một đỉnh là tối u.
Sở dĩ nói ít nhất vì có trờng hợp đờng mức ở vị trí giới hạn trùng với một cạnh của
*
D thì tất cả các điểm trên cạnh này là xphơng
án tối u, trong đó có hai đỉnh.
- Nếu miền ràng buộc D giới nội và khác rỗng thì chắcx chắn có phơng án tối u.
- Nếu miền ràng buộc không giới nội nhng hàm mục tiêu bị chặn trên ở trên
miền ràng buộc thì cũng chắc chắn có phơng án tối u.

1.2.2 Một số tính chất chung
Mệnh đề 1: Tập hợp tất cả các phơng án của một bài toán QHTT là tập lồi.
Tập lồi D các phơng án của một bài toán QHTT xác định bởi toàn bộ các ràng
buộc (1.2) và (1.3). Tập D có thể là rỗng, hoặc là một đa diện lồi hoặc là một tập
lồi đa diện không giới nội.
Nếu D là một đa diện lồi thì bài toán có phơng án, hơn nữa giá trị tối u của
hàm mục tiêu trên đa diện lồi là hữu hạn và việc tìm phơng án tối u đa đến việc
chọn các ®iĨm cđa ®a diƯn D cã sè ®Ønh (®iĨm cùc biên hay phơng án cực biên)
hữu hạn.
Mệnh đề 2: Hàm mục tiêu của bài toán QHTT sẽ đạt Max tại điểm cực biên
của tập D. Nếu hàm mục tiêu không chỉ nhận Max tại một điểm cực biên của tập
lồi D mà tại nhiều điểm cực biên thì nó sẽ đạt giá trị cực đại tại những điểm là tổ
hợp lồi của các điểm đó.
Ký hiệu Aj, j=1, ..., n là các vector cột của ma trận A.
Khi ấy hệ rµng bc Ax =b cã thĨ viÕt:
x1A1 + x2A2 + ... + xnAn = b
(1.4)
Mệnh đề 3: Nếu các vector A1, A2, ..., Ak là độc lập tuyến tính và thoả mÃn
x1A1+x2A2+...+xnAn=b
trong đó xj 0, j=1,...k thì điểm
x=(x1,x2,...,xk,0,...,0)
Trang: 9


Website: Email : Tel (: 0918.775.368

là điểm cực biên của tập lồi đa diện D.
Mệnh đề 4: Nếu x =(x1,x2,...,xn) là điểm cực biên của tập lồi đa diện D thì các
vector Aj trong biểu diễn (1.4) ứng với các thành phần x j 0 lập thành hệ độc lập
tuyến tính. Vì ma trận A có m dòng nên từ đây suy ra rằng điểm cực biên không có

quá m thành phần dơng.
Các mệnh đề 3 và mệnh đề 4 có thể gộp lại thành một mệnh đề sau:
Mệnh đề 5: Để x =(x1,x2...,xn) là phơng án cực biên của QHTT dới dạng chính
tắc thì cần và đủ là các vector cột Aj của ma trận A ứng với các thành phần x j 0
là độc lập tuyến tính.
1.2.3 Phơng pháp đơn hình giải bài toán QHTT
Cơ sở của phơng pháp này đơc G.B. Dantzig công bố năm 1947 có tên gọi là
phơng pháp đơn hình. Sở dĩ có tên gọi nh vậy là vì những bài toán đầu tiên đợc giải
bằng phơng pháp đó có các ràng buộc dạng:
n

1.5ràng

x j 1, các
x j 0,điểm
j 1,..., nxRn thoả mÃn các
Mà tậphợp
buộc trên là một đơn hình trong
j 1
không gian n chiều.
Đờng lối chung và cơ sở của thuật toán.
i) Đờng lối chung.
Phơng pháp đơn hình dựa trên hai nhận xét sau: nếu bài toán QHTT có phơng
án tối u, đa diện lồi D có một số hữu hạn đỉnh. Nh vậy phải tồn tại thuật toán hữu
hạn. Thuật toán gồm hai giai đoạn:
- Giai đoạn 1: Tìm một phơng án cực biên (một đỉnh).
- Giai đoạn 2: Kiểm tra điều kiện tối u đối phơng án tìm đợc ở giai đoạn 1.
Nếu điểu kiện tối u đợc thoả mÃn thì phơng án đó là tối u. Nếu không, ta chuyển
sang phơng án cực biên mới sao cho cải tiến giá trị hàm mục tiêu. Tiếp theo lại
kiểm tra điều kiện tối u đối với phơng ¸n míi.

Ngêi ta thùc hiƯn mét d·y c¸c thđ tơc nh vậy cho đến khi nhận đợc phơng án
tối u, hoặc đến tình huống bài toán không có phơng án tối u.
ii) Cơ sở của thuật toán.
Xét bài toán QHTT dới dạng chính tắc:
c, x max
Ax = b

(1.6)
(1.7)

x0
(1.8)
Trong đó A là ma trận kích thớc mxn và giả sử rằng hạng của ma trận A là m
(điều này không làm mất tính tổng quát). x là một vector.

Trang: 10


Website: Email : Tel (: 0918.775.368

Gi¶ sư x là một phơng án cực biên nào đó. Ta ký hiệu:
J* = {j xj 0}

(1.9)

Vì các vector Aj, jJ* là độc lập tuyến tính nên J* m (J* là số số phần
tử
xj >0).
* Phơng án cực biên x đợc gọi là không thoái hoá nếu J* = m, tho¸i ho¸ nÕu
J*  m.

Ta chän mét hƯ thèng m vector ®éc lËp tuyÕn tÝnh {A j, j  J}sao cho J J*.
Hệ thống đó gọi là cơ sở của x, các vector {Aj, j J} và các biến {xj, j J} đợc gọi
là các vector và các biến cơ sở tơng ứng. Các vector và các biến Aj, xj, j J gọi là
các vector và các biến phi cơ sở tơng ứng.
Nếu x không thoái hoá thì tồn tại một cơ sở duy nhất, đó là J=J*.
Mỗi vector Ak phi cơ sở có thế biểu diễn dới dạng tổ hợp tuyến tính của các
vector cơ sở:
Ak z jk A j
1.10
Trong đó các hệ số zjkjJ đợc xác định duy nhất bởi việc giải hệ phơng trình:

z

1.11

a aik , i 1, m

jk ij

jJ

Bài toán QHTT đợc gọi là không thoái hoá nếu tất cả các phơng án cực biên
của nó đều không thoái hoá.
Giả sử bài toán không thoái hoá và ta đà tìm đợc một phơng án cực biên
x=(x1, x2,...xm, 0,...0) và cơ sở của nó A1,, A2,...Am.
Đối với phơng án cực biên này ta cã:
m

 x A b,
j


j

1.12

x j  0, j 1,...., m

j 1

với giá trị của hàm mục tiêu:
m

c x z
j j

0

j 1
Ta tính các mđại
lợng sau:

z c Z
jk j

k

1.13
1.14

j 1


KÝ hiÖu:
m

 k Z k  ck  z jk c j ck

1.15

j 1

Định lý 1.1: (Tiêu chuẩn tối u). Nếu đối với phơng án cực biên
x=(x1,x2,...,xm,0...0) các ®iỊu kiƯn sau ®ỵc tháa m·n
 k 0, k 1, 2,....., n

1.16

thì x* là phơng án tối u.

Trang: 11


Website: Email : Tel (: 0918.775.368

Chó ý:
 Trong (1.10) nếu Aj là một vector cơ sở, khi đó tồn tại chỉ một hệ số zjj=1, tất
cả các hệ số khác đều bằng 0 và ta có:
j c j  c j 0, j  J
1.17
vµ trong thùc hành để kiểm tra điều kiện tối u của phơng pháp cực biên x ta
chỉ cần kiểm tra

k 0, kJ
1.18
 Ngêi ta cã thĨ chøng minh r»ng nÕu bµi toán không thoái hoá thì (1.16) cũng
là điều kiện cần của tối u.
Định lý 1.2: Nếu tồn tại một chỉ sè k sao cho k  0 th× ngêi ta có thể tìm đợc
ít nhất một phơng án x mà đối với nó Z Z0.
Công thức tìm phơng án x:
Nhân (1.10) với nào đó ta có:
Lấy (1.12) trừ ®i (1.19) tõng vÕ ta cã:
m

 z A  A
jk j

(1.19)

k

j 1

NÕu c¸c hƯ sè cđa c¸c vector Aj, j=1,.....,m và Ak trong (1.20) không âm, khi
m

x  z A  A b
j

jk j

(1.20)


k

j 1

Z ' Z 0 k

(1.21)

đó ta có một phơng án mới x mà đối với nó hàm mục tiêu f có giá trị
Trong (1.12) tất cả các biến xj, j=1,...,m đều dơng. Vì vậy có thể tìm đợc
0 sao cho
x' j x:j xj  z zjkjk 00, , j 
m m
22)
x' j :
j 1,.....,
1,.....,
(31..29



Nếu đối với chỉ số k mà k 0, tồn tại zjk 0, jJ thì giá trị lớn nhất còn
thoả mÃn (1.22) có thể xác ®Þnh bëi hƯ thøc :
 x j
 x
 0 min z jk  0  r
jJ z
 jk
 z rk


NÕu ta thay trong (1.20) và (1.21) bởi o thì thành phần thứ r sẽ bằng 0:
xr- ozrk=0.
Nh vậy ta nhận đợc phơng án mới x với cơ sở Aj, jJ\ {r}{k}=J.
Nếu zjk 0, j J thì tất cả các thành phần x j- zjk trong (1.22) sẽ không âm
0, nghĩa là ta luôn có phơng án 0, nhng từ (1.21) ta dễ thấy giá trị hàm
mục tiêu tiến tới + khi tiến tới +.
Trong thực hành Dantzig đà chứng minh rằng các bớc lặp sẽ giảm đáng kể nếu
ta thay vector As thoả mÃn:
s min  k  k  0
k

1.24
Trang: 12

1.23


Website: Email : Tel (: 0918.775.368

và khi đó vector Ar đợc xác định theo công thức:
Ta có phơng án cực biên mới x mà các thành phần của nã cã d¹ng:


nÕu j  r
1.26 
 x j
 xr
 s min
z js  0, j  J  
1.25

x'

j

x j


x
r




xr

/ z rs

z

js

,

/ z rs ,

 z js

 z rs

nÕu j=r

và cơ sở của nó là
A j , j J '  J \  r   s

1.27

Trªn cơ sở lý thuyết đà nhận đợc, ta chuyển sang xét thuật toán đơn hình.
Thuật toán đơn hình
Giả sử ta đà đa QHTT về dạng chính tắc:
cx=Z max
Ax=b
x0
Bớc 1: Xây dựng bảng đơn hình xuất phát. Tìm một phơng án cực biên xuất
phát x và cơ sở của nó Aj, jJ.
Xác định các số zjk bởi hệ phơng trình:

z A A
jk j

k

jJ



Đối với mỗi k J , tính các ớc lợng:
k z jk c j ck
jJ

Còn với jJ thì j = 0.
Tính giá trị hàm mục tiêu

Z 0 c j x j
j J

Bíc 2: KiĨm tra tèi u.
NÕu k  0, k J thì x là phơng án tối u, dừng thuật toán. Trái lại, chuyển
sang bớc 3.
Bớc 3: Tìm vector đa vào cơ sở. Có hai khả năng xảy ra:
Tồn tại kJ sao cho k 0 và zjk 0, jJ thì bài toán QHTT không
có lời giải tối u (Z không bị chặn trên). Dừng thuật toán.
Đối với mỗi kJ sao cho k 0 đều tồn tại j J: zjk 0. Khi đó chọn
chỉ số s theo tiªu chuÈn:
 s min  k  k  0

Trang: 13


Website: Email : Tel (: 0918.775.368

§a vector As vào cơ sở.
Bớc 4: Tìm vector loại khỏi cơ sở. Xác định
xj
x
s min z js 0 r
zrs
zrs

Và đa vector Ar ra khỏi cơ sở.
Bớc 5: Chuyển sang phơng án cực biên mới và cơ sở mới. Cơ sở mới là {A j,j
J} với J= J\{r} z{s}. Phơng án cực biên mới x đợc tính theo (1.26), khai
triển của các véc tơ Ak theo các cơ sở mới đợc tính theo công thức (1.28). Quay

lên bớc 2.
Chú ý. Đối với bài toán min c, x Ax b, x 0
thì tiêu chuẩn tối u là
k 0 (k) và vector As đợc chọn đa vào cơ sở theo công thức:
Công thức đổi cơ sở và bảng đơn hình.
s max k k 0, k J

Ta xét các công thức chuyển từ phơng án cực biên x với cơ sở J sang phơng án
cực biên x với cơ sở J.
Ta đà có công thức (1.26) để tính các thành phần của x. Bây giờ ta thiết lập
công thức tính c¸c sè z’jk. Ta cã:
As  z js A j 
jJ

1
Ar   As 
z rs 



 z A 
js j



jJ , j r

Mặt khác
Ak z jk A j 
jJ ,


z

jk

A j  z rk Ar

jJ , j r

Thay biểu thức của Ar vào ta đợc:
Ak

z

jJ , i r

jk

Aj 

z rk
z rs


 As 



z


js

jJ , j r



z 
z
A j     z jk  rk  A j  rk As


z js 
z rs
 jJ , j r

Đây là công thức biểu diễn Ak qua c¬ së míi J’ =J\{r}s. Bëi vËy ta cã:
nÕu jr

 z jk   z rk / z rs  z js ,

z ' jk 
z / z ,
rs
 rk

1.28,

nÕu j=r
' k   z ' jk c j  c k


1.29

Sau khi cã z’jk ta tÝnh:
§Ĩ dƠ tÝnh toán, trong mỗi bớc lặp ta thiết lập bảng đơn hình (xem bảng 1.1).
jJ '

Trang: 14


Website: Email : Tel (: 0918.775.368

NÕu tÊt c¶ các số trong dòng cuối (trừ hàm mục tiêu f) đều không âm, nghĩa là
k0 k, khi đó x là phơng án tối u.
Bảng 1.1
cj Cơ Ph c1 ... cj ... cr ... cm... ck... cs ... cn
c1 .
..
cj .
..
cr .
..
cm



¸n

A1
...
Aj

...
Ar.
..
Am

x1 .
..
xj .
..
xr .
..
xm

z1k . z1s
...
1 . 0 . 0 . 0 . ..
zjk . zjs .
..
..
..
..
..
0 . 1 . 0 . 0 . ..
zrk . zrs.
..
..
..
..
..
0 . 0 . 1 . 0 . ..

zmk zms
..
..
..
..
0
0
0
1

f

0... 0... 0...

Aa... Aj... Ar... Am...Ak... As... An

z1n
...
zjn .
..
zrn.
..
zmn

0 ... k ... s... n

NÕu dßng cuối (không kể f ) có những số âm thì xem thử có cột nào cắt dòng
cuối ở một số âm mà mọi số trong cột đó đều âm hay không. Nếu có cột nào nh thế
thì bài toán không có phơng án tối u. Nếu trái lại thì chọn cét sao cho
 min 


  0

s
k
k
Råi chän ( trong số các
dòng cắt
cột
s ở những số dơng ) dòng r sao cho:

r 



xr
 xj

 min 
z js  0
z rs


 z js


Cột s gọi là cột quay. Vector Ar đợc đa vào cơ sở. Dòng r gọi là dòng quay.
Vector Ar bị đa ra khỏi cơ sở.
Phần tử zrs > 0 là giao của cột quay và dòng quay gọi là phần tử chính của
phép quay. Các phần tử zjs, j r gọi là phần tử quay.

Các công thức (1.26), (1.29) gọi là các công thức đổi cơ sở. Bảng đơn hình
mới suy đợc từ bảng cũ bằng cách thay cr, Ar trong dßng quay b»ng cs, As. Sau đó
thực hiện các phép biến đổi dới đây:
i) Chia mỗi phần tử ở dòng quay cho phần tử chính đợc số 1 ở vị trí của z rs cũ.
Kết quả thu đợc là dòng chính.
ii) Lấy mỗi dòng khác trừ đi tích của dòng chính nhân với phần tử quay tơng
ứng đợc số 0 ở mọi vị trí còn lại của cột quay.
Dòng mới = dòng cũ tơng ứng - dòng chính x phần tử quay
Lu ý rằng sau phép quay thì ở vị trí s ta thu đợc số 0 vì lúc này A s trở thành
vector đơn vị cơ sở, nghĩa là ta đà làm mất số âm nhỏ nhất ở dòng cuối của bảng
cũ.

Trang: 15


Website: Email : Tel (: 0918.775.368

Toµn thĨ phÐp biến đổi trên gọi là phép quay xung quanh phần tư chÝnh z rs.
Sau khi thùc hiƯn phÐp quay ta có một phơng án mới và một cơ sở mới. Nếu cha đạt
yêu cầ nghĩa là còn k <1 thì ta lại tiếp tục quá trình.
Chú ý: Trong bảng đơn hình ở bảng 1.1, không giảm tổng quát ta coi các
vector cơ sở đợc đánh số A1, A2, ..., Am, nghĩa là J = {1,2, ..., m}.

Chơng 2. Bài toán vận tải và bài toán vận tải mở rộng
2.1 Bài toán vận tải hai chỉ số
2.1.1 Phát biểu bài toán và tính chất
Có m địa điểm A1, A2, ..., An cùng sản xuất một loại hàng hóa với các lợng
hàng tơng ứng là a1, a2, ..., an.
Có n nơi tiêu thụ loại hàng hóa đó B 1, B2, ..., Bn với các yêu cầu tơng ứng là b1,
b2, ..., bn.

Để đơn giản ta sẽ gọi
Ai là điểm phát i, i=1, ..., m
Bj là điểm thu j, j=1, ..., n
Trang: 16


Website: Email : Tel (: 0918.775.368

Hµng cã thĨ chở từ một điểm phát bất kỳ (i) đến một ®iĨm thu bÊt kú (j)
Ký hiƯu:
cij - chi phÝ chuyªn chở một đơn vị hàng từ điểm phát (i) đến điểm thu (j).
xij - lợng hàng chuyên chở từ (i) đến (j).
Bài toán đặt ra là: xác định những đại lợng xij cho mọi con đờng (i,j) sao cho
tổng chi phí chuyên chở là nhỏ nhất với giả thiết là:
Tức là lợng hàng phát ra bằng đúng lợng hàng yêu cầu ở các điểm thu (điều
kiện cân bằng thu phát).
Dạng toán học của BTVT là:
m n

c x min

(2.1)

ij ij

i1 j 1

n

a i

,
i 
1
,
m
 x ij
1
 j
m

b j
,
j 
1
,
n
 x ij

1
 i
x

0, i 
1
,
m ;
j 
1,
n
ij


m
n

a
,
b

0
;
a

b j

i
j

i


i 
1
j 
1


( 2.2)
( 2.3)
( 2.4)
(I )


HÖ r»ng buéc (2.2), (2.3) cã m + n phơng trình, m x n ẩn, tuy nhiên do (I) nên
bất kỳ phơng trình nào trong m + n phơng trình cũng là hệ quả của các phơng trình
còn lại và có thể bỏ đi. Thật vậy, hệ rằng buộc có thể viết dạng (2.5).
Giả sử ta cộng các phơng trình từ thứ (m+1) tới thứ (m+n) rồi trừ đi tổng các
phơng trình từ thứ (2) tới thứ (m) thì ta đợc phơng trình thứ (1). Do đó số phơng
trình cực đại của hệ (2.2), (2.3) không quá m + n-1.
Ký hiƯu ma trËn cđa hƯ (2.5) lµ A.
















x

1 1




x

1
2

 .

.

. 

x

1n

x
.

.

.

.

2
1



x


2 2

 .

.

. 

x

2 n



1 1

x

1
2

x

2
1



.


x


.

.

.

x

.

1n

 a1

(
1
)

a

2

( 2)

a


m

( m)

.

x
x

m1

x

.

.





x

m

2

 .

.


. 

x

mn

m1



2 2

x

m

2

b
1

(m

 1
)

b2

(m




2)

bn

(m



n)

.


x



2 n

x

mn

X = (x11, x12, ..., xij, ..., xmn) - Vector cột mxn thành phần.
C = (c11, c12, ..., cij, ..., cmn) - Vector hµng mxn thành phần.
P = (a1, a2, ..., am, b1, b2, ..., bn) - Vector cột vế phải.
Ta đa BTVT về d¹ng.

 min  C , X

 AX P

 X 0

( 2.6)
( 2.7 )



( 2.8)

Ta gäi Pij lµ cét cđa ma trËn A øng víi biÕn x ij. Vector nµy cã 2 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.
Định nghĩa 1: Vector X thỏa mÃn (2.7), (2.8) đợc gọi là một phơng án của
BTVT.
Một phơng án đạt cực tiểu (2.6) gọi là phơng án tối u.
Một phơng án X gọi là phơng án cơ sở nếu vector cột Pij của ma trận A tơng
ứng với các xij > 0 là độc lập tuyến tính.
Định lý 2.1: BTVT luôn có phơng ¸n tèi u.
Chøng minh:
Trang: 17

( 2.5)


Website: Email : Tel (: 0918.775.368

1) Tríc hÕt ta chứng minh BTVT luôn có phơng án.

2) Sau đó chứng minh rằng miền rằng buộc giới nội.
a) Đặt :
m

n

i 1

j 1

S  ai  b j  0

Ta thÊy:
xij 

ai b j
S

, i 1, m ; j 1, n
n

n

n

 xij  
j 1

j 1


ai b j
S

ai  b j


j 1

S

ai , i 1, m

m
m

m

 xij  
i 1

i 1

ai b j
S

b j  ai


i 1


S

b j , j 1, n

Lập thành một phơng án, vì rằng xij 0
b) Vì các hệ số trong (2.2), (2.3) và các đại lợng ai, bj không âm và hữu hạn
nên mọi xij đều bị chặn trên. Thực vậy xij không thể lớn hơn các số tơng ứng ai, bj.
Vì vậy miền rằng buộc là khác rỗng và giới nội (đa diện lồi). Đa diện này có 1
số hữu hạn đỉnh. Theo thuật toán đơn hình, xuất phát từ một phơng án cực biên, sau
một số hữu hạn bớc ta phải đi tới một phơng án cực biên tối u.
Định nghĩa 2:
- Một « (i,j) mµ xij gäi lµ « sư dơng.
- TËp các ô sau đợc gọi là một dây truyền trong T
(i1,j1), (i1,j2), (i2,j2), (i2,j3), ..., (is,js+1)
(2.9)
hc: (i1,j1), (i2,j1), (i2,j2), (i3,j2), ..., (is+1,js)
(2.10)
Mỗi cặp ô liền nhau trong dây truyền đợc xếp trong một hàng hoặc trong một
cột.
Dây truyền đợc gọi là kín hay là một chu trình nếu: js+1 = j1 hoặc is+1 = i1
Gọi G là tập hợp các « sư dơng:
G = {(i,j) | xij > 0 } G m+n-1
- Một phơng án X của BTVT đà cho đợc gọi là không thoái hóa nếu
G = m+n-1
Ngợc lại là thoái hóa nếu G m+n-1
- Nếu một tập hợp con thực sự của G lập thành chu trình thì ta có một chu
trình con của G.
Định lý 2.2: Hệ thống vector Pij của BTVT là độc lập tuyến tính khi và chỉ khi
các ô tơng ứng với các vector của hệ thống không tạo thành chu trình.
Trang: 18



Website: Email : Tel (: 0918.775.368

Chøng minh: CÇn. Ký hiÖu Pij = { Pij  (i,j)  G}. Giả sử Pij là hệ độc lập tuyến
tính, ta phải chứng minh G không lập thành chu trình.
Bằng phản chứng, nếu có một chu trình tạo nên bởi các ô tơng ứng với một số
vector của hệ Pij thì nó cã d¹ng:
(i1,j1), (i1,j2), (i2,j2), (i2,j3), ..., (is,js+1) víi js+1 = js
khi đó rõ ràng:
Pi1,j1 - Pi1j2 + Pi2j2 - ... - Pisjs - Pisj1 = 0
tøc lµ hƯ Pij phơ thuộc tuyến tính, mâu thuẫn với giả thiết.
Đủ: Giả sử G không lập thành chu trình. Ta phải chứng minh hệ P ij là độc lập
tuyến tính.
Bằng phản chứng, giả sử hệ Pij là phụ thuộc tuyến tính. Mỗi vector Pij cã d¹ng:
(1, ..., i, ..., m, m+1, ..., m+j, ..., m+n)
với thành phần i = m+j = 1 còn các tọa độ khác bằng 0.
Nếu hệ Pij phụ thuộc tuyến tính, tức là có một tổ hợp tuyến tính của các vector
Pij bằng 0. Điều đó có nghĩa là trong thành phần của tổ hợp này ngoài vector dạng
Pi1j1, phải có các vector Pi1jk và vector Piej1. Nhng điều đó chứng tỏ rằng các ô {(i,j)}
tơng ứng với hệ thống Pij lập thành chu trình.
Điều này trái với giả thiết. Vậy hệ Pij là độc lập tuyến tính.
Hệ quả: Vector X là phơng án cực biên khi và chỉ khi tập các ô sử dụng tơng
ứng không lập thành chu trình.
Chứng minh: Coi BTVT là một QHTT thì X là phơng án cực biên khi và chỉ
khi các vector Pij ứng với xij > 0 là độc lập tuyến tính, theo định lý 2.2 thì điều đó
xẩy ra khi và chỉ khi tập các ô sử dụng tơng ứng không lập thành chu trình.
Định lý 2.3: Giả sử X là một phơng án của BTVT và tập G của nó lập thành
chu trình, thế thì bao giờ cũng có thể điều chỉnh đợc X để chuyển sang một phơng
án mới X không xấu hơn mà tập G không lập thành chu trình.

Chứng minh:
Giả sử K là một chu trình nào đó của G ta phân ra trong K tập các ô chẵn K +
và tập các ô lẻ K- (xen kẽ nhau). Không giảm tổng quát có thể coi:

c  c
ij

(i , j ) 

K



(i , j )

K

(2.11)

ij
_

(nÕu kh«ng ta quy ớc lại các ô chẵn và lẻ trên K)
Ký hiƯu:  = min{xij(i,j)  K- }
Ta chun X  X’ nh sau:
 x ij   , (i , j )  K


x ij  x ij   , (i , j )  K


x
, (i , j )  K

 ij

(2.12)



( 2.13)



Trang: 19

x '

0 ,
 (i ,
j)
ij

n


'

ai
, i


1
,
m
 x i j
j 
1

m

'
 x i

b j
,
j

1
,
n
j

 i
1


Website: Email : Tel (: 0918.775.368

Râ rµng X’ vẫn còn là phơng án của BTVT vì rằng:
Vì mỗi hàng hay cột chỉ chứa 2 ô sử dụng nên và (-) triệt tiêu nhau.
Hàm mục tiêu không tăng vì

Do phép biến đổi (2.13) và xác định bởi (2.12), sÏ cã mét « thc K- tríc
 C , X '    cij xij'    cij xij  (
i

j

i

j

c
( i , j )

K

ij





c
( i , j )

K

ij

xij' ) (C , X )




đây xij > 0 bây giờ xij = 0. Ta loại ô đó ra khỏi G do đó khỏi K và phá đợc chu
trình K. Nếu còn chu trình nào khác ta lại phá bằng cách tơng tự. Vì vậy ta luôn có
thể giả thiết rằng phơng án đang xét có các ô sử dụng không lập thành chu trình.
Hệ quả: Mọi phơng án X đều có thể chuyển về phơng án cức biên X không
xấu hơn X.
2.1.2 Cách tìm phơng án xuất phát
Phơng pháp góc tây bắc.
Lập bảng T, ta ghi số liệu vào bảng đó, luôn xuất phát từ ô ở góc trên, bên trái.
bj

b1

ai

a1

...

bj

...

bn

xịj

...
ai

...
am
Ta bắt đầu phân phối vào ô (1,1) lợng hàng:
x11 = min(a1, b1)
- Nếu x11 = a1 thì ta xóa hàng 1. Lập bảng mới có b 1 = b1 - x11. Tiếp tục quá
trình, bắt đầu từ ô (2,1).
- Nếu x11 = b1 thì ta xãa cét 1. LËp b¶ng míi cã a’1 = a1 - x11. Tiếp tục quá
trình, bắt đầu từ ô (1,2).
Một lần phân phối nh vậy ta đợc một tải lợng xij > 0 và bỏ bớt đi đợc một hàng
(hoặc cột) của bảng T. Bảng mới cuối cùng chỉ còn lại một ô (m, n) và do cân bằng
thu phát nên cực tiể đạt cả ở hàng, cả ở cột sau khi phân phối lợng còn lại. Do đó ta
xóa cả cột n và hàng m đi. Tổng số hàng và cột là m + n mỗi lần phân phối bỏ đi đợc 1 hàng (hoặc cột), lần cuối cùng bỏ cả cột n và hàng m, nên phơng án thu đợc
có không quá m + n - 1 ô sử dụng, không lập thành chu trình, tức là có phơng án
cực biên.
Phơng pháp cớc phí tối thiểu trong toàn bảng.

Trang: 20



×