Phương pháp Caroll

Một phần của tài liệu Lý thuyết tối ưu võ minh phổ (Trang 123)

- Xét tọa độ

3.6.2 Phương pháp Caroll

Bài toán chúng ta sẽ xét là (3.59) với ràng buộc là

fj(x) ≥ 0, j = 1,2. . . , m,

phương pháp Caroll là sử dụng hàm phạt trong để xét bài toán với hàm mục tiêu Φ(x, αk) := f(x)±αk m X j=1 wj fj(x)

với dấu + khi tìmmin và dấu − khi tìmmax, αk là nhân tử ở bước lặp thứ

B1: Chọn trọng số wj, bước t0, thông số α0, điểm xuất phát x(0), sai số . B2: i := 0;αi := 0. B3: k := 0, thiết lập ∇Φ(x(k), αk), tính f(x(k)), g(x(k)),Φ(x(k), αk) B4: k := k + 1;tk := t0. B5: x(k) := x(k−1) +tk∇Φ(x(k−1), αk−1) B6: Tính f(x(k)), g(x(k)),Φ(x(k), αk)

B7: Kiểm tra Φ(x(k), αk) < Φ(x(k−1), αk−1)?, nếu đúng chuyển B8, nếu sai chuyển B10:

B8: Kiểm tra k−1 = 0? nếu đúng chuyển B9:, sai chuyển về B3:

B9: i := i + 1;αi := αi−1/2. Kiểm tra αi < ?, nếu đúng x∗, f(x∗) dừng nếu không chuyển B3:

B10: Kiểm tra fj(x(k)) > 0?, nếu đúng k := k + 1 chuyển B5:, nếu sai đặt

tk := tk/2, tăng k := k+ 1, chuyển B5:

Thực ra phương pháp do Carroll đưa ra được phát biểu tóm lược như sau: Thay vào tìmmin của hàm xuất phát ta dùng phương pháp hàm chắn tìm tối ưu hàm Φ(x, rk) = f(x) +rk m X j=1 1 gj(x)

1. Chọn giá trị xuất phát x(1) sao cho gj(x(1)) > 0, giá tri r1 > 0 và cho

k = 1.

2. Tìm min của hàm Φ(x, rk) theo một phương pháp không ràng buộc nào đó để có x∗k.

3. Kiểm tra xem nghiêm x∗k đã gần là nghiệm của bài toán đã cho chưa. Nếu tìm được thì dừng, nếu không chuyển bước sau.

4. Xác định tham số phạt mới rk+1 = crk, c < 1.

3.6.3 Sử dụng MATHLAB để giải bài toán tối ưu phi tuyến có ràng buộc

Chương trình gôm những bước sau:

B1: Viết M-file chứa hàm mục tiêu (objfun.m, ví dụ hàm f = x(1)3 −6∗

x(1)2 + 11∗x(1) +x(3)): function f= objfun (x)

f = x(1)3 −6∗x(1)2 + 11∗x(1) +x(3);

B2: Viết M-file chứa các hàm ràng buộc M-file constraints.m (c là véc tơ cột các ràng buộc):

function [c, ceq] = constraints (x)

c = [x(1)2+x(2)2−x(3)2; 4−x(1)2−x(2)2−x(3)2;x(3)−5;−x(1);−x(2);−x(3)];

ceq = [];

B3: Gọi chương trình tìm phương án tối ưu (Viết nó trong MATLAB file). clc

clear all warning off

x0 = [.1, .1,3.0]; fprintf (’The values of function value and constraints at starting pointn’);

f = objf un(x0)

[c, ceq] = constraints(x0)

options = optimset (’LargeScale’, ’off’);

[x, f val] = f mincon(@objf un, x0,[],[],[],[],[],[],

@constraints, options)

fprintf (’The values of constraints at optimum solutionn’);

[c, ceq] = constraints(x)

Kết quả tính toán được liệt kê như sau:

This Produces the Solution or Ouput as follows: The values of function value and constraints at starting point

f= 4.0410 c= -8.9800 -5.0200 -2.0000 -0.1000 -0.1000 -3.0000 ceq = []

Optimization terminated: first-order optimality measure less than options. TolFun and maximum constraint violation is less than options.TolCon. Active inequalities (to within options.TolCon = 1e-006): lower upper in- eqlin ineqnonlin 1 2 4 x= 0 1.4142 1.4142 fval = 1.4142

The values of constraints at optimum solution c=

476 Nonlinear Programming III: Constrained Optimization Techniques -0.0000 -0.0000 -3.5858 0 -1.4142 -1.4142

ceq =

[]

3.7. CÁC PHƯƠNG PHÁP TỐI ƯU HIỆN ĐẠI3.7.1 Phương pháp GEN

Một phần của tài liệu Lý thuyết tối ưu võ minh phổ (Trang 123)