1.准备工作
一个CEC2005测试集
一个测试智能算法,比如麻雀搜索算法SSA
2.使用CEC2005测试集
以CEC2005测试集函数F7为例:
3.自定义优化问题-无约束问题
这里举例
m
i
n
f
(
x
1
,
x
2
)
=
s
i
n
(
x
1
)
+
x
2
2
minf(x_1,x_2)=sin(x_1)+x_2^2
minf(x1,x2)=sin(x1)+x22
首先编写目标函数fun.m:
编写脚本调用:
4.自定义优化问题-有约束问题
有约束问题一般采用罚函数法将约束问题转为无约束问题,其思想是当优化变量不满足约束时进行惩罚。
这里举例
{
min
f
(
x
1
,
x
2
)
=
s
i
n
(
x
1
)
+
x
2
2
s
.
t
.
x
1
+
x
2
=
1
2
x
1
−
x
2
>
0
\begin{cases}\min f(x_1,x_2)=sin(x_1)+x_2^2\\s.t.\\x_1+x_2=1 \\ 2x_1-x_2>0\end{cases}
⎩
⎨
⎧minf(x1,x2)=sin(x1)+x22s.t.x1+x2=12x1−x2>0
首先编写目标函数fun1.m:
编写脚本exp3.m调用: