Quy hoạch tuyến tính | Đại học Sư phạm Hà Nội

Quy hoạch tuyến tính | Đại học Sư phạm Hà Nội với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống.

Chương 2
Quy hoạch tuyến tính
2.1 Bài toán Quy hoạch tuyến tính
2.1.1 Bài toán dạng tổng quát
Bài toán quy hoạch tuyến tính dạng
min (hoặc max) f(x) = c
T
x
A
i
x = b
i
, i I ,
1
A I ,
i
x b
i
, i
2
A I ,
i
x b
i
, i
3
x
j
0, j J ,
1
x
j
0, j J ,
2
x
j
R, j J ,
3
trong đó
A ma trận cấp m × n, c, x R
n
, b R
m
,
A A
i
dòng thứ i của ma trận ,
I I I
1
,
2
,
3
các tập chỉ số rời nhau và ,I I I
1
2
3
= I := {1, . . . , m}
J J
1
, J
2
,
3
các tập chỉ số rời nhau và .J J
1
2
J
3
= J := {1, . . . , n}
41
2.1.2 Bài toán dạng chính tắc và dạng chuẩn tắc
Cho A ma trận cấp m × n; c R
n
, và . Bài toán quy hoạch tuyến tínhb R
m
dạng chính tắc
max
f(x) = c
T
x
Ax b,=
x 0.
dạng chuẩn tắc
max
f(x) = c
T
x
Ax b,
x 0.
đây, hiệu được hiểu tất cả các thành phần của các số thực không âm.x 0 x
Chúng ta luôn thể đưa một bài toán dạng tổng quát về dạng chính tắc hoặc chuẩn tắc.
dụ 2.1. Đưa bài toán sau về dạng chính tắc
f(x x x) =
1
2
2
min
x x
1
+
2
3
x x
1
2
2
2
x
1
0.
Đặt x
1
= t
1
với t
1
0; x
2
= t t
2
3
với ;t
2
, t
3
0
g (t t) = f(x) = x x
1
+ 2
2
= t t
1
+ 2
2
2
3
;
t t t
4
= (x x
1
+
2
) 3 = (
1
+ t
2
3
) 3;
t t t
5
= 2 (x
1
2x
2
) =
1
+ 2t
2
2
3
+ 2.
Ta bài toán dạng chính tắc
g (t t t) = t
1
+ 2
2
2
3
max
t
1
+ t
2
t
3
t
4
= 3
t
1
2t
2
+ 2t
3
+ t
5
= 2
t
j
0, j = 1, 2, 3, 4
dụ 2.2. Đưa bài toán sau về dạng chuẩn tắc
f(x x) = 2
1
x
2
min
x x
1
+
2
= 3
x x
1
2
2
2
x
1
0, x .
2
0
42
Ta đưa về bài toán dạng chuẩn tắc
g (x x x) = 2
1
+
2
max
x x
1
+
2
3
x
1
x
2
3
x x
1
2
2
2
x
1
0, x .
2
0
2.2 dụ
2.2.1 Bài toán lập kế hoạch sản suất
Một nhà máy sản xuất với giá bán 1 đơn vị sản phẩmn sản phẩm H
1
, H , . . . , H
2 n
H
j
.c
j
Để sản xuất các sản phẩm trên, nhà máy cần dùng m nguyên liệu với trữ lượngK
1
, K , . . . , K
2 m
của nguyên liệu đơn vị.K
i
b
i
Để sản xuất 1 đơn vị sản phẩm , cần sử dụngH
j
a
ij
đơn vị nguyên liệu .K
i
Nhà máy cần lập kế hoạch sản xuất để tổng giá trị của các sản phẩm lớn nhất.
Gọi số đơn vị sản phẩm được sản xuất . Hiển nhiênH
j
x
j
x
j
0 với mọi .j = 1, 2, . . . , n
Tổng giá trị của các sản phẩm
f(x) =
n
X
j=1
c
j
x
j
.
Số đơn vị nguyên liệu được sử dụng
K
i
n
P
j=1
a
ij
x
j
. Do đó,
n
X
j=1
a
ij
x
j
b
i
.
Chúng ta bài toán
max f(x) =
n
X
j=1
c
j
x
j
n
X
j=1
a
ij
x
j
b
i
, i = 1, 2, . . . , m,
x
j
0, j = 1, 2, . . . , n.
43
Bài toán vận tải
m kho hàng với trữ lượng hàng lần lượt .K
1
, K , . . . , K
2 m
a
1
, a , . . . , a
2 m
Cần chuyển hàng tới điểm tiêu thụ hàng hóa với nhu cầu .n T
1
, T , . . . , T
2 n
b
1
, b , . . . , b
2 n
Giá thành vận chuyển từ đơn vị hàng.K
i
đến T
j
c
ij
/
Giả sử rằng chúng ta điều kiện cân bằng thu phát (tức tổng nhu cầu bằng tổng trữ lượng).
Cần lên phương án vận chuyển hàng sao cho tất cả các nơi tiêu thụ đều nhận được đủ hàng và
tổng chi phí vận chuyển nhỏ nhất.
Gọi số đơn vị hàng được chuyển từ kho đến nơi tiêu thụK
i
T
j
.x
ij
Hiển nhiên với mọix
ij
0 i = 1, 2, . . . , m và .j = 1, 2, . . . , n
Tổng chi phí vận chuyển
f(x) =
m
X
i=1
n
X
j=1
c
ij
x
ij
.
Chúng ta bài toán
min f(x) =
m
X
i=1
n
X
j=1
c
ij
x
ij
n
X
j=1
x
ij
= a
i
, i = 1, 2, . . . , m,
m
X
i=1
x
ij
= b
j
, j = 1, 2, . . . , n,
x
ij
0, i = 1, ,2, . . . , m, j = 1 2, . . . , n.
44
2.3 Cấu trúc tập phương án của bài toán quy hoạch
tuyến tính
Chúng ta xét bài toán quy hoạch tuyến tính dạng chính tắc
max
f(x) = c
T
x
Ax b,=
x 0,
(P)
trong đó ma trận cấp , và .A m × n, c, x R
n
b R
m
Tập phương án của bài toán được hiệu .X
Mệnh đề 2.3. Tập phương án một tập lồi.X
Véctơ cột thứ của ma trận được hiệu . Đặt .j A A
j
J := {1, . . . , n}
Với mỗi điểm , hiệux 0
J
+
(x x) =
n
j J |
j
> 0
o
.
Chú ý 2.4. Với mọi x X, chúng ta đẳng thức
b =
n
X
j=1
x
j
A
j
=
X
j
J
+
(x)
x
j
A .
j
thể dễ thấy rằng nếu một phương án cực biên của bài toán (P).0 X thì x := 0
45
Định 2.5. Giả sử ¯x = 0 một phương án của bài toán . Khi đó,(P) ¯x một phương án
cực biên của khi chỉ khi hệ véctơ
(P)
n
A
j
| j J
+
(¯x)
o
độc lập tuyến tính.
Chứng minh. Trước hết chúng ta chứng minh điều kiện cần bằng phương pháp phản chứng:
Giả sử
¯x phương án cực biên của X nhưng hệ
n
A
j
| j J
+
(¯x)
o
phụ thuộc tuyến tính.
Khi đó tồn tại các số thực , vớiα
j
j J
+
(¯x), không đồng thời bằng 0, sao cho
X
j
J
+
x)
α .
j
A
j
= 0
Chọn α R
n
với α
j
= 0 nếu j / J
+
(¯x). Hiển nhiên α = 0.
Với t > 0, chúng ta xét hai véctơ x
1
= ¯x + x
2
= ¯x .
Ta x
1
= x
2
và ¯x =
1
2
x
1
+
1
2
x
2
.
Từ
n
X
j=1
x
1
j
A
j
=
n
X
j=1
(¯
x
j
+
j
)A
j
=
n
X
j=1
¯
x
j
A t
j
+
n
X
j=1
α A b,
j
j
=
suy ra . Tương tự, chúng ta .Ax
1
= b Ax
2
= b
Để ý rằng, x
1
j
= x
2
j
= 0 với mọi j / J
+
(¯x). Chúng ta thể chọn được số dương t để x
1
j
> 0
và x
2
j
> 0 với mọi j J
+
(¯x). Với t đã chọn, các điểm các phương án của bài toán (P).x
1
, x
2
Do đó ¯x không phải phương án cực biên của bài toán (P), mâu thuẫn với giả thiết. Chúng
ta điều phải chứng minh.
Tiếp theo chúng ta chứng minh điều kiện đủ. Giả sử ¯x = (1 λ)y + λz với y, z thuộc vào X
và λ (0 1), . Dễ dàng kiểm tra được với mọiy
j
= z
j
= 0 j / J
+
(¯x). Do đó, chúng ta
b
=
X
j
J
+
x)
¯
x
j
A
j
=
X
j
J
+
x)
y
j
A
j
=
X
j
J
+
x)
z A .
j
j
Kết hợp các đẳng thức đó với sự độc lập tuyến tính của hệ {A
j
| j J
+
(¯x)}, chúng ta thu
được ¯x
j
= y
j
= z
j
với mọi j J
+
x). Như vy, y = z = ¯x. Từ đó, kết luận được ¯x điểm cực
biên của .X
Hệ quả 2.6. Mỗi phương án cực biên của bài toán có không quá thành phần dương.(P) m
Phương án cực biên ¯x của (P) được gọi nếu đúngkhông suy biến m thành phần
dương. Ngược lại, phương án cực biên ¯x được gọi .suy biến
Áp dụng phần chứng minh điều kiện cần trong việc chứng minh Định 2.5, chúng ta thu
được các kết quả sau đây.
Hệ quả 2.7. Giả sử ¯x X không phải một phương án cực biên của bài toán . Khi đó(P)
tồn tại hai phương án sao cho
x
1
, x
2
¯x =
1
2
x
1
+
1
2
x
2
J
+
(x
1
) J
+
(¯x).
46
dụ sau đây được thiết kế để minh họa cho Định 2.5.
dụ 2.8. Xét bài toán
max f(x) = 2x
1
+ 3x x
2
3
+ x
4
x x x x
1
+ 2
2
+ 2
3
+
4
= 3
2x
1
+ 4 + 3x
2
+ x
3
x
4
= 6
x 0.
Sử dụng Định 2.5, chúng ta dễ dàng tìm được tất cả các phương án cực biên của bài toán,
đó là:
x
1
= (3; 0; 0; 0)
T
, x
2
=
0;
3
2
; 0; 0
T
,
x
3
=
0; 0;
3
5
;
9
5
T
.
Kết quả sau đây nền tảng của thuật toán đơn hình giải bài toán quy hoạch tuyến tính.
Định 2.9. Nếu bài toán phương án thì sẽ có phương án cực biên. Nếu bài toán(P) (P)
có phương án tối ưu thì sẽ có một phương án cực biên tối ưu.
Chứng minh. Lấy x
0
một phương án tùy ý của (P). Nếu thì hiển nhiên mộtx
0
= 0 x
0
phương án cực biên. Nếu không phải một phương án cực biên, thì áp dụng Hệ quả 2.7,x
0
= 0
tồn tại phương án thành phần dương ít hơn so với . Do số thành phần dương của mộtx
1
x
0
phương án một số không âm, nên cứ tiếp tục như vậy, chúng ta sẽ tìm được một phương án
cực biên.
Tiếp theo, giả sử ¯x một phương án tối ưu của (P). Nếu ¯x = 0 thì hiển nhiên ¯x một
phương án cực biên tối ưu. Nếu ¯x = 0 không phải cực biên, thì áp dụng Hệ quả 2.7, tồn tại
phương án x
1
thành phần dương ít hơn so với ¯x, và phương án sao chox
2
¯x =
1
2
x
1
+
1
2
x
2
. Dễ
dàng kiểm tra được cũng các phương án tối ưu. Như vậy, chúng ta được phương ánx
1
, x
2
tối ưu x
1
thành phần dương ít hơn so với ¯x. Do số thành phần dương của một phương án
một số không âm, nên cứ tiếp tục như thế, chúng ta sẽ tìm được một phương án cực biên tối
ưu.
dụ 2.10. Chúng ta cùng giải bài toán đã được xem xét dụ 2.8. Dễ thấy rằng tập
phương án đóng bị chặn, hàm mục tiêu liên tục nên bài toán phương án tối ưu.X f
Do đó, phải phương án cực biên tối ưu. Tính được
f(x
1
) = 6, f(x
2
) =
9
2
; f(x
3
) =
6
5
.
Do đó phương án cực biên tối ưu của bài toán đã cho.x
1
Định 2.11. Số phương án cực biên của hữu hạn.(P)
47
2.4 Thuật toán đơn hình
2.4.1 sở luận của phương pháp đơn hình
Chúng ta xét bài toán quy hoạch tuyến tính (P) dạng chính tắc
max
f(x) = c
T
x
Ax b,=
x
R
n
+
(P)
trong đó ma trận cấp .A m × n, b R
m
, c R
n
, x R
n
Giả sử rằng bài toán (P) tất cả phương án cực biên không suy biến (tức tất cả các
phương án cực biên đều đúng thành phần dương).m
Do đó, trong ma trận cột lập thành một ma trận khả nghịch cấp , hiệu .A m m B
Các cột còn lại lập thành ma trận N cấp .m × ( )n m
Các chỉ số của các cột ứng với B N lập thành hai tập J
B
và .J
N
Các hệ số trong c và ẩn x ứng với các cột của lập thành các véctơ tương ứng B c
B
và x
B
thuộc .R
m
Các ẩn trong x
B
được gọi các ẩn cơ sở.
Các hệ số trong và ẩn ứng với các cột của lập thành các véctơc x N c
N
và x
N
thuộc .R
nm
Các ẩn trong x
N
được gọi các ẩn phi sở.
Hệ phương trình được viết lại dưới dạngAx = b
Bx Nx b.
B
+
N
=
Điều này tương đương với
x
B
= B B
1
b
1
Nx
N
. (2.1)
Chúng ta xét ¯x R
n
với ¯x
N
= 0 và ¯x
B
= B
1
b.
Nếu ¯x
B
0 thì ¯x một phương án chấp nhận được của (P), hơn thế nữa còn một phương
án cực biên.
Chúng ta
f
(x) = c c
T
x =
T
B
x
B
+ c
T
N
x
N
=
c
T
B
B
1
b B
1
Nx
N
+ c
T
N
x
N
=
c
T
B
B
1
b +
c
T
N
c
T
B
B
1
N
x
N
=
f(¯x x) +
c c
N
(B
1
N)
T
B
T
N
.
hiệu
N
:= c
N
( )B
1
N
T
c
B
R
nm
.
Các thành phần của véctơ
N
được gọi ước lượng của các ẩn phi sở đối với sở .B
48
Khi đó,
f f
(x) = (¯x) +
T
N
x
N
. (2.2)
Tình huống 1. 0
N
.
Công thức (2.2) suy ra f ( (¯x) f x) với mọi . Do đóx X ¯x một phương án tối ưu của
bài toán (P).
Dấu hiệu tối ưu: Nếu
N
0 thì ¯x một phương án tối ưu của bài toán (P).
Khi đó x R
n
+
một phương án tối ưu của bài toán (P) khi và chỉ khi
x
k
= 0 nếu k J
N
và 0
k
< ,
x
k
0 nếu k J
N
và
k
= 0,
x
B
= B B
1
b
1
Nx .
N
Hai trường hợp đặc biệt:
Nếu
k
< 0 với mọi k J
N
thì ¯x phương án tối ưu duy nhất của bài toán (P).
Nếu
k
= 0 với mọi thì mọi phương án của bài toán đều phương án tối ưu.k J
N
Tình huống 2. Tồn tại chỉ số k J
0
N
để . 0
k
0
>
Trong tình huống này, chúng ta chưa thể kết luận được v tính tối ưu của phương án ¯x
đối với bài toán (P).
Chúng ta đi tìm một phương án cực biên sao chox
1
f( (¯x
1
) > f x).
Chúng ta chọn x
1
k
0
= θ với θ số thực dương, x
1
k
= 0 với mọi k / J k
N
{
0
}.
Do công thức (2.1), chúng ta thu được
x
1
j
= (B
1
b)
j
(B
1
N)
jk
0
. θ, j J
B
. (2.3)
Theo công thức (2.2) chúng ta
f f
(x
1
) = (¯x) +
k
0
θ.
Tình huống 2a. Nếu ( )B
1
N
jk
0
0 với mọi .j J
B
Khi đó phương án của bài toán (P) với mọi .x
1
θ > 0
Dễ dàng thấy rằng f (x
1
) + khi .θ +
Dấu hiệu hàm mục tiêu không bị chặn trên trên tập phương án:
Nếu tồn tại chỉ số sao chok J
N
k
> 0 ( )B
1
N
jk
0 với mọi , thì hàmj J
B
mục tiêu f không bị chặn trên trên tập phương án .X
49
Ta hướng tăng hạn h R
n
xác định bởi
h
j
=
a
jk
nếu j J
B
1 nếu j = k
0 nếu j / J
B
{k}.
Thật vậy, với mọi số thực dương ta θ ¯x θh X f(¯x θh) = f(¯x) + θ
k
.
Tình huống 2b. Tồn tại j J
B
để .(B
1
N) 0
jk
0
>
Khi đó chúng ta chọn
θ
= min
(B
1
b)
j
( )
B
1
N
jk
0
| j J
B
, (B
1
N)
jk
0
> 0
. (2.4)
Giả sử
θ =
(B
1
b)
j
0
( )
B
1
N
j
0
k
0
với chỉ số . Xác định phương ánj J
0
B
x
1
với
x
1
j
=
θ nếu j = k
0
( ( )B
1
b)
j
B
1
N
jk
0
. θ nếu j J
B
\ {j
0
}
0 nếu j = j
0
0 nếu j / (J
B
{k
0
}) .
Hiển nhiên, .J
+
( (x
1
) J k
B
{
0
}) \ {j
0
}
50
dụ 2.12. Chúng ta xét bài toán sau
max f(x) = 2x
1
x
2
+ 2x
3
+ x
4
+ mx
5
x x x x
1
+
3
+
4
5
= 6
x x x x x
1
+
2
3
+ 2
4
2
5
= 10
x 0.
(a) Giải bài toán đã cho với .m = 4
(b) Giải bài toán đã cho với .m = 3
Giải
Ma trận sở gồm các cột
B A
1
và A
2
, tức B =
1 0
1 1
. Ta x
B
=
x
1
x
2
, c
B
=
2
1
,
N
=
1 1 1
1 2 2
, c
N
=
2
1
m
, x
N
=
x
3
x
4
x
5
.
Tính được
B
1
=
1 0
1 1
, B
1
b =
6
4
và B
1
N =
1 1 1
2 1 1
. Do đó
x
X
(
x
B
= (B
1
b) ( )B
1
N x
N
x 0
x x x x
1
= 6 (
3
+
4
5
)
x x x x
2
= 4 ( 2
3
+
4
5
)
x 0
Do đó, chúng ta phương án cực biên xuất phát .x
0
= (6; 4; 0; 0; 0)
T
a) Xét bài toán đã cho với .m = 4
Do
c
N
=
2
1
4
và ( )B
1
N
T
c
B
=
4
1
1
nên
N
=
2
0
3
.
Ta f (x
0
) = 8 và f(x) = 8 2 3x
3
x
5
8 với mọi phương án phương ánx. Do đó x
0
cực biên tối ưu của bài toán.
Tập phương án tối ưu của bài toán
Sol(P) =
x X | f(x) = 8
=
x X | x
3
= x
5
= 0
=
x R
5
+
| x
3
= x
5
= 0, x
1
= 6 x
4
, x
2
= 4 x
4
=
n
(6 t; 4 ; 0) t; 0; t
T
| 0 t 4
o
.
51
b) Xét bài toán đã cho với .m = 3
Do
c
N
=
2
1
3
và ( )B
1
N
T
c
B
=
4
1
1
nên
N
=
2
0
4
.
Ta f (x
0
) = 8 f (x) = 8 2x
3
+ 4x
5
với mọi phương án .x
Chúng ta giữ và tăng . Dễ dàng nhận thấy thể tiến ra . Với phương ánx
3
= 0 x
5
x
5
+
x
(t t t t) = (6 + ; 4 + ; 0; 0; ), trong đó t 0, chúng ta . Từ đó thể kết luậnf
x(t)
= 8 + 4t
rằng hàm mục tiêu f không bị chặn trên trên tập phương án .X
dụ 2.13. Chúng ta xét bài toán sau
max f(x) = 2x x x x
1
2
+ 2x
3
+ 2
4
4
5
x x x x
1
+
3
+
4
5
= 6
x x x x x
1
+
2
3
+ 2
4
2
5
= 10
x 0.
Giải
Ma trận sở gồm các cột
B A
1
và A
2
, tức B =
1 0
1 1
. Ta x
B
=
x
1
x
2
, c
B
=
2
1
,
N
=
1 1 1
1 2 2
, c
N
=
2
2
4
, x
N
=
x
3
x
4
x
5
.
Tính được
B
1
=
1 0
1 1
, B
1
b =
6
4
và B
1
N =
1 1 1
2 1 1
. Do đó
x
X
(
x
B
= (B
1
b) ( )B
1
N x
N
x 0
x x x
1
= 6 (
3
+
4
x
5
)
x x x x
2
= 4 ( 2
3
+
4
5
)
x 0
Chúng ta phương án cực biên xuất phát .x
0
= (6; 4; 0; 0; 0)
T
Do
c
N
=
2
2
4
và ( )B
1
N
T
c
B
=
4
1
1
nên
N
=
2
1
3
.
Ta f (x
0
) = 8 f(x) = 8 2x
3
+ x
4
3x
5
với mọi phương án .x
Chúng ta giữ x x
3
=
5
= 0 tăng và đượcx
4
. Dễ dàng nhận thấy . Chọnx
4
4 x
4
= 4
phương án . các cộtx
1
= (2; 0; 0; 4; 0) A
1
và A
4
độc lập tuyến tính nên một phương ánx
1
cực biên. Do phương án cực biên tốt hơn .f( (x
1
) = 12 > f x
0
) nên x
1
x
0
52
Tiếp theo, chúng ta kiểm tra tính tối ưu của phương án cực biên .x
1
Ma trận sở
B gồm các cột A
1
và A
4
, tức B =
1 1
1 2
. Ta x
B
=
x
1
x
4
, c
B
=
2
2
,
N
=
0 1 1
1
1 2
, c
N
=
1
2
4
, x
N
=
x
2
x
3
x
5
.
Tính được
B
1
=
2 1
1 1
, B
1
b =
2
4
và B
1
N =
1 3 0
1
2 1
. Do đó
x
X
(
x
B
= (B
1
b) ( )B
1
N x
N
x 0
x x x
1
= 2 (
2
+ 3
3
)
x x x x
4
= 4 (
2
2
3
5
)
x 0
Do
c
N
=
1
2
4
và ( )B
1
N
T
c
B
=
0
2
2
nên
N
=
1
0
2
.
Ta f(x
1
) = 12 f(x) = 12 x
2
2x
5
12 với mọi phương án . Do đó phươngx x
1
án cực biên tối ưu của bài toán.
Tập phương án tối ưu của bài toán
Sol(P) =
x X | f(x) = 12
= =
x X | x
2
x
5
= 0
=
x R
5
+
| x
2
= x
5
= 0, x
1
= 2 3x
3
, x
4
= 4 + 2x
3
=
(2 3t; 0; t; 4 + 2t; 0)
T
| 0 t
2
3
.
53
2.4.2 Thuật toán đơn hình với sở sẵn
Trong mục y, chúng ta giả sử rằng trong cột lập thành ma trận đơn vị cấpA sẵn m m
và b 0. Thuật toán đơn hình gốc y thêm bước biến đổi hệ phương trình thànhAx = b
một hệ phương trình tương đương để sao cho sở tại mỗi bước luôn một ma trận đơn vịB
cấp .m
dụ 2.14. Chúng ta xét bài toán sau
f(x x x) =
1
+ 2
2
max
x x
1
+
2
8
2 13x
1
+ x
2
,
x 0.
Đưa bài toán đã cho về dạng chính tắc
f(x x x) =
1
+ 2
2
max
x x x
1
+
2
+
3
= 8
2x
1
+ +x
2
x
4
= 13,
x 0.
Phương án cực biên xuất phát . Ma trận sở
x
0
= (0; 0; 8, 13)
T
B =
1 0
0 1
, c
B
=
0
0
,
x
B
=
x
3
x
4
, N =
1 2
1 1
, c
N
=
1
2
, x
N
=
x
1
x
2
. Tính được
N
=
1
2
.
Ta f(x
0
) = 0 và f(x) = x
1
+ 2x
2
. Chúng ta giữ x
1
= 0 và tăng x
2
= 8. Khi đó ta
phương án . Biến đổi hệ phương trình về dạngx
1
= (0; 8; 0; 5)
T
Ax = b
(
x
1
+ +x
2
x
3
= 8
x x x
1
3
+
4
= 5.
Phương án cực biên . Ma trận sở
x
1
= (0; 8; 0, 5)
T
B =
1 0
0 1
, c
B
=
2
0
, x
B
=
x
2
x
4
,
N
=
1 1
1
1
, c
N
=
1
0
, x
N
=
x
1
x
3
. Tính được
N
=
1
2
.
Ta f (x
1
) = 16 và f ( 2x) = f(x
1
) x
1
x
3
. Từ đó suy ra phương án tối ưu duy nhấtx
1
của bài toán.
54
dụ 2.15. Chúng ta xét bài toán sau
f(x) = 3x x
1
+
2
max
x x
1
+ 2
2
10
4 26x
1
+ x
2
,
x 0.
Đưa bài toán đã cho về dạng chính tắc
f(x x x) =
1
+ 2
2
max
x x x
1
+ 2
2
+
3
= 10
4x
1
+ +x
2
x
4
= 26,
x 0.
Phương án cực biên xuất phát . Ma trận sở
x
0
= (0; 0; 10, 26)
T
B =
1 0
0 1
, c
B
=
0
0
,
x
B
=
x
3
x
4
, N =
1 4
2 1
, c
N
=
3
1
, x
N
=
x
1
x
2
. Tính được
N
=
3
1
.
Ta f(x
0
) = 0 f(x) = 3x
1
+ x
2
. Chúng ta giữ x
2
= 0 và tăng x
1
=
13
2
. Khi đó ta
phương án x
1
= (
13
2
; 0;
7
2
; 0)
T
. Biến đổi hệ phương trình về dạngAx = b
(
7
4
x
2
+ x
3
1
4
x
4
=
7
2
x
1
+
1
4
x
2
+
1
4
x
4
=
13
2
.
Phương án cực biên . Ma trận sở
x
1
= (13/2; 0; 7/2; 0)
T
B =
1 0
0 1
, c
B
=
0
3
, x
B
=
x
3
x
1
,
N
=
1/ /4 7 4
1 4
/4 1/
, c
N
=
0
1
, x
N
=
x
4
x
2
. Tính được
N
=
3
/4
1
/4
.
Ta f (x
1
) = 39/2 f( 3 4 4x) = f(x
1
) / x
4
+ 1/ x
2
. Chúng ta giữ x
4
= 0 và tăng .x
2
= 2
Khi đó ta phương án . Biến đổi hệ phương trình về dạngx
2
= (6; 2; 0; 0)
T
Ax = b
(
x
2
+ 4/ /7x
3
1 7x
4
= 2
x x x
1
1/7
3
+ 2/7
4
= 6.
Phương án cực biên . Ma trận sở
x
2
= (6; 2; 0; 0)
T
B =
1 0
0 1
, c
B
=
1
3
, x
B
=
x
2
x
1
,
N
=
1/ /7 4 7
2 1 7
/7 /
, c
N
=
0
0
, x
N
=
x
4
x
3
. Tính được
N
=
5
/7
1 7/
.
Ta f(x
2
) = 20 và f( ( 5 7 1 7x) = f x
2
) / x
4
/ x
3
. Từ đó suy ra phương án tối ưux
2
duy nhất của bài toán.
55
2.4.3 Bảng đơn hình
dụ 2.16. Chúng ta xét bài toán sau
(P)
f(x x x x) =
2
2
3
+
4
max
x x x
1
+
3
4
4
= 3,
x x x
2
3
3
+
4
= 2,
x 0.
Phương án cực biên xuất phát .x
0
= (3, 2 0 0), ,
T
x x x
B
c
B
x x
1 2 3
x
4
0 1 2 1
x
1
0 3 1 0 1 4
x
2
1 2 0 1 3 1
2 0 0 5 2
x
1
0 11 1 4 011
x
4
1 2 0 1 13
2 0 2 1 0
Dấu hiệu hàm mục tiêu không bị chặn trên xuất hiện. Bài toán không phương án tối ưu.
Với phương án x
t
= (11 + 11 ; 2 + 3t; 0; t t), trong đó t 0, ta .f(x
t
) = 2 + t
56
dụ 2.17. Chúng ta sẽ giải bài toán sau bằng thuật toán đơn hình gốc
(P)
f(x x x x) = 2
1
+ 5
2
3
max
x x x
1
+
2
+
3
= 1,
2x
1
+ +x
2
x
4
= 4,
x 0
Phương án cực biên xuất phát .x
0
= (0, 0 1 4), ,
T
x x x x
B
c
B
x x
1 2 3 4
2 5 1 0
x
3
1 1 1 1 1 0
x
4
0 4 2 1 0 1
1 3 6 0 0
x
2
5 1 1 1 1 0
x
4
0 3 13 0 1
5 3 0 06
x
2
5 2 0 1 2/3 1/3
x
1
2 1 1 0 1/3 1/3
8 0 0 5 1
Dấu hiệu tối ưu xuất hiện. Bài toán gốc đạt giá trị tối ưu với phương án tối ưuf(x
) = 8
x x
= (1, , ,2 0 0). Hơn thế nữa, thể khẳng định
phương án tối ưu duy nhất.
57
dụ 2.18. Xét bài toán sau
f(x) = 8x x x
1
+ 4
2
+ 5
3
max
x x x
1
+ 2
2
+
3
2,
2 3x
1
+ x
3
,
x x
2
+
3
5,
x
j
0, j .= 1, 2, 3
Trước hết, chúng ta đưa bài toán đã cho về dạng chính tắc
f(x) = 8x x
1
+ 4
2
+ 5x
3
max
x x x x
1
+ 2
2
+
3
+
4
= 2,
2x
1
+ x
3
+ x
5
= 3,
x x x
2
+
3
+
6
= 5,
x
j
0, j = 1, . . . , 6.
Phương án cực biên xuất phát .x
0
= (0, 0 0 2 3 5), , , ,
T
x x x x x x
B
c
B
x x
1 2 3 4 5 6
8 4 5 0 0 0
x
4
0 2 1 2 1 1 0 0
x
5
0 3 2 0 1 0 1 0
x
6
0 5 0 1 1 0 0 1
0 8 4 5 0 0 0
x
4
0 1/2 0 2 1/2 1 -1/2 0
x
1
8 3/2 1 0 1/2 0 1/2 0
x
6
0 5 0 1 1 0 0 1
12 0 4 1 0 -4 0
x
2
4 1/4 0 1 1/4 1/2 -1/4 0
x
1
8 3/2 1 0 1/2 0 1/2 0
x
6
0 19/4 0 0 3/4 -1/2 1/4 1
13 0 0 0 -2 -3 0
Dấu hiệu tối ưu xuất hiện. Bài toán gốc đạt giá trị tối ưu với phương án tối ưuf(x
) = 13
x
=
3
2
,
1
4
, , ,0 0 0,
19
4
. Hơn thế nữa,
Sol(P) =

3 t
2
,
1 t
4
, t, 0 0, ,
19 3t
4
| 0 t 1
.
58
| 1/18

Preview text:

Chương 2 Quy hoạch tuyến tính
2.1 Bài toán Quy hoạch tuyến tính
2.1.1 Bài toán dạng tổng quát
Bài toán quy hoạch tuyến tính có dạng min (hoặc max) f (x) = cT x Aix = bi, i ∈ I1, Aix ≥ bi, i ∈ I2, Aix ≤ bi, i ∈ I3, xj ≥ 0, j ∈ J1, xj ≤ 0, j ∈ J2, xj ∈ R, j ∈ J3, trong đó
A là ma trận cấp m × n, c, x ∈ Rn, b ∈ Rm, A là dòng thứ , i i của ma trận A I , ,
là các tập chỉ số rời nhau và I1 ∪ I2 ∪ I3 = I := {1, . . . , m}, 1 I2 I3 J , ,
là các tập chỉ số rời nhau và J1 ∪ J2 ∪ J3 = J := {1, . . . , n}. 1 J2 J3 41
2.1.2 Bài toán dạng chính tắc và dạng chuẩn tắc
Cho A là ma trận cấp m × n; c ∈ Rn, và b ∈ Rm. Bài toán quy hoạch tuyến tính dạng chính tắc max f (x) = cT x Ax = b, x ≥ 0. dạng chuẩn tắc max f (x) = cT x Ax ≤ b, x ≥ 0.
Ở đây, ký hiệu x ≥ 0 được hiểu là tất cả các thành phần của x là các số thực không âm.
Chúng ta luôn có thể đưa một bài toán dạng tổng quát về dạng chính tắc hoặc chuẩn tắc.
Ví dụ 2.1. Đưa bài toán sau về dạng chính tắc   f(x) = x1 − 2x  2 → min x1 + x2 ≥ 3  x1 − 2x  2 ≤ 2 x1 ≤ 0. Đặt x với với t2, t3 ≥ 0; 1 = −t1 t1 ≥ 0; x2 = t2 − t3 g(t) = −f(x) = −x ; 1 + 2x2 = t1 + 2t2 − 2t3
t4 = (x1 + x2) − 3 = (−t1 + t2 − t3) − 3;
t5 = 2 − (x1 − 2x2) = t1 + 2t2 − 2t3 + 2.
Ta có bài toán dạng chính tắc  
 g(t) = t1 + 2t2 − 2t3 → max 
 −t1 + t2 − t3 − t4 = 3  
 −t1 − 2t2 + 2t3 + t5 = 2  tj ≥ 0, j = 1,2,3,4
Ví dụ 2.2. Đưa bài toán sau về dạng chuẩn tắc   f(x) = 2x  1 − x2 → min x1 + x2 = 3  x1 − 2x  2 ≤ 2 x1 ≥ 0,x2 ≥ 0. 42
Ta đưa về bài toán dạng chuẩn tắc   g(x) = −2x1 + x  2 → max    x1 + x2 ≤ 3 −x  1 − x2 ≤ −3    x1 − 2x  2 ≤ 2 x1 ≥ 0, x2 ≥ 0. 2.2 Ví dụ
2.2.1 Bài toán lập kế hoạch sản suất
Một nhà máy sản xuất n sản phẩm H là cj.
1, H2, . . . , Hn với giá bán 1 đơn vị sản phẩm Hj
Để sản xuất các sản phẩm trên, nhà máy cần dùng m nguyên liệu K1, K2, . . . , Km với trữ lượng của nguyên liệu K là i bi đơn vị.
Để sản xuất 1 đơn vị sản phẩm H đơn vị nguyên liệu Ki. j , cần sử dụng aij
Nhà máy cần lập kế hoạch sản xuất để tổng giá trị của các sản phẩm là lớn nhất.
Gọi số đơn vị sản phẩm Hj được sản xuất là xj. Hiển nhiên xj ≥ 0 với mọi j = 1, 2, . . . , n.
Tổng giá trị của các sản phẩm là n X f (x) = cjxj. j=1 n Số đơn vị nguyên liệu P K . Do đó, i được sử dụng là aijxj j=1 n X aijxj ≤ bi. j=1 Chúng ta có bài toán n X max f (x) = cjxj j=1 n
X aijxj ≤ bi, ∀i = 1,2,...,m, j=1
xj ≥ 0, ∀j = 1, 2, . . . , n. 43 Bài toán vận tải
Có m kho hàng K1, K2, . . . , Km với trữ lượng hàng lần lượt là a1, a2, . . . , am.
Cần chuyển hàng tới n điểm tiêu thụ hàng hóa T1, T2, . . . , Tn với nhu cầu là b1, b2, . . . , bn.
Giá thành vận chuyển từ K đến là i Tj cij/đơn vị hàng.
Giả sử rằng chúng ta có điều kiện cân bằng thu phát (tức là tổng nhu cầu bằng tổng trữ lượng).
Cần lên phương án vận chuyển hàng sao cho tất cả các nơi tiêu thụ đều nhận được đủ hàng và
tổng chi phí vận chuyển là nhỏ nhất.
Gọi số đơn vị hàng được chuyển từ kho K là xij. i đến nơi tiêu thụ Tj
Hiển nhiên xij ≥ 0 với mọi i = 1, 2, . . . , m và j = 1, 2, . . . , n.
Tổng chi phí vận chuyển là m X n X f (x) = cijxij. i=1 j=1 Chúng ta có bài toán m X n X min f (x) = cijxij i=1 j=1 n X xij = ai, ∀i = 1,2,...,m, j=1 m X xij = bj, ∀j = 1,2,...,n, i=1
xij ≥ 0, ∀i = 1, 2, . . . , m, ∀j = 1, 2, . . . , n. 44
2.3 Cấu trúc tập phương án của bài toán quy hoạch tuyến tính
Chúng ta xét bài toán quy hoạch tuyến tính dạng chính tắc max f (x) = cT x Ax = b, (P) x ≥ 0,
trong đó A là ma trận cấp m × n, c, x ∈ Rn, và b ∈ Rm.
Tập phương án của bài toán được ký hiệu là X.
Mệnh đề 2.3. Tập phương án X là một tập lồi.
Véctơ cột thứ j của ma trận A được ký hiệu là Aj. Đặt J := {1, . . . , n}.
Với mỗi điểm x ≥ 0, ký hiệu n o J+(x) = j ∈ J | xj > 0 .
Chú ý 2.4. Với mọi x ∈ X, chúng ta có đẳng thức n X X b = x j j Aj = xjA . j=1 j∈J+(x)
Có thể dễ thấy rằng nếu 0 ∈ X thì x := 0 là một phương án cực biên của bài toán (P). 45
Định lý 2.5. Giả sử ¯x = 0 là một phương án của bài toán (P). Khi đó, ¯x là một phương án n o
cực biên của (P) khi và chỉ khi hệ véctơ Aj | j ∈ J+(¯x) độc lập tuyến tính.
Chứng minh. Trước hết chúng ta chứng minh điều kiện cần bằng phương pháp phản chứng: n o Giả sử ¯
x là phương án cực biên của X nhưng hệ
Aj | j ∈ J+(¯x) phụ thuộc tuyến tính.
Khi đó tồn tại các số thực αj, với j ∈ J+(¯x), không đồng thời bằng 0, sao cho X αjAj = 0. j∈J+(¯x)
Chọn α ∈ Rn với αj = 0 nếu j /∈ J+(¯x). Hiển nhiên α = 0.
Với t > 0, chúng ta xét hai véctơ x1 = ¯x + tα và x2 = ¯x − tα.
Ta có x1 = x2 và ¯x = 1 x1 + 1x2. 2 2 Từ n X n X n X n X x1 j j j Aj = (¯ xj + tαj)Aj = ¯ xjA + t αjA = b, j=1 j=1 j=1 j=1
suy ra Ax1 = b. Tương tự, chúng ta có Ax2 = b. Để ý rằng, x1 = x2 j j = 0 với mọi j /
∈ J+(¯x). Chúng ta có thể chọn được số dương t để x1j > 0
và x2j > 0 với mọi j ∈ J+(¯x). Với t đã chọn, các điểm x1, x2 là các phương án của bài toán (P).
Do đó ¯x không phải là phương án cực biên của bài toán (P), mâu thuẫn với giả thiết. Chúng
ta có điều phải chứng minh.
Tiếp theo chúng ta chứng minh điều kiện đủ. Giả sử ¯x = (1 − λ)y + λz với y, z thuộc vào X
và λ ∈ (0, 1). Dễ dàng kiểm tra được yj = zj = 0 với mọi j /∈ J+(¯x). Do đó, chúng ta có X X X b = ¯ x j j Aj = yjAj = zjA . j∈J+(¯x) j∈J+(¯x) j∈J+(¯x)
Kết hợp các đẳng thức đó với sự độc lập tuyến tính của hệ {Aj | j ∈ J+(¯x)}, chúng ta thu được ¯x với mọi j = yj = zj
j ∈ J+(¯x). Như vậy, y = z = ¯x. Từ đó, kết luận được ¯x là điểm cực biên của X.
Hệ quả 2.6. Mỗi phương án cực biên của bài toán (P) có không quá m thành phần dương.
Phương án cực biên ¯x của (P) được gọi là không suy biến nếu nó có đúng m thành phần
dương. Ngược lại, phương án cực biên ¯x được gọi là suy biến.
Áp dụng phần chứng minh điều kiện cần trong việc chứng minh Định lý 2.5, chúng ta thu
được các kết quả sau đây.
Hệ quả 2.7. Giả sử ¯x ∈ X là không phải là một phương án cực biên của bài toán (P). Khi đó
tồn tại hai phương án x1, x2 sao cho ¯
x = 1 x1 + 1x2 và J+(x1) ⊊ J+(¯ x). 2 2 46
Ví dụ sau đây được thiết kế để minh họa cho Định lý 2.5. Ví dụ 2.8. Xét bài toán
max f (x) = 2x1 + 3x2 − x3 + x4 x1 + 2x2 + 2x3 + x4 = 3 2x1 + 4x2 + x3 + 3x4 = 6 x ≥ 0.
Sử dụng Định lý 2.5, chúng ta dễ dàng tìm được tất cả các phương án cực biên của bài toán,  T   9 T đó là: 3 3 x1 = (3; 0; 0; 0)T , x2 = 0; ; 0; 0 , x3 = 0; 0; ; . 2 5 5
Kết quả sau đây là nền tảng của thuật toán đơn hình giải bài toán quy hoạch tuyến tính.
Định lý 2.9. Nếu bài toán (P) có phương án thì sẽ có phương án cực biên. Nếu bài toán (P)
có phương án tối ưu thì sẽ có một phương án cực biên là tối ưu.
Chứng minh. Lấy x0 là một phương án tùy ý của (P). Nếu x0 = 0 thì hiển nhiên x0 là một
phương án cực biên. Nếu x0 = 0 không phải là một phương án cực biên, thì áp dụng Hệ quả 2.7,
tồn tại phương án x1 có thành phần dương ít hơn so với x0. Do số thành phần dương của một
phương án là một số không âm, nên cứ tiếp tục như vậy, chúng ta sẽ tìm được một phương án cực biên.
Tiếp theo, giả sử ¯x là một phương án tối ưu của (P). Nếu ¯x = 0 thì hiển nhiên ¯x là một
phương án cực biên tối ưu. Nếu ¯x = 0 không phải là cực biên, thì áp dụng Hệ quả 2.7, tồn tại
phương án x1 có thành phần dương ít hơn so với ¯x, và phương án x2 sao cho ¯x = 1x1 + 1 x2. Dễ 2 2
dàng kiểm tra được x1, x2 cũng là các phương án tối ưu. Như vậy, chúng ta có được phương án
tối ưu x1 có thành phần dương ít hơn so với ¯x. Do số thành phần dương của một phương án là
một số không âm, nên cứ tiếp tục như thế, chúng ta sẽ tìm được một phương án cực biên tối ưu.
Ví dụ 2.10. Chúng ta cùng giải bài toán đã được xem xét ở Ví dụ 2.8. Dễ thấy rằng tập
phương án X là đóng và bị chặn, hàm mục tiêu f liên tục nên bài toán có phương án tối ưu.
Do đó, nó phải có phương án cực biên là tối ưu. Tính được 9 6
f (x1) = 6, f (x2) = ; f (x3) = . 2 5
Do đó x1 là phương án cực biên tối ưu của bài toán đã cho.
Định lý 2.11. Số phương án cực biên của (P) là hữu hạn. 47 2.4 Thuật toán đơn hình
2.4.1 Cơ sở lý luận của phương pháp đơn hình
Chúng ta xét bài toán quy hoạch tuyến tính (P) ở dạng chính tắc max f (x) = cT x Ax = b, (P) x ∈ Rn+
trong đó A là ma trận cấp m × n, b ∈ Rm, c ∈ Rn, x ∈ Rn.
Giả sử rằng bài toán (P) có tất cả phương án cực biên không suy biến (tức là tất cả các
phương án cực biên đều có đúng m thành phần dương).
Do đó, trong ma trận A có m cột lập thành một ma trận khả nghịch cấp m, ký hiệu là B.
Các cột còn lại lập thành ma trận N cấp m × (n − m).
Các chỉ số của các cột ứng với B và N lập thành hai tập J và JN. B
Các hệ số trong c và ẩn x ứng với các cột của B lập thành các véctơ tương ứng là c và B xB thuộc Rm.
Các ẩn trong x được gọi là các B ẩn cơ sở.
Các hệ số trong c và ẩn x ứng với các cột của N lập thành các véctơ c và thuộc Rn−m. N xN
Các ẩn trong x được gọi là các N ẩn phi cơ sở.
Hệ phương trình Ax = b được viết lại dưới dạng BxB + NxN = b.
Điều này tương đương với x −1 −1 B = B b − B NxN. (2.1)
Chúng ta xét ¯x ∈ Rn với ¯xN = 0 và ¯xB = B−1b.
Nếu ¯xB ≥ 0 thì ¯x là một phương án chấp nhận được của (P), hơn thế nữa nó còn là một phương án cực biên. Chúng ta có f (x) = cT x = cTBxB + cTNxN   = cT 1 B B− − b − B 1NxN + cTNxN  
= cTBB−1b + cTN − cTBB−1N xN  T = f (¯ x) + cN − (B−1N)T cB xN . Ký hiệu ∆ T
N := cN − (B−1N ) cB ∈ Rn−m.
Các thành phần của véctơ ∆ được gọi là N
ước lượng của các ẩn phi cơ sở đối với cơ sở B. 48 Khi đó, f (x) = f (¯ x) + ∆TN xN . (2.2) Tình huống 1. ∆ . N ≤ 0
Công thức (2.2) suy ra f(x) ≤ f(¯x) với mọi x ∈ X. Do đó ¯x là một phương án tối ưu của bài toán (P).
Dấu hiệu tối ưu: Nếu ∆N ≤ 0 thì ¯x là một phương án tối ưu của bài toán (P).
Khi đó x ∈ Rn là một phương án tối ưu của bài toán (P) khi và chỉ khi +   x và k = 0 nếu k ∈ JN ∆k < 0, x và ∆  k ≥ 0 nếu k ∈ JN k = 0, x −1 −1 B = B b − B NxN.
Hai trường hợp đặc biệt: Nếu ∆ thì k < 0 với mọi k ∈ JN ¯
x là phương án tối ưu duy nhất của bài toán (P).
Nếu ∆k = 0 với mọi k ∈ JN thì mọi phương án của bài toán đều là phương án tối ưu.
Tình huống 2. Tồn tại chỉ số k để ∆k > 0 0. 0 ∈ JN
Trong tình huống này, chúng ta chưa thể kết luận được gì về tính tối ưu của phương án ¯x đối với bài toán (P).
Chúng ta đi tìm một phương án cực biên x1 sao cho f(x1) > f(¯x).
Chúng ta chọn x1k = θ với θ là số thực dương, và x1 N ∪ { 0}. 0 k = 0 với mọi k / ∈ J k
Do công thức (2.1), chúng ta thu được
x1j = (B−1b)j − (B−1N)jk . θ, ∀j ∈ J 0 B . (2.3)
Theo công thức (2.2) chúng ta có f (x1) = f (¯ x) + ∆k θ. 0
•Tình huống 2a. Nếu (B−1N)jk ≤ 0 với mọi j ∈ JB. 0
Khi đó x1 là phương án của bài toán (P) với mọi θ > 0.
Dễ dàng thấy rằng f(x1) → +∞ khi θ → +∞.
Dấu hiệu hàm mục tiêu không bị chặn trên ở trên tập phương án:
Nếu tồn tại chỉ số k ∈ JN sao cho ∆k > 0 và (B−1N)jk ≤ 0 với mọi j ∈ JB, thì hàm
mục tiêu f không bị chặn trên ở trên tập phương án X. 49
Ta có hướng tăng vô hạn h ∈ Rn xác định bởi   a nếu jk j ∈ JB hj = −1 nếu j = k  0 nếu j / ∈ JB ∪ {k}.
Thật vậy, với mọi số thực dương θ ta có ¯x − θh ∈ X và f(¯x − θh) = f(¯x) + θ∆ . k
•Tình huống 2b. Tồn tại j ∈ J để (B−1N)jk > 0 0. B Khi đó chúng ta chọn   (B−1b) θ = min j | j ∈ J > 0 . (2.4) (B−1N ) B , (B−1N )jk0 jk0 Giả sử (B−1b) θ = j0
với chỉ số j0 ∈ JB. Xác định phương án x1 với (B−1N )j0k0   θ nếu j = k  0
(B−1b)j − (B−1N) . θ nếu j ∈ J x1 jk0 B \ {j0} j =  0 nếu j = j  0 0 nếu j / ∈ (JB ∪ {k0}) .
Hiển nhiên, J+(x1) ⊂ (JB ∪ {k0}) \ {j0}. 50
Ví dụ 2.12. Chúng ta xét bài toán sau
max f (x) = 2x1 − x2 + 2x3 + x4 + mx5 x1 + x3 + x4 − x5 = 6
x1 + x2 − x3 + 2x4 − 2x5 = 10 x ≥ 0.
(a) Giải bài toán đã cho với m = −4.
(b) Giải bài toán đã cho với m = 3. Giải       Ma trận cơ sở 1 0 x 2
B gồm các cột A1 và A2, tức là B = . Ta có x 1 , c , 1 1 B = x B = 2 −1       2 x 1 1 −1 3 N = , c  1, x x . −1 2 −2 N = N = 4 m x5       Tính được 1 0 6 1 1 −1 B−1 = , B−1b = và B−1N = . Do đó −1 1 4 −2 1 −1 (x B−1N x x ∈ X ⇔ B = (B−1b) − ( ) N x ≥ 0   x1 = 6 − (x3 + x4 − x5) ⇔ x2 = 4 − (−2x3 + x4 − x  5) x ≥ 0
Do đó, chúng ta có phương án cực biên xuất phát x0 = (6; 4; 0; 0; 0)T .
a) Xét bài toán đã cho với m = −4.       2 4 −2 Do c   và T   nên  . N = 1 (B−1N ) cB = 1 ∆N = 0 −4 −1 −3
Ta có f(x0) = 8 và f(x) = 8 − 2x3 − 3x5 ≤ 8 với mọi phương án x. Do đó x0 là phương án
cực biên tối ưu của bài toán.
Tập phương án tối ưu của bài toán   Sol(P) = x ∈ X | f(x) = 8   = x ∈ X | x3 = x5 = 0  
= x ∈ R5+ | x3 = x5 = 0, x1 = 6 − x4, x2 = 4 − x4 n o
= (6 − t; 4 − t; 0; t; 0)T | 0 ≤ t ≤ 4 . 51
b) Xét bài toán đã cho với m = 3.       2 4 −2 Do c   và T   nên  . N = 1 (B−1N ) cB = 1 ∆N = 0 3 −1 4
Ta có f(x0) = 8 và f(x) = 8 − 2x với mọi phương án x. 3 + 4x5
Chúng ta giữ x3 = 0 và tăng x5. Dễ dàng nhận thấy x5 có thể tiến ra +∞. Với phương án  
x(t) = (6 + t; 4 + t; 0; 0; t), trong đó t ≥ 0, chúng ta có f x(t) = 8 + 4t. Từ đó có thể kết luận
rằng hàm mục tiêu f không bị chặn trên ở trên tập phương án X.
Ví dụ 2.13. Chúng ta xét bài toán sau
max f (x) = 2x1 − x2 + 2x3 + 2x4 − 4x5 x1 + x3 + x4 − x5 = 6
x1 + x2 − x3 + 2x4 − 2x5 = 10 x ≥ 0. Giải       Ma trận cơ sở 1 0 x 2
B gồm các cột A1 và A2, tức là B = . Ta có x 1 , c , 1 1 B = x B = 2 −1       2 x 1 1 −1 3 N = , c  2 , x x . −1 2 −2 N = N = 4 −4 x5       Tính được 1 0 6 1 1 −1 B−1 = , B−1b = và B−1N = . Do đó −1 1 4 −2 1 −1 (x B−1N x x ∈ X ⇔ B = (B−1b) − ( ) N x ≥ 0   x1 = 6 − (x3 + x4 − x5) ⇔ x2 = 4 − (−2x3 + x4 − x  5) x ≥ 0
Chúng ta có phương án cực biên xuất phát x0 = (6; 4; 0; 0; 0)T .       2 4 −2 Do c T N =  2  và (B−1N ) c   nên   B = 1 ∆N = 1 . −4 −1 −3
Ta có f(x0) = 8 và f(x) = 8 − 2x với mọi phương án x. 3 + x4 − 3x5 Chúng ta giữ x
. Dễ dàng nhận thấy x4 ≤ 4. Chọn 3 = x5 = 0 và tăng x4 x4 = 4 và được
phương án x1 = (2; 0; 0; 4; 0). Vì các cột A1 và A4 độc lập tuyến tính nên x1 là một phương án
cực biên. Do f(x1) = 12 > f(x0) nên x1 là phương án cực biên tốt hơn x0. 52
Tiếp theo, chúng ta kiểm tra tính tối ưu của phương án cực biên x1.       Ma trận cơ sở 1 1 x 2
B gồm các cột A1 và A4, tức là B = . Ta có x 1 , c , 1 2 B = x B = 4 2       −1 x 0 1 −1 2 N = , c  2 , x x . 1 −1 −2 N = N = 3 −4 x5       Tính được 2 −1 2 −1 3 0 B−1 = , B−1b = và B−1N = . Do đó −1 1 4 1 −2 −1 (x B−1N x x ∈ X ⇔ B = (B−1b) − ( ) N x ≥ 0   x1 = 2 − (x2 + 3x3) ⇔ x4 = 4 − (x2 − 2x3 − x  5) x ≥ 0       −1 0 −1 Do c   và T   nên  . N = 2 (B−1N ) cB = 2 ∆N = 0 −4 −2 −2
Ta có f(x1) = 12 và f(x) = 12 − x2 − 2x5 ≤ 12 với mọi phương án x. Do đó x1 là phương
án cực biên tối ưu của bài toán.
Tập phương án tối ưu của bài toán   Sol(P) = x ∈ X | f(x) = 12   = x ∈ X | x2 = x5 = 0  
= x ∈ R5+ | x2 = x5 = 0, x1 = 2 − 3x3, x4 = 4 + 2x3   2 =
(2 − 3t; 0; t; 4 + 2t; 0)T | 0 ≤ t ≤ . 3 53
2.4.2 Thuật toán đơn hình với cơ sở có sẵn
Trong mục này, chúng ta giả sử rằng trong A có sẵn m cột lập thành ma trận đơn vị cấp m
và b ≥ 0. Thuật toán đơn hình gốc này có thêm bước biến đổi hệ phương trình Ax = b thành
một hệ phương trình tương đương để sao cho cơ sở B tại mỗi bước luôn là một ma trận đơn vị cấp m.
Ví dụ 2.14. Chúng ta xét bài toán sau   f(x) = x1 + 2x2 → max  x1 + x2 ≤ 8  2x1 + x2 ≤ 13,  x ≥ 0.
Đưa bài toán đã cho về dạng chính tắc   f(x) = x1 + 2x2 → max  x1 + x2 + x3 = 8  2x x x  1 + 2 + 4 = 13, x ≥ 0.    
Phương án cực biên xuất phát 1 0 0
x0 = (0; 0; 8, 13)T . Ma trận cơ sở B = , c , 0 1 B = 0           x 1 2 1 x 1 x 3 , , , 1 . Tính được . B = N = c x ∆ x N = N = N = 4 1 1 2 x2 2 Ta có f(x0) = 0 và f(x) = x . Chúng ta giữ 1 + 2x2
x1 = 0 và tăng x2 = 8. Khi đó ta có
phương án x1 = (0; 8; 0; 5)T . Biến đổi hệ phương trình Ax = b về dạng (x1 + x2 + x3 = 8 x1 − x3 + x4 = 5.       Phương án cực biên 1 0 2 x
x1 = (0; 8; 0, 5)T . Ma trận cơ sở B = , c , x 2 , 0 1 B = 0 B = x4         1 1 1 x −1 N = , c , x 1 . Tính được ∆ . 1 −1 N = 0 N = x N = 3 −2
Ta có f(x1) = 16 và f(x) = f(x1) − x
. Từ đó suy ra x1 là phương án tối ưu duy nhất 1 − 2x3 của bài toán. 54
Ví dụ 2.15. Chúng ta xét bài toán sau   f(x) = 3x1 + x2 → max  x1 + 2x2 ≤ 10  4x1 + x2 ≤ 26,  x ≥ 0.
Đưa bài toán đã cho về dạng chính tắc   f(x) = x1 + 2x2 → max  x1 + 2x2 + x3 = 10  4x x x  1 + 2 + 4 = 26, x ≥ 0.    
Phương án cực biên xuất phát 1 0 0
x0 = (0; 0; 10, 26)T . Ma trận cơ sở B = , c , 0 1 B = 0           x 1 4 3 x 3 x 3 1 B = , N = , c , x . Tính được ∆ . x N = N = N = 4 2 1 1 x2 1 Ta có f(x0) = 0 và f(x) = 3x . Chúng ta giữ 1 + x2
x2 = 0 và tăng x1 = 13 . Khi đó ta có 2
phương án x1 = (13 ; 0; 7; 0)T . Biến đổi hệ phương trình Ax = b về dạng 2 2 (7 x x 4 2 + x3 − 14 4 = 7 2 x1 + 1x x . 4 2 + 14 4 = 13 2       Phương án cực biên 1 0 0 x
x1 = (13/2; 0; 7/2; 0)T . Ma trận cơ sở B = , c , x 3 , 0 1 B = 3 B = x1         −1/4 7/4 0 x −3/4 N = , c , x 4 . Tính được ∆ . 1/4 1/4 N = 1 N = x N = 2 1/4
Ta có f(x1) = 39/2 và f(x) = f(x1) − 3/4x . Chúng ta giữ 4 + 1/4x2 x4 = 0 và tăng x2 = 2.
Khi đó ta có phương án x2 = (6; 2; 0; 0)T . Biến đổi hệ phương trình Ax = b về dạng (x2 + 4/7x3 − 1/7x4 = 2 x1 − 1/7x3 + 2/7x4 = 6.       Phương án cực biên 1 0 1 x
x2 = (6; 2; 0; 0)T . Ma trận cơ sở B = , c , x 2 , 0 1 B = 3 B = x1         −1/7 4/7 0 x −5/7 N = , c , x 4 . Tính được ∆ . 2/7 −1/7 N = 0 N = x N = 3 −1/7
Ta có f(x2) = 20 và f(x) = f(x2) − 5/7x
. Từ đó suy ra x2 là phương án tối ưu 4 − 1/7x3 duy nhất của bài toán. 55 2.4.3 Bảng đơn hình
Ví dụ 2.16. Chúng ta xét bài toán sau  
 f(x) = −x2 − 2x3 + x4 → max   x1 + x3 − 4x (P) 4 = 3,   x2 − 3x3 + x  4 = 2,  x ≥ 0.
Phương án cực biên xuất phát x0 = (3, 2, 0, 0)T . xB cB x x1 x2 x3 x4 0 −1 −2 1 x 0 3 1 0 1 1 −4 x2 −1 2 0 1 −3 1 −2 0 0 −5 2 x 0 11 1 4 −11 0 1 x 1 2 0 1 −3 1 4 2 0 −2 1 0
Dấu hiệu hàm mục tiêu không bị chặn trên xuất hiện. Bài toán không có phương án tối ưu.
Với phương án xt = (11 + 11t; 0; t; 2 + 3t), trong đó t ≥ 0, ta có f(xt) = 2 + t. 56
Ví dụ 2.17. Chúng ta sẽ giải bài toán sau bằng thuật toán đơn hình gốc  
f(x) = −2x1 + 5x2 − x3 → max  −x1 + x2 + x (P) 3 = 1,  2x x x  1 + 2 + 4 = 4, x ≥ 0
Phương án cực biên xuất phát x0 = (0, 0, 1, 4)T . xB cB x x1 x2 x3 x4 −2 5 −1 0 x3 −1 1 −1 1 1 0 x 0 4 2 1 0 1 4 −1 −3 6 0 0 x 5 1 2 −1 1 1 0 x 0 3 3 0 −1 1 4 5 3 0 −6 0 x 5 2 0 1 2/3 1/3 2 x1 −2 1 1 0 −1/3 1/3 8 0 0 −5 −1
Dấu hiệu tối ưu xuất hiện. Bài toán gốc đạt giá trị tối ưu f(x∗) = 8 với phương án tối ưu
x∗ = (1, 2, 0, 0). Hơn thế nữa, có thể khẳng định x∗ là phương án tối ưu duy nhất. 57
Ví dụ 2.18. Xét bài toán sauf(x)=8x1+4x2+5x  3 → max    x1 + 2x2 + x3 ≤ 2, 2x1 + x3 ≤ 3,     x2 + x  3 ≤ 5, xj ≥ 0, j = 1, 2, 3.
Trước hết, chúng ta đưa bài toán đã cho về dạng chính tắc   f(x) = 8x1 + 4x  2 + 5x3 → max    x1 + 2x2 + x3 + x4 = 2, 2x  1 + x3 + x5 = 3,    x2 + x3 + x  6 = 5, xj ≥ 0, j = 1, . . . , 6.
Phương án cực biên xuất phát x0 = (0, 0, 0, 2, 3, 5)T . xB cB x x1 x2 x3 x4 x5 x6 8 4 5 0 0 0 x 0 2 1 2 1 1 0 0 4 x 0 3 5 2 0 1 0 1 0 x 0 5 0 1 1 0 0 1 6 0 8 4 5 0 0 0 x 0 1/2 0 4 2 1/2 1 -1/2 0 x 8 3/2 1 0 1/2 0 1/2 0 1 x 0 5 0 1 1 0 0 1 6 12 0 4 1 0 -4 0 x 4 1/4 0 1 1/4 1/2 -1/4 0 2 x 8 3/2 1 0 1/2 0 1/2 0 1 x 0 19/4 0 0 3/4 -1/2 1/4 1 6 13 0 0 0 -2 -3 0
Dấu hiệu tối ưu xuất hiện. Bài toán gốc đạt giá trị tối ưu f(x∗) = 13 với phương án tối ưu  
x∗ = 3 , 1 , 0, 0, 0, 19 . Hơn thế nữa, 2 4 4    3 − t 1 − t 19 − 3t Sol(P) = , , t, 0, 0, | 0 ≤ t ≤ 1 . 2 4 4 58