猫史档案馆


【Python作品分享】新的作品

用户:姚国栋udn0姚国栋udn0查看:0 回复:0 评论:0 创建时间:2024-02-02T18:41:07


【作品展示】

center_image

 

【作品介绍】

基因编辑软件模拟

 

【作品源代码】

import random
import operator
import numpy as np
import matplotlib.pyplot as plt
from deap import creator, base, tools, algorithms

# 定义问题
creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", list, fitness=creator.FitnessMax)

toolbox = base.Toolbox()
toolbox.register("attr_bool", random.randint, 0, 1)
toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_bool, 10)
toolbox.register("population", tools.initRepeat, list, toolbox.individual)

# 定义适应度函数
def evalOneMax(individual):
    return sum(individual),

toolbox.register("evaluate", evalOneMax)
toolbox.register("mate", tools.cxTwoPoint)
toolbox.register("mutate", tools.mutFlipBit, indpb=0.05)
toolbox.register("select", tools.selTournament, tournsize=3)

if __name__ == "__main__":
    population = toolbox.population(n=300)
    CXPB, MUTPB, NGEN = 0.5, 0.2, 40

    print("Start of evolution")

    fitnesses = list(map(toolbox.evaluate, population))
    for ind, fit in zip(population, fitnesses):
        ind.fitness.values = fit

    print("  Evaluated %i individuals" % len(population))

    for g in range(NGEN):
        print("-- Generation %i --" % g)

        offspring = algorithms.varAnd(population, toolbox, cxpb=CXPB, mutpb=MUTPB)
        fits = toolbox.map(toolbox.evaluate, offspring)
        for ind, fit in zip(offspring, fits):
            ind.fitness.values = fit

        print("  Evaluated %i individuals" % len(offspring))

        population = toolbox.select(offspring, k=len(population))
        top10 = tools.selBest(population, k=10)
        print("  Top 10 individuals:")
        print(top10)

    print("-- End of (successful) evolution --")

    best_ind = tools.selBest(population, k=1)[0]
    print("Best individual is %s, %s" % (best_ind, best_ind.fitness.values))

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页