永发信息网

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

答案:1  悬赏:30  手机版
解决时间 2021-07-20 18:59
  • 提问者网友:美人性情
  • 2021-07-20 01:34
matlab中 a=1:19; 如何实现a中19个数的随机交换,用遗传算法如何实现第一步的编码 谢谢
最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-07-20 02:24

你可以采用二进制编码,假设你的染色体长度为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中间的数的随机交换了.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯