你好,我想请教一个关于MATLAB遗传算法的问题
发布网友
发布时间:2022-05-13 22:42
我来回答
共1个回答
热心网友
时间:2023-11-03 11:27
您好,如果想调用matlab自带的工具箱,那么约束条件必须符合它的要求,即约束条件包含的是线性不等式、线性等式,边界和非线性不等式,。如果你的约束条件还含有其他的,如整数规划。那么你就得修改了计算流程了。
把遗传和BP,模拟退火、粒子群、蚁群或其他智能算法连接起来混合使用主要是对算法性能的进一步优化。
第一个问题,
1、可以在命令窗输入optimtool('ga'),可自动调出ga求解器,然后根据约束条件输入对应的,现在较新版本的matlab似乎可以设置整数变量,过去的不行。
如果用求解器计算,你除了自己做一个目标函数的m文件,其他的事情都是在求解器中直接操作。
2、如果直接在命令窗计算,标准格式为:
[X,FVAL,EXITFLAG,OUTPUT] = ga(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options)
等式左侧的输出量,你可以按照需要,等式右边的就是输入量,没有的填[];如果详细可以在命令窗输入help ga,查看详细步骤。
第二个问题,
其他的调用问题,一般用默认就好了,如果自己有需要修改一些参数,如输出变量的精度等,可以在求解器的右侧修改对应的参数,也可在命令窗中对options进行设置。追问你好,谢谢,我感觉最大的问题是我的变量中的管径X、Y是受管段数控制的,而管段数量M、N也是变量,意思就是比如管段M是5,这5段管径X个数也是5个,管段M是30,这30段管径X个数也是30个,变量维数(个数)就不断变化了,我原想通过不断对M、N、X、Y的优选进化得到最合适的M、N、X、Y取值,您看这个怎么处理?