python deap_DEAP(Distributed Evolutionary Algorithms in Python)1.2.2文档(一)

DEAP是一个用于快速验证和测试新想法的演化计算框架,专注于算法和数据结构的简洁构建,适用于并行机制。本文档介绍了DEAP的基础和进阶教程,包括类型创建、初始化、操作、算法实现及适应度函数设计,展示了其灵活性和定制性。
摘要由CSDN通过智能技术生成

DEAP文档

(不准确翻译,用于自学,如若有误请谅解。原链接:https://deap.readthedocs.io/en/master/)

DEAP是一个新的用于快速验证和测试新想法的演化计算框架。它致力于直接地构建算法和数据结构的简单化。它可以很好地应用在并行机制中,例如多任务处理和SCOOP(这是啥?)中。下面的文档将会展示许多关键概念以及构建你自己的演化算法时的一些特征。

第一步

1、总览(从这里开始)

2、安装

3、如何进入端口?(porting guide)

基础教程

Part1:创造类型

Part2:操作与算法

Part3:记录数据

Part4:使用多进程

进阶教程

遗传程序设计(GP)

检查点?(checkpoint)

收敛控制

针对最优解的基准测试(BBOB)

与numpy的继承关系

例子

库引用

亮点 & 贡献 & 相关

-----------------------------------------分割线------------------------------------

2018.09.02  第一步

1、总览

如果你已经习惯于其他的演化计算框架,你将会发现我们在DEAP中所做的事情是不同的。我们提供了创建适当类型的方法,而不是限制你使用预定义类型。我们使得你能够定制你的初始化选项而不是封闭它。我们希望你能够更明智地选择一些操作而不是使用预定义好的。我们允许你能够写一个适合于你自己需求的算法而不是仅仅提供许多封闭的算法。这个教程将通过说明DEAP的每一个程序组成来快速地展示DEAP的所有内容。

2、类型

首先要做的事情是思考适合你问题的类型。然后,不像之前的方法那样为你提供一些可用类型的列表,DEAP会为你构建适合你自己的。这个操作需要使用creator模块。创建一个合适的类型可能听起来很难,但是creator使得这个过程变得十分简单。事实上,这通常在单行操作上实现。例如:下面为一个最小值优化问题创建一个FitnessMin class,并且会从刚刚设置好的适应度列表中再创造一个individual class

C1P1

这就是它了!更多的创建类可以在基础教程的Part1中找到。

3、初始化

一旦你创建了一个你需要为它们填充一些随机值的类型,DEAP可以通过简单的方法去完成它。Toolbox是一个包含了所有的初始化工具的容器,它可以做你需要它去完成任何事情。下面代码的目标就是去为个体和种群随机地生成浮点数类型的初始值。

C1P2

这个产生初始种群的生成功能,是通过个体自身不断进行随机生成完成的。这个功能和它的默认参数已经被放入了toolbox中。例如,调用toolbox.population()将会有可能立即创建一个种群,更多的初始化方法将会在基础教程的Part1中以及后面的例子中讲到。

4、操作

除了一些在tools模式下已经设定好的东西以外,操作与初始化类似。一旦你选择了一个最好的,简单的在toolbox中注册它们。除此之外你必须创造你的评估函数,下面展示具体的做法

C1P3

这些已经注册的函数会被toolbox重命名,使得遗传算法(广义)不会依赖于操作的名称。还要注意的是,适应度本身是可以迭代的,这就是为什么evaluate函数必须返回元组的原因。更多的细节在后面中会说到。

5、算法

现在一切都准备就绪了,我们可以自己来写一个算法了。它通常在一个main()中执行。为了实现这个目标我们将简单地写一个迭代算法

C1P4

使用在algorithm中四个已有的算法也是可以的,或者在这个模块中搭建一些其它区域的变化也是可行的。

6、总结

演化计算的步骤无非就是适应度函数设计+种群初始化+针对种群的操作(交叉变异等)+选择与复制(轮盘赌等),设计不同的适应度函数以及不同类型的种群可以解决不同的问题。

在这一节中,教程大致介绍了上述四个核心步骤的基本操作,并给出了一个寻找最大和的实例。

关键的步骤似乎均在toolbox中,无论是初始化还是遗传操作还是最后的选择,均可以使用toolbox对其进行register,一旦register一种方法,并搭建好计算框架便可以是一种新的模型,这可能就是前言中所说的“灵活性”。

一、软件的具体操作 1.建一个文件夹,里面必须有四个文件(Dblank;deapdeap.000;123.dta)前三个文件在一般下载的DEAP Version 2.1中都有,直接复制过来就可以,第四个文件是一个数据文件,一般先在excel中先输入,再复制到一个记事本下就可以,注意在记事本下的数据只有数据,不包括决策单元的名称和投入、产出的名称,并且一定要先放产出,后是投入。例子具体见123电子表格和123记事本。 2.对命令Dblank文件进行修改,修改后保存为123.ins文件 3.打开deap软件,运行123.ins 4,回车后自动会有123.out 注意事项:(1) 123.dta;Dblank;123.ins都用记事本打开; (2)数据文件名和命令文件名一定要一样,如例子中都用123 (3)文件夹中一定要包括deap.000文件,如果没有这个文件,打开deap软件,就会出现一闪就没有了的情况。 二,结果的分析 在文件夹中打开123.out,看如下: 1) firm crste vrste scale 1 0.687 1.000 0.687 drs 2 0.814 1.000 0.814 drs 3 0.319 0.709 0.450 drs 4 1.000 1.000 1.000 - 5 1.000 1.000 1.000 - 6 0.336 0.425 0.791 drs 7 0.642 0.648 0.991 irs 8 0.379 0.381 0.994 irs 9 0.702 0.750 0.936 irs 10 1.000 1.000 1.000 - 11 0.304 0.461 0.659 irs 12 0.352 1.000 0.352 irs 13 1.000 1.000 1.000 - 14 0.594 0.929 0.639 irs 15 0.402 1.000 0.402 irs mean 0.635 0.820 0.781 firm:代表例子中的15的样本 crste:技术效率,也叫综合效率 vrste:纯技术效率 scale:规模效率(drs:规模报酬递减;-:规模报酬不变;irs:规模报酬递增) crste=vrste×scale 2) Results for firm: 3 Technical efficiency = 0.709 Scale efficiency = 0.450 (drs) PROJECTION SUMMARY: variable original radial slack projected value movement movement value output 1 7326.380 0.000 0.000 7326.380 output 2 119.910 0.000 0.000 119.910 input 1 15427.000 -4496.010 0.000 10930.990 input 2 5257.970 -1532.371 -1643.828 2081.771 第三个样本的具体分析如下: 纯技术效率=0.709 规模效率=0.450 (drs):规模报酬应该递减 第三个样本的投入产出情况分析: 第一、二产出均没有冗余情况(因为其 radial movement 和 slack movement 均为零) 第一个投入要素有投入冗余4496.010;第二投入要素有投入冗余3176.199=1532.371+1643.828 这个意思是说按第三个样本现在的产出冗余第一个投入要素可以减少4496.010,第二个投入要素可以减少3176.199 Results for firm: 8 Technical efficiency = 0.381 Scale efficiency = 0.994 (irs) PROJECTION SUMMARY: variable original radial slack projected value movement movement value output 1 235.860 0.000 0.000 235.860 output 2 3.760 0.000 6.995 10.755 input 1 777.000 -480.651 0.000 296.349 input 2 132.550 -81.995 0.000 50.555 第八个样本则出现了产出不足的情况,即第二个产出应该比现在增加 6.995 如果投入因素是决策单元可的决定的,而产出因素是不能决定的时,我们分析就可以考虑投入是否能减少,不管产出是否能增加(因为产出是决策单元不可控的因素) 如果产出因素是决策单元可的决定的,而投入因素是不能决定的时,我们分析就可以考虑产出是否能增加,不管投入是否能减少(因为投入是决策单元不可控的因素) 如果样本单元的纯技术效率为1,而规模效率小于1时,这说明样本单元本身的技术效率而言没有投入需要减少、没有产出需要增加;样本单元的综合效率没有达到有效(即1),是因为其规模和投入、产出不相匹配,需要增加规模或减少规模。如例子中的第二个样本单元,其规模应该缩小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值