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)

Tải bản đầy đủ (PDF)

(136 trang)