DEAP库文档教程三-----创建类型

本节将继续展示如何通过creator创建类型以及如何使用toolbox如何对复杂问题进行初始化。

Particle的初始化--粒子初始化

一个Particle是另一个特殊类型的个体,这是因为通常情况下它有一个速度,并且有一个最优的位置需要去记忆。这种类型个体的创建与通过list创建类似。现在,speed, best和速度限制将会加入到一个目标中。再一次的,一个初始化函数initParticle()函数也同时可以被注册并产生接受一些参数,包括Particle的个体、大小、领域和速度限制等。

对的,这种初始化方式,大家很容易联想到粒子群算法。

A Funky One 

假设你的问题有着极其特别的需求,你同样可以轻松建立一个定制化的个体。下一个个体的创建是一个可以改变的整数和浮点数组成的list,使用initCycle()函数

穿插讲解一下种群初始化函数--initCycle()函数,即循环调用

这个函数,使用生成器函数调用函数容器,该生成器函数对应于seq_func中存在的函数的n倍调用。

Parameters:
  • container – The type to put in the data from func.
  • seq_func – A list of function objects to be called in order to fill the container.
  • n – Number of times to iterate through the list of functions.
Returns:

An instance of the container filled with data from the returned by the functions.

这是不是极大的简化了你初始化种群的方式,想想那些多种群的初始化,是不是就可以通过这里的方式来实现呢。

Population

一个种群的包是最常用的类型。它没有特殊的排序,尽管这通常会使用list来实现。由于包没有特殊的属性,它不需要任何特殊的类。种群的初始化是通过使用toolbox中的initRepeat()函数直接实现的。

这个很好理解,一般情况下,我们将个体重复多次,就直接成了种群了

toolbox.register('population', tools.initRepeat, list, toolbox.individual)

好的,其余有关创建类型的内容,请大家自行到官方文档去学习,今天就先到这里了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

且行且安~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值