美文网首页
Matlab自带遗传算法工具箱简介

Matlab自带遗传算法工具箱简介

作者: 貳條 | 来源:发表于2021-03-15 15:40 被阅读0次

    Matlab提供遗传算法工具箱(Matlab2010版本之后),方便解决简单的优化问题,官方提示后续可能取消该功能。个人不建议使用工具箱求解数学规划问题,参数设置零散复杂,容易错漏,但可学习作为Demo问题的演示工具。

    打开GA工具箱

    • 方式一:命令行输入 >> optimtool
    • 方式二:菜单栏APPOptimization工具箱→Solver中选择ga
    工具箱GUI界面

    GUI界面使用说明

    按从上到下,从左到右的顺序对Matlab自带的遗传算法工具箱GUI界面进行介绍和使用注意事项说明。

    Problem Setup and Results 设置与结果

    1. Solver 求解程序
      选择要使用的求解程序(遗传算法,遗传算法多目标等)。

    2. Problem 问题

    • Fitness function: 适应度函数,求最小,这里的使用度函数要自己编写,书写格式是“@函数名”。
    • Number of variables: 变量数,必须是整数,即使用这个GUI界面的适应度函数的变量必须是[1×n]的向量,而不能是[m×n]的矩阵。

    示例用法

    • 求解f(x)的最小值


      求解f(x)的最小值
    • 编写适应度函数
      适应度函数一般就是目标函数,保存为m函数文件。


      目标函数
    • 参数设置
      在Fitness function(适应度函数)处输入@目标函数名(因为此处传递的是函数句柄所以一定要加@),Number of Variables是指待求变量的个数,此处约束条件是xi是0到0.9pi之间的实数,在Bound处输入,然后点击Start按钮求出结果。


      参数设置
    • 含约束条件的数学规划问题参数设置


      含约束条件的数学规划问题
    定义不等式约束 添加不等式约束
    • 含非线性约束条件的数学规划问题参数设置


      含非线性约束条件
    非线性约束条件 添加非线性不等式约束
    1. Constraints 约束
    • Linear inequalities: 线性不等式,A*x<=b形式,其中A是矩阵,b是向量。
    • Linear equalities: 线性等式,A*x=b形式,其中A是矩阵,beq是向量。
    • Bounds: 定义域,Lower: 下限,Upper: 上限,列向量形式,每一个位置对应一个变量。
    • Nonlinear constraint function: 非线性约束,用户定义,非线性等式必须写成c=0形式,不等式必须写成c<=0形式。
    • Integer variable indices: 整型变量标记约束,使用该项时Aeq和beq必须为空,所有非线性约束函数必须返回一个空值,种群类型必须是实数编码。举例,若是想让第一个、第三个、第五个变量保持是整数的话,则直接在此处填写[1 3 5]。
    1. Run solver and view results 求解与结果展示
    • Use random states from previous run: 使用前次的状态运行,完全重复前次运行的过程和结果。

    Options 选项

    population 种群

    1. Population type 编码类型
    • Double vector 实数编码。采用双精度,整数规划的种群类型必须是实数编码。
    • Bit string 二进制编码
    • Custom 自定义
    1. Population size 种群大小
    2. Creation function 生成函数,产生初始种群
    3. Initial population 初始种群,不指定则使用creation function生成,可以指定少于种群数量的种群,由creation function完成剩余的。
    4. Initial scores 初始值,如果不指定,则由计算机计算适应度函数作为初始值,对于整型约束不可用,使用向量表示。
    5. Initial range 初始范围,使用向量矩阵表示,第一行表示范围的下限,第二行表示上限。

    Fitness scaling 适应度尺度

    • Rank 等级,将适应度排序,然后编号;
    • Proportional 按比例;
    • Top 按比例选取种群中最高适应度的个体,这些个体有等比例的机会繁衍,其余的个体被淘汰;
    • Shift linear 线性转换;
    • Custom 用户定义;

    Selection 依据适应值选择

    • Stochastic uniform:随机均匀分布;
    • Remainder: 残余,取适应值的整数部分进行轮盘赌选择;
    • Uniform:均匀分布,不是一个好方法,但是可以用来做测试;
    • Roulette:轮盘赌算法;
    • Tournament:联赛选择算法;
    • Custom:自定义;

    Reproduction 复制,决定如何产生子代

    • Elite count:精英数,直接传到下一代的个体数;
    • Crossover fraction:杂交概率;

    Mutation (Mutation function) 突变

    • Use constraint dependent 默认,与约束有关,无约束时使用gaussian,有约束时使用adaptive feasible;
    • Gaussian :利用高斯分布来选取;
    • Uniform:均匀;
    • Adaptive feasible:自适应;
    • Custom:自定义;

    Crossover 杂交

    • Scattered:随机生成遗传二进制向量,按0-1杂交;
    • Single point:单点杂交,生成一个数字,该数字代表的位置开始两父代基因交换;
    • Two point:两点交换;
    • Intermediate:媒介,加权平均;
    • Heuristic:启发式算法;
    • Arithmetic:算术平均;
    • Custom:自定义;

    Migration 迁移

    • Direction方向:forward n->n 1 ;both 双向;
    • Fraction:指定迁移率,以较小数量种群为标准;
    • Interval:发生迁移的间隔;

    Constraint parameters 约束参数

    对应于非线性约束求解器

    • Initial penalty: 初始罚函数大于等于1;
    • Penalty factor:处罚因子 大于等于1;

    Hybrid function 混合函数

    指定另外一个最小值函数,在遗传算法结束之后计算,在整数值限制的时候不可用。

    • None
    • Fminsearch 只用于无约束;
    • Patternsearch 约束与无约束;
    • Fminunc 无约束;
    • Fmincon 有约束;

    Stopping criteria 停止标准

    • Generations 到达代数;
    • Time limit 时间限制;
    • Fitness limit 适应值限制;
    • Stall generations迟滞代数,经过多代适应值没有明显提升;
    • Stall time limit 迟滞时间限制,经过限定时间适应值没有明显提升;
    • Function tolerance 在迟滞代数内适应度函数值的改变量小于这个值,则停止;
    • Constraint tolerance 约束容忍值;

    Plot function 绘图函数

    • Plot interval 绘图间隔;
    • Best fitness 最佳适应度值;
    • Best individual 最佳个体;
    • Distance 个体间平均距离;
    • Expectation 期望;
    • Genealogy 家系;
    • Range 适应度值最小最大平均值;
    • Score diversity 每一代分数的柱状图;
    • Scores 每一代个体的分数;
    • Selection 描绘对每一代贡献的父代;
    • Stopping 停止标准的水平;
    • Max constraint 非线性约束中超出范围的最大值;
    • Custom function 自定义;

    Output function 输出函数

    • Custom function: 自定义;

    Display to command window

    • Off 不输出;
    • Final 只输出最终值;
    • Iterative 每一次迭代都输出;
    • Diagnose 诊断,每一次迭代都输出,并且诊断问题信息和选项中相对于默认值的改变值;

    Evaluate fitness and constraint functions 评价适应度和约束函数

    • In serial 分别独立评价;
    • Vectorized 用同一个函数调用;
    • In parallel 并行处理;

    Matlab遗传算法工具箱使用简介
    Matlab自带遗传算法工具箱的介绍和使用注意事项
    超详细的遗传算法(Genetic Algorithm)解析和TSP求解代码详解

    相关文章

      网友评论

          本文标题:Matlab自带遗传算法工具箱简介

          本文链接:https://www.haomeiwen.com/subject/vxekcltx.html