遗传算法
一、遗传算法基本步骤
- step1:初始化种群
随机生成一个包含多个个体的初始种群,一个个体其实是一个可行解。设置初始的迭代次数 Iter,交叉概率 Pc 和变异概率Pm。 - step2:适应度评估
用适应度来评估每个个体的好坏,给个体打分。 - step3:选择
根据适应度选择个体进行繁殖,适应度高的个体被选择的概率更大。常用轮盘赌选择算法。 。
个体i被选择的概率 = 个体i的适应度 / 所有个体的适应度之和 - step4:交叉
随机选择两个个体进行交叉操作,生成N个新个体。 - step5:变异
随机选若干个个体的部分基因变异,引入多样性。包括二元变异、差分变异、高斯变异 - step6:替换
将新生成的N个个体加入到种群中,并保留部分优秀的老个体M个,形成新的种群共(N+M)个个体。 - step7:终止条件
判断是否满足终止条件,如达到最大迭代次数或适应度达到预设阈值。如果满足条件,则输出最佳解;否则,返回step2。
二、遗传模拟退火算法基本步骤
核心思想是通过模拟物理中的退火过程来寻找问题的最优解。在退火过程中,系统从一个高温状态开始,逐渐降低温度,直到达到零温度。在每个温度状态下,系统会随机地尝试新的状态,如果新状态的能量低于当前状态,则接受新状态;如果新状态的能量高于当前状态,则根据温度和能量差概率接受新状态。通过这种方式,算法可以逐渐逼近问题的最优解。
- step1:初始化
随机生成一个包含多个个体的初始种群,给每个个体设置初始温度。 - step-step4:不变
- step6:模拟退火
在当前个体的邻域中随机选择一个新的个体,计算它们的“能量差”(即适应度的差),如果新的个体更优,直接接受;如果更差,根据概率P接受,允许偶尔接受较差解以跳出局部最优。
逐渐降低温度,使搜索过程逐步收敛。 - step7:迭代过程
交叉变异和模拟退火优化后的个体形成新一代种群。重复step2-step6. - step7:终止条件同上
三、韩老师急救设施布局 优化算法
- step1:初始化种群
一个个体:表示一个完整的解决方案,包括所有医疗卫生用地的选择状态。
地块:在个体的表示中,每个地块对应一个位置,1表示选择该地块,0为不选择。 - step2:适应度评估
适应度函数:采用已选站点到到对应需求点的时间和,对个体进行评价,并记录当前最好个体。
- step3:选择
- step4:交叉操作和自监督机制
选择多个位置进行基因重组,引入自监督算子:已选站点到对应需要点的时间以置信概率P小于8分钟。
- step5:变异
对个体进行二进制变异(如将 0 变为 1 或 1 变为 0),以引入多样性;并引入自监督算子以增强局部搜索能力? - step6:迭代过程
评价个体适应度,并判断是否满足终止条件,若不满足,返回step3,若满足,则算法终止; - step7:终止条件
迭代直到找到最优解。
四、多目标遗传算法NSGA-II:同时优化多个目标,寻找一组帕累托最优解
- step2:适应度评估对每个个体计算多个目标的适应度值。