------creator:
create创建的类继承base.Fitness类,其中weights作为参数添加到类当中,例如具体如下:
Foo类继承list类,并且添加参数Spam,函数像bar一样添加。
-----#Toolbox:
工具箱用以储存演化所用的操作符;toobox包括deapcopy()以及map()两部分。
如上图,注册工具箱中名为alias函数。可以定义参数,在函数被调用时会自动调用;固定参数会在被调用时覆盖。
例如例子当中,注册工具箱函数myfunc调用函数func。我的理解是也相当于给函数在工具箱中注册别名。
注意:当工具箱注册多个函数时,以第一个函数为准。后续函数作为第一个函数的输入参数。
例如
base类的toolbox的unregister为注销掉toolbox中的别名。
decorate函数为给工具箱中的函数使用指定的装饰器装饰别名。alias为所装饰的名称,装饰器可以有多个,依次按照顺序进行装饰,并且最后一个装饰其他所有的装饰器。
---------#base类中的Fitness:
适应度是衡量解决问题的标准。如果返回值是一个元组,则适应度是通过这些返回值进行初始化,否则将是空值或者无效值。适应度通过大小比较。最大值以及最小值通过权重以及适应度之间的乘法进行计算。如果两元素适应度相同吗,则在额外元素出现之前,更长元素的适应度更优。
#######deep.tools.initRepeat函数
函数作用:将func函数重复调用n次 ,并且将结果以container的形式存储返回。
例如:
例如 ,上段代码的意义为使用toolbox.individual函数调用initRepeat()函数,并且返回一个带有单目标最大适应度由IND_SIZE个浮点数组成的完整的creator.Individual。
###########deep.tools.initIterate函数
函数意义:由generator函数返回可迭代参数(list,tuple类),可迭代的参数将填入container。
例如:
例如:
上段代码的意义为 使用toolbox.individual()调用initReate()函数,返回一个带有最小值fitness的列表