matlab中 a=1:19; 如何实现a中19个数的随机交换,用遗传算法如何实现第一步的编码 谢谢

问题描述:

matlab中 a=1:19; 如何实现a中19个数的随机交换,用遗传算法如何实现第一步的编码 谢谢
1个回答 分类:综合 2014-10-29

问题解答:

我来补答
你可以采用二进制编码,假设你的染色体长度为10,每一位上都是0或者1,如x=[1 0 0 1 1 1 0 1 0 1],对应的实数值为y=629;那么它对应的取值范围是[0,1023],显然不是我们要的1:19这个范围,那么我们要再进行转化.
要用a=y*(19-1)/(2^10-1)+1来对二进制值进行转化,转化为[1,19]这个范围.
转化以后,对应着前面给出的二进制编码x,它的a值为12.07,取整后就是12.
那么通过以上的方法,你就可以得到1:19中间的数的随机交换了.
 
 
展开全文阅读
剩余:2000
上一页:求形状的题不会