Phương pháp tìm kiếm ngẫu nhiên
_____________________________________________________________________
Chương 1:Các phương pháp không dùng đạo hàm
Phương pháp tìm kiếm ngẫu nhiên
I. Phương pháp tìm kiếm ngẫu nhiên.
Phương pháp gồm các bước sau:
B1: Tạo δi=random (-0.5, 0.5)∆xi, trong đó ∆xi là các số gia ứng với thành phần xi
do ta chọn.
B2: Tính x(k+1) := x(k) + δiei nếu f (x(k+1)) < f (x(k)), i=1..n
B3: (x(k+1)):= (x(k)) nếu f(x(k+1))≥ f (x(k))
II. Chương trình
function y=fx1(X, N)
y = (10 + (X(1) - 2)^2 + (X(2) + 5)^2)
end
function
[XBest,BestF,Iters]=Random_Search1(N,XLo,XHi,Eps_Fx,MaxIter,myFx)
% Function performs multivariate optimization using the
% random search method.
%
% Input
%
% N - number of variables
% XLo - array of lower values
% XHi - arra of higher values
% Eps_Fx - tolerance for difference in successive function values
% MaxIter - maximum number of iterations
% myFx - name of the optimized function
Phương pháp tìm kiếm ngẫu nhiên
_____________________________________________________________________
%
% Output
%
% XBest - array of optimized variables
% BestF - function value at optimum
% Iters - number of iterations
%
XBest = XLo + (XHi - XLo) * rand(N);
BestF = feval(myFx, XBest, N);;
LastBestF = 100 * BestF + 100;
Iters = 0;
for i=1:MaxIter
Iters = Iters + 1;
X = XLo + (XHi - XLo) * rand(N);
F = feval(myFx, X, N);
if F < BestF
XBest = X;
LastBestF = BestF;
BestF = F;
end
if abs(LastBestF - BestF) < Eps_Fx
break
end
end
end
Phương pháp tìm kiếm ngẫu nhiên
_____________________________________________________________________
Chương 2: Bài tập phương pháp tìm kiếm ngẫu nhiên
F(x)= 3()2 + + ()2 →min
+- 2
+ ≤ 12
2+4- 3≤9
Xi ≥ 0
= (2,1,0), random ( -0.5,0.5 ) ∆xi , ∆x=(0.5, 0.5, 0.5)
Bước lặp 1:
X (1) = (2,1,0) + (-0.5x0.5x1, -0.5x0.5x1, -0.15x0.5x0 )T = (1.75, 0.75, 0)T, f(x(1)) =
0.694
Bước lặp 2:
X (2) = (1.75, 0.75, 0) + (-0.1x0.5x1, -0.15x0.5x0, 0.5x0.5x1 )T = (1.7,0.75, 0.5)T ,
f(x(2)) = 0.593
Bước lặp 3:
X (3) = (1.7, 0.75, 0.5) + (-0.2x0.5x0, -0.35x0.5x1, -0.3x0.5x1 )T = (1.7, 0.575,
0.35)T , f(x(3)) = 0.334
Bước lặp 4:
X (4) = (1.7, 0.575, 0.35) + (-0.05x0.5x1, -0.5x0.5x1, 0.2x0.5x0 )T = (1.675, 0.325,
0.35)T , f(x(4)) = 0.106
Bước lặp 4:
X (4) = (1.675, 0.325, 0.35) + (0.25x0.5x1, -0.5x0.5x0, 0.2x0.5x1 )T = (1.925,
0.325, 0.45)T , f(x(4)) = 0.319 ≥f(x(3)) nên x(4)=(1.675, 0.325, 0.35)
Bước lặp 5:
Phương pháp tìm kiếm ngẫu nhiên
_____________________________________________________________________
X (5) = (1.675, 0.325, 0.35) + (0.1x0.5x0, -0.5x0.5x1, -0.03x0.5x1 )T = (1.675,
0.125, 0.335)T , f(x(5)) = 0.0158
Bước lặp 6:
X (6) = (1.675, 0.125, 0.35) + (-0.05x0.5x1, -0.25x0.5x1, -0.25x0.5x0 )T = (1.65, 0,
0.335)T , f(x(6)) = 0.00084
Vậy với x*=(1.65, 0, 0.335) thì f(x)=0.0084 đạt Min
Phương pháp tìm kiếm ngẫu nhiên
_____________________________________________________________________
Tài liệu tham khảo
1. Giáo trình lý thuyết tối ưu - Võ Minh Phổ
2. B. E. Gillett, Introduction to operations research: A computer–oriented
algorithmicapproach, McGraw–Hill, New York, 1990.
3. Tối ưu hóa – Bùi Minh Trí, Nhà xuất bản KHKT, Hà Nội
4. Các bài toán cơ bản của tối ưu hóa và điều khiển tối ưu, Nhà xuất bản KHKT, Hà
Nội