You are on page 1of 57

BỘ QUỐC PHÒNG

HỌC VIỆN KỸ THUẬT QUÂN SỰ


KHOA CÔNG NGHỆ THÔNG TIN

BÀI GIẢNG
LÝ THUYẾT TỐI ƯU
Tài Liệu Này của Học Viên

----------------------------------

LƯU HÀNH NỘI BỘ


TP. Hồ Chí Minh, tháng 12 năm 2011
Bài Giảng Lý Thuyết Tối Ưu
Chương 1. BÀI TOÁN TỐI ƯU HÓA VÀ CÁC VẤN ĐỀ CƠ SỞ

1.1 BÀI TOÁN TỐI ƯU HÓA VÀ PHÂN LOẠI BÀI TOÁN


1.1.1 Bài toán tối ưu hoá tổng quát
Là bài toán có dạng:
Tìm Min (hoặc Max) của hàm f(x) (1.1)
g i (x) , ,  bi ; i=1,m
với các điều kiện  (1.2)
 xX  R , n

trong đó:
- f(x) : Hàm mục tiêu với n biến.
- gi(x) , i  1, m : Các hàm ràng buộc. Mỗi bất đẳng thức gọi là một ràng buộc.
- Tập D = {x X | gi(x)  ( =,  ) bi , i  1, m } : Miền ràng buộc (1.3)
hay tập các phương án chấp nhận được.
- x = (x1,x2,..., xn)  D : Phương án hay lời giải chấp nhận được.
- Phương án x* D làm cực đại (cực tiểu) hàm mục tiêu gọi là phương án hay lời giải tối ưu.
Cụ thể là: f(x*)  f(x), x D đối với bài toán max
hay f(x*)  f(x), x D đối với bài toán min.
Khi đó f* = f(x*) gọi là giá trị tối ưu của bài toán.
1.1.2 Phân loại bài toán
Để tìm các thuật giải hiệu quả cho các bài toán Tối ưu hoá (Optimization Problem, hay Qui
hoạch toán học – Mathematical Programming) cần phân loại các bài toán:
 Qui hoạch tuyến tính (QHTT): Hàm mục tiêu và các hàm ràng buộc đều là các hàm tuyến tính,
trong đó có một trường hợp riêng quan trọng là bài toán vận tải (BTVT).
 Qui hoạch tham số (QHTS): Các hệ số trong hàm mục tiêu hay các hàm ràng buộc phụ thuộc
vào tham số.
 Qui hoach động (QHĐ): Đối tượng được xét là quá trình có nhiều giai đoạn hay quá trình phát
triển theo thời gian, hàm mục tiêu thường có dạng tách biến.
 Qui hoach phi tuyến (QHPT): Hàm mục tiêu hoặ các hàm rầng buộc là hàm phi tuyến.
 Qui hoạch rời rạc ( QHRR, hay bài toán Tối ưu tổ hợp): Miền ràng buộc D là một tập rời rạc.
Trường hợp riêng : Các biến xi chỉ nhận giá trị nguyên (Qui hoạch nguyên- QHN) hay các
biến xi chỉ nhận các giá trị 0 hoặc 1 (Qui hoạch biến Boole).
 Qui hoạch đa mục tiêu (QHĐMT): Trên tập ràng buộc D xét nhiều hàm mục tiêu khác nhau.

1.2 MỘT SỐ MÔ HÌNH THỰC TẾ


1.2.1 Bài toán lập kế hoạch sản xuất tối ưu
Một công ty muốn sản xuất 2 loại sản phẩm A và B bằng các loại nguyên liệu I, II và III. Chi
phí sản xuất cho một đơn vị sản phẩm được cho trong bảng sau:
Sản phẩm A B
Nguyên liệu
I 2 1
II 1 2

Trang: 2/57
Bài Giảng Lý Thuyết Tối Ưu
III 0 1
 I 8

Giả sử công ty có lương dự trữ nguyên liệu (đơn vị ):  II 7 (Đơn vị nguyên liệu).
III 3
Tiền lãi của 1 đơn vị sản phẩm loại A và B tương ứng là: 4 và 5 (đơn vị tiền tệ). Cần lập kế
hoạch sản xuất để cho công ty thu được lãi nhiều nhất với điều kiện hạn chế về nguyên liệu như trên.
Kí hiệu x1 và x2 tương ứng là số lượng sản phẩm loại A và B cần sản xuất. Mô hình toán học
của bài toán trên có dạng một bài toán QHTT:
f(x) = 4x1 + 5 x2  max
 2x1  x 2  8
 x1  2x 2  7
với điều kiện  x2  3

 1 2  0
x , x

Như vậy, bài toán lập kế hoạch sản xuất tổng quát có dạng:
n
f (x)   c j x j  max
j1

n
 a ij x j  bi ,i  1, m
 j1
 x  0, j  1, n
 j

trong đó: + xj : Số sản phẩm loại j ( j  1, n ) cần sản xuất ;


+ cj : Tiền lãi của một đơn vị sản phẩm loại j ;
+ aij : Suất chi phí nguyên liệu loại i( i  1, m ) cho một đơn vị sản phẩm loại j ;
+ bi : lượng dự trữ nguyên liệu loại i.

1.2.2 Bài toán vận tải


 Có m kho hàng chứa cùng một loại hàng hoá được đánh số thứ tự i  1, m gọi là điểm phát
thứ i. Lượng hàng chứa tại điểm phát thứ i là ai;
 Có n điểm tiêu thụ loại hàng hoá trên được đánh số thứ tự j  1, n gọi là điểm thu thứ j;
Điểm thu thứ j có nhu cầu tiêu thụ hàng là bj .
 Biết cij là cước phí vận chuyển 1 đơn vị hàng hoá từ điểm phát thứ i điểm thu thứ j ( i  1, m ;
j  1, n ).
Hãy lập kế hoạch vận chuyển từ các điểm phát đến các điểm thu sao cho chi phí vận chuyển là
ít nhất với điều kiện: Các điểm phát phải phát hết hàng và các điểm thu thì thoả mãn đủ nhu cầu.
Đặt xij là lượng hàng cần vận chuyển từ điểm phát Ai đến điểm thu Bj ( i  1, m ; j  1, n ). Khi đó
mô hình toán học của bài toán vận tải (BTVT) có dạng:
m n
F  X    cij xij  min
i 1 j 1

Trang: 3/ 57
Bài Giảng Lý Thuyết Tối Ưu
 x  a i  1,m n

j 1
ij i

m
với điều kiện: 
  xij  b j j  1,n
 i 1
 x ij  0 i  1,m ; j  1,n


1.3 KHÔNG GIAN EUCLIDE n-CHIỀU TRÊN TRƯỜNG SỐ THỰC
1.3.1 Tích vô hướng của 2 vector
Tích vô hướng trên không gian vector V là một hàm xác định trên VV thoả mãn:
i) <x, y> = <y, x> x,y V
ii) <x + y,z > = < x,z> + <y , z> x,y,z V
iii) <x,y > = <x,y> = <x,y> x,y V , R
iv) <x,x>  0 ; <x,x> = 0  x= 0
Không gian vector V hữu hạn chiều với một tích vô hướng gọi là một không gian Euclide.
Không gian Euclide Rn là không gian vector Rn với tích vô hướng Euclide định nghĩa như sau:
n
 x, y  :  x1 y1  x2 y2  x3 y3  .. .  xn yn   xi yi
i 1
1.3.2 Chuẩn (độ đài) của vector
n
Chuẩn Euclide của vector x R là: n x   x,x   x
i1
2
i

 Các tính chất của chuẩn


i) xRn : x  0 , x = 0  x=0
ii) x,yRn: xy  x + y
iii) xRn, R x   . x
- Khoảng cách giữa 2 vector x,yRn là số thực: d(x,y) := x  y
- Nếu <x,y> = 0 ta nói 2 vector x và y trực giao với nhau.

1.3.3 Siêu phẳng và nửa không gian


Cho vector aRn và số thực , siêu phẳng P trong không gian Rn là tập


P  x  R n | a,x   
Nếu  = 0 thì P là một không gian con n-1 chiều. Mỗi siêu phẳng P chia không gian Rn thành
2 nửa không gian:

P1  x  R n | a,x    : Nửa không gian đóng
P2   x  R n | a,x   : Nửa không gian mở
1.3.4 Đa tạp tuyến tính
Định nghĩa 1.2 Giả sử A =(aij)mxn , bRm và rank(A) = m khi đó tập:
A   x  R n | Ax  b

Trang: 4/57
Bài Giảng Lý Thuyết Tối Ưu
được gọi là 1 đa tạp tuyến tính có thứ nguyên là r = n-m.
Nếu b=0 thì D là một không gian con r chiều.
Như vậy 1 siêu phẳng là 1 đa tạp tuyến tính có thứ nguyên n-1, một đường thẳng là một đa tạp
tuyến tính có thứ nguyên là 1, một điểm là đa tạp tuyến tính có thứ nguyên 0, không gian Rn là một
đa tạp tuyến tính có n thứ nguyên.
Thứ nguyên của một tập hợp là thứ nguyên của đa tạp nhỏ nhất chứa nó.
1.4 CƠ SỞ GIẢI TÍCH LỒI
1.4.1 Đường thẳng đi qua 2 điểm

Cho 2 điểm a và bRn, đường thẳng đi qua a và b là tập    x  R n | x  a  1    b,   R .

Chú ý:
 
+ 1  x  R n | x  a  1    b,  1 , kí hiệu là [a, ): Nửa đường thẳng xuất phát từ a.
+  2   x  R n | x  a  1    b,  0 , kí hiệu là [b, ): Nửa đường thẳng xuất phát từ b.
+  3   x  R n | x  a  1    b,0    1 , kí hiệu là [a,b]: Đoạn thẳng nối a với b.

1.4.2 Tập hợp lồi


 Định nghĩa 1.1 Tập C được gọi là một tập lồi nếu x, y  C thì [0,1] x+(1-)yC.
Nghĩa là nếu x,y C thì C chứa cả đoạn thẳng nối x và y.
Thứ nguyên của tập lồi là thứ nguyên của đa tạp tuyến tính nhỏ nhất chứa nó.
Thí dụ về các tập lồi : Rn, không gian con của Rn, siêu phẳng, nửa không gian, đoạn thẳng, đa
tạp tuyến tính...

Các tập lồi Các tập không lồi

 Định lí 1.1 Giao của 2 tập lồi là tập lồi


Chứng minh. Giả sử A và B là 2 tập lồi bất kì. Đặt C = AB. Ta cần chứng minh C – lồi.
Thật vậy, x, y  C ,   [0,1] v = x + (1-)y  A do C  A và A lồi ; Mặt khác, ta có
vB do C  B và B lồi. Do đó v  AB =C (đpcm).

1.4.3 Tổ hợp lồi


Cho họ S gồm m vector S = {a1 , a2 , a3,... am } Rn . Tổ hợp lồi của họ S là biểu thức:

Trang: 5/ 57
Bài Giảng Lý Thuyết Tối Ưu
m m
x :=  i x i với i 0 , i  1, m và
i 1
 i 1
i =1

Tập các tổ hợp lồi của S được gọi là bao lồi (convex hull) của S, kí hiệu conv(S).
Từ định nghĩa trên ta thấy đoạn thẳng [a,b] là bao lồi của 2 điểm a và b và cũng là tập lồi nhỏ
nhất chứa a và b.
 Định lý 1.2 Nếu X là tập lồi thì nó chứa tổ hợp lồi của một số điểm bất kỳ của nó.
Chứng minh. (Bằng phương pháp qui nạp theo m). Giả sử X là tập lồi và x1 ,x2 , x3 ,... xm X.
m m
Đặt x =  i x i với i 0 , i  1, m và
i 1

i 1
i =1. Ta cần chứng minh x  X.

Thật vậy:
- Với m =2 ta có x = 1x1+ 2x2 với 1 ,2  0 và 1 + 2 =1. Suy ra x= 1 x1 + (1-1) x2 [x1,
x2]. Do đó x X.
m 1 m 1
- Giả sử định lý đúng cho m-1 điểm, tức là  i x i với i 0 , i  1, m  1 và
i 1

i 1
i =1. Đặt
m 1 m 1
i m m 1
i
= 
i 1
i ta có  i 1
=1 và m =1- 0 khi đó x =  xi 1
i i = 
i 1 
xi +(1-)xm

 m 1
Do giả thiết qui nạp ta có  i xi  X , hơn nữa và xm  X nên x X (đpcm).
i 1 
1.4.4 Nón lồi
 Định nghĩa 1.2 Tập G  Rn được gọi là nón có đỉnh x0  Rn nếu xG thì x0 + (x-x0)G
với  0. Nghĩa là nếu xG thì nửa đường thẳng [x0,) chứa x cũng nằm trong G.

Cho G là một nón đỉnh x0:


+ Nếu x0= 0 thì G được gọi là một nón đỉnh 0. Nghĩa là :
nếu x G thì x  G với  0
+ Nếu G là một tập lồi thì G được gọi là một nón lồi.
 Định lý 1.3 G là một nón lồi đỉnh 0 khi và chỉ khi nó thoả mãn 2 điều kiện
a. x  G,   0  x  G
b. x,y  G  x+y  G
Chứng minh.
Điều kiện cần. Giả sử G là nón lồi đỉnh 0.
Do G là nón đỉnh x0=0 nên có a).
1 1 1
Do G lồi nên x,yG  x + yG  (x +y) G . Do a) nên x+yG  có b).
2 2 2
Điều kiện đủ. Do a) nên G là nón đỉnh 0.
Trang: 6/57
Bài Giảng Lý Thuyết Tối Ưu
Giả sử x,yG và  [0,1]. Do a) nên x , (1-)yG. Do b) nên x + (1-)yG  G lồi.
Vậy G là nón lồi.

1.4.5 Cấu trúc tập lồi


 Định nghĩa 1.3. Cho X là một tập lồi đóng trong không gian Rn. Tập con F của X được gọi là
một diện của F nếu F lồi và bất kỳ một đoạn thẳng nào nhận một điểm x của F làm điểm
trong thì đoạn thẳng đó cũng nằm trong F.
- Diện có thứ nguyên 0 được gọi là đỉnh hay điểm cực biên của X. Nếu x là một điểm cực biên
của X thì không có đoạn thẳng nào của X nhận x làm điểm trong. Tập các điểm cực biên của X gọi là
viền của X và kí hiệu là V(X).
- Diện có thứ nguyên 1 được gọi là cạnh của X.
Nhận xét.
 X là một diện của X. Nếu X Rn thì X có thể có n+1 loại diện có thứ nguyên từ 0 đến n.
 Nếu E là một diện của F và F là một diện của X thì E cũng là một diện của X.
 xX đều có ít nhất 1 diện của X chứa nó.
x1
Thí dụ 4.1

X D
x2 x3
x4
 Mọi điểm biên của X đều là điểm cực biên
 x1,,x2,x3,x4 là các điểm cực biên của D ( Diện có thứ nguyên 0)
 [x1,x2], [x3,x4] ... là các cạnh của D (Diện có thứ nguyên 1).
 Tam giác F=( x1,,x2,x3) là diện có thứ nguyên 2.
 D là diện có thứ nguyên 3
 Định lý 1.4 Giả sử X là tập lồi đóng , giới nội và x0X . Khi đó x0 là tổ hợp lồi của một số
hữu hạn các điểm cực biên của X.
Chứng minh. ( Bằng phương pháp qui nạp theo thứ nguyên của diện chứa X)
Nếu x0 thì định lý hiển nhiên đúng vì x0= x0;
Nếu x0 nằm trên một cạnh ứng với 2 đỉnh a và b thì rõ ràng    [0,1]: x0= a + (1-)b;
Giả sử đúng với x0F là diện có thứ nguyên n-1. Ta cần chứng minh rằng định lý vẫn đúng
khi x0 thuộc 1 diện có thứ nguyên n, tức là x0 là điểm trong của X. Thật vậy, qua x0 ta kẻ 1 đường
thẳng bất kì. Do X lồi đóng, đường thẳng nó cắt biên của X tại đúng 2 điểm a và b. Khi đó a nằm
trên diện có thứ nguyên r <n và b nằm trên diện có thứ nguyên s < n. Theo giả thiết qui nạp ta có:
m m
a=  i x i , i  0,i  1, m và
i 1

i 1
i 1
m m
b=   jx j ,  j  0, j  1, m và
j1

j1
j 1

Trong đó xi với i  1, m là các điểm cực biên của X.


Vì x0 là điểm trong của [a,b] nên    [0,1]:

Trang: 7/ 57
Bài Giảng Lý Thuyết Tối Ưu
m m m m
x0 = a + (1-)b =   i x i + (1-)   j x j =  i x i +  (1  ) jx j
i 1 j1 i 1 j1

m m
Do i0 và (1-)j0 và  i +  (1   ) j = +(1-) = 1 nên x0 là tổ hợp lồi của các điểm
i 1 j1
i
cực biên x , i  1, m (đpcm).

1.4.6 Tập lồi đa diện và đa diện lồi


 Định nghĩa 1.4
+ Tập lồi đa diện (hay khúc lồi) là giao của một số hữu hạn các nửa không gian đóng.
+ Đa diện lồi là một tập lồi đa diện giới nội.
Thí dụ 4.2 x0 A
P1

B C
P2 d1 d3
d2 D
Tập lồi đa diện Tập lồi đa diện Đa diện lồi 4 đỉnh,
0 đỉnh, 1 cạnh 1 đỉnh, 3 cạnh 6 cạnh và 4 diện 2 thứ nguyên
Nhận xét:
 Tập lồi đa diện có thể có điểm cực biên hoặc không, nếu có thì chỉ có 1 số hữu hạn điểm cực
biên.
 Đa diện lồi luôn luôn có điểm cực biên và số điểm cực biên là hữu hạn.
 Nón lồi đa diện có 1 số hữu hạn cạnh.
Giả sử tập lồi đa diện D là giao của m nửa không gian đóng cho bởi các bất phương trình:
< ai, x>  bi với i  1, m , ai =(ai1, ai2,...,ain)Rn
Khi đó m bất phương trình có thể viết lại dưới dạng ma trận Ax  b và tập D ={ xRn | Ax  b},
 x1   b1 
 x2  b 
trong đó : A =(aij)mxn x =   Rn và b =  2  Rm
 ...   ... 
x
 n  bm 
 Định lý 4.5 Nếu x0 là một đỉnh của tập lồi đa diện D, thì D được chứa trong nón G có đỉnh x0
và có các cạnh sinh bởi các cạnh của D kề với x0.
Chứng minh.
Đặt G’={x0 + (x-x0): xD, 0}. Dễ thấy G’ là nón đỉnh x0 và D G’, nên G  G’.
Để chứng minh G = G’ ta cần chứng minh G G’.
Xét một cạnh tuỳ ý của G’. Vì ’ đi qua 1 điểm của D khác với x0 nên  = ’D là đoạn
thẳng hoặc nửa đường thẳng nằm trong D nên ’ là một cạnh của D kề với x0. Vì vậy ’ cũng là
cạnh của G. Như vậy mọi cạnh của G đều là cạnh của G’, do đó G G’. Từ đó suy ra G =G’ và do
đó D G. (đpcm)

Trang: 8/57
Bài Giảng Lý Thuyết Tối Ưu
Chương 2. BÀI TOÁN QUI HOẠCH TUYẾN TÍNH

2.1 BÀI TOÁN THỰC TẾ VÀ Ý NGHĨA HÌNH HỌC


2.1.1 Bài toán lập kế hoạch sản xuất tối ưu
Mô hình toán học của bài toán có dạng:
n
F(x)   c j x j  max (2.1)
j1
n

a x
j1
ij j  bi ,i  1, m (2.2)

x j  0, j  1, n (2.3)

Hay dạng ma trận: F  x  c,x  max


Ax  b , x  0
Bài toán (2.1)-(2.3) có hàm mục tiêu và các ràng buộc đều là hàm bậc nhất của các biến xj nên
đây là một bài toán QHTT.
Vector xRn thoả mãn các điều kiện (2.2)-(2.3) được gọi là phương án chấp nhận được, nói
gọn là phương án. Tập tất cả các phương án D   x  R n | Ax  b, x  0 được gọi là miền chấp nhận
được. Dễ thấy D là một tập lồi đa diện. Nếu D giới nội thì D là một đa diện lồi. Các bài toán thực tế
luôn luôn có thể giả thiết D là giới nội và vì vậy người ta thêm vào một ràng buộc có dạng:
x1  x2  ...  xn  L với L là một số dương đủ lớn.
Nếu D không rỗng và giới nội thì bài toán luôn luôn có lời giải vì f(x) là hàm bậc nhất, do đó
liên tục và đạt cực trị (cực đại hoặc cực tiểu) trên trên tập lồi đóng và giới nội D. Nếu D đóng và
không giới nội thì điều kiện để bài toán có lời giải là hàm f(x) bị chặn trên đối với bài toán max
(hoặc bị chặn dưới đối với bài toán min). Nghĩa là:  một số K ,xD: f(x) K (hoặc f(x)  K) . Khi
ấy x*D, xD: f(x*) f(x). Vector x* gọi là phương án tốt nhất hay phương án tối ưu và
f*=f(x*) gọi là giá trị tối ưu của bài toán.

2.1.2 Thí dụ thực tế và ý nghĩa hình học


Xét bài toán lập kế hoạch sản xuất sau: F(x) = 4x1+ 5x2  max
 2x1  x 2  8
 x1  2x 2  7
 x 3
 2
 x1  0, x 2  0

Trang: 9/ 57
Bài Giảng Lý Thuyết Tối Ưu
2.2 BÀI TOÁN QUI HOẠCH TUYẾN TÍNH DẠNG CHÍNH TẮC
2.2.1 Mô hình toán học
Phần này ta nghiên cứu bài toán QHTT có dạng sau:
n
F ( x)   c j x j  min (2.4)
j 1
n

a x
j 1
ij j  bi , i  1,m (2.5)

x j  0, j  1,n (2.6)

Hay viết dưới dạng ma trận: F  x  c,x  min

Ax  b , x  0
Trong bài toán QHTT trên các ràng buộc, không kể các ràng buộc về dấu của biến, đều là các
ràng buộc chặt (ràng buộc dạng đẳng thức). Không làm mất tính tổng quát ta có thể thêm các giả
thiết: b 0 , rank(A)=m < n.
Do đó, tập các phương án chấp nhận được D={xRn | Ax =b, x  0} là đa diện có thứ nguyên
n-m. Nếu D có đỉnh thì chỉ có một số hữu hạn đỉnh.

2.2.2 Các định lý cơ bản


 Định lý 2.1 Nếu hàm F(x) đạt cực tiểu tại một điểm duy nhất x* thì x* phải là một đỉnh của D.
Chứng minh. Giả sử x * không phải là một đỉnh của D. Khi đó trong D có một đoạn thẳng [a,b]
nhận x* làm điểm trong :
 (0,1) x* = a +(1-)b với a,b D
Do x* là điểm cực tiểu duy nhất nên F(a), F(b) > F(x *), suy ra :
F(x* ) = F[a +(1-)b] = F(a) +(1-)F(b)
> F(x*) +(1-)F(x*) = F(x*)
Mâu thuẫn nhận được chứng tỏ x* phải là điểm cực biên của D. (đpcm)
 Định lý 2.2 Nếu hàm F(x) đạt cực tiểu tại một vector x* là điểm trong của [a,b] trong D thì
F(x) đạt cực tiểu tại mọi điểm trên đoạn thẳng đó.
Chứng minh. Giả sử hàm F(x) đạt cực tiểu tại một vector x* là điểm trong của [a,b] trong D
và x là vector bất kỳ trong [a,b]. Khi đó, nếu x* [a,x] thì :
 (0,1) x* = a +(1-)x
Do x* là điểm cực tiểu nên F(a), F(x)  F(x *), suy ra :
F(x* ) = F[a +(1-)x] = F(a) +(1-)F(x)
 F(x*) +(1-)F(x*) = F(x*)
Suy ra F(x ) = F(x*) .
Tương tự, nếu x* [x,b] ta cũng chứng minh được F(x) = F(x*)
Vì vậy x[a,b] F(x ) =F(x*) (đpcm)
 Hệ quả. Nếu bài toán QHTT có phương án tới ưu và tập D có đỉnh thì F(x) đạt giá trị tối ưu
tại ít nhất một đỉnh của D.

Trang: 10/57
Bài Giảng Lý Thuyết Tối Ưu
Định lý 2.2 và hệ quả của nó rất quan trọng trong việc xây dựng thuật toán giải QHTT. Do
khẳng định nếu bài toán có lời giải tối ưu thỉ phải có lời giải tối ưu là đỉnh của đa diện ràng buộc D,
mặt khác do D là tập lồi đa diện nên nó chỉ có một số hữu hạn đỉnh nên ta tập trung vào việc tìm
phương án tối ưu của bài toán trên các đỉnh của đa diện.

2.3 THUẬT TOÁN ĐƠN HÌNH (Simplex Algorithm)


2.3.1 Đường lối chung
Thuật toán đơn hình bao gồm các bước cơ bản như sau:
Bước 1. Tìm phương án cực biên xuất phát
Kết quả của bước này là một trong hai khả năng:
 Phát hiện bài toán không có phương án.
 Tìm được phương án cực biên x0D.
Bước 2. Kiểm tra tiêu chuẩn tối ưu đối với phương án tìm được.
Có hai khả năng có thể xảy ra:
 Nếu x0 thỏa mãn tiêu chuẩn tối ưu : Dừng thuật toán, đặt x* = x0 và tính F* =F(x*).
 Nếu x0 không thỏa mãn tiêu chuẩn tối ưu , thì chuyển sang bước 3.
Bước 3. Cải tiến phương án
- Tìm phương án cực biên x1 tốt hơn phương án x0 , tức là F(x1) < F(x0).
- Lặp lại bước 2.
Do tập ràng buộc của bài toán là tập lồi đa diện nên nó chỉ có một số hữu hạn đỉnh. Vì vậy
thuật toán sẽ kết thúc sau một số bước lặp, kết quả là hoặc tìm được phương án tối ưu x* hoặc phát
hiện bài toán không có phương án tối ưu.

2.3.2 Cơ sở thuật toán


Xét bài toán QHTT dạng chính tắc: F  x  c,x  min
x  D   x  R n | Ax  b, x  0

với giả thiết b 0 và rank(A)=m < n.


Bước 1. Tìm phương án cực biên xuất phát x0D
Do x0 là phương án cực biên nên nó phải thỏa mãn chặt n ràng buộc độc lập tuyến tính. Do x0
là một phương án nên x0 đã thỏa m phương trình ràng buộc Ax=b, nên nó còn phải thỏa mãn chặt
thêm n-m ràng buộc dạng xj = 0 nữa. Không làm mất tính tổng quát, giả sử :
xm0 1  xm0  2  ...  xn0  0 (2.7)
Khi đó hệ phương trình để xác định m thành phần còn lại của x0 là:
 a11 x1  a12 x2 ... a1m xm  b1
 a x a x ... a2 m xm  b2
 21 1 22 2
 (2.8)
 ... ... ... ...  ...
am1 x1  am 2 x2 ... amm xm  bm

Ký hiệu J ={1,2,3,…m}: Tập chỉ số cơ sở của x0;

Trang: 11/ 57
Bài Giảng Lý Thuyết Tối Ưu
 a1j 
 
 a2 j 
Aj =   j=1,n : Cột thứ j của ma trận A, vector cơ sở;
 ... 
 a mj 
 
B=(A1,A2,…,Am) =(Aj)jJ: Ma trận cơ sở và xJ = ( xj) jJ ;
Các biến xj với j J: Gọi là các biến cơ sở ; xj với j J : Gọi là các biến phi cơ sở.
Khi đó hệ phương trình (2.8) có thể viết thành BxJ = b.
Do giả thiết rank(B) = rank(A) = m nên x 0J là nghiệm của hệ (5.8) : x 0J =B-1b 0 và

x0 = ( x10 , x 02 , x 30 ,..., x 0m , 0,0.0,..,0)

Nếu x 0j  0 với j  J thì x0 gọi là phương án cực biên không suy biến (không thoái hóa); Ngược lại
nếu jJ để cho x 0j  0 thì x0 gọi là phương án cực biên suy biến.

Từ các phân tích trên ta có nhận xét như sau: Giả sử ta tìm được tập J  {1,2,3,…,n} sao cho
||J|| = m và B=(Aj)jJ là ma trận không suy biến. Khi đó:
- Nếu B-1b 0 thì B gọi là một cơ sở chấp nhận được của bài toán QHTT, nó xác định một
phương án cực biên;
- Nếu điều kiện B-1b  0 không thỏa mãn thì B không phải là cơ sở chấp nhận được của bài
toán, do đó ta phải chọn lại m cột độc lập tuyến tính khác của A…cứ như vậy cho đến khi ta tìm
được cơ sở chấp nhận được.
Cách làm này mang nhiều tính may rủi, tốn công sức.

Bước 2. Kiểm tra tiêu chuẩn tối ưu


Giả sử ta đã tìm được phương án cực biên x0 tương ứng với cơ sở B=(Aj)jJ . Khi đó
x 0j  0 j  J và x 0k  0 k  J.

Do (Aj)jJ là một họ m vector độc lập tuyến tính trong không gian Rm, nên nó tạo thành một cơ sở
trong không gian Rm. Ta có thể phân tích các vector Ak với k  J theo cơ sở này:
Ak =  v jk A j k J (2.9)
jJ

Đặt  k   v jk c j  c k k=1,2,…: Các số kiểm tra (2.10)


jJ

 Định lý 2.3 (Công thức số gia của hàm mục tiêu). Nếu x0 là phương án cực biên tương ứng
với cơ sở B=(Aj)jJ , thì xD ta có:
xj = x 0j   v jk x k j J (2.11)
kJ

F(x) = F(x )    k x k
0
(2.12)
kJ

Chứng minh…

Trang: 12/57
Bài Giảng Lý Thuyết Tối Ưu
 Ý nghĩa của các công thức (2.11) và (2.12)
Đặt xj = x j  x 0j    v jk x k , jJ : Số gia của biến xj
kJ

F(x)= F(x) - F(x 0 )     k x k : Số gia của hàm mục tiêu.


kJ

Từ định lý trên, ta nhận xét rằng số gia của các biến cơ sở và số gia của hàm mục tiêu là các hàm
tuyến tính của các biến phi cơ sở.
 Định lý 2.4 (Tiêu chuẩn tối ưu). Nếu x0 là phương án cực biên tương ứng với cơ sở
B=(Aj)jJ , thì điều kiện để x0 là phương án tối ưu là:
k  0 với  k  J (2.13)
0 0
Nều x thỏa mãn tiêu chuẩn (5.13) thì x là phương án tối ưu của bài toán QHTT . Còn nếu nó
không thỏa mãn tiêu chuẩn (5.13) thì  k  J k >0, ta cần cải tiến phương án. Tuy nhiên định lý sau
đây giúp ta nhận biết bài toán không có phương án tối ưu.
Chứng minh.
 Định lý 2.5 (Tiêu chuẩn nhận biết bài toán không có phương án tối ưu). Giả sử x0 là phương
án cực biên tương ứng với cơ sở B=(Aj)jJ. Nếu  k  J k >0 và vjk  0 với  j  J thì bài
toán không có phương án tối ưu.
Chứng minh.

Bước 3. Cải tiến phương án


Giả sử x0 là phương án cực biên tương ứng với cơ sở B=(Aj)jJ . Nếu  k  J để k >0 thì x0
không phải là phương án tối ưu. Ta cần tìm phương án cực biên x1 tốt hơn x0: F(x1) < F(x0). Gọi B1
là cơ sở tương ứng với x1. Để đơn giản ta tìm x1 là một đỉnh kề của x0 , nghĩa là hai cơ sở tương ứng
chỉ khác nhau đúng 1 vector:
B1 = B\ {Ap}{Aq} p J và q J (2.14)
Vấn đề còn lại là chọn Ap và Aq như thế nào.
a. Chọn vector Aq đưa vào cơ sở mới B1
Do tiêu chuẩn tối ưu là k  0 với  k  J nên có thể chọn vector Aq bất kỳ tương ứng với
q>0. Tuy nhiên để tăng tốc độ giảm giá trị hàm mục tiêu ta chọn :
q = max  k (2.15)
kJ

Lúc này Aq tương ứng với phương của cạnh có tốc độ giảm của hàm hàm mục tiêu nhanh nhất vì:
F(x1) = F(x 0 )    k x k = F(x0) -  q x1q
kJ
Có hai trường hợp có thể xảy ra:
- Nếu vjq 0 với  j J thì theo định lý 5.5 bài toán không có phương án tối ưu.
- Nếu  j J vjq >0 thì chuyển sang việc chọn Ap .
b. Chọn vector Ap đưa ra khỏi B
x p0 x 0j
Chọn Ap tương ứng với  min (2.16)
v pq v jq 0 v jq
Trang: 13/ 57
Bài Giảng Lý Thuyết Tối Ưu
Tính hợp lý của việc chọn Ap như trên được giải thích như sau: Việc chọn Ap phải bảo đảm
1
x 0. Theo công thức (2.11) ta có :
x1j  x 0j   v jk x1k x 0j  v jq x1q  0 jJ1= J\{p}{q} (2.17)
kJ

Nếu vjq  0 thì đương nhiên x1j  0


x 0j x 0p x 0j
Nếu vjq >0 từ (5.17) suy ra x1q  , vì vậy x1q =  min
v jq v pq v jq 0 v jq
2.4 BẢNG ĐƠN HÌNH
2.4.1 Bảng đơn hình xuất phát
Xét bài toán QHTT dạng chính tắc: F  x  c,x  min
x  D   x  R n | Ax  b, x  0
Giả thiết : b 0 , rank(A)=m < n.
Giả sử đã tìm được cơ sở xuất phát B=(Aj)jJ . Lần lượt tính:
x 0J =B-1b H = B-1A = (B-1A1, B-1A2,…, B-1An)=(V1,V2,…,Vn)
Nếu J = {1,2,3,…,m} bảng đơn hình xuất phát có dạng.
 Lập bảng đơn hình có dạng:
c1 c2 ... cm cm+1 ... ck ... cq ... cn hj
B cJ xJ A1 A2 ... Am Am+1 ... Ak ... Aq ... An vjq>0
A1 c1 x1 1 0 0 v1,m+1 v1,k v1,q v1,n
A2 c2 x2 0 1 0 v2,m+1 v2,k v2,q v2,n
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Aj cj xj 0 0 0 vj,m+1 vj,k vj,q vj,n xj
v jq
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Ap cp xp 0 0 0 vp,m+1 vp,k vp,q vp,n xp
v pq
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Am cm xm 0 0 1 vm,m+1 vm,k vm,q vm,n
k 0 0 ... 0 m+1 ... k ... q ... n

Với các số kiểm tra được tính như sau: k=  v jk c j  ck nếu k J và k =0 nếu kJ.
jJ
 Sử dụng bảng đơn hình
- Nếu  kJ k  0 thì dừng và x0 là phương án tối ưu;
Ngược lại cần chọn Aq đưa vào B1 theo qui tắc:  q  max  k
k J
- Nếu trên cột Aq : vjq  0  jJ thì dừng: bài toán không có phương án tối ưu
x 0j x 0p
Ngược lại tính hj = và chọn Ap đưa ra khỏi B theo qui tắc : hp =  min h j
v jq v pq v jq 0

Gọi AP là hàng xoay và cột Aq là cột xoay và vpq là phần tử xoay. Khi đã xác định được phần
tử xoay, ta lập bảng đơn hình mới với vớ B1 đã tìm được.
Trang: 14/57
Bài Giảng Lý Thuyết Tối Ưu

2.4.2 Qui tắc chuyển bảng theo cơ sở mới


Việc tính toán các số liệu trong bảng đơn hình mới có thể làm như đối với cơ sở B. Tuy nhiên
cachs làm như vậy rất tốn công sức. Chỉ cần chú ý rằng cơ sở mới chỉ khác cơ sở cũ đúng một vector,
ta có công thức đổi bảng như sau:
Định lý 2.6
 0 x 0p  v pk
xj  v jq nê'u j  J1 \{q} v jk  v jq nê'u j  J1 \{q}
 v pq  v pq
xj   0
1
v jk  
1
v
 xp nê'u j=q  pk nê'u j=q
 v pq  v pq

v pk
1k   k   q k  J1
v pq
Chứng minh.
Cách tính này cũng giống như phương pháp Gauss để giải hệ phương trình tuyến tính.
Thí dụ 2.1 Giải bài toán QHTT bằng phương pháp đơn hình với cơ sở xuất phát B=(A1,A2,A3)
F(x) = x1 + 3x2 + 2x3 - 3x4 + 6x5  min
 x1  x3 3 x4  x5  9
 x1  x2  x4  x5  7
  x2  x3 2 x4 4 x5  6

 x j  0; j  1,5
1 0 1 1 1 1
1
Giải. Ta có B=(A1,A2,A3) =  1 1 0  . Tính B =  1
-1
1 1
0 1 1 2 1 1 1 
  
1 1 1 9   5  0 0 1 2 
1  1
1
   
xJ  B b  1 1 1 7  2 và H=B A=  0 -1
1 0 0 3 
2  1 1 1  6   4  0 0 1 2 1 
     
Lập bảng đơn hình:

B CJ xJ 1 3 2 -3 6 hJ
A1 A2 A3 A4 A5
A1 1 5 1 0 0 1 -2 5
A2 3 2 0 1 0 0 3
A3 2 4 0 0 1 2 1 2
k 0 0 0 8 3
A1 1 3 1 0 -1/2 0 -5/2
A2 3 2 0 1 0 0 3
A4 -3 2 0 0 1/2 1 1/2
k 0 0 -4 0 -1

Bài toán có phương án tối ưu x* = ( 3,2,0,2,0) F* =F(x*) = 1x3 + 3x2 - 3x2 = 3

Trang: 15/ 57
Bài Giảng Lý Thuyết Tối Ưu
2.5 PHƯƠNG PHÁP ĐƠN HÌNH HAI PHA
2.5.1 Ý tưởng của phương pháp
Xét bài toán QHTT dạng chính tắc: F  x  c,x  min
x  D   x  R n | Ax  b, x  0
Giả sử đối với bài toán này ta chưa biết trước một cơ sở xuất phát nào, cũng chưa biết các ràng
buộc có độc lập tuyến tính hay không. Vì vậy quá trình giải bài toán cần được chia làm 2 pha:
 Pha I : Tìm phương án cực biên xuất phát
 Pha II: Giải bài toán bằng phương pháp đơn hình từ phương án xuất phát tìm được.
Pha II đã được nghiên cứu trong mục trên. Ta cần quan tâm đến việc giải quyết pha I.

2.5.2 Pha I: Tìm phương án cực biên xuất phát


Giả sử b  0. Do tập ràng buộc D   x  R n | Ax  b, x  0 không phụ thuộc vào hàm mục
tiêu nên ta giải bài toán QHTT phụ :
G( X)= xn+1 + xn+2 + xn+3 + … +xn+m  min
X  {(x,y)Rn+m | Ax +y = b , x0, y 0 }
 xn 1 
 
x
Với y   n  2  gọi là các biến phụ, biến pha hay biến giả.
 ... 
 
 xn  m 
Rõ ràng, do giả thiết b  0, bài toán có cơ sở xuất phát B=(An+1,An+2,…,An+m) có dạng ma
trận đơn vị và hàm mục tiêu của bài toán phụ bị chặn dưới bởi 0 nen bài toán luôn luôn có lời giải tối
ưu. Do đó giải bài toán QHTT phụ ta được lời giải X* =(x*,y*) với cơ sở tối ưu B*.
 Định lý 2.7 Giả sử bài toán QHTT phụ ta được lời giải tối ưu X* =(x*,y*). Khi đó:
i) Nếu y*  0 thì bài toán gốc không có phương án: D =
ii) Nếu y* = 0 thì bài toán gốc có phương án cực biên xuất phát là x*
 Các tình huống xảy ra khi y* = 0
a) Nếu B* chỉ chứa các cột của biến gốc: Nghĩa là nó chỉ chứa các cột Aj với j ≤ n. Khi đó x* là
một phương án tương ứng với cơ sở B* của bài toán gốc, nên ta có thể chuyển sang pha II.
b) Nếu B*có chứa các cột của biến pha: Nghĩa là nó có chứa các cột Ap với p> n. Khi đó B*
không phải là cơ sở của bài toán gốc nên ta cần tìm cơ sở khác, nghĩa là tìm cột Aq với q≤ n
thay thế Ap. Có 2 trường hợp:
 Nếu vpj = 0 với  j ≤ n thì ràng buộc p của bài toán là tổ hợp tuyến tính các ràng buộc còn
lại, nên có thể xóa Ap trong B*;
 Nếu  q≤ n mà vpq≠0 (không cần vpq >0) thì dùng vpq làm phần tử xoay để thay Ap bởi Aq.
... Tiếp tục như vậy đến khi ta được cơ sở của bài toán gốc thì chuyển sang pha 2.

Thí dụ 2.2 Giải bài toán QHTT


F(x) = x1 -2x2 + x3 - 5x4  min

Trang: 16/57
Bài Giảng Lý Thuyết Tối Ưu
 x1 2 x2  x3  15
 x1  x2  x3  x4  20
2 x  x3 2 x4  52
 1
 x j  0; j  1, 4

Giải. Lập bài toán phụ:


G(x) = x5 + x6 + x7  min
 x1 2 x2  x3  x5  15
 x1  x2  x3  x4  x6  20
2 x  x3 2 x4  x7  52
 1
 x j  0; j  1, 7

Giải bài toán phụ với cơ sở xuất phát B=(A5, A6, A7)

B CJ xJ 0 0 0 0 1 1 1 hJ
A1 A2 A3 A4 A5 A6 A7
A5 1 15 1 -2 -1 0 1 0 0 15
A6 1 20 1 -1 -1 1 0 1 0 20
A7 1 52 2 0 -1 2 0 0 1 26
k 4 -3 -3 3 0 0 0
A1 0 15 1 -2 -1 0 1 0 0
A6 1 5 0 1 0 1 -1 1 0 5
A7 1 22 0 4 1 2 -2 0 1 22/4
k 0 5 1 3 -4 0 0
A1 0 25 1 0 -1 2 -1 2 0
A2 0 5 0 1 0 1 -1 1 0
A7 1 2 0 0 1 -2 2 -4 1
k 0 0 1 2 1 -5 0
A1 0 27 1 0 0 0 1 -2 1
A2 0 5 0 1 0 1 -1 1 0
A3 0 2 0 0 1 -2 2 -4 1
k 0 0 0 0 -1 -1 -1
 Cơ sở tối ưu của bài toán phụ chỉ chứa các cột của biến gốc Chuyển sang pha II.

B CJ xJ 1 -2 1 -5 hJ
A1 A2 A3 A4
A1 1 27 1 0 0 0
A2 -2 5 0 1 0 1
A3 1 2 0 0 1 -2
k 0 0 0 1
A1 1 27 1 0 0 0
A4 -5 5 0 1 0 1
A3 1 12 0 2 1 0
k 0 -1 0 0
Bài toán gốc có phương án tối ưu: x* = ( 27, 0, 12, 5) F* =F(x*) = 1x27 -5x5 +1x12 = 14.
Chú ý khi giải bài toán QHTT bằng phương pháp đơn hình hai pha:
 Không cần lập bài toán phụ mà chỉ cần lập bảng đơn hình cho pha I ngay;

Trang: 17/ 57
Bài Giảng Lý Thuyết Tối Ưu
 Trong bảng đơn hình ở pha I không cần ghi các cột của các biến pha x6, x7, x8 vì chúng
không ảnh hưởng đến quá trình phân tích và giải bài toán.
Thí dụ 2.3 Giải bài toán QHTT
F(x) = 2x1 -3x2 + x3 - 2x4 - x5  min
 x1  x2  x3  x4  x5 5
 x1  x2 2 x3 2 x4 2 x5 8
x  x2 2
 1
 x3  x4  x5 3
 x j  0 ; j  1,5

Giải.
Pha I. Giải bài toán phụ

B CJ xJ 0 0 0 0 0 hJ
A1 A2 A3 A4 A5
A6 1 5 1 1 1 1 1 5
A7 1 8 1 1 2 2 2 4
A8 1 2 1 1 0 0 0
A9 1 3 0 0 1 1 1 3
k 3 3 4 4 4
A6 1 2 1 1 0 0 0 2
A7 1 2 1 1 0 0 0 2
A8 1 2 1 1 0 0 0 2
A3 0 3 0 0 1 1 1
k 3 3 0 0 0
A6 1 0 0 0 0 0 0
A7 1 0 0 0 0 0 0
A1 0 2 1 1 0 0 0
A3 0 3 0 0 1 1 1
k 0 0 0 0 0
Pha II. Giải bài toán gốc.
Cơ sở tối ưu của bài toán phụ có chứa cột A6 và A7 với x6=x7=0, nhưng v6j = v7j = 0 với  j
≤ 5 nên A6 và A7 có thể bỏ được trong cơ sở để chuyển sang pha II.

B CJ xJ 2 -3 1 -2 -1 hJ
A1 A2 A3 A4 A5
A1 2 2 1 1 0 0 0
A3 1 3 0 0 1 1 1
k 0 5 0 3 2
A2 -3 2 1 1 0 0 0
A3 1 3 0 0 1 1 1
k -5 0 0 3 2
A2 -3 2 1 1 0 0 0
A4 -2 3 0 0 1 1 1
k -5 0 -3 0 -1
Bài toán gốc có phương án tối ưu: x* = ( 0, 2, 0, 3,0) F* =F(x*) = -3x2 -2x3 = -12.

Trang: 18/57
Bài Giảng Lý Thuyết Tối Ưu
2.6 PHƯƠNG PHÁP HÀM PHẠT
2.6.1 Mô tả phương pháp
Xét bài toán QHTT dạng chính tắc: F  x  c,x  min
x  D   x  R n | Ax  b, x  0

Giả thiết b  0. Ta chưa biết hạng của ma trận A và tập D có phương án hay không. Để giải bài
toán ta tiến hành như sau:
 Lập bài toán phạt (bài toán M)
FM (x,y) = <c,x) + Mxn+1+Mxn+2+…+Mxn+m  min
 Ax  y  b
DM 
 x  0, y  0
Trong đó y=(xn+1,xn+2,…,xn+m)T  Rn và M >>1.
Các biến xn+1,xn+2,…,xn+m gọi là các biến phạt hay biến giả.
Rõ ràng là bài toán M có cơ sở xuất phát B =(An+1,An+2,…,An+m) dạng ma trận đơn vị, nên ta có
thể lập ngay bảng đơn hình để giải bài toán M. Kết quả của quá trình giải là tìm được một phương án
tối ưu hoặc phát hiện bài toán M không có phương án tối ưu.
 Định lý 2.8 Giả sử bài toán M có lời giải tối ưu X* =(x*,y*). Khi đó:
i) Nếu y*  0 thì bài toán gốc không có phương án: D =;
ii) Nếu y* = 0 thì bài toán gốc có phương án tối ưu là x*.
 Định lý 2.9 Nếu bài toán M không có lời giải tối ưu (tức là FM(x,y) -) thì bài toán gốc
cũng không có phương án tối ưu (tức là F-).

2.6.2 Thí dụ ứng dụng


Thí dụ 2.4 Giải bài toán QHTT bằng phương pháp hàm phạt:
F(x) = -3x1 + x2 + 3x3 - 3x4  min
 x1 2 x2  x3  x4  2
2 x1  x3  x4  6
x  x  x4  9
 1 2

 x j  0; j  1, 4

Giải. Lập bài toán M:


F(x) = -3x1 + x2 + 3x3 - x4 +Mx5 +Mx6 +Mx7  min
 x1 2 x2  x3  x4  x5 2
2 x1  x3  x4 +x6 6
x  x2  x4  x7  9
 1
 x j  0; j  1, 7
Rõ ràng là bài toán M có cơ sở chấp nhận được xuất phát là B=(A5,A6,A7).
 Lập bảng đơn hình giải bài toán M.

Trang: 19/ 57
Bài Giảng Lý Thuyết Tối Ưu
B CJ xJ -3 1 3 -1 M M M hJ
A1 A2 A3 A4 A5 A6 A7
A5 M 2 1 2 -1 1 1 0 0 2
A6 M 6 2 0 -1 -1 0 1 0 3
A7 M 9 1 -1 0 -1 0 0 1 9
k 3 -1 -3 1 0 0 0
M 4 1 -2 -1 0 0 0
A1 -3 2 1 2 -1 1 1 0 0
A6 M 2 0 -4 1 -3 -2 1 0 2
A7 M 7 0 -3 1 -2 -1 0 1 7
k 0 -7 0 -2 -3 0 0
M 0 -7 2 -5 -4 0 0
A1 -3 4 1 -2 0 -2 -1 1 0
A3 3 2 0 -4 1 -3 -2 1 0
A7 M 5 0 1 0 1 1 -1 1
k 0 -7 0 -2 -3 0 0
M 0 1 0 1 0 -2 0
A1 -3 14 1 0 0 0 1 -1 2
A3 3 17 0 -1 1 0 1 -2 3
A4 -1 5 0 1 0 1 1 -1 1
k 0 -5 0 0 -1 -2 2
M 0 0 0 0 -1 -1 -1

Bài toán có phương án tối ưu x* = (14,0,17,5) và F* = -3x14 +3x17-1x5 = 4.


Khi lập bảng đơn hình giải bài toán M cần chú ý:
 Để tiện tính toán ta tách k thành 2 hàng: Một hàng chứa các hệ số tự do và hàng khác chứa
các hệ số của M.
 Trong bảng đơn hình không cần ghi các cột của các biến giả x6, x7, x8 vì chúng không ảnh
hưởng đến quá trình phân tích và giải bài toán bằng phương pháp đơn hình.
Thí dụ 5.5 Giải bài toán QHTT sau đây:
F(x) = x1 - 4x2 - 4x3 - 2x4 +3x5  min
 x1  x2  x3 2 x4  x5  8
2 x 2 x  x4  x5  3
 1 2
x 3x2 2 x3 3x4 2 x5  14
 1
 x j  0, j  1,5

Giải. Do chưa biết cơ sở chấp nhận được nào nên ta áp dụng phương pháp hàm phạt.
B CJ xJ 1 -4 -4 -2 3 hJ
A1 A2 A3 A4 A5
A6 M 8 1 -1 1 2 1 4
A7 M 3 2 2 0 1 1 3
A8 M 14 1 -3 2 3 2 14/3
k -1 4 4 2 -3
M 4 -2 3 6 4
A6 M 2 -3 -5 1 0 -1 2
A4 -2 3 2 2 0 1 1
A8 M 5 -5 -9 2 0 -1 5/2
k -5 0 4 0 -5

Trang: 20/57
Bài Giảng Lý Thuyết Tối Ưu
-8 -14 3 0 -2
A3 -4 2 -3 -5 1 0 -1
A4 -2 3 2 2 0 1 1 3/2
A8 M 1 1 1 0 0 1 1
k 7 20 0 0 -1
M 1 1 0 0 1
A3 -4 7 2 0 1 0 4
A4 -2 1 0 0 0 1 -1
A2 -4 1 1 1 0 0 1
k -13 0 0 0 -21

Vậy bài toán gốc có lời giải tối ưu: x*=(0,1,7,1,0) và F*= -4 x7- 2x1- 4x1 = -34.

2.7 BÀI TOÁN QUI HOẠCH TUYẾN TÍNH DẠNG HỖN HỢP
2.7.1 Bài toán qui hoạch tuyến tính dạng chuẩn
Xét bài toán QHTT dạng chuẩn tắc:
F(x)= <c,x>  min
x D={ xRn | A x ≤ b , x0}
Để giải bài toán này ta đưa bài toán về bài toán QHTT tương đương dạng chính tắc.
F(x)= <c,x>  min
x D={ xRn | A x +y = b , x  0 ,y 0}
Trong đó y=(xn+1,xn+2,…,xn+m)T  Rn.
Nếu b 0 thì bài toán có cơ sở xuất phát dạng ma trận đơn vị B =(An+1,An+2,…,An+m). Nên có
thể lập ngay bảng đơn hình để giải bài toán. Ngược lại ta cần đổi dấu các ràng buộc vi phạm và giải
bài toán bằng phương pháp hàm phạt hay đơn hình hai pha.
Thí dụ 2.6 Giải bài toán QHTT dạng chuẩn:
F(x) = x1 - 6x2 -12 x3  min
5 x1 4 x2 + x3  7
6 x +6x  x  10
 1 2 3
 4 x  3 x 2 x 3
 1 2 3

 x j  0, j  1,3

Giải. Bài toán QHTT dạng chính tắc tương đương:
F(x) = x1 - 6x2 -12 x3  min
5 x1 +4x2 + x3  x4 =7
6 x +6x  x  x5 = 10
 1 2 3
4 x 3x 2 x  x6 = 3
 1 2 3

 x j  0, j  1, 6

Bài toán tương đương có cơ sở xuất phát dạng ma trận đơn vị là B =(A4,A5,A6).

B CJ xJ 1 -6 -12 0 0 0 hJ
A1 A2 A3 A4 A5 A6
A4 0 7 5 4 1 1 0 0 7
A5 0 10 6 6 1 0 1 0 10
A6 0 3 4 3 -2 0 0 1

Trang: 21/ 57
Bài Giảng Lý Thuyết Tối Ưu
k -1 6 12 0 0 0
A3 -12 7 5 4 1 1 0 0
A5 0 3 1 2 0 -1 1 0
A6 0 17 14 11 0 2 0 1
k -61 -42 0 -12 0 0

Vậy bài toán gốc có lời giải tối ưu: x*=(0,0,7) và F*= -12 x7 = -84.
2.7.2 Bài toán QHTT tổng quát
Nguyên tắc chung: Đưa bài toán về dạng chính tắc tương đương, sau đó dùng phương pháp
hàm phạt hay hai pha để giải.
 Trường hợp bài toán tìm max:
Nếu bài toán có dạng: F(x)= <c,x>  max, x D thì chuyển về bài toán
G(x)= - <c,x>  min, x D
 Trường hợp ràng buộc bất đẳng thức:
+ Ràng buộc có dạng <ai ,x> ≤ bi được đổi thành < ai ,x> + zi = bi và zi  0;
+ Ràng buộc có dạng <ai ,x>  bi được đổi thành < ai ,x> - zi = bi và zi  0.
Các biến mới zi được gọi là biến bù.
 Các trường hợp về dấu của biến.
+ Ràng buộc xj ≤ 0: Đổi biến xj’ = - xj  0;
+ Ràng buộc xj  d: Đổi biến xj’ = xj –d  0;
+ Nếu xj là biến không bị ràng buộc về dấu: Đổi biến xj = xj’ - xj” và xj’ 0, xj” 0.
Thí dụ 2.7 Giải bài toán QHTT:
F(x) =x1 + 3x2 + 2x3 +3x4 +5x5  min
 x1 2 x2  x3  x4  x5  3
  x2  x3 2 x4 4 x5  18

  x2 3x3 2 x5  10

 x j  0, j  1,5

Giải. Đưa ràng buộc về dạng chính tắc với b≥ 0
F(x) =x1 + 3x2 + 2x3 +3x4 +5x5  min
 x1 2 x2  x3  x4  x5  3
  x2  x3 2 x4 4 x5 x 6  18

  x2 3x3 2 x5  x7  10

 x j  0, j  1,5

 Giải bài toán bằng phương pháp hàm phạt với cơ sở B=(A8,A9,A7)

B CJ xJ 1 3 2 3 5 0 0 hJ
A1 A2 A3 A4 A5 A6 A7
A8 M 3 -1 -2 1 -1 1 0 0 3
A9 M 18 0 -1 -1 2 4 -1 0 9/2
A7 0 10 0 -1 -3 0 2 0 1 5
k -1 -3 -2 -3 -5 0 0
M -1 -3 0 1 5 -1 0
Trang: 22/57
Bài Giảng Lý Thuyết Tối Ưu
A5 5 3 -1 -2 1 -1 1 0 0
A9 M 6 4 7 -5 6 0 -1 0 1
A7 0 4 2 3 -5 2 0 0 1 3
k -6 -13 3 -8 0 0 0
M 4 7 -5 6 0 -1 0
A5 5 4 -1/3 -5/6 1/6 0 1 -1/6 0
A4 3 1 2/3 7/6 -5/6 1 0 -1/6 0
A7 0 2 2/3 2/3 -10/3 0 0 1/3 1
k -2/3 -11/3 -11/3 0 0 -4/3 0
Lời giải tối ưu của bài toán gốc: X*=(0,0,0,1,4) F*= 5x4 +3x1 =23.

Thí dụ 2.8 Giải bài toán Qui hoạch tuyến tính sau:
f  x   5 x1  4 x2  6 x3  min
2 x1  4 x2  3 x3  48
3 x  2 x  3x  30
 1 2 3
 x  3 x  4 x  23
 1 2 3

 x j  0; j  1,3

Giải. Đưa bài toán về dạng chính tắc và biến đổi đơn giản:
f  x   5 x1  4 x2  6 x3  min f  x   5 x1  4 x2  6 x3  min
 2 x1  4 x2  3x3  x4  48 2 x1 +4 x2  3 x3  x4  48
3 x  2 x  3x  x  30  x  2 x  x4  x5  18
 1 2 3 5  1 2
 x  3x  4 x  x  23  x  x x x +x6  25
 1 2 3 6
 1 2 3 4


 x j  0 j  1, 6
  
 x j  0 j  1, 6
 
Ta đưa thêm vào một biến phạt x7 :
f M  x   5 x1  4 x2  6 x3  Mx7  min
 2 x1 +4 x2  3x3  x4 + x7  48
 x  2 x  x4 + x5  18
  1 2
 x  x x x  x6  25
 1 2 3 4


 x j  0 j  1, 7
 
Bảng đơn hình:

B CJ xJ 5 4 6 0 0 0 hJ
A1 A2 A3 A4 A5 A6
A7 M 48 2 4 3 -1 0 0 12
A5 0 18 -1 2 0 -1 1 0 9
A6 0 25 1 1 -1 -1 0 1 25
k -5 -4 -6 0 0 0
M 2 4 3 -1 0 0
A7 M 12 4 0 3 1 -2 0 3
A2 4 9 -1/2 1 0 -1/2 1/2 0
A6 0 16 3/2 0 -1 -1/2 -1/2 1 32/3
k -7 0 -6 -2 2 0
M 4 0 3 1 0 0

Trang: 23/ 57
Bài Giảng Lý Thuyết Tối Ưu
A1 5 3 1 0 3/4 1/4 -1/2 0
A2 4 21/2 0 1 3/8 -3/8 1/4 0
A6 0 23/2 0 0 -17/8 -7/8 1/4 1
k 0 0 -3/4 -1/4 -3/2 0

Lời giải tối ưu của bài toán gốc: X*=(3,21/2,0) F*= 5x3 +4x21/2 =57

Bài tập chương 2

1. Giải bài toán QHTT: F(x)= 6x1 +6x2 + x3 - 5x4 +2x5 -x6 min
2 x1  x2  x3  x4 3x5  x6  2
2 x 3x  x 3x  x5  x6  12
 1 2 3 4
2 x  x  x3 3x4 5 x5  x6  18
 1 2

 x j  0, j  1, 6

 Đs x*=(7/2, 0, 8, 0, 0, 3 ) F* = 6x7/2- 1x3 + 1x8 = 26
2. Giải bài toán QHTT : F(x) = x1 - 2x2 +3x3 -5x4 -4x5  min
 2 x1  3x2 - 6x3  x4  x5  35
 x + x + 3 x3 - x4 2 x5  20
 1 2
x  x2  x4 3x5  32
 1
 x j  0, j  1,5

 Đs x*=(27,0,4,5,0) F*= 1.27 - 5.5 + 3.4 = 14
3. Giải bài toán QHTT bằng phương pháp đơn hình 2 pha:
F(x)= 2x1 + 8x2 - 2x3 + 3x4 -x5 + x6  min
 x1 2 x2 2 x4  x5  x6  10
 2 x2  x3 3x4 2 x5 3x6  14
x  x3 3x4 3x5 6 x6  4
 1
 x j  0, j  1, 6
 Đs x*=(25/2 , 0, 13/2, 0, 0, 5/2) F*= 2x25/2 +1 x 5/2 -2 x13/2 = 29/2
4. Giải bài toán QHTT bằng phương pháp hàm phạt :
F(x) =2x1 - 4x2 - 4x3 - 2x4 +3x5  min
2 x1  x2  x3 2 x4  x5  8
4 x1 2 x2  x4  x5  3
2 x 3 x 2 x 3 x 2 x  14
 1 2 3 4 5

 x j  0, j  1,5
 Đs X*=(0 , 1, 7, 1, 0, 0) F*= -4 x 7 - 2 x 1 -4 x1 = -34
5. Giải bài toán QHTT dạng chuẩn: F(x) = x1 + x2 - x3  min
 x1  x2 + 2x3  48
3x - 3x  2x  36
 1 2 3
3x 3 x  x3  30
 1 2

 x j  0, j  1,3

 Đs X*=(0 , 6, 27 ) F*= 1 x 6 - 1x 27 = -21
6. Giải bài toán QHTT dạng hỗn hợp: F(x) = 2x1 - 3x2 + 3x3  min

Trang: 24/57
Bài Giảng Lý Thuyết Tối Ưu
 x1 + x2 - 3x3  12
2 x -3x 3x  10
 1 2 3
 x 2 x 6 x  4
 1 2 3

 x j  0, j  1,3

 Đs X*=(8 , 2, 0) F*= -3 x 2 + 2 x 8 = 10
7. Giải bài toán QHTT : F(x) = 2x1 + 9x2 +2 x3  min
 2 x1 + 3x2 + 4x3  20
5x - x2 2 x3  12
 1
x 2 x2  x3  2
 1
 x1 4 x2 2 x3  1

 x j  0, j  1,3

 Đs x*=(1/2 ,0,19/4) F*= 2 x 19/4 + 2 x 1/2 = 21/2


8. Giải bài toán QHTT: F(x)= x1 + 2x2 - x3 - x4 + 3x5  min
 x1  x2 2 x3  x4  x5  2
 x1 2 x2 3x3  x4 2 x5  6
x  x2  x3  x4 3 x5  7
 1
 x j  0, j  1,5

 Đs x*=(0 ,3, 1, 3, 0) F*= 2 x 3 - 1 x 3 -1x1 = 2


9. Giải bài toán QHTT : F(x) = x1 - x2 -2 x3 - 4x4 + 3x5 + 4x6  min
 x1  x3 2 x4  x5  x6  2
 x 1  x2  x3  x4  x6  12
 x  x 3 x4 2 x5  x6  15
 1 2

 x j  0, j  1, 6

 Đs x*=(0 ,0, 67/6, 7/6, 0, 1/3) F*= -4 x 7/6 - 1 x 67/6 + 4x 1/3 = -29/2
10. Giải bài toán QHTT : F(x) = x1 +4 x2 + 2x3 + x4 + 3x5  min
 x1 +2 x2  x3  x4  x5  10
x  x2 - x3 + 2 x4  x5  6
 1
x 3x2 - x3  x4  x5  12
 1
 x j  0 , j=1,5

 Đs x*=(11,0 , 8, 0, 9) F*= 1 x 11 + 2 x 8 + 3 x 9 = 54
11. Giải bài toán QHTT : F(x) = 6 x1 -2x2 +x3 - 4x4  min
 x1  x2  x3  x4 7
 4 x2 4 x3  x4  15
3x1
x  x2 2 x3  x4 2
 1
 x j  0, j  1, 4

 Đs x*=(0, 0, 5/3, 16/3) F*= 1 x 5/3 -4 x 16/3 = -59/3

Trang: 25/ 57
Bài Giảng Lý Thuyết Tối Ưu

Chương 3. QUY HOẠCH PHI TUYẾN

3.1 BỔ XUNG MỘT SỐ KIẾN THỨC


3.1.1 Các định lý tách

Định nghĩa 3.1 Giả sử là một tập lồi đóng X và z  R n . Ta gọi là khoảng cách từ z tới tập X là
d = inf x - z . Điểm y  X thỏa mãn d = y - z được gọi là hình chiếu của z trên X.
xÎ X

Định lý 3.1 Điều kiện để y X là hình chiếu của z là


x  X x  y,z  y  0 (tạo một góc tù)
Chứng minh…
Định lý 3.2 Nếu X là tập lồi trong Rn thì z  X tồn tại một siêu phằng
P   x  R n | c,x  
Sao cho a. c,z  
b. x  X c,x  
Chứng minh: Giả sử y là hình chiếu của z trên X. Đặt c = y-z và   c,z . Khi đó x  X
c,x  y  z,x  y  z,x  y  y  z, y  z  y  z,z  
0 >0 =
Chú ý: P là siêu phẳng chứa z và nó chia Rn thành 2 nửa, mà X nằm hẳn trong một nửa.
Định lý 3.3 (Farkas-Minkowsky). Giả sử A   aij  là một ma trận bất kỳ. Nếu tồn tại một vector
mn

p  R n sao cho x  R n Ax  0 suy ra p,x  0 thì cần và đủ là

u  R m thỏa mãn u  0 để p  AT u .
Chứng minh . (Sử dụng định lý tách 1.6)
 Ý nghĩa hình học: Đặt K   x  R n | Ax  0 , K là một nón lồi đỉnh 0. x  K ta có
p,x  0 nên góc giữa p và x là góc nhọn. Suy ra tập W  u  R m | AT u  p,u  0   .

Định nghĩa 3.2 Siêu phẳng P   x  R n | a,x   gọi là siêu phẳng tựa của tập X tại điểm x0X
nếu a,x 0   và x  X a,x   . Các nửa không gian P1   x  R n | a,x  
và P2   x  R n | a,x   gọi là các nửa không gian tựa của X tại x0.

Định lý 3.3 Tại mọi điểm biên của tập lồi đóng X
đều tồn tại siêu phẳng tựa của X.

Trang: 26/57
Bài Giảng Lý Thuyết Tối Ưu

Định lý 3.4 Nếu X, Y là hai tập lồi, int X   và int  X  Y   


thì tồn tại một siêu phẳng tách X và Y. Nghĩa là tồn tại
vector c  0 và số thực  sao cho c, y    c,x
với x  X ,y  Y

Định lý 3.5 Nếu X là tập lồi đóng, và z  X thì tồn tại


một siêu phẳng tựa của X tách hẳn z với X.

P   x  R n | a,x  0 với a  z  y với y là hình chiếu


của z trên X

Định lý 3.6 Nếu X là tập lồi đóng không rỗng và X≠Rn thì X là giao của tất cả các nửa không gian
tựa của nó.

3.1.2 Hàm lồi, hàm lõm


 Hàm f(x) xác định trên tập lồi D gọi là một hàm lồi nếu:
a,b  D,    0 ,1 f [a  1    b]  f  a   1    f  b 
Nếu thay dấu ≤ bởi dấu < thì f(x) gọi là hàm lồi chặt.
 Hàm f(x) xác định trên tập lồi D gọi là một hàm lõm nếu:
a,b  D,    0 ,1 f [a  1    b]  f  a   1    f  b 
Dễ thấy: + Nếu f(x) là hàm lồi thì –f(x) là một hàm lõm và ngược lại.
+ Hàm vừa lồi vừa lõm là một hàm affin.
 Ý nghĩa hình học của hàm lồi:

 Hàm f(x) xác định trên tập lồi D gọi là một hàm tựa lồi (quasi-convex) nếu:
a,b  D,    0 ,1 f [a  1    b]  max  f  a  , f  b 
 Hàm f(x) xác định trên tập lồi D gọi là một hàm tựa lõm (quasi-concave) nếu:
a,b  D,    0,1 f [a  1    b]  min  f  a  , f  b 
Dễ thấy:
+ Nếu f(x) là hàm lồi thì f(x) là cũng là một hàm tựa lồi, ngược lại không đúng.
+ Nếu f(x) là hàm lõm thì f(x) là cũng là một hàm tựa lõm, ngược lại không đúng.
+ Hàm vừa tựa lồi vừa tựa lõm là một hàm đơn điệu theo từng phương.
Trang: 27/ 57
Bài Giảng Lý Thuyết Tối Ưu
 Một số tính chất của hàm lồi
m
a. Nếu fi  x  i  1, m là các hàm lồi trên tập lồi C thì f ( x )   i fi  x  với i  0 ,i  1,m và
i 1

g( x )  max  fi  x  là các hàm lồi trên C.


i

b. Nếu f  x  là hàm lồi trên tập lồi C thì với   R C=  x  C | f  x    là một tập lồi (biểu
diễn tập lồi bởi một bất đẳng thức lồi).
c. Nếu f  x  là hàm lồi trên tập lồi C thì với x,z  C sao cho x  z  C ,      f  x  z  là
hàm lồi trên [0,1].
d. Mọi hàm lồi bậc 2 đều có thể viết dưới dạng f  x   c0  c,x  x, Ax , trong đó c0 là một hằng
số, c là một vector trong Rn và A là ma trận thực đối xứng. Khi đó f  x  là hàm lồi khi và chỉ
khi ma trận A xác định không âm.

3.1.3 Cực trị toàn cục và cực trị địa phương


 Điểm x*D gọi là điểm cực tiểu tuyệt đối (toàn cục-global) của hàm f  x  trên tập D nếu
x  D f  x*   f  x 
Ta gọi -lân cận của điểm a là một hình cầu tâm a bán kính :
B(a) = {x  Rn | || x-a|| ≤  }
 Điểm x*D gọi là điểm cực tiểu địa phương (local) của hàm f  x  trên tập D nếu tồn tại
một -lân cận của x* sao cho:
 x  B(x*)  D f  x   f  x* 
Tương tự ta cũng có khái niệm về cực đại tuyệt đối và cực đại địa phương.
Định lý 3.7 Cực tiểu địa phương bất kỳ của một hàm lồi trên một tập lồi cũng là cực tiểu tuyệt đối.
Chứng minh. Giả sử x* là cực tiểu của hàm lồi f  x  trên tập lồi C. Khi đó tồn tại một -lân cận

B(x*) sao cho  x1  B(x*)  D    


f x1  f x* .

Xét một điểm x tùy ý của C. Khi đó tồn tại số [0,1] sao cho x1  x*  1    x vẫn nằm
 
trong B(x*). Do f  x  lồi nên f x1  f  x*   1    f  x  suy ra

         
0    f x1 – f  x*    1     f  x  – f x1  hay ( f  x*   f x1  f  x  đ.p.c.m)

Hệ quả. Bất kỳ một cực đại địa phương của một hàm lõm trên một tập lồi cũng là cực đại tuyệt đối.

Trang: 28/57
Bài Giảng Lý Thuyết Tối Ưu
3.2 BÀI TOÁN QUY HOẠCH PHI TUYẾN

3.2.1 Phát biểu bài toán


Bài toán quy hoạch phi tuyến có dạng:
F  x   min (3.1)
 g i  x   0 ,i  1,m

h j  x   0 , j  1,n (3.2)

 x  Rn
 Trong đó có ít nhất một trong các hàm F( x ),gi ( x ) hay h j ( x ) là phi tuyến.
 Nếu không có ràng buộc (3.2) thì bài toán (3.1) gọi là bài toán QHPT không ràng buộc.
 Nếu F( x ),  gi ( x ) và h j ( x ) là các hàm lồi thì (3.1)-(3.2) là bài toán quy hoạch lồi. Đây là
lớp bài toán rất quan trọng trong QHPT.
 Nếu F( x ) là một hàm toàn phương, gi ( x ) và h j ( x ) là các hàm tuyến tính thì (3.1)-(3.2) là
bài toán quy hoạch toàn phương.
Trong nhiều trường hợp người ta biến đổi một Bài toán qui hoạch phi tuyến có ràng buộc về bài
toán QHPT không ràng buộc để giải. Việc biến đổi này cần sử dụng một số hàm bổ trợ biểu diễn qua
hàm mục tiêu, các hàm ràng buộc và các tham số. Đầu tiên người ta tìm cực tiểu địa phương của hàm
bổ trợ trong một miền nào đó. Sau đó thay đổi dần các tham số nhằm làm tăng ảnh hưởng của các
ràng buộc lên hàm bổ trợ. Như vậy việc giải QHPT có ràng buộc được qui về việc giải một dãy các
bài toán QHPT không ràng buộc, mà dãy các lời giải tối ưu hội tụ về lời giải tối ưu của bài toán gốc.
Thí dụ 3.1 Xét bài toán F  x   min (3.3)
h j  x   0, j  1,m
m
Thay cho bài toán trên ta xét bài toán: L  x,    F  x     j h j  x   min (3.4)
j 1

Bài toán mới có m+n biến và các biến  j gọi là các nhân tử Lagrange. Nếu như các hàm
F  x  và h j  x  khả vi thì điều kiện dừng ( của cực tiểu địa phương) là:
 L F m h j
    j 0
 xi xi j 1 xi

 L
 hj  x   0
  j

3.2.2 Các phương pháp lặp giải quy hoạch phi tuyến không ràng buộc một biến
Xét bài toán F  x   min với x  R , trong đó hàm F  x  có thể khả vi hoặc không. Ta cần tìm
cực tiểu địa phương của bài toán.

Trang: 29/ 57
Bài Giảng Lý Thuyết Tối Ưu
Chia trục Ox thành các khoảng bởi các điểm chia: x0  x1  x2  ...  xm và tính yi  F  xi  ,
i  0,m . Khi các khoảng chia đủ nhỏ ta thấy có một số khoảng thỏa mãn: yk  yk 1 và yk  yk 1 . Rõ
ràng là nếu F  x  là hàm liên tục thì trong khoảng  xk 1 ,xk 1  đó chứa ít nhất một điểm cực tiểu của
F  x  . Ta cần tìm một cực tiểu địa phương của F  x  trong khoảng  a,b    xk 1 ,xk 1  .

3.2.2.1 Phương pháp chia đôi (Bisection)


Tìm một cực tiểu địa phương của F  x  trong khoảng  a,b  với sai số  cho trước.
ab
Bước 1. Tính x  và f  F  x 
2
Bước 2. Chia đôi hai đoạn  a,x  ,  x,b  bởi hai điểm chia x1 và x2 . Tính z1  F  x1  và z2  F  x2  :

a. Nếu f  z1 và z  z2 thì thay a  x1 , b  x2 , còn f và x không đổi.


b. Nếu f  z1 thì thay b  x, x  x1 , f  z1 và a không đổi.
c. Nếu f  z2 thì thay a  x, x  x2 , f  z2 và b không đổi.

Lặp lại bước 2 cho đến khi b  a   thì x là lời giải xấp xỉ cần tìm.

Do mỗi bước lặp độ dài khoảng  a,b  bị chia đôi nên phương pháp chia đôi hội tụ.
 Cài đặt hàm Bisection.m trong MATLAB
function [x , f , steps] = Bisection(FUN, a, b,Tol)
if nargin==3
Tol=1e-6;
end;
x = (a+b)/2; f = feval(FUN,x); steps=0;
while max (abs( b-a)) > Tol
steps=steps+1;
x1 = (a+x)/2; z1 = feval(FUN,x1);
x2 = (b+x)/2; z2 = feval(FUN,x2);
if (f <= z1)&&(f <= z2)
a=x1; b=x2;
elseif f >z1
b=x; x=x1; f =z1;
else
a=x; x=x2; f =z2;
end
end;

Trang: 30/57
Bài Giảng Lý Thuyết Tối Ưu
Thí dụ 3.2 Tìm cực tiểu của hàm y =sinx trong đoạn [2,5].
>> [x , f, k] = Bisection('sin', 2, 5)
x=
4.7124
f=
-1.0000
k=
22
>> [x , f, k] = Bisection('sin', 2, 5, 0.001)
x=
4.7125
f=
-1.0000
k=
12
Có thể áp dụng cho trường hợp a, b là các vector trong không gian Rn. Khi đó, trong hàm
Bisection.m ta chỉ cần thay điều kiện dừng lặp abs(b-a)>Tol bởi điều kiện norm(b-a)>Tol.
Thí dụ 3.3 Giải sử ta soạn file hàm F.m có nội dung:
function z= F(x)
z=cos(x(1))-2*tan(x(2));
Sau đó gọi lệnh MATLAB tìm cực tiểu của F(x) trong đoạn [a,b] với a =(1,0) và b =(0,1):
>> [x , f] = Bisection('F', [ 1 0],[0 1])
x=
0.0000 1.0000
f=
-2.1148
3.2.2.2 Phương pháp lát cắt vàng
Giả sử cần tìm một cực tiểu địa phương của F  x  trong khoảng  a,b  với sai số  cho trước. Ở
3 5 5 1
đây, ta sẽ sử dụng hai hằng số Fibonaci F1   0.38197 và F2  1  F1   0,61803 .
2 2
Chúng có tính chất khá đặc biệt là F1  F22 .
Bước 1. Chia khoảng  a,b  thành 3 đoạn bởi hai điểm chia x1 và x2 với:
x1  a  F1  b  a  , z1  F  x1 
x2  a  F2  b  a  , z2  F  x2 
Bước 2. Nếu z1  z2 thì sang bước 3; Ngược lại, nếu z1  z2 thì sang bước 4.
Bước 3. Đặt b = x2 và a không đổi.
 Nếu b  a   thì dừng và x1 là lời giải xấp xỉ.
 Nếu b  a   thì chia đoạn  a,b  thành 3 đoạn bởi hai điểm chia x'1 và x'2 với:
x'2  a  F2  b  a   x1 , x'1  a  F1  b  a  và z'2  z1 ,z'1  F  x'1 

Trang: 31/ 57
Bài Giảng Lý Thuyết Tối Ưu
 Quay lại bước 2.
Bước 4. Đặt a = x1 và b không đổi.
 Nếu b  a   thì dừng và x2 là lời giải xấp xỉ.
 Nếu b  a   thì chia đoạn  a,b  thành 3 đoạn bởi hai điểm chia x'1 và x'2 với:
x'1  a  F1  b  a   x2 , x'2  a  F2  b  a  và z'1  z2 ,z'2  F  x'2 
 Quay lại bước 2.

 Ưu điểm của phương pháp: Dễ nhận thấy phương pháp trên hội tụ. Tại mỗi bước lặp ta
chia đoạn  a,b  thành 3 đoạn tại 2 điểm chia. Tuy nhiên có một điểm chia mới trùng với điểm chia cũ
nên chỉ phải tính lại một điểm chia mới mà thôi. Đó là ưu điểm của phương pháp này so với phương
pháp chia đôi.
 Cài đặt hàm GoldCut.m trong MATLAB
function [x , f , steps] = GoldCut(FUN, a, b,Tol)
if nargin==3
Tol=1e-6;
end;
steps=0; F1 =(3-sqrt(5))/2; F2=1-F1;
x1 = a +F1*(b-a) ; x2=a +F2*(b-a);
z1 = feval(FUN,x1) ; z2 = feval(FUN,x2);
while max(abs(b-a)) > Tol
steps=steps+1;
if z1<= z2
b=x2;
x2=x1; x1=a +F1*(b-a);
z2=z1; z1= feval(FUN,x1) ;
else
a=x1;
x1=x2; x2=a +F2*(b-a);
z1=z2; z2= feval(FUN,x2) ;
end
end;
x = x1 ; f =z1;
Thí dụ 3.4
>> [x ,f, k] = GoldCut('sin', 2, 5)
x=

Trang: 32/57
Bài Giảng Lý Thuyết Tối Ưu
4.7124
f=
-1.0000
k=
31
>> [x ,f, k] = GoldCut('sin', 2, 5,0.001)
x=
4.7125
f=
-1.0000
k=
17
>> [x , f] = fminbnd('sin', 2, 5,0.001) %% Thử lại với hàm nội trú fminbnd của MATLAB
x=
4.7124
f=
-1.0000

>> [x , f] = GoldCut('F', [ 1 0],[0 1]) %% F(x) là hàm 2 biến trong thí dụ 3.3
x=
0.0000 1.0000
f=
-2.1148

 Chú ý: Khối lượng tính toán trong mỗi bước lặp của phương pháp chia đôi gấp gần 2 lần so
với phương pháp lát cắt vàng.

3.2.3 Các phương pháp không sử dụng đạo hàm


3.2.3.1 Phương pháp Gauss-Seidel (tụt theo trục tọa độ)
Xét bài toán QHPT: Tìm Min F  x  , x  R n với sai số  > 0.

 
Bước khởỉ tạo. Chọn lời giải xấp xỉ xuất phát x0 = x10 , x20 , x30 ,..., xn0 , k=0;

Bước lặp k=1,2,3,…


 u0 = xk-1
 Thay đổi lời giải u0 u1 theo hướng e1 (ei là các vector đơn vị):
 
1  arg min F  u 0  e1  |   R ; u1  u 0  1e1 .

 Thay đổi lời giải u1 u2 theo hướng e2:


 
 2  arg min F  u1  e2  |   R ; u 2  u1   2 e2

...
 Thay đổi lời giải un-1 un theo hướng en:
 
 n  arg min F  u n 1  en  |   R ; u n  u n 1   n en

Trang: 33/ 57
Bài Giảng Lý Thuyết Tối Ưu
k n
Ta được lời giải xấp xỉ mới x =u .
Lặp lại bước k +1 cho tới khi || xk –xk-1|| < 

 Nhận xét:
 Mỗi bước lặp của phương pháp là giải n bài toán QHPT không ràng buộc 1 biến. Do đó có
thể sử dụng một trong hai phương pháp đã được trình bày trong mục 1.2.2 .
 Ưu điểm: Đơn giản, tốn ít bộ nhớ. Nếu hàm mục tiêu lồi thì kết quả đáng tin cậy.
 Nhược điểm: Hội tụ chậm do mỗi bước phải giải n bài toán cực tiểu không ràng buộc 1 biến.
Có trường hợp thuật toán không hội tụ
Thí dụ 3.5 Giải bài toán Min F(x) = 4(x1-5)2+ (x2-6)2
Giải:
 Chọn x0 = (8,9), F0 = 45
+ Cố định x2 = 9. Giải bài toán Min F(x) = 4(x1-5)2+ (9-6)2 ta được x1 = 5, F(5,9) =9.
+ Cố định x1= 5. Giải bài toán Min F(x) = 4(5-5)2+ (x2-6)2 ta được x2 = 6, F(5,6) =0.
 x0 = (5,6), F0 = 0
+ Cố định x2 = 6. Giải bài toán Min F(x) = 4(x1-5)2+ (9-6)2 ta được x1 = 5, F(5,6) =0.
+ Cố định x1= 5. Giải bài toán Min F(x) = 4(5-5)2+ (x2-6)2 ta được x1 = 6, F(5,6) =0.
 Kết luận x* =(5,6) , F*=0.

3.2.3.2 Phương pháp tìm kiếm trực tiếp (Hooke, Jeeves,Wood)


Xét bài toán QHPT: Tìm Min F  x  , x  R n với sai số  > 0 .
Thuật toán tìm kiếm trực tiếp được sử dụng khá phổ biến. Nó được chia thành 2 giai đoạn:
 
Khởỉ tạo: Chọn lời giải xấp xỉ xuất phát x0 = x10 , x20 , x30 ,..., xn0 và một số gia  > 0.
Giai đoạn 1. Tìm kiếm có nghiên cứu.
Bước lặp k=1, 2, 3,…
 u = x0
 Lần lượt thay đổi ui theo hướng ei: ui:= ui   với i=1,2,...,n
Nếu thấy hàm mục tiêu giảm thì thay ui bằng giá trị mới.
n
1
Kết thúc quá trình ta được lời giải xấp xỉ mới x  u  x  0
 i ei với  {0,  }
i
i 1
 Nếu x1  x 0 thì việc tìm kiếm thất bại:
+ Nếu    thì x* = x0 là lời giải xấp xỉ.
+ Ngược lại, nếu  >  thì thay  bằng /2 và thực hiện việc tìm kiếm có nghiên cứu mới.
 Nếu x1  x 0 thì hàm mục tiêu giảm khi đi từ x 0  x1 . Ta chuyển sang giai đoạn 2.
Giai đoạn 2. Tìm kiếm theo mẫu.


Thay x 0 bởi x1    x1  x 0  với   arg min F  x1    x1 – x 0   |   R  hoặc có thể chọn
trước hằng số    0,1 và quay lại giai đoạn 1.
Nhận xét:
+ Giai đoạn 1 để tìm phương giảm của hàm mục tiêu;
+ Giai đoạn 2 để giảm tối đa hàm mục tiêu theo phương đã chọn bằng giải bài toán cực tiểu
không ràng buộc 1 biến.
Thí dụ 3.6 Giải bài toán Min F  x    x1  5    x2  6  với xấp xỉ đầu x0 =(8;9).
2 2

Trang: 34/57
Bài Giảng Lý Thuyết Tối Ưu
0
Giải: Chọn x =(8;9),  =0,5 và F0=18.
 Tìm kiếm có nghiên cứu:
x1  8  0,5 F  8,5;9  =21,25>18 ; x1  8  0,5 F  7,5;9  =15,25<18
x2  9  0,5 F  7,5;9,5  =18,5>18 ; x2  9  0 ,5 F  7,5;8,5  =12,5<18
Do đó x1   7,5;8,5  , F 1  12,5
 Tìm kiếm theo mẫu:
x1    x1  x 0    7 ,5; 8,5     0,5; 0,5    7 ,5  0 ,5; 8,5  0 ,5 
Giải bài toán F  x1    x1  x 0    2 ,5  0 ,5    2 ,5  0,5   Min ta được     5 .
2 2

Do đó x 2  x1  5  x1  x 0    5; 6  F  x 2   0 .
 Tìm kiếm có nghiên cứu với x0 =(5; 6) không cải tiến được phương án, lần lượt giảm  =
0,25 ; 0,125 … đều không cải tiến được phương án. Vì vậy x* = (5;6).
 Cài đặt hàm MinFSearch.m trong MATLAB
% Method of Hooke, Jeeves,Wood
function [x, f , Steps] = MinFSearch(FUN, x0, Tol)
if nargin==2
Tol=1e-6;
end;
Delta=0.1; Steps=0;
n=length(x0); f0=feval(FUN,x0);
x=x0; f=f0;
while Delta>Tol
Steps =Steps+1;
for k=1:n
u=x; u(k)=u(k)+Delta;
if feval(FUN,u)<f
x=u; f=feval(FUN,u);
end;
u(k)=u(k)-2*Delta;
if feval(FUN,u)<f
x=u; f=feval(FUN,u);
end;
end;
if f < f0
x0 = x + Delta*(x-x0); f0=feval(FUN,x0); %% Chọn Lamda =Delta
x=x0 ; f=f0;
else
Delta=Delta/2;
end;
end;

Trang: 35/ 57
Bài Giảng Lý Thuyết Tối Ưu
Thí dụ 3.7 Giải bài toán Min F  x    x1  5   4  x2  6  với xấp xỉ đầu x0 =(8;9).
2 2

>> F=inline('(x(1)-5)^2+4*(x(2)-6)^2','x')
F=
Inline function:
F(x) = (x(1)-5)^2+4*(x(2)-6)^2
>> [x, f , k ]=MinFSearch(F,[8 9])
x=
5.0000 6.0000
f =
1.6408e-028
k=
37
>> [x,f]=fminsearch(F,[8 9]) %% Kiểm tra lại bằng hàm nội trú fminsearch của MATLAB
x=
5.0000 6.0000
f =
2.3338e-009

3.2.4 Các phương pháp sử dụng đạo hàm


3.2.4.1 Phương pháp Gradient (Phương pháp hạ nhanh nhất)
Xét bài toán QHPT: Tìm Min F  x  , x  R n . Giả sử F  x  là hàm khả vi. Khi đó điểm cực
trị x* của hàm phải thỏa mãn điều kiện dừng:
F  0 . (3.5)
Tuy nhiên việc giải trực tiếp bài toán (3.5) rất phức tạp. Vì vậy cần phải xét một phương pháp
hiệu quả hơn. Ý tưởng của phương pháp là xây dựng một dãy phương án  x k  hội tụ đến x*. Tại
mỗi bước tính:

x k 1  x k   k k

Vector k là hướng di chuyển từ x k đến x k 1 và  k  0 là độ dài bước di chuyển. Để bảo đảm dãy
số  F  x k  giảm dần thì phải chọn k sao cho: F  x k  ,k  0 . Khi đó với  k đủ bé ta có:

 
F  x k 1   F x k   k k  F  x k    k F  x k  ,k  o   k   F  x k 

Ta có thể chọn k  F  x k  . Khi đó x k 1  x k   k F  x k  , k  1, 2 ,3,... (3.6)

F  x k 
Dạng tọa độ của (3.6) là xik 1  xik   k , i  1,n . Do tính đơn giản và hiệu quả nên
xi
đây là phương pháp được sử dụng phổ biến nhất trong QHPT không ràng buộc. Vấn đề còn lại là
chọn  k trong mỗi bước như thế nào.

 
 Cách 1. Chọn  k  arg min F  x k  F  x k   |   R : Giải bài toán QHPT một biến.

Trang: 36/57
Bài Giảng Lý Thuyết Tối Ưu
 Phương pháp 2. Tiến theo các bước
Bước 0. Chọn trước một số   0 .
Bước 1. Tính x  x k  F  x k 
Bước 2. Kiểm tra:
2
 Nếu F  x   F  x k    F  x k  , với    0,1 được chọn trước thì chọn  k   ;

 Nếu trái lại thì đặt   và quay lại bước 1.
2

Định lý 3.8 Nếu hàm F(x) bị chặn dưới và gradient của nó thỏa điều kiện Lipchitz
L, x, y F  x   F  y   L x  y

thì việc chọn dãy  x k  theo phương pháp trên thỏa mãn F  x k  
k 
0 .
(Số L gọi là hằng số Lipchitz của hàm F ).
 Cài đặt hàm GradMin trong MATLAB
% Giai QHPT bang phuong phap Gradient
function [x , f, Steps] = GradMin(FUN, Df, u , Tol)
Steps=0;
if nargin==3
Tol=1e-6;
end
a = 1; T=1000;
while norm(T,inf)>Tol
steps=steps+1;
T = a*feval(Df,u);
x = u-T ; f = feval(FUN,x);
if f < feval(FUN,u);
u = x;
else
a=a/2;
end
end
Chú ý: Trong trường hợp F  x  là hàm khả vi nhưng khó xác định F , thì có thể tính F
bằng một trong các phương pháp xấp xỉ (phương pháp số).

Trang: 37/ 57
Bài Giảng Lý Thuyết Tối Ưu
Thí dụ 3.8 Giải bài toán Min F  x    x1  5   4  x2  6  .
2 2

- Lập hàm F.m


function z= F(x)
z=(x(1)-5)^2+4*(x(2)-6)^2;
- Lập hàm Df.m
function d = Df(x)
d(1)=2*(x(1)-5);
d(2)=8*(x(2)-6);
>> [x, f, k]=GradMin('F','Df',[8 9])
x=
5.0000 6.0000
f =
3.1554e-030
>> [x, f, k]=GradMin('F','Df',[100 200])
x=
5.0000 6.0000
f =
3.1554e-030
k=
119
>> [x, f, k]=MinFSearch('F',[100 200]) %% Để so sánh với phương pháp tìm trực kiếm tiếp
x=
5.0000 6.0000
f=
1.8775e-023
k=
987
3.2.4.2 Phương pháp Newton
Phương pháp gradient tuy đơn giản nhưng tốc độ hội tụ khá chậm (tốc độ cấp 1), do việc phân
tích và xây dựng giải thuật dựa trên chuỗi khai triển Taylor bậc nhất của hàm F  x  tại x k . Nếu khai
triển đến bậc hai thì ta sẽ có thêm thông tin của hướng dịch chuyển Xét hàm số:
Fk  x   F  x k   F  x k  ,x  x k  H  x k  x  x k  ,x  x k ,
1
2
với H  x k  là ma trận Hessian của hàm F  x  tại x k , là xấp xỉ bậc hai của hàm F  x  tại lân cận của
x k . Ta cần tìm vector u k thỏa mãn điều kiện: Fk  u k   min Fk  x  . Sau đó xây dựng phương án
xấp xỉ tiếp theo :
x k 1  x k   k  u k  x k 
Có nhiều cách chọn  k khác nhau. Trường hợp đơn giản nhất, nếu chọn  k =1 thì x k 1  u k hay
Fk  x k 1   min Fk  x  k=1,2,3… (3.7)

Trang: 38/57
Bài Giảng Lý Thuyết Tối Ưu
Từ (3.7) suy ra x k 1 là điểm dừng của hàm Fk  x  và do đó nó là nghiệm của phương trình:

Fk  x   F  x k   H  x k  x  x k   0

Vì vậy, nếu H  x k  không suy biến thì:


1
x k 1  x k   H  x k   F  x k  (3.8)
Định lý 3.9 Giải sử ma trận H  x  khả nghịch, ma trận nghịch đảo của nó bị chặn dưới đồng thời
H  x  thỏa mãn điều kiện Lipchitz:
H  x   H  y   L x  y với x, y  R n
thì dãy  x k  được xây dựng công thức (1.11) sẽ thỏa mãn:
2
x  x*  C x k  x k 1
trong đó x* là lời giải tối ưu và C là một hằng số.

Tốc độ hội tụ của phương pháp Newton là cấp hai. Tuy nhiên, chung điều kiện hội tụ trong
định lý 3.9 khá nặng và khó kiểm tra. Trong thực tế người ta thường sử dụng phương pháp Newton
kết hợp với các phương pháp khác. Chẳng hạn, người ta dùng một phương pháp nào đó để giải bài
toán tối ưu. Tới bước lặp thứ k, khi thấy x k đã khá gần x* ( F  x k   0 ) thì chyển sang phương
pháp Newton để tăng tốc độ hội tụ.
Chú ý: Công thức lặp (3.8) không sử dụng hàm F  x  mà chỉ sử dụng vector gradient F  x 
và ma trận Hessian H  x  của hàm.
 Cài đặt hàm NewtonMin.m trong MATLAB
function [x , Steps]= NewtonMin(Df, Hf, x0, Tol)
if nargin==3
Tol=1e-6;
end
Steps=0; x=x0; T=1000;
while max(abs(T))>Tol
Steps=Steps+1;
T = inv(feval(Hf,x))*feval(Df,x);
x = x - T;
end;

Thí dụ 3.9 Giải bài toán Min F  x   3 x12  2 x22  2 x1  3 x2  2 x1 x2  10; .


- Lập hàm F.m
function z= F(x)
z=3*x(1)^2+2*x(2)^2 - 2*x(1)-3*x(2)+2*x(1)*x(2)+10;
- Lập hàm Df.m
function d = Df(x)
d(1)=6*x(1) -2 +2*x(2);

Trang: 39/ 57
Bài Giảng Lý Thuyết Tối Ưu
d(2)=4*x(2)-3+2*x(1);
d=d.’;
- Lập hàm Hf.m
function H = Hf(x )
H(1,1)=6; H(1,2)=2;
H(2,1)=2; H(2,2)=4;
>> [x, f, k ]=MinFSearch('F',[5; 5])
x=
0.1000
0.7000
f=
8.8500
k=
74
>> [x, f, k ]=GradMin('F','Df',[5; 5])
x=
0.1000
0.7000
f=
8.8500
k=
79
>> [x, k ]=NewtonMin('Df', ‘Hf', [5; 5])
x=
0.1000
0.7000
k=
2
>> f =F(x)
f =
8.8500

Trang: 40/57
Bài Giảng Lý Thuyết Tối Ưu
Chương 4. QUY HOẠCH LỒI

4.1 BÀI TOÁN QUY HOẠCH LỒI VÀ ĐIỀU KIỆN TỐI ƯU


Bài toán quy hoạch lồi tổng quát có dạng:
Tìm Min  F  x  | x  M  , (4.1)

với F  x  là một hàm lồi và M là một tập lồi đóng. Thông thường thì tập M được viết dưới dạng
 
M  x  R n | gi  x   0 ,i  1,m , với gi  x  là các hàm lồi.

Như đã biết, phương án x*  M là phương án tối ưu của bài toán (4.1) khi và chỉ khi x* là cực
tiểu địa phương của hàm F  x  trên M.

Định nghĩa 4.1 Giả sử vector x  M . Ta nói vector z  R n là một hướng chấp nhận được tại x nếu
  0 sao cho x  z  M (do đó   [1, ε] x  z  M ).

Gọi M x là tập tất cả các hướng chấp nhận được tại x . Do M lồi nên x  M z  x - x  M x .

Định lý 4.1 (Đ/k tối ưu). Vector x  M là phương án tối ưu của bài toán (4.1) khi và chỉ khi

F  x,z   0 với z  M x (4.2)

Chứng minh:
Điều kiện cần. Giả sử x  M là phương án tối ưu và z  M x .

F  x  z   F  x 
Khi đó   0 sao cho x  z  M . Suy ra F  x  z   F  x  ,  0 và do đó

F  x  z   F  x 
F  x,z   lim 0
0 
Điều kiện đủ. Giả sử F  x,z   0 với z  M x . Do tính chất của hàm lồi nên:

F  x  z   F  x   F  x,z   0

Do M lồi nên x  M z  x - x  M x . Suy ra

F  x  z   F  x   F  x   x  x    F  x   F  x   F  x   0

Vì vậy x là phương án tối ưu. (đpcm)

Hệ quả 4.1 Nếu F  x  là hàm lồi khả vi và


F x    0 với j  1,n thì x là phương án tối ưu.
x j

Chứng minh. Do F  x  là hàm lồi khả vi nên F  x,z   F  x  ,z  0 với z nên x là phương
án tối ưu (đây là trường hợp riêng).
Định nghĩa 4.2 Điểm  x,t   R n  R m gọi là điểm yên ngựa của hàm L  x,t  trong miền t  0 , x  M
nếu x  M , t  0 và x  M , t  0 ta có

L  x,t   L  x,t   L  x,t  (4.3)

Trang: 41/ 57
Bài Giảng Lý Thuyết Tối Ưu

Định lý 4.2 (Kuhn-Tucker) Giả sử bài toán quy hoạch lồi (4.1) thỏa mãn điều kiện chính quy sau
đây (giả thiết Slater):
 x 0  M 0 ( gi  x   0 ,i  1,m ). (4.4)
Khi ấy x  M là phương án tối ưu khi và chỉ khi  t  R m , t  0 để  x,t  là điểm yên
m
ngựa của hàm Lagrange L  x,t   F  x    ti gi  x  trong miền x  M , t  0 .
i 1
 Chú ý: Xét bài toán QHL (4.1).
- Bất đẳng thức bên trái của (4.3) nghĩa là L  x,t   max L  x,t  ,
t 0
m m
hay  t i gi  x   max
t 0
 ti gi  x  với t i là các nhân tử Lagrange.
i 1 i 1
 Bất đẳng thức bên phải của (4.3) nghĩa là L  x,t   min L  x,t  . Nếu F  x  và gi  x  là các
xM
hàm lồi khả vi thì các điều kiện trên có nghĩa là:
F  x  m gi  x  m
  ti  0, j  1,n hay F  x    t i gi  x   0 , j  1,n
x j i 1 x j i 1

 Ý nghĩa:
 Nếu coi F  x  là chi phí phải trả khi chọn phương án x  R n và ti là hệ số phạt nếu gi  x 
vượt qua mức cho phép một đơn vị (mức 0) thì tổng chi phí phải trả cho phương án x là:
m
L  x,t   F  x    ti gi  x 
i 1

 Trong thực tế người ta thường làm như sau:


m
 
+ Cố định t  0 và giải bài toán min L x,t  F  x    t i gi  x  ta được x ;
xD i 1
m
 
+ Giải bài toán max L x,t  F  x    ti gi  x  ta được t mới.
t 0 i 1

Tiếp tục lặp lại quá trình cho đến khi tìm được phương án tối ưu (x*,t*).
Phương pháp này khá hiệu quả khi m<<n.
Sau đây ta sẽ nghiên cứu một số phương pháp giải quy hoạch lồi.

Trang: 42/57
Bài Giảng Lý Thuyết Tối Ưu
4.2 BÀI TOÁN QUY HOẠCH LỒI CÓ RÀNG BUỘC TUYẾN TÍNH
4.2.1 Mô hình toán học
Mô hình bài toán bài toán Qui hoạch lồi ràng buộc tuyển tính có dạng:
F  x   Min (4.5)
 Ax  b

 x0
trong đó: F  x  là một hàm lồi, A  aij  mn ,b  R m , x  Rn . Khi đó tập phương án của bài toán
 n 
M   x | Ax  0 , x  0 là một tập lồi đa diện  gi  x     aij x j  bi  0 ,  x j  0  .
 
 j 1 
4.2.2 Giải thuật Frank – Wolfe
Ý tưởng của phương pháp là giải bài toán qua nhiều bước. Tại mỗi bước thứ k ta tuyến tính hóa
bài toán và áp dụng các phương pháp QHTT để tìm phương án xk, sao cho dãy F x k    giảm dần
đến F*  min F  x  . Để áp dụng giải thuật Frank-Wolfe cần các giả thiết:
xM
I. Hàm F  x  khả vi liên tục;

II. Với x k  M hàm tuyến tính F  x k  ,x luôn luôn bị chặn dưới trong M (điều này chắc
chắn xảy ra nếu M là đa diện lồi).

 Thuật toán
Khởi tạo. Chọn phương án bất kỳ x1M (Có thể sử dụng đơn hình hai pha).
Bước lặp k = 1, 2, 3…
Khi đã có xk ( k 0), để tìm xk+1 ta giải QHTT phụ:

Tìm x k  arg min  F( x k ),x  x k | x  M 

( Tương đương bài toán Tìm x k  arg min  F( x k ),x | x  M  )
k
Do giả thiết (II) nên x tồn tại, là 1 đỉnh của M. Có 2 trường hợp xảy ra:

a. Nếu F ( x k ), x k  x k  0 : Khi đó với x  M F ( x k ), x  x k  0 , nên xk là lời giải tối
ưu của bài toán.
 
b. Nếu F ( x k ), x k  x k  0 , khi ấy hàm mục tiêu giảm theo hướng đi từ xk đến x k . Khi đó

cần chọn xk+1 làm cực tiểu hàm F  x  trên  x k , x k  , tức là giải bài toán cực tiểu một biến:

Min  F [ x k   ( x k  x k )] | 0    1 ta được k.

Tính x k 1 = x k  k ( x k - x k ) và thực hiện lại bước lặp k+1.

Định lý 4.3 Thực hiện theo thuật toán Frank-Wolfe ta có:


i)    giảm dần đến F*  min F  x 
Dãy F x k
xM

k 0  F  x k   F*  F( x k ),x  xk k
ii)
Ý nghĩa:
i) Thuật toán bảo đảm tính hội tụ;
ii) Cho biết sai số của hàm mục tiêu tại bước k.

Trang: 43/ 57
Bài Giảng Lý Thuyết Tối Ưu
Minh họa

Chứng minh định lý 4.3:


Giải sử thuật toán được thực hiện theo các bước k= 1, 2, 3, …

i. Gọi E là tập các đỉnh của M trong dãy  x k  . Khi đó  x k   conv  x0 ,E  . Tập  x 0   E

chỉ có một số hữu hạn điểm nên conv  x0 ,E  là tập compact. Suy ra dãy  x k  có một điểm tụ là x và

   giảm dần nên  F*  F  x   lim F  x  . Ta cần chứng minh rằng x là phương án tối
dãy F x k
k 
k

ưu của bài toán đã cho.

Do tập đỉnh của M là hữu hạn nên dãy  x k  có những đỉnh của M được lặp lại nhiều lần. Ta

xét một dãy con  x kr  hội tụ đến x , tương ứng có các đỉnh x kr trùng nhau là x .


Do    0,1 F [ x kr   ( x  x kr )]  F  x kr 1  nên chuyển qua giới hạn khi r   ta được:

 F [ x   ( x  x)]  F  x  
F [ x   ( x  x)]  F  x  từ đó suy ra lim  F  x  , x  x  0
 0 
Mặt khác do cách xây dựng dãy con  x  (nghiệm của bài toán Min) nên:
kr

x  M F  x kr  , x  x kr  F  x kr  , x  x kr  0
nên chuyển qua giới hạn khi r   ta được:
x  M F  x  , x  x  F  x  , x  x  0

Theo định lý 4.1 thì x là phương án tối ưu của bài toán.


ii. Với x  M ta có x  x k   x  x k  suy ra
F  x   F  x k   F  x k   x  x k    F  x k   F( x k ),x  x k  F( x k ),x k  x k

Thay x bởi x ta có:


F  x   F  x k   F( x k ),x k  x k hay 0  F  x k   F*  F( x k ),x k  x k
 

Thí dụ 4.1 Giải bài toán quy hoạch lồi sau đây:

F ( x)  8 x12  10 x22  12 x1x2  50 x1  80 x2  min


 g1 ( x)  x1  x2  1  0

M   g 2 ( x)  x1  1  0
 2
 x1, x2  0
Giải.
Bước k=1. Chọn x 0   0; 0  , tính:
Trang: 44/57
Bài Giảng Lý Thuyết Tối Ưu
F F
=16x1 +12x2 +50 =12x1 +20x2 -80 F  x 0    50; 80 
x1 x2
F  x 0  , x  x 0   50; 80  ,  x1 , x2   50 x1  80 x2 .
Giải bài toán QHTT : Min   x   50 x1  80 x2
xM

0
Tính   0   0;   A   80;   B   15;   C   25. Ta được x   0;1 .

F  x 0  , x  x 0  80 nên x   0;1 không phải là phương án tối ưu. Tính


0 0
Do

x 0   ( x 0 - x 0 )   0;0     0;1   0;  

     F  x 0   ( x 0 - x 0 )   10 2  80 ; .
 '     20  80  0    4   0,1 . Chọn   1 ta được x1   0;1 .
Bước k=2. F  x1    62; 60  .

F  x1  , x  x1   62; 60  ,  x1 , x2  1  62 x1  60 x2  60 .
Giải bài toán QHTT : Min   x   62 x1  60 x2
xM
1
Tính   0   0;   A   60;   B   1;   C   62. Ta được x   0;1 .

Do F  x1  , x  x1  0 nên x*  x1 và F*  F  x*   10  80  70.
1

Thí dụ 4.2 Giải bài toán quy hoạch lồi sau đây
f ( x)  2 x12  x22  3 x32  x1 x2  2 x1 x3  x2 x3  10 x1  9 x2  26 x3  Min
 x1  x2  x3  x4 4
 x  2x  x3  x5 3
 1 2
2 x  2 x  x3  x5  x6 4
 1 2

 x j  0 , j  1, 6

Giải.
Khởi tạo. Bằng phương pháp đơn hình hai pha tìm được phương án x 0   0,0,3,1,0,1
 f f  f f
  4 x1  x2  2 x 3 10 0  ( x0 )  4 ( x0 )  0
 x1 x4 
 1 x x4
 f f  f f
Tính:    x1  2 x2  x 3 9  0 
 ( x0 )  6 ( x0 )  0
  x 2 x5  x2 x5
 f f  f f
  2 x1  x2  6 x 3 26 0  ( x 0 )  8 ( x0 )  0
 x3  x6  x3  x6

Trang: 45/ 57
Bài Giảng Lý Thuyết Tối Ưu
x  arg min  f ( x 0 ),x | x  M 
0
Giải bài toán QHTT:

B cJ xJ 4 6 -8 0 0 0 hj
A1 A2 A3 A4 A5 A6
A3 -8 3 1 2 1 0 -1 0
A4 0 1 0 -1 0 1 1 0
A6 0 1 1 0 0 0 0 1
k -12 -22 0 0 8 0
A3 -8 4 1 1 1 1 0 0
A5 0 1 0 -1 0 1 1 0
A6 0 1 1 0 0 0 0 1
k -12 -14 0 -8 0 0
0
Ta có x = ( 0, 0,4, 0 , 1, 1)

Tính  f ( x 0 ), x 0  x 0  =  f ( x 0 ), (0, 0,1, 1,1, 0)  =-8 < 0
Như vậy x0 chưa phải là phương án tối ưu.
0
x0 +( x -x0) =(0,0,3,1,0,1) +(0,0,1,-1,1,0) = (0,0, 3+, 1-, , 1)
0
( ) = f[x0 +( x -x0)] = 3(3+)2-26(3+) = 32 -8 -51
Giải bài toán cực tiểu hàm 1 biến:
0
Min { f[x0 +( x -x0)] | 0≤ ≤ 1 } = Min { 32 -8 -51 | 0≤ ≤ 1 }
’= 6 -8 , ’=0  =8/6 >1  * =1
0 0
Do đó x1 = x0 +( x -x0) = x = ( 0, 0,4, 0 , 1, 1)
 f 1 f 1 f 1
 x ( x )  2 ( x )  5 ( x )  2
 1 x2 x3

 f ( x1 )  0 f 1
(x )  0
f 1
(x )  0
 x4 x5 x6
x 1  arg min  f ( x1 ),x | x  M 

Giải bài toán :

B cJ xJ 2 5 -2 0 0 0 hj
A1 A2 A3 A4 A5 A6
A3 -2 4 1 1 1 1 0 0
A5 0 1 0 -1 0 1 1 0
A6 0 1 1 0 0 0 0 1
k -4 -7 0 -2 0 0

Ta có x 1 = ( 0, 0,4, 0 , 1, 1) =x1

Tính f ( x1 ), x1  x1 = 0. Suy ra x* = x1

4.2.3 Phương pháp giải qui hoạch lồi tổng quát


Xét bài toán QHL dạng tổng quát:
Tìm Min  F  x  | x  M  , (4.6)

 
với F  x  là một hàm lồi và M  x  R n | gi  x   0 ,i  1,m , với gi  x  là các hàm lồi trong không
n
gian R . Ta bổ xung các giả thiết :

Trang: 46/57
Bài Giảng Lý Thuyết Tối Ưu
I. Các hàm F  x  và gi  x  i=1, m là các hàm khả vi liên tục;

 
II.  x0 M sao cho gi x 0  0 với mọi ràng buộc phi tuyến (Giả thiết chính qui);
III. Tập M giới nội. Khi ấy tồn tại đa điện Q  M.
 Giải thuật Rosen, Murtagh và Sargen:
- Đường lối chung: Xây dựng dãy phương án: x0, x1,…,xk sao cho F  x k   F *  min F  x 
xM

+ Xuất phát từ x 0  M ;
+ Khi đã có xk (k 0) chọn hướng chấp nhận được (theo qui tắc T nào đó) zk sao cho:
F( x k ),x k  z k  0 (4.7)

Nếu không tồn tại hướng zk như vậy thì z  M x k F ( x k ), z  0 do đó x*=xk.

+ Tìm xk+1 bằng cách giải bài toán: F x k 1  min   F  x k



 z k |   0 ,x k  z k  M 
   
Dễ thấy F x k 1  F x k với k= 0,1,2,… Vấn đề còn lại là xác định qui tắc T như thề nào.

 
Giả sử đã có x 0  M sao cho gi x 0  0 với mọi ràng buộc phi tuyến. Với mỗi a  M ta đặt:


P  a   x  R n | gi  a  , x  a  gi  a   0, i  1, m  (4.8)
Rõ ràng là:
i) M  P  a  : Vì nếu x  M thì gi  x   0, i 1, m nên

gi  a  , x  a  gi  x   gi  a    gi  a  , do đó x  P  a  .

ii) Nếu gi  x  là hàm affin thì bất đẳng thức gi  a  , x  a  gi  a   0 tương đương với
gi  x   0 . Vì g i  a  , x  a  g i  a   g i  x   g i  a   g i  a   g i  x   0 .

Vì vậy nếu a  M và x  P  a  thì với   0 hướng z   x  a    x 0  a là hướng chấp  


nhận được tại a (nếu x nằm trên biên của M thì hướng z là hướng hiệu chỉnh (x-a) vào phía trong M).

 Thuật toán
Khởi tạo. Xuất phát từ phương án x 0  M
Bước lặp k= 0, 1, 2, 3, … Giải qui hoạch tuyến tính phụ:

  
x k  arg min F x k ,x  x k | x  P x k  Q   
 

Đặt  k  F x k , x k  x k . Khi đó có 2 khả năng:

     
i) Nếu  k  0 thì x  P x k  Q F  x   F x k  F x k , x  x k   k  0 , do đó xk là
phương án tối ưu.

   
ii) Nếu  k  0 thì hướng z k  x k  x k   x 0  x k là hướng chấp nhận được tại xk,

  
với   min 1,  k
 2  k 
k 0
 
k
 và  k  F x , x  x .

Trang: 47/ 57
Bài Giảng Lý Thuyết Tối Ưu
Chọn x k 1  x k  k z k sao cho F x k 1  min  F  x k  z k  |   0 , x k  z k  M  .
 
Nếu đặt  ( )  F ( x k   z k ) thì  k  max   0 | x k  z k  M , ’(  )  0 .
Chuyển sang bước k+1.
Định lý 4.4 Thực hiện theo thuật toán Rosen, Murtagh và Sargen ta có:
   giảm dần đến F*  min F  x 
i) Dãy F x k
xM

ii) k 0  F  x k   F*  F( x k ),x  x k k

Thí dụ 4.3 Giải bài toán qui hoạch lồi sau đây:
F ( x)  8 x12  10 x22  12 x1x2  50 x1  80 x2  min
 g1 ( x)  x1  x2  1  0

 g 2 ( x)  8 x12  x22  2  0
 x1, x2  0

F F
Giải. =16x1 +12x2 +50 =12x1 +20x2 -80
x1 x2
g1 g1 g 2 g 2
=1 =1 =16x1 =2x2
x1 x2 x1 x2
 x1  x2  1  0
 1
Đa diện Q   x1   0  M
 2
 1 2  0
x , x
Khởi tạo. Chọn x 0  (0, 0) thỏa mãn điều kiện chính qui g 2 x 0  0 .  
Bước lặp k=0. Xây dựng đa diện :
    
P x 0  x  R n | gi x 0 , x  x 0  gi x0  0, i  1, 2   
Ta có g  x   (1,1) g  x   (0, 0)
1
0
2
0

g  x  , x  x
1
0 0
 
 g1 x 0  x1  x2 1  0

g  x  , x  x
2
0 0
 g  x   0  2  2  0
2
0

Trang: 48/57
Bài Giảng Lý Thuyết Tối Ưu
Vì vậy  
P x 0   x  R n | x1  x2 1  0 hay P x 0  Q  Q  
Giải qui hoạch tuyến tính phụ:
 
F x 0 , x  x 0  50 x1  80 x2  min
 x1  x2  1  0
 1 0
 x1   0 được x  (0,1)
 2
 1 2  0
x , x

  
F x 0 , x 0  x 0  80  0 nên x0 chưa phải phương án tối ưu.

  
Xác định hướng chấp nhận được: z 0  x 0  x 0   x 0  x 0   0,1 
 
 ( )  F x 0   z0  10 2  80 , ’( )  20  80  0    4
Tìm  0  max   0 | x 0  z 0  M , ’     0  max   0 | x 0  z 0  M ,   4
 x 0  z 0    0 ,1   0 ,    M
max   0  1
 
 4
x1  x 0  0 z 0   0,1
Bước lặp k=1. Xây dựng đa diện:
    
P x1  x  R n | gi x1 , x  x1  gi x1  0, i  1, 2   
 
g1 x1 , x  x1  
 g1 x1  x1  x2 1  0

g 2  x , x  x
1 1
 g  x   2x
2
1
2  2 1  0

  
Vì vậy P x1  x  R n | x1  x2  1  0, x2 
3
2 
 0 hay P x1  Q  Q 
Giải qui hoạch tuyến tính phụ:
 
F x1 , x  x1  62 x1  60 x2  60  min
 x1  x2  1  0
 1 1
 x1   0 được x  (0,1)
 2
 x1, x2  0
Vì  
F x1 , x1  x1  0 nên x1 là phương án tối ưu và F* = -70

Trang: 49/ 57
Bài Giảng Lý Thuyết Tối Ưu
4.3 QUY HOẠCH TOÀN PHƯƠNG
4.3.1 Các bài toán cơ bản
Quy hoạch toàn phương nghiên cứu các thuật toán giải bài toán tìm cực tiểu của các hàm lồi
bậc 2 trên đa diện lồi. QHTP gồm có các dạng:
 Dạng chính tắc
F  x   p0  2 p,x  x,Cx  Min
với x  M   x  R n | Ax  b,x  0 .
Trong đó:
+ p0 là một hàng số, có thể xem p0  0 , p  R m ;
+ C   cij  là ma trân vuông đối xứng xác định không âm (nửa dương): Khi đó F  x  là một
nn
hàm lồi bậc 2 và x,Cx  0 với x ;
+ A   aij  , b  R m . Không mất tính tổng quát, có thể giả thiết b  0 .
mn

 Dạng chuẩn
F  x   p0  2 p,x  x,Cx  Min
với x  M   x  R n | Ax  b,x  0
Không có giả thiết b  0 .
 Dạng hỗn hợp
F  x   p0  2 p,x  x,Cx  Min
với x  M   x  R n | Ax  ,  , b, x  0 
4.3.2 Phương pháp đơn hình Beale
Áp dụng cho cho QHTP cả 3 dạng nói trên.
Bắt đầu từ một cơ sở của bài toán. Giả sử ở bước lặp k có các biến phi cơ sở là z1k ,z2k ,...,ztk .
Các biến này hoặc là các biến không âm trong số các biến gốc x1 ,x2 ,x3 ,...,xn hoặc là các biến tự do
(không có ràng buộc về dấu) được thêm vào trong quá trình giải. Hệ số của các biến biểu diễn hàm
mục tiêu và ràng buộc được ghi trong bảng đơn hình Beale ở bước lặp k như sau:

1 z1k z2k ... ztk


k k k
x1 d10 d11 d12 ... d1kt
Bảng x2 k
d 20 k
d 21 k
d 22 ... d 2kt
đơn ... …
hình xn d nk0 d nk1 d nk2 ... d ntk
k k k
1 c00 c01 c02 ... c0k t
Bảng hệ k k k
... c1kt
z1k c10 c11 c12
số hàm k k k
z2k c20 c21 c 22 ... c 2k t
mục tiêu ...
...
ztk ctk0 ctk1 ctk2 ... cttk

Trang: 50/57
Bài Giảng Lý Thuyết Tối Ưu
Quá trình tính toán gồm các bước lặp k = 1,2,3,…. Mỗi bước gồm các thủ tục:
1. Kiểm tra tối ưu và tìm cột xoay
k
Xét hàng đầu tiên của bảng dưới của bảng (trừ phần tử đầu tiên c00 ). Tiêu chuẩn tối ưu cho là
c0k j  0 nếu z kj là biến tự do và c0k j  0 nếu z kj là biến không âm.
Nếu tiêu chuẩn tối ưu không được thoả mãn, ta chọn cột xoay là cột có z kj là biến tự do mà
c0k j  0 . Nếu không có cột nào như thế thì ta chọn cột xoay là cột có z kj là biến không âm và
c0k j  0 . Ký hiệu cột xoay là q.
c0kq k
2. Tìm hàng xoay: Lập tỷ số k
nếu cqq 0
cqq

dik0
và các tỷ số nếu diqk c0kq  0 , j  1,n .
diqk

Hàng ứng với tỷ số nhỏ nhất sẽ là hàng xoay, ký hiệu là p. Nếu tỷ số đầu là nhỏ nhất thì hàng
xoay sẽ là dòng q thuộc bảng dưới và biến zqk được thay bằng biến tự do mới. Nếu một trong các tỷ
số sau đạt cực tiểu thì hàng xoay p thuộc nửa trên của bảng thì biến zqk sẽ được thay bằng biến
k
không âm xp. Phần tử nằm trên hàng xoay và cột xoay gọi là phần tử xoay ( d qp hoặc c kpp ).

3. Biến đổi cột xoay. Chia cột xoay cho phần tử xoay, tức là chia các phần tử của cột q cho
d kpq k
hoặc cqq ta được cột q mới.

4. Biến đổi các cột khác


(Cột c mới) = ( Cột c cũ) – (Phần tử trên cột c và hàng p )*(Cột q mới).
5. Biến đổi dòng xoay thứ hai: Là hàng q của nửa dưới của bảng. Nếu hàng xoay thứ nhất
nằm ở nửa dưới của bảng thì hàng xoay thứ hai trùng với hàng xoay thứ nhất.
Chia hàng xoay thứ hai cho phần tử xoay.
6. Biến đổi các dòng khác của nửa dưới của bảng h = 0..t
(Hàng h mới) = ( Hàng h cũ) – (Phần tử cột h trên hàng xoay chưa biến đổi)*(Hàng q)
Chuyển sang bước k+1.
Thí dụ 4.4 Giải bài toán Qui hoạch toàn phương sau bằng phương pháp Đơn hình Beale
f ( x)  20 x12  5 x22  18 x1 x2  20 x1  50 x2  Min
 x1  x2  6

 x1  4 x2  18
 x  0, x  0
 1 2

Giải. Đưa bài toán về dạng chính tắc:


f ( x)  20 x12  5 x22  18 x1 x2  20 x1  50 x2  Min
 x1  x2 +x 3 = 6
 x  4 x  x = 18
 1 2 4
 x  0 , j=1, 4
 j

Trang: 51/ 57
Bài Giảng Lý Thuyết Tối Ưu
Tìm cơ sở xuất phát : x3= 6, x4= 18, x1 = x2 = 0

1 x1 x2
x1 0 1 0
x2 0 0 1
x3 6 -1 -1
x4 18 -1 -4
1 0 -10 -25
x1 -10 20 -9
x2 -25 -9 5
Bước lặp 1.
C01 = -10<03,2
C02 = -25< 0 chọn cột xoay q=x2
Lập các tỷ số |C0q|/Cqq = 25/5=5
d30 /| d3q| =6/1 =6
d40 /| d4q| =18/4 =4,5  min
Chọn hàng xoay p=x4
1 x1 x4 1 x1 x4
x1 0 1 0 x1 0 1 0
x2 9/2 -1/4 -1/4 x2 9/2 -1/4 -1/4
x3 3/2 -3/4 1/4 x3 3/2 -3/4 1/4
x4 0 0 1 x4 0 0 1
1 225/2 -15/4 25/4 1 -495/4 -399/8 5/8
x1 -101/2 89/4 9/4 x1 -399/8 397/16 41/16
x4 -5/2 -41/4 -5/4 x4 5/8 41/16 5/16
c3’=c3/-4 c1=c1-18c3’ c2=c2+c3’ h3’=h3/-4 h1=h1-18h3’ h2=h2+h3’
Bước lặp 2.
C01 = -399/8 <0 chọn cột xoay q=x1
Lập các tỷ số |C0q|/Cqq = 399/8 / 397/16 = 798/387  min
d20 /| d2q| =9/2 / 1/4 = 18
d30 /| d4q| =3/2 / 3/4 = 2  min
Chọn hàng xoay p=x3
1 x3 x4 1 x3 x4
x1 2 -4/3 1/3 x1 2 -4/3 1/3
x2 4 1/3 -1/3 x2 4 1/3 -1/3
x3 0 1 0 x3 0 1 0
x4 0 0 1 x4 0 0 1
1 -447/2 133/2 -16 1 -224 1/3 17/3
x3 -1/4 -397/12 65/6 x3 1/3 397/9 -130/9
x4 23/4 -41/12 7/6 x4 17/3 -130/9 43/9
Phương án: x1 =2, x2 = 4 F* = -224
 Hàm xoay bảng đơn hình Beale
function [A,B]=XoayBeale(T,D,p,q)
H=[T;D];[m n]=size(T);
X=H(p,:);
H(:,q) = H(:,q)/X(q);
for c=[1:q-1,q+1:n]
Trang: 52/57
Bài Giảng Lý Thuyết Tối Ưu
H(:,c)=H(:,c)-X(c)*H(:,q);
end;
H
A=H(1:m,:);B=H(m+1:m+n,:);
B(q,:) = B(q,:)/X(q);
for h=[1:q-1,q+1:n]
B(h,:)=B(h,:)-X(h)*B(q,:);
end;
Thí dụ 4.5 Áp dụng cho bài toán trong thí dụ 4.4
>> T = [0 1 0
0 0 1
6 -1 -1
18 -1 -4];
>> D = [ 0 -10 -25
-10 20 -9
-25 -9 5];
>> [T,D]=XoayBeale(T,D,4,3)
>> [T,D]=XoayBeale(T,D,3,2)
H=
2 -4/3 1/3
4 1/3 -1/3
0 1 0
0 0 1
-447/2 133/2 -16
-1/4 -397/12 65/6
23/4 -41/12 7/6
T=
2 -4/3 1/3
4 1/3 -1/3
0 1 0
0 0 1
D=
-224 1/3 17/3
1/3 397/9 -130/9
17/3 -130/9 43/9

Trang: 53/ 57
Bài Giảng Lý Thuyết Tối Ưu
Thí dụ 4.6 f ( x)  2 x  2 x  3 x3  2 x1 x3  4 x2 x3  3 x1  14 x2  15 x3  Min
2 2 2
1 2

2 x1 + 3x2 - x3  12
4 x 2 x3  10
 1 - x2
x 2 x2 2 x3  15
 1
 x j  0, j  1,3

Giải. Đưa bài toán về dạng chính tắc. và tìm cơ sở xuất phát
 0 1 0 0
 
 0 0 1 0  0 3 / 2 7 15 / 2 
 0 0 0 1  
 3/ 2 2 0 1 
T   D >> [T,D]=XoayBeale(T,D,5,4)
 12 2 3 1   7 0 2 2 
 10 4 1 2   
 15 / 2 1 2 3 
 
 15 1 2 2 
 Phương án xuất phát: x3= 5, x4= 17, x6=5, x1 = x2 =x5 =0
x 1 x1 x2 x5
x1 0 1 0 0
x2 0 0 1 0
x3 5 -2 1/2 1/2
x4 17 -4 5/2 1/2
x5 0 0 0 1
x6 5 3 -3 -1
1 150 -97/2 -23/4 45/4
x1 -97/2 18 1/2 -7/2
x2 -23/4 1/2 3/4 -1/4
x5 45/4 -7/2 -1/4 3/4
| 97 / 2 | /18
5
Bước lặp 1. Chọn cột xoay q=x1 Min  17 / 4    Chọn hàng xoay p=x3
 5 / 2  2
 
1 x3 x2 x5 1 x3 x2 x5
x1 5/2 -1/2 1/4 1/4 x1 5/2 -1/2 1/4 1/4
x2 0 0 1 0 x2 0 0 1 0
x3 0 1 0 0 x3 0 1 0 0
x4 7 2 -7/2 -1/2 x4 7 2 -7/2 -1/2
x5 0 0 0 1 x5 0 0 0 1
x6 25/2 -3/2 -9/4 -1/4 x6 25/2 -3/2 -9/4 -1/4
1 115/4 97/4 -143/8 -7/8 1 20 7/4 -43/8 13/8
x3 -7/2 -9 5 1 x3 7/4 9/2 -5/2 -1/2
x2 -9/2 -1/4 7/8 -1/8 x2 -43/8 -5/2 17/8 1/8
x5 5/2 7/4 -9/8 -1/8 x5 13/8 -1/2 1/8 1/8
 43 17 43 
 8 / 
8 17 
 
 7 
Bước lặp 2. Cột xoay q=x2 Min  7 /  2  = 2  hàng xoay p =x4
 2 
 25 9 25 
 2 / 
 2 9 

Trang: 54/57
Bài Giảng Lý Thuyết Tối Ưu
1 x3 x4 x5 1 x3 x4 x5
x1 3 -5/14 -1/14 3/14 x1 3 -5/14 -1/14 3/14
x2 2 4/7 -2/7 -1/7 x2 2 4/7 -2/7 -1/7
x3 0 1 0 0 x3 0 1 0 0
x4 0 0 1 0 x4 0 0 1 0
x5 0 0 0 1 x5 0 0 0 1
x6 8 -39/14 9/14 1/14 x6 8 -39/14 9/14 1/14
1 37/4 -37/28 43/28 67/28 1 7 -109/28 9/28 57/28
x3 -13/4 43/14 5/7 -1/7 x3 -109/28 229/98 18/49 -12/49
x4 -9/8 -9/7 -17/28 -5/28 x4 9/28 18/49 17/98 5/98
x5 15/8 -3/7 -1/28 3/28 x5 57/28 -12/49 5/98 13/98
 109 229 763 
 28 / 98  458 
 
 5 42  763
Cột xoay q=x3, Min  3 /     hàng xoay p=x3 của bảng dưới
 14 5  458
 39 112 
 8 / 14  39 
 
1 z1 x4 x5 1 z1 x4 x5
x1 2203/916 -35/229 -7/458 81/458 x1 2203/916 -35/229 -7/458 81/458
x2 676/229 56/229 -86/229 -19/229 x2 676/229 56/229 -86/229 -19/229
x3 763/458 98/229 -36/229 24/229 x3 763/458 98/229 -36/229 24/229
x4 0 0 1 0 x4 0 0 1 0
x5 0 0 0 1 x5 0 0 0 1
x6 1300/387 -273/229 495/458 -101/458 x6 1300/387 -273/229 495/458 -101/458
1 943/1832 -763/458 855/916 1491/916 1 943/1832 0 855/916 1491/916
x3 0 1 0 0 x3 0 98/229 0 0
x4 855/916 36/229 53/458 41/458 x4 855/916 0 53/458 41/458
x5 1491/916 -24/229 41/458 49/458 x5 1491/916 0 41/458 49/458
Bài toán gốc có phương án tối ưu: X*=(2203/916 , 676/229 , 763/458) F*= 943/1832

4.3.3 Phương pháp Hildreth-D’Esopo


Áp dụng cho bài toán QHTP dạng chuẩn (Học viên tự đọc).

Trang: 55/ 57
Bài Giảng Lý Thuyết Tối Ưu

ÔN TẬP
Chương 3. Quy hoạch phi tuyến
Lý thuyết:
1. Trình bày giải thuật Chia đôi tìm cực tiểu hàm một biến trong một khoảng.
2. Trình bày giải thuật Lát cắt vàng tìm cực tiểu hàm một biến trong một khoảng.
3. Trình bày giải thuật Gauss-Seidel tìm cực tiểu không ràng buộc.
4. Trình bày giải thuật Tìm kiếm trực tiếp tìm cực tiểu không ràng buộc.
5. Trình bày giải thuật Gradient tìm cực tiểu không ràng buộc.
6. Trình bày giải thuật Newton tìm cực tiểu không ràng buộc
Bài tập:
1. Sử dụng thuật toán Chia đôi và Lát cắt vàng cho hàm mục tiêu trong các bài tập chương 3 trên 1
đoạn thẳng chọn trước trong không gian Rn.
2. Sử dụng thuật toán 3-6 tìm cực tiểu không ràng buộc của các hàm mục tiêu trong các bài tập
chương 3, với xấp xỉ đầu là vector x0 chọn trước.

Chương 4. Quy hoạch lồi


Lý thuyết
1. Trình bày giải thuật Frank-Wolfe giải bài toán Quy hoạch lồi ràng buộc tuyển tính.
2. Trình bày giải thuật Rosen, Murtagh và Sargen giải Quy hoạch lồi dạng tổng quát.
3. Trình bày giải thuật Đơn hình Beale giải Quy hoạch toàn phương.
Bài tập
1. Giải các bài toán Qui hoạch lồi ah bằng giải thuật Frank-Wolfe.
2. Giải bài toán Qui hoạch toàn phương ah bằng phương pháp Đơn hình Beale.
a. f ( x)  20 x12  5 x22  18 x1 x2  20 x1  50 x2  Min
 x1  x2  6

 x1  4 x2  18
 x  0, x  0
 1 2

b. f ( x)  24 x12  7 x22  18 x1 x2  22 x1  30 x2  32 x3  Min


2 x1  x2 2 x3 8
 x  5x  22
 1 2
 x j  0 , j=1,3

c. f ( x)  2 x12  4 x22  3 x32  2 x1 x3  4 x2 x3  6 x1  12 x2  15 x3  Min
2 x1 + 3x2 - x3  12
4 x - x2 2 x3  10
 1
x 2 x2 2 x3  15
 1
 x j  0, j  1,3

d. f ( x)  4 x1  2 x2  3 x3  4 x1 x2  2 x2 x3  8 x1  3 x2  6 x3  Min
2 2 2

 x1  2x2 - x3  15
 x + x2 + x3 - x4  20
 1
2x  x3  2x4  52
 1
 x j  0, j  1, 4

Trang: 56/57
Bài Giảng Lý Thuyết Tối Ưu
e. f ( x)  4 x  2 x  3 x  2 x1 x3  2 x2 x3  12 x1  6 x2  13 x3  Min
2 2 2
1 2 3

 x1  x2 3x4  x5  6
 x2  x3  x4 4 x5  3

x  x3 2 x4  x5  5
 1
 x j  0, j  1,5

f. f ( x)  5 x12  2 x22  2 x32  2 x1 x2  x1 x3  4 x2 x3  12 x1  8 x2  30 x3  Min
 x1 + x2 - x3  12
2 x -3x2  x3  10
 1
x 2 x2 2 x3  4
 1
 x j  0, j  1,3

g. f ( x)  5 x1  2 x2  2 x3  4 x1 x2  x1 x3  2 x2 x3  12 x1  8 x2  30 x3  Min
2 2 2

2 x1 + 3x2 - x3  12
4 x - x2 2 x3  10
 1
x 2 x2 2 x3  15
 1
 x j  0, j  1,3

h. f ( x)  2 x1  3 x2  3 x3  2 x1 x3  4 x2 x3  3 x1  14 x2  15 x3  Min
2 2 2

 x1 2 x2  x3  15
 x  x2  x3 - x4  20
 1
2x  x3 2 x4  52
 1
 x j  0, j  1, 4

Trang: 57/ 57

You might also like