贪心算法
- 贪心算法(Greedy algorithm)(贪婪算法)基本思想:多机调度问题是一个多项式复杂程度的非确定性问题(Non-deterministic Polynomial),具有一定的复杂程度,当前没有有效的解决方法。相较于其它算法,贪心算法求解不从整体最优上加以考虑,。而是寻求某种意义上的局部最优解,从而做出当下最好的选择。因此,在求解并行机调度问题上,贪心算法容易获得近似最优解的答案,更有优势。
- 求解策略:贪心算法只考虑每一次的选择是最优的,遗传算法则会从全局的角度出发,选择最优的求解过程。贪心算法要满足贪心选择性质和最优子结构性质两个重要特性。贪心选择性质是每一步选出的,一定是原问题的最优解。当前求解出的最优解并不影响剩余问题的求解,即是在订单调度中每次贪心选择调度工序耗时最短的批次,次求解结果是最优的订单调度集合之一。最优子结构是该问额是否可用贪心算法求解的关键!,每一步贪心选择留下子问题,子问题的最优解与贪心选择出的解组成原问题的最优解。一个问题的最优解包含其子问题的最优解,即在订单备料调度问题中最优调度集合包含每次调度的最优解。
- 算法流程:
1)选取贪心策略,根据贪心策略从模型的所有定义域上的数据出发,筛选得出当前问题最优解,缩小问题规模;
2)采用迭代方法,根据贪心策略对未求解部分循环求解,求出局部最优解集合,进一步缩小问题规模;
3)将所有子问题的解的集合进行优化,使其满足原问题;
4)综合所有解,验证结果。
参考文献:基于贪心算法的板式家具订单备料调度研究 杨冰,魏新莉,胡孙跃,苏利江,杜辉
模拟退火算法
- 模拟退火算法的思想:是借鉴于物理中固体的退火原理,设置某一较高的初始温度及降温参数,伴随温度的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在陷入局部最优解时,能够根据一定的概率跳出局部最优解并最终趋于全局最优。根据Metropolis准则,当温度为T时,分子趋于平衡的概率为e(-ΔE/(KT),其中E为温度在T值下的内能大小,E为内能变化量,k为Boltzmann常数。当使用固体的退火模拟组合优化问题时,此时内能E值模拟为组合优化问题中的目标函数值f,而温度T则等效于算法的控制参数t。模拟退火算法过程是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程,
- 算法一般过程为:
- 设置初始解w和控制参数初值t,对解空间中得到的候选解
- 按照“产生新解一计算目标函数差值一概率性接受或舍弃”的过程重复迭代,迭代过程中t值逐步减小,直至算法结束,此时所得到的解即为全局近似最优解。
- 模拟退火算法流程图如下图所示:
模拟退火算法既简单又直观,以自然的优化过程为基础。退火过程包含了不同的调试参数,主要有:初始温度T0、冷却调度a候选解的产生、终止准则等。其中,初始温度T,不宜过高或过低;冷却调度控制着算法从探索到开发的转移,控制算法收敛的速率;终止准则决定了算法何时停止搜索,主要包括:达到指定的迭代次数;达到指定的温度;得到的最优连续解M次迭代都没有发生变化。通常为了保证搜索过程的彻底,在同一个温度T下需要进行多次搜索。
参考文献:冷却调度参数对模拟退火算法性能的影响分析 甘秋云,李兢思,杨佳翰
多目标优化
参考链接:http://t.csdnimg.cn/6WSap
这个不错哦,大家可以参考这个学习呢~