打字猴:1.700507721e+09
1700507721
1700507722 在解决这种有限定义域内高维多峰函数的极值问题时,使用遗传算法就比较合适,前提是这个多峰函数在任何一个维度内都是连续的。
1700507723
1700507724
1700507725 以函数z=xsin2x+ycos2y为例,。
1700507726
1700507727 第1步:基因编码
1700507728
1700507729 这个环节以满足当前场景的精度要求为宜。如果精度为10-5,那么用一个20位的二进制数字作为基因编码即可。因为221=2097152,其能够允许的精度已经满足了-10.00000到10.00000之间20000001个最小单位的需求。
1700507730
1700507731 设计一个映射函数
1700507732
1700507733
1700507734
1700507735
1700507736
1700507737 x是21位的二进制编码,例如。F(x)是二进制编码到十进制实数的映射函数。
1700507738
1700507739 第2步:设计初始群体
1700507740
1700507741
1700507742 设计一定量的群体,每个个体都用一个二进制编码来表示,使用程序循环生成N个21位二进制编码,当发现时就进行舍弃并重新生成,直到生成N个满足要求的21位二进制编码。
1700507743
1700507744 第3步:遴选与生育
1700507745
1700507746 首先,比较当前N个H(x)的值。然后,将其从大到小排序,选择最大的前M个对象作为可以生育后代的备选。最后,在这M个备选对象中进行两两之间的基因重组(如图11-21所示)。
1700507747
1700507748
1700507749
1700507750
1700507751 图11-21 基因重组
1700507752
1700507753
1700507754 根据排列组合,每一代会产生个下一代对象。在两两组合的过程中,可能会在这21位中的第1位后到第21位前的任意位置断开然后重组,这个位置是随机的。
1700507755
1700507756 以2个基因组为例:
1700507757
1700507758 101010101010101010101
1700507759
1700507760 000011110000111100001
1700507761
1700507762 假如在第7位后断开,那么生成的2个后代的基因组就是
1700507763
1700507764 000011101010101010101
1700507765
1700507766 101010110000111100001
1700507767
1700507768
1700507769 最终,一共产生了个新的后代基因。
1700507770
[ 上一页 ]  [ :1.700507721e+09 ]  [ 下一页 ]