i. Mục đích, đối tượng và phạm vi nghiên cứu của đề tài
2.1.2. Phân loại các bài toán tối ưu
Các bài toán tối ưu cũng còn được gọi là các bài toán quy hoạch toán học, được chia ra thành các lớp sau [18÷22]:
- Bài toán quy hoạch tuyến tính (QHTT) nếu hàm mục tiêu f(x) và tất cả các hàm ràng buộc gi(x), i = 1…m, hj(x), j = 1, …, p, đều là tuyến tính và X là một tập lồi đa diện. Một số trường hợp riêng quan trọng của bài toán QHTT là bài toán vận tải, bài toán sản xuất
31 đồng bộ…
- Bài toán tối ưu phi tuyến hay còn gọi là bài toán quy hoạch phi tuyến (QHPT) nếu hàm mục tiêu f(x) hoặc một trong các hàm ràng buộc gi(x), i=1,…, m, hj(x), j=1, …, p, không phải là tuyến tính và X không phải là một tập hợp lồi đa diện.
- Bài toán quy hoạch động nếu đối tượng được xét là các quá trình có thể chia ra thành nhiều giai đoạn hoặc các quá trình phát triển theo thời gian. Trong nhiều trường hợp bài toán quy hoạch động lại có thể diễn đạt như một bài toán tĩnh và thường đưa về dạng bài toán QHTT với kích thước lớn.
- Bài toán quy hoạch lồi nếu hàm mục tiêu cần tìm cực tiểu là lồi (hay hàm cần tìm cực đại là lõm) và miền ràng buộc D là một tập hợp lồi. Đây là lớp bài toán QHPT được nghiên cứu nhiều nhất. Một trường hợp riêng quan trọng của quy hoạch lồi là quy hoạch toàn phương, trong đó xét bài toán tìm cực tiểu của một hàm lồi bậc hai với các ràng buộc tuyến tính.
- Bài toán quy hoạch lõm nếu hàm mục tiêu cần tìm cực tiểu là lõm và miền ràng buộc D là một tập hợp lồi. Đây là một bài toán điển Hình trong lớp các bài toán QHPT không lồi đã được nghiên cứu khá kỹ. Đơn giản nhất là bài toán tìm cực tiểu của một hàm lõm với các ràng buộc tuyến tính.
- Quy hoạch phân thức nếu hàm mục tiêu là thương của hai hàm số cho trước và miền ràng buộc D là một tập hợp lồi. Trường hợp riêng đáng chú ý là quy hoạch phân tuyến tính khi hàm mục tiêu là thương của hai hàm tuyến tính.
- Bài toán quy hoạch rời rạc nếu miền ràng buộc D là một tập hợp rời rạc. Trường hợp khi các biến chỉ nhận giá trị nguyên, ta có một quy hoạch nguyên. Một số trường hợp riêng quan trọng của quy hoạch nguyên là quy hoạch với biến Boole (các biến chỉ nhận giá trị 0 hay 1) và QHTT nguyên, đó là bài toán QHTT với các biến số chỉ lấy giá trị nguyên.
- Bài toán quy hoạch đa mục tiêu nếu trên cùng một miền ràng buộc ta xét đồng thời hai hay nhiều mục tiêu khác nhau (tuyến tính hoặc không tuyến tính).
- Ngoài ra còn có bài toán quy hoạch ngẫu nhiên khi các tham số trong bài toán không có giá trị xác định mà được mô tả bởi các phân phối xác suất, quy hoạch lồi đảo khi miền ràng buộc là hiệu của hai tập hợp lồi, quy hoạch được khi hàm mục tiêu hay hàm ràng buộc là hiệu của hai hàm lồi, quy hoạch Lipschits với các hàm trong bài toán là hàm Lipschitz, quy hoạch trong không gian vô hạn chiều, quy hoạch với vô số ràng buộc.
Trong các bài toán tối ưu, quan trọng nhất và được sử dụng nhiều hơn cả là bài toán tối ưu tuyến tính và phi tuyến. Mục tiêu nghiên cứu của luận án là xây dựng bộ tham số điều chỉnh góc phun sớm (s) và áp suất phun (pf) tối ưu để đạt được mô men lớn nhất ở đường đặc tính ngoài, suất tiêu hao nhiên liệu của động cơ nhỏ nhất ở đường đặc tính bộ phận và lượng nhiên liệu tiêu thụ là ít nhất ở chế độ không tải. Trong nghiên cứu này các hàm điều chỉnh có thể là hàm tuyến tính hoặc phi tuyến. Vì vậy sau đây xin trình bày kỹ hơn về bài toán tối ưu tuyến tính và bài toán tối ưu phi tuyến.
32
2.1.2.1. Bài toán tối ưu tuyến tính
Bài toán QHTT tổng quát có dạng [23÷25]:
Tìm xj, j = 1,2,…,n sao cho: f = min
1 j n j jx c (max) (2.1) Với hệ ràng buộc: i n j j ijx b a 1 , i = 1,2,…,m (2.2) tùy xj 0 0 , j = 1,2,…,n (2.3)
(2.1) được gọi là hàm mục tiêu, nó có thể là cực tiểu (min) hay cực đại (max).
(2.2) được gọi là các ràng buộc chung hay ràng buộc hàm, nó có thể có dạng bất đẳng thức (≤ hay ≥) hoặc có dạng đẳng thức (=).
(2.3) được gọi là các ràng buộc dấu (của biến), nó có thể không âm (≥0), không dương (≤0) hay tùy ý.
Như vậy, bài toán QHTT là bài toán có các biểu thức xác định hàm mục tiêu và các ràng buộc chung đều ở dạng tuyến tính.
Véctơ x = (x1, x2,…,xn)T được gọi là phương án hay lời giải chấp nhận được của bài toán QHTT nếu nó thỏa mãn hệ ràng buộc của bài toán.
Phương án x* = ( T n x x
x1*, *2,..., *) được gọi là phương án tối ưu hay lời giải tối ưu, nghiệm tối ưu của bài toán QHTT nếu giá trị hàm mục tiêu tại đó là tốt nhất.
Tức là: f(x*) = j n j j j n j jx f x c x c 1 * 1 )
( là giá trị hàm mục tiêu tại phương án x=(x1,x2,…,xn)T bất kỳ. (Dấu ≤ ứng với bài toán cực tiểu. Dấu ≥ ứng với bài toán cực đại).
2.1.2.2.Bài toán tối ưu phi tuyến
a) Bài toán quy hoạch phi tuyến không ràng buộc
Bài toán quy hoạch phi tuyến không ràng buộc được phát biểu như sau [17, 21÷24]: min f(x) với điều kiện x Rn (2.4) Trong đó: f : Rn R là hàm phi tuyến.
33
(i) Phương pháp gradient
Đây là phương pháp thông dụng nhất để giải bài toán cực tiểu không ràng buộc (2.4) vì nó rất đơn giản và có thể áp dụng được cho những lớp hàm rất rộng. Trong các thuật toán giải bài toán (2.4) theo phương pháp gradient, tại mỗi bước lặp k, ta chọn hướng giảm dk của hàm f tại điểm xk là dk = f(xk), đó chính là hướng mà theo đó hàm mục tiêu f giảm nhanh nhất tại xk.
(ii)Phương pháp Newton
Phương pháp Newton giải bài toán tối ưu không ràng buộc Min {f(x)|x Rn}
Với hàm mục tiêu phi tuyến f khả vi hai lần trên Rn, chính là việc ứng dụng phương pháp Newton cổ điển giải hệ phương trình phi tuyến n ẩn, n phương trình để tìm điểm dừng của hàm f, tức giải hệ phương trình.
f(x) =0
Phương pháp Newton giải hệ n ẩn, n phương trình có những cách sau đây - Phương pháp Newton cổ điển giải hệ phương trình phi tuyến
- Phương pháp Newton thuần túy (pure Newton) giải bài toán tối ưu không ràng buộc - Phương pháp Newton với bước điều chỉnh hay phương pháp Newton suy rộng - Phương pháp tựa Newton (Quasi Newton Methods).
(iii) Phương pháp cực tiểu hàm một biến
Trong nhiều bước tính toán của bài toán quy hoạch nhiều biến, ta thường phải tìm cực tiểu của hàm theo một hướng nào đó, tức tìm cực tiểu hàm số một biến. Phần này trình bày hai phương pháp đơn giản để giải bài toán.
Min f(x) với điều kiện x[a,b] R
Trong đó f: [a,b] → R là hàm đơn mốt (unimodal function) và giả sử bài toán trên có nghiệm cực tiểu x* (a,b).
Có hai phương pháp để tìm cực tiểu của hàm một biến là: - Phương pháp chia đôi
- Phương pháp lát cắt vàng
(iv)Phương pháp tìm kiếm trực tiếp
Mục này dùng để trình bày hai thuật toán giải bài toán Min f(x) với điều kiện x Rn
Theo phương pháp tìm kiếm trực tiếp là: Thuật toán của Hooke và Jeeves và thuật toán tìm kiếm theo đơn hình (Sequential simplex search algorithm) [60].
34
Các thuật này được dùng để giải bài toán trên khi hàm mục tiêu f(x) không khả vi hoặc có khả vi nhưng việc lấy các đạo hàm riêng là khó khăn do f(x) cấu trúc phức tạp hoặc khi có ít thông tin về f(x).
b) Bài toán quy hoạch phi tuyến có ràng buộc
Bài toán quy hoạch phi tuyến có ràng buộc tổng quát được phát biểu như sau [17]: Min {f(x)|xX}
Trong đó X Rn và hàm số f xác định trên X.
Dưới đây trình bày một số phương pháp để giải bài toán quy hoạch phi tuyến có ràng buộc.
(i) Phương pháp nhân tử Lagrange
Hàm số L(x, l1..., lm , m1, ...mk) = f(x) + k j j j i m i ig x h x 1 1 ) ( ) ( m l (2.5)
Với các số thực l10, ..., lm0, m1,...mk, được gọi là hàm Lagrange tương ứng với bài toán quy hoạch phi tuyến
Min f(x) với điều kiện xX
Trong đó X= {xRn| gi(x)0, i=1, ...m, hj(x) = 0, j=1,..., k}, các số không âm l1, ....lm và các số m1, ..., mkđược gọi là các nhân tử Lagrange.
Thuật toán để giải bài toán này như sau:
Bước 1: Lập hàm Lagrange L(x, l1..., lm , m1, ...mk) = f(x) + k j j j i m i ig x h x 1 1 ) ( ) ( m l (2.6)
Bước 2: Giải hệ sau:
(2.7)
Mỗi một nghiệm của hệ này tương ứng với một bộ tham số l1..., lm , m1, ...mk của bài toán đang xét ở trên.
(ii) Phương pháp tuyến tính hóa giải quy hoạch lồi
Xét bài toán quy hoạch lồi
min f(x) v.đ.k x X (P1) Gradient L(x, l1..., lm , m1, ...mk) = 0 l1≥ 0, …., lm≥ 0 li i( ) = 0, i = 1… m i( ) ≤ 0, i = 1… m ℎi( ) = 0, i = 1… m
35
Trong đó X=x Rn gi(x)0, i=1,…..,m là tập lồi compac và f, gi. i = 1…m là các hàm lồi khả vi trên Rn.
Bằng việc thêm biến mới t và ràng buộc t f(x), có thế chứng minh rằng bài toán (P1) tương đương với bài toán sau:
min t
với điều kiện gi(x) 0, i=1…m gm+1(x) 0
Trong đó gm+1(x)= f(x) - t. Vì vậy ta chỉ cần xét bài toán có dạng
min(c,x) với điều kiện x X (P2) Trong đó X x Rn gi(x)0, i=1,…..,m là tập lồi compac và f, gi, i= 1,….,m là các hàm lồi khả vi trên Rn và c Rn.
Ý tưởng của phương pháp xấp xỉ tuyến tính là đưa việc giải toán quy hoạch lồi (P2) về việc giải một dãy các bài toán QHTT.
min(c,x)x Xk
Với Xk, k = 1, 2, 3… là các đa diện lồi thỏa mãn X1 X2………….X,
mà dãy nghiệm tối ưuxk tương ứng của chúng hội tụ đến nghiệm của bài toán này. Sử dụng thuật toán do Keylley đề xuất năm 1960 để giải bài toán trên [60].
(iii) Phương pháp hướng có thể giải bài toán cực tiểu hàm trơn với ràng buộc tuyến tính
Xét bài toán
Min f(x) với điều kiện x X
Trong đó f là hàm khả vi trên Rn và X Rn là tập lồi đa diện khác rỗng xác định bởi X: = {xRn|Axb, Ex=e}
Với A là ma trận cấp mn với các hàng ai Rn, i=1, ..., m, E là ma trận cấp kn với bRm và e Rm.
Sử dụng thuật toán do Zoutendijk đề xuất năm 1960 để giải bài toán trên [60]. (iv) Phương pháp Frank-Wolfe giải bài toán quy hoạch lồi với ràng buộc tuyến tính
Xét quy hoạch lồi
Min f(x) với điều kiện x X.
Trong đó f là hàm lồi trên Rn và X Rn là tập lồi đa diện xác định bởi X = {xRn|Axb}
36
Sử dụng thuật toán của Frank-Wolfe đề xuất năm 1956 để giải bài toán quy hoạch lồi với ràng buộc tuyến tính [61]. Thuật toán được trình bày như sau:
Bước khởi đầu tìm một điểm bất kì x0 X, đặt k:= 0; Bước lặp k (k=0, 1, 2…)
(k1) giải bài toán QHTT
minf(xk,x-xk) với điều kiện xX được phương án tối ưu ukX (k2) Kiểm tra điều kiện tối ưu
If (f(xk,uk-xk) 0 Then Dừng thuật toán (lấy xopt := xk) Else Đặt dk := uk – xk và chuyển bước (k3)
(k3) Xác định điểm xk+1 := xk + tkdk , trong đó tk= argmin(t)= f(xk + tdk) t0,1
(k4) If f(xk+1 0 Then Dừng thuật toán (xopt := xk+1) Else Đặt k:= k+1 và quay lại bước lặp k
(v) Phương pháp hàm phạt
Xét bài toán Min {f(x)|xD}
Trong đó D là tập compac xác định bởi D= {xRn| gi(x)0, i=1, ...m},
F và gi: Rn →R, i = 1,..., m là các hàm khả vi liên tục.
Có hai phương pháp hàm phạt: Phương pháp hàm phạt điểm ngoài (Exteror penalty function method) và Phương pháp hàm phạt điểm trong [61] (Interor penalty function method).
- Phương pháp hàm phạt điểm ngoài
Trong phương pháp này, hàm phạt p(x) được định nghĩa bởi
p(x)= m i 1 (gi(x)), Trong đó là hàm một biến liên tục và thỏa mãn (y) = 0 nếu y 0 và (y) > 0 nếu y > 0.
Thông thường hàm p(x) có dạng p(x) m i 1 max0, gi(x) hoặc p(x) m i 1 max0, gi(x)2 (2.8)
37
Hàm mục tiêu của dãy bài toán tối ưu không rõ ràng buộc tương ứng với bài toán (P3rb) là
(x,) = f(x) + kp(x)
trong đó dãy tham số klà dãy số dương đơn điệu tăng đến . Đại lượng kp(x) là lượng phạt.
Thuật toán giải hàm này như sau:
Bước chuẩn bị:
Cho số >0 đủ bé (để kiểm tra điều kiện dừng của thuật toán). Xác định một điểm x1 Rn chọn một tham số phạt 1 >0 và một số m>1. Đặt k=1;
Bước lặp k (k=1,2….)
Bước k1. Xuất phát từ xk giải bài toán tối ưu không ràng buộc min(x, k) với điều kiện xRn
nhận được nghiệm xk+1;
Bước k2. If kp(xk+1) < Then Dừng thuật toán
(lấy xk+1 là nghiệm tối ưu của bài toán)
Else Chuyển Bước k3;
Bước k3. Đặt tham số phạt mới k+1 := mk, đặt k:= k+1. Chuyển về Bước k - Phương pháp hàm phạt điểm trong
Phương pháp này được sử dụng khi biết trước một điểm trong x1 của tập chấp nhận được, tức gi(x1) < 0 với mọi i= 1,…m. Hàm phạt p(x) phải thỏa mãn tính chất:
1. không âm và liên tục trên tập intDx Rngi(x)<0,i=1…m; 2. p(x) + khi gi(x)0-.
Vì vậy người ta còn gọi hàm phạt p(x) này là hàm chắn (barrier function). Hai hàm chắn điển hình thường được sử dụng là.
p(x) = - m i 1 ln-gi(x) và p(x) = - m i1 gi(x) 1
Phương pháp hàm phạt điểm xuất phát từ một điểm trong x1 của tập chấp nhận được D, giải một dãy các bài toán tối ưu không ràng buộc
min(x, k)= f(x) + kp(x) với điều kiện xRn trong đó klà dãy số dương.
38 Thuật toán giải hàm này như sau:
Bước chuẩn bị: Cho số >0 đủ bé (để kiểm tra điều kiện dừng của thuật toán). Xác định một điểm x1 D thỏa màn gi(x1)<0, i=1…m. Chọn một tham số phạt 1 >0 và một số m(0,1). Đặt k=1;
Bước lặp k ( k=1,2…….)
Bước k1. Xuất phát từ xk giải bài toán tối ưu không ràng buộc min(x, k) với điều kiện xRn nhận được nghiệm xk+1;
Bước k2. If kp(xk+1) < Then dừng thuật toán
(lấy xk+1 là nghiệm tối ưu của bài toán)
Else Chuyển Bước k3;
Bước k3. Đặt tham số phạt mới k+1 := mk. Đặt k:= k+1. Chuyển về bước k.