免疫算法简单介绍

免疫算法的基本步骤: 抗原识别。输入目标函数和各种约束作为免疫算法的抗原。 初始抗体生成。随机生成初始抗体种群。 亲和力计算。计算抗体的适应值。 免疫处理。免疫处理包括免疫选择、克隆、变异和抑制。 免疫选择:根据抗体的亲和力选出亲和度较高的抗体。 克隆:对选出的亲和力较高的抗体进行复制。 变异:对克隆得到的个体进行交叉、变异操作,使其亲和力发生改变。 抑制:对变异的抗体进行选择,保留亲和度较高的抗体。 群体刷新。将免疫选择的抗体和免疫抑制后的抗体组成一… 阅读全文

权重改进的粒子群算法

在粒子群算法中,惯性权重w是最重要的参数。 自适应权重法 自适应权重法的基本策略是:对于具有高适应度的粒子,减小惯性权重以增加局部搜索能力;对于适应度较低的粒子,增加惯性权重以增加全局搜索能力。 依据早熟收敛程度和适应度值进行调整 设定粒子 p_i 的适应度值为 f_i,最优粒子适应度为 f_m,粒子群平均适应度为 f_{avg},优于平均适应度的粒子适应度平均值为f_{avg}^′,定义 Δ=|f_m−f_{avg… 阅读全文

分布估计算法解决旅行商问题(TSP)

在用分布估计算法解决旅行商问题时,结构与传统的分布估计算法相似,只不过是把概率向量换成了“概率矩阵”而已: 通过概率矩阵生成解。 评估解。 选择优势群体。 更新概率矩阵。 重复以上4步直至迭代结束。 这里说的“概率矩阵”记录了上一代优势群体中,“城市对”出现的次数(或与城市对出现次数成正比的一个数)。“城市对”是指路线中相邻的两个城市,这两个城市不分先后。假设概率矩阵第i行第j列的元素为 p_{ij},它代表在优势群体中城市i… 阅读全文

粒子群算法求函数最小值

求下面函数的最小值: f(x) = \sum_{i=1}^{30} (x_i^2 + x_i – 6 ) 程序运行结果如下: 函数最小值: -182.160634 主函数 主函数首先初始化种群,对于第1代种群,个体极值和全局极值都在本代种群中;之后进行迭代,每次迭代根据公式更新速度和位置,并更新个体极值和全局极值,重复此过程直至迭代结束。 function main() popsize = 50; % 种群规模 birdsize… 阅读全文

粒子群算法简单介绍

原理 粒子群算法(也称粒子群优化算法(particle swarm optimization, PSO)),模拟鸟群随机搜索食物的行为。粒子群算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,叫做“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定它们“飞行”的方向和距离。 粒子群算法初始化为一群随机的粒子(随机解),然后根据迭代找到最优解。每一次迭代中,粒子通过跟踪… 阅读全文

遗传算法求解混合流水车间调度问题(HFSP)三:算法实现二

初始化种群的函数: function pop = initpop(popsize, piecesize) % 初始化种群 % popsize input 种群规模 % piecesize input 工件数量 % pop output 种群 pop = zeros(popsize, piecesize); for i = 1:popsize pop(i, 🙂 = randperm(piecesize); end end 计算适应度值的函数: function fitness… 阅读全文

遗传算法求解混合流水车间调度问题(HFSP)二:算法实现一

遗传算法的设计 编码:对工件进行优先级编码,编码越小,优先级越高。 解码:按照工件优先级进行生产,求出整体完工时间。 目标函数值:整体完工时间。 适应度值:目标函数越小,适应度值越大。 选择:按照轮盘赌方法进行选择。 交叉:按照交叉概率,选择两个父代个体(父1和父2),交叉生成两个子代个体(子1和子2)。… 阅读全文

遗传算法求解混合流水车间调度问题(HFSP)一:问题介绍

混合流水车间调度问题(Hybrid Flow-shop Scheduling Problem, HFSP)是车间调度中的一类经典问题。混合流水车间调度问题,在一道工序有一台或多台机器,工件的加工需要满足一定的工艺顺序。 假设和约束 一个工件在一道工序上被任意一个机器加工。 一个机器在某一时刻只能空闲或加工一个工件。 工件必须按照加工工序顺序进行加工。 同一道工序中机器都相同。 工件加工过程不允许中断。 如果多个工件同时… 阅读全文