开始使用MiniZinc

MiniZinc是一个用来描述整数和实数的优化约束和决策问题的语言,它允许用户以接近问题的数学公式的方式编写模型。 MiniZinc界面如下: 着色问题 首先来看一个简单的着色问题:以州为单位,用3种颜色为澳大利亚地图着色,相邻的两个州不能用同一种颜色。澳大利亚地图如下: 在MiniZinc中写入如下代码: % 用nc种颜色为澳大利亚地图着色 int: nc = 3; var 1..nc : wa; var 1..nc: nt;… 阅读全文

k-近邻算法

k-近邻算法(kNN)采用测量不同特征值之间的距离方法进行分类。 数据范围 数值型和标称型。 优点 精度高、对异常值不敏感、无数据输入假定。 缺点 计算复杂度高、空间复杂度高。 一般流程 收集数据。 准备数据:格式化数据格式、归一化。 分析数据。 训练算法:不适用于k-近邻算法。 测试算法:计算错误率。 使用算法。 实施步骤 对未知类别属性的数据集中的每个点依次执行以下操作: 计算已知类别数据集中的点与当前点之间的距离; 按照距… 阅读全文

免疫算法简单介绍

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

权重改进的粒子群算法

在粒子群算法中,惯性权重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)二:算法实现一

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