Professional Documents
Culture Documents
BÀI GIẢNG
LÝ THUYẾT TỐI ƯU
Tài Liệu Này của Học Viê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.
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
j1
n
a ij x j bi ,i 1, m
j1
x 0, j 1, n
j
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 VV 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
i1
2
i
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 , bRm 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
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.
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 xG thì x0 + (x-x0)G
với 0. Nghĩa là nếu xG thì nửa đường thẳng [x0,) chứa x cũng nằm trong G.
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à x0X . 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 x0F 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à
j1
j1
j 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 j1 i 1 j1
m m
Do i0 và (1-)j0 và i + (1 ) j = +(1-) = 1 nên x0 là tổ hợp lồi của các điểm
i 1 j1
i
cực biên x , i 1, m (đpcm).
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 ={ xRn | 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): xD, 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
a x
j1
ij j bi ,i 1, m (2.2)
x j 0, j 1, n (2.3)
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)
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={xRn | 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.
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.
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)jJ: Ma trận cơ sở và xJ = ( xj) jJ ;
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à
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 jJ để 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)jJ 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.
Do (Aj)jJ 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)
jJ
Đị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)jJ , thì xD ta có:
xj = x 0j v jk x k j J (2.11)
kJ
F(x) = F(x ) k x k
0
(2.12)
kJ
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 , jJ : Số gia của biến xj
kJ
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)jJ , 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)jJ. 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.
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
kJ
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 jJ1= J\{p}{q} (2.17)
kJ
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 kJ.
jJ
Sử dụng bảng đơn hình
- Nếu kJ 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 jJ 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
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
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.
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 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-).
x j 0; j 1, 4
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
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={ xRn | A x ≤ b , x0}
Để 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={ xRn | 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
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
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
Đị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
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 x0X
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.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ó.
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
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.
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
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 .
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.
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;
...
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.
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
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
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
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
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;
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
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
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
F x z F x F x x x F x F x F x 0
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ó
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
xM
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
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
x0
trong đó: F x là một hàm lồi, A aij mn ,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:
xM
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ỳ x1M (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.
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
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
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
Thí dụ 4.1 Giải bài toán quy hoạch lồi sau đây:
0
Tính 0 0; A 80; B 15; C 25. Ta được x 0;1 .
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
xM
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+) = 32 -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 { 32 -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
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
xM
+ 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)
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 .
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
xM
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
nn
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 .
mn
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:
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.
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
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.
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