一、初级阶段:二进制表达
import numpy as np
# 生成初始种群 (二进制)
pop = np.random.randint(2, size=(POP_SIZE,DNA_SIZE))
#翻译DNA得到10进制数
value = bond_rang[0] + pop.dot(2**np.arange(size)[::-1]) / float(2**size-1) * (bound_range[1] - bond_rang[0])
1 二进制数的size选择问题
思想:十进制中的每一个数都能够与二进制数所对应。
eg: [-5,5] 要求精度为4位小数,则包括5-(-5)*10^4个数。
2^13 = 8192 <10^5<2^14=16384 因此需要14位二进制数