你的出现,让我的眼中,心中有了蔚蓝的天空;
你的出现,让梦的城堡,殿堂留住美好的时光。
世界变化不停,
人潮川流不息,
我只想每个日出日落,
身边都有你。
——畅宝宝的傻逼哥哥
大多数优化算法涉及一系列步骤,典型的模式如下:
第一步:
- 令 k=0 且初始化 x0
- 计算 F0=f(x0)
第二步:
- 令 k=k+1
- 利用近似过程计算
xk
的变化量
Δxk
,其中
ΔxTk=[Δx1 Δx2 ⋯Δxn] - 令 xk=xk−1+Δxk
- 计算 Fk=f(xk) 与 ΔFk=Fk−1−Fk
第三步:
判断是否收敛条件已经到达,例如判断
ΔFk
与(或)
Δxk
,如果达到执行第四步;否则转到第二步。
第四步:
- 输出 x∗=xk 与 F∗=f(x∗)
- 结束
在第一步,用手头知识估计的值初始化向量 x0 ,好多情况下我们无法进行估计,这时候 x0=0 。然后重复执行步骤2与3直到达到收敛条件,每执行一次步骤2,3就表示一次迭代,也就是说 k 是迭代次数。
当达到收敛调价时,执行第四步,这时候列向量
对应的
F
值为
列向量 x∗ 为最优,最小值点, F∗ 为目标函数的最优或最小值, x∗,F∗ 对构成了优化问题的解。
根据所用的优化问题与优化方法,有几种方法检查收敛。例如在任意两次迭代的
Fk
之差很小时,也就是
结束算法,其中
εF
是目标函数的最优容忍度,同样的当所有变量的差很小时,也就是
结束算法,其中 εx 时变量 x1,x2,…,xn 的最优容容忍度,第三种就是同时满足上面的两个条件。
我们主要考虑很好应用,可靠且计算量小的最小化算法,在数学规划中可靠算法用术语来说就是鲁棒算法。