matlab中NSGA-Ⅱ是否可以求解整数规划

matlab中NSGA-Ⅱ是否可以求解整数规划,第1张

最近,有很多同行问我在Matlab中怎样求解(混合)整数规划问题,我这里就说一下我所知道的情况。

Matlab 7的优化工具包只能求解0-1变量的(逻辑)整数规划问题,要解一般的整数规划问题,推荐下载一个免费的,叫做LP_SOLVE的软件,支持Matlab,在yahoo讨论组里有下载。

解压后,里面有个文件,将其命名为"lp_solve",建议将这个文件夹拷贝到matlab程序文件夹中的toolbox文件夹中,在lp_solve文件夹里面有个lpsolve55.dll文件,将其拷贝到系统文件夹%system32中,然后启动matlab,在file菜单里点击setpath,将%MATLAB701/toolbox/lp_solve 路径添为默认路径,现在就可以直接使用lp_solve文件夹里面的函数了。

为了根方便地使用各种优化软件,尤其是lp_solve,我还建议有兴趣的同行再下载一个叫做"Yalmip" 的软件包,同样解压后放在matlab程序文件夹中的toolbox文件夹中,再添加其路径(add with subfolders)。这个软件的重要作用在于使得添加约束条件的过程变得相当方便,例如变量X是一个长度为5的向量,且有约束x1+x2+x3+x4+x5=1,利用Yalmip就可以写成

X=sdpvar(5,1)%定义变量

set(sum(X)==1)%定义约束条件

1、先将目标函数以文件形式写出来,其后缀名。m。如

myfun.m

function f=myfun(x)

f=42.382-0.0263315*x(1)*x(2)

2、然后在命令窗口下或执行文件中调用,如

[x,fval]=fminunc(@myfun,x0)

遗传算法在matlab里有两个函数,分别是ga和gaoptimset,前者用来调用遗传算法,后者用来设定遗传算法的参数,具体内容可以doc ga查看,遗传算法有哪些参数可以直接在命令窗口输入gaoptimset查看,祝好。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11596644.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存