python遗传算法工具箱的使用_Deap: python中的遗传算法工具箱

Overview 程序概览

官方文档:http://deap.readthedocs.io/en/master/index.html

1. Types : 选择你要解决的问题类型,确定要求解的问题个数,最大值还是最小值

2. Initialization : 初始化基因编码位数,初始值,等基本信息

3. Operators : 操作,设计evaluate函数,在工具箱中注册参数信息:交叉,变异,保留个体,评价函数

4. Algorithm : 设计main函数,确定参数并运行得到结果

Types

# Types

from deap import base, creator

creator.create("FitnessMin", base.Fitness, weights=(-1.0,))

# weights 1.0, 求最大值,-1.0 求最小值

# (1.0,-1.0,)求第一个参数的最大值,求第二个参数的最小值

creator.create("Individual", list, fitness=creator.FitnessMin)

Initialization

import random

from deap import tools

IND_SIZE = 10 # 种群数

toolbox = base.Toolbox()

toolbox.register("attribute", random.random)

# 调用randon.random为每一个基因编码编码创建 随机初始值 也就是范围[0,1]

toolbox.register("individual", tools.initRepeat, creator.Individual,

toolbox.attribute, n=IND_SIZE)

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

Operators

# Operators

# difine evaluate function

# Note that a comma is a must

def evaluate(individual):

return sum(individual),

# use tools in deap to creat our application

toolbox.register("mate", tools.cxTwoPoint) # mate:交叉

toolbox.register("mutate", tools.mutGaussian, mu=0, sigma=1, indpb=0.1) # mutate : 变异

toolbox.register("select", tools.selTournament, tournsize=3) # select : 选择保留的最佳个体

toolbox.register("evaluate", evaluate) # commit our evaluate

高斯变异:

这种变异的方法就是,产生一个服从高斯分布的随机数,取代原先基因中的实数数值。这个算法产生的随机数,数学期望当为当前基因的实数数值。

一个模拟产生的算法是,产生6个服从U(0,1)的随机数,以他们的数学期望作为高斯

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值