假如你想要编码为x,设x的范围是【min,max】,二进制编码长度为10,那二进解码方式是:x*(max-min)/1023,这个不用开始编码,开始你可以用rand(n,10)产生n个样本的随机数,然后优化即可。
不是能把“数学模型中的目标函数和每一条约束函数分别编程Matlab里的M文件”,是你用遗传算法就必须要编进去,电脑怎么知道往哪个方向优化是好的,要不把你邮箱留下,我给你发个寻求最大值的遗传算法。
两种编码都有,可以自己选择。
你在MATLAB2008里输入 gaoptimset
会弹出遗传算法的所有的设置选项及默认项。其中,第一行就是个体的编码方式,第一行如下
PopulationType: [ 'bitstring' | 'custom' | ]
其中,bitstring就是二进制编码,而'doubleVector'即实数编码(MATLAB里实数是用double双精度浮点数表示的,精度很高。大括号{}表示是默认设置。
而中间的'custom'是表示用户自己构造个体的编码形式。(参加GA算例,在美国地图中的TSP问题,很帅~
加油,MATLAB是个好软件~~~
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
可以转化为十进制编码!这个编码得出的效果比较令人满意!呵呵