莫凡Python学习笔记——遗传算法(一):什么是遗传算法

本文介绍了遗传算法的概念,将其与达尔文的进化理论相联系。通过Python来阐述这一生物启发式搜索算法,探讨如何在计算机中应用DNA数据进行优化问题解决。
摘要由CSDN通过智能技术生成

内容原文:https://morvanzhou.github.io/tutorials/machine-learning/torch/

说白了就是将达尔文的进化理论搬进了计算机。
DNA是由一组特定结构的数据组合而成,我们将数据看为DNA数据,

import numpy as np
import matplotlib.pyplot as plt

DNA_SIZE = 10            # DNA length
POP_SIZE = 100           # population size
CROSS_RATE = 0.8         # mating probability (DNA crossover)
MUTATION_RATE = 0.003    # mutation probability  变异强度
N_GENERATIONS = 200      #多少代,也就是总循环次数
X_BOUND = [0, 5]         # x upper and lower bounds x的范围


def F(x):                    #返回X对应的高度
	return np.sin(10*x)*x + np.cos(2*x)*x     # to find the maximum of this function


# find non-zero fitness for selection   计算宝宝的在环境中的适应度
def get_fitness(pred): 
	return pred + 1e-3 - np.min(pred)

# convert binary DNA to decimal and normalize it to a range(0, 5)
def translateDNA(pop):       #数据转换,
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值