① 使用matlab遗传算法工具箱能不能解决组合优化问题还有使用工具箱方便还是自己编程方便呢
1、要看你组来合优化是属于哪种问题,源一般的组合优化都是混合整数线性或非线性的,那么就不行了,因此要对遗传算法改进才能计算。
2、如果有现成的工具箱求解你的组合优化问题肯定要方便些,但碰到具体问题,可能要对参数进行一些设置更改,所以最好能有编程基础,那样就可以自己修改工具箱里面的参数或策略了
对你的补充问题,组合优化问题一般都是用matlab 和 lingo实现吧。建议买一本数学建模的书看一看,都涉及到组合优化问题,也可以下载论文看看。lingo对编程要简单些,主要是求混合规划,缺点是似乎还不能用上多目标问题,一般的组合优化都属于多目标问题。但是matlab功能强大的多。
② 用遗传算法工具箱求解一个多目标优化问题,现在需要一个matlab程序,求高人指点
用遗传算法工具箱求解一个多目标优化问题的步骤:
1、根据题意,建立自定专义目标函数,ga_fun1(x)
2、在命令窗属口中,输入
>> optimtool %调用遗传算法工具箱
3、在遗传算法工具箱界面中,分别对Fitnessfunction框内输入@ga_fun1();A框内输入[1,1,1];b框内输入16;Aeq框内输入[];beq框内输入[];Lower框内输入[0,0,0];Upper框内输入[];
4、单击Start。得到x=4.508 y=2.513 z=1.912值。
③ 为什么Matlab优化工具箱的遗传算法每次优化的结果都不一样
为什么Matlab优化工具箱的遗传算法每次优化的结果都不一样?这是因为算法的初值是随机的,所以重复计算就会有差错。为了保证计算结果,可以每次重启matlab软件后执行程序,这样得到结果就基本一致了。
④ 用matlab的optimization工具箱遗传算法,添加约束条件的问题。
你看到下边那个nonlinear constraint function了吗?
把你的约束写在一个m文件的function中,函数名比如取为:xconstr
则将@xconstr写到nonlinear constraint function后面的框里,应该就可以了。线性约束的话直接写在上方的栏目中。
你的优化问题没看到,用遗传算法求解一般没有问题。这种智能优化算法的最大优点在于求解多局部解优化问题时能得到全局性较好的最有解。如果你不考解的全局最优性的话,可以直接使用fmincon函数来求解。关于fmincon函数,可以在matlab命令行中输入 doc fmincon命令以查看帮助。
⑤ matlab优化工具箱中遗传算法的问题
ga就是在穷举不可能完成时,用一种方式找到最优解
ga工具的完整形式如下表示
[X,FVAL,EXITFLAG,OUTPUT,POPULATION,SCORES] =
GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options)
X是最优自变量
FVAL是求得的最优值
其他以此是推出标志,结构体,终止时的总群,终止时种群函数值
后半部分以此是目标函数,目标函数自变量个数
A和b是线性约束不等式AX〈b
Aeq和beq是一对线性等式约束,AeqX=beq
lb是X值下限,ub是X值下限
NONLCON是非线性约束函数 options是运行方式。这两个可以写函数自己完成,也可默认
函数默认计算最小值,计算最大值要加负号
非线性约束条件的写法
function [c,ceq]=nonlcon(x) 定义函数自变量是x,x可以是一列矩阵
c=[]; c表示非线性等式约束,以为没有,所以为空
ceq=[x(1)-2*(x(2))^2;
x(1)+X(2) ] ceq是非线性不等式约束,默认ceq<=0,ceq可以为一列矩阵.
>>
⑥ 用matlab优化工具箱自带的遗传算法(只能找到近似最优解)时,往往重复计算很多次都不能得到最优解
要想得到较精确的最优解,可以通过设定Function tolerance的误差值,Constrainttolerance的误差值。
⑦ matlab工具箱中的神经网络和遗传算法要怎么调用
都是有两种调用抄方法,一种图形界面的,这个从开始菜单,然后工具,然后从里面找神经网络 neural network,遗传算法工具是 全局优化工具箱里面的,global optimization。
另外 一种通过命令行调用,这个需要你理解你都要做什么,我用神经网络举例。第一步需要先整理出输入变量和输出变量,第二步设计并初始化神经网络,第三部训练,第四部获得结果。
如果你想结合这两者,就会更加复杂,详细的你可以再问。我曾经做过用遗传算法优化神经网络的工具。
⑧ matlab7.1遗传算法自带工具箱和sheffield大学的遗传算法工具箱(gatbx)各有何特点哪个好些
只用过抄MATLAB的遗传工具箱,速度还可以袭(比一般自己写的C++要好些)。和其它程序结合的话,先编一个options的结构体,设定好参数(非常重要,特别是初始范围),然后在调用ga()函数,就可以了。没有工具箱的界面,但干的活是一样的。 我曾用它描过一个函数,函数值是当某些参数去到最优时的参数值。通过嵌套一个循环,每次改变一点参数做一次优化,就可以描出一条曲线来。
⑨ matlab神经网络工具箱,会比自己写的遗传算法优化bp神经网络好用嘛
1、遗传算法优化BP神经网络是指优化神经网络的参数; 2、因此,对训练时间没有影响。
⑩ 求助:关于matlab遗传算法工具箱中约束的输入问题
遗传算法工具箱的函数GA基本调用格式如下:
X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub)
其中前两个参数分别是适应度函数和变量个数,第三、四个参数(A和b)即为线性不等式约束。
你现在需要做的是,增加几个线性约束条件:
x1 < x2
x2 < x3
x3 < x4
x4 < x5
不过,有个问题,遗传算法等优化工具对不等式约束的要求,都必须是闭集(带等号的不等式),也就是说,要的是类似下面这样的约束:
x1 <= x2
x2 <= x3
x3 <= x4
x4 <= x5
不知道你的问题是否允许把约束放宽到上面的形式,如果可以,就很简单了(如果不能放宽,我暂时还没想起怎么解决):
x1 - x2 <= 0
x2 - x3 <= 0
x3 - x4 <= 0
x4 - x5 <= 0
也就是调用函数时,线性约束的A和b分别为
A = [
1 -1 0 0 0
0 1 -1 0 0
0 0 1 -1 0
0 0 0 1 -1
];
b=[0;0;0;0];