内容原文: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): #数据转换,