pyevolve中文帮助文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Pyevolve的用户手册中文版

1.1.6基本概念

Raw score:表示由适应度函数返回的还未进行比例换算的适应值。

Fitness score :对Raw score进行比例换算后的适应值,如果你使用线性的比例换算(Scaling.LinearScaling()),fitness score将会使用线性方法进行换算,fitness score代表个体与种群的相关程度。

Sample genome : 是所有genome进行复制的基础

1.2.3对pyevolve进行扩展

对pyevolve进行扩展首先要查看GenomeBase.GenomeBase类的源码。

扩展的基本步骤

1)创建染色体类

2)创建染色体的初始化函数

3)创建遗传算子:选择算子,交叉算子,和变异算子等。

1.3模块

1.3.2基本模块

a) Consts :常量模块

Pyevolve 提供了所有的默认遗传算子,这是为了帮助用户方便的使用API,在常量模块中,你可以找到这些默认的设置,最好的情况是查看常量模块,但是不改变常量模块中的内容。

b)Util :公用模块

公用模块中提供了一些公用的函数,比如列表项的交换,随机功能等。

list2DSwapElement(lst, indexa, indexb):交换矩阵中的元素项。

listSwapElement(lst, indexa, indexb):交换列表中的元素项。

c)FunctionSlot :函数分片模块

Pyevolve中广泛使用函数分片的概念;这个想法是很简单的,每个遗传操作或者说是任何遗传操作能够被分配到一个片,按照这种想法,我们能够添加不止一种的遗传操作,比如说同时进行两种或者更多的变异操作,或者两种或更多的计算操作等,函数分片模块是以FunctionSlot.FunctionSlot类来实现的。

例子:

Def fit_fun(genome):

….

Def fit_fun2(genome):

….

Genome.evaluator.set(fit_fun)

Genome.evaluator.add(fit_fun2)

Print Genome.evaluator #the result is “slot [evaluator] (count:2)”

Print Genome.evaluator[0] # the result is “function fit_fun at <....>”

Print Genome.evaluator[1] # the result is “function fit_fun2 at <...>”

从这个例子可以看出所谓的函数分片:其实是将多个函数(操作)应用与同一个遗传算子。这有益于简化一个函数的代码结构。

Class FunctionSlot的结构

Class FunctionSlot(name='anonymous function',rand_apply=false):

#name:分片的名字

#rand_apply:如果为真,在分片中则只有一个函数将会被应用。

add(func):添加一个函数到分片

apply(index,obj,**args):应用索引函数,index:函数的索引,obj传递给函数的参数,args参数字典传递给函数

applyFunctions(obj,**args):在obj上应用所有的函数分片

set(func): 清除原有的函数分片,添加func为新的函数分片

1.3.3 Genetic Algorithm Core Modules:遗传算法的核心模块

d.1) GSimpleGA:遗传算法引擎

这个模块包括遗传算法引擎(GA engine),所谓遗传引擎代表的是自我的所有遗

传过程。遗传算法引擎包括实现遗传过程的相关函数,包括收敛准则函数等。

GsimpleGA中包括的函数

d.f.1) def ConvergenceCriteria(ga_engine):当种群收敛后,停止进化。

d.f.2) def FitnessStatsCriteria(ga_engine):根据适应值的状态来终止进化

d.f.3) class GSimpleGA(genome, seed=None, interactiveMode=True):遗传算法引擎类,遗传算法的核心,genome 为the sample genome也即使初始种群,当然进化以后上一次的结果为下一次的初始种群。

d.f.4) bestIndividual():返回种群中的最优个体

d.f.5) evolve(frep_stats=0):执行所有的进化代数直到种群收敛,frep_stats为每隔freq_stats代则输出统计信息。

d.f.6) getCurrentGeneration():获取当前代(?是返回当前代数还是返回当前代中的染色体)

d.f.7) getPopulation():返回当前遗传算法引擎内部存在的种群

d.f.8)initialize():初始化遗传算法引擎,创建和初始化种群

d.f.9)printTimeElapsed():返回从开始进化所用时间

d.f.10) selector:这个函数分片表示如果你想更改默认的选择算子。

d.f.11)setCrossoverRate(rate):设置交叉概率p c

d.f.12)setElitism(flag):设置使用杰出选择方法,flag=True时表示使用

d.f.13)setGenerations(num_gens):设置进化代数

d.f.14)setMutationRate(rate):设置变异概率p m

d.f.15)setPopulationSize(size):设置种群规模

d.f.16)terminationCriteria:这个函数分片,用来更换默认的收敛准则。

相关文档
最新文档