2021

您所在的位置:网站首页 目标规划实例 2021

2021

2024-07-10 13:53| 来源: 网络整理| 查看: 265

Matlab遗传算法工具箱的使用及实例(线性规划) 引言

在使用遗传算法(Genetic Algorithm,GA)之前,你得了解遗传算法是干什么的。遗传算法一般用于求解优化问题。遗传算法最早是由美国的 John holland于20世纪70年代提出,该算法是根据大自然中生物体进化规律而设计提出的。是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。该算法通过数学的方式,利用计算机仿真运算,将问题的求解过程转换成类似生物进化中的染色体基因的交叉、变异等过程。在求解较为复杂的组合优化问题时,相对一些常规的优化算法,通常能够较快地获得较好的优化结果。

 

遗传算法的原理和具体流程,各大书籍资料都有,这里不再赘述。我相信来找工具箱的人对原理有所了解。我们在使用工具箱时,不需要理解他的原理,因为这些已经封装到工具箱里了,你只需要设定参数即可。我将结合线性规划、非线性规划两类问题,来介绍一下MATLAB遗传算法工具箱的使用。本文先介绍用遗传算法工具箱求解线性规划模型,非线性规划见下期。

线性规划的标准形式

在使用遗传算法求解线性规划问题的时候,需要将模型描述成标准线性规划的形式。

 

标准线性规划

标准线性规划使用矩阵的形式表示如下:

图片

是自变量列向量,若有三个自变量,即为(x1,x2,x3)'

min f(x)是目标函数;

A是小于约束中x的系数矩阵,b是小于约束常数项的列向量;

Aeq是等号约束中x的系数矩阵,beq是等号约束中的常数项的列向量;

lb是x的最小取值,ub是x的最大取值

 

非标准线性规划转化为标准线性规划的实例

对于非标准线性规划的形式,如何化为标准型的线性规划呢?下面通过一个例子来说.

例如:有以下线性规划问题:

图片

可以观察到,标准型的目标函数是求极小值,而这个案例的目标函数是极大值,我们可以在目标函数f(x)添加一个负号,改为求-f(x),根据中学数学知识可以知道,-f(x)的最小值,就是f(x)的最大值.

在约束条件中,标准型的不等式约束都是小于约束,而案例中出现了大于约束。根据中学知识,不等式的两边同时乘一个负数,不等号改变方向。因此,我们只需要在不等式两边同时乘-1即可.

 

而 x1,x,2,x3>=0是对于自变量定义域的限制。

 

因此,上述模型可以转化为:

图片

根据线性代数的知识,约束条件的方程/不等式组可以用矩阵形式表示:

式[1]是等号约束,可表示为Aeq*x=beq的形式:

图片

式[2][3]是小于号的约束,可表示为A*x



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3