面试者面试总结,使用遗传算法解决图着色问题,字节跳动大神讲座

博客介绍了如何利用遗传算法解决图着色问题,通过创建初始种群、监听统计数据、执行遗传流程来实现。在字节跳动的面试中,博主分享了算法的实现过程,包括最优解的打印和统计结果的绘制,并讨论了在不同图上的测试效果。此外,博主还分享了自己的职场经历和学习资源。
摘要由CSDN通过智能技术生成

raise ValueError(“halloffame parameter must not be empty!”)

#更新名人堂成员

halloffame.update(population)

hof_size = len(halloffame.items) if halloffame.items else 0

record = stats.compile(population) if stats else {}

logbook.record(gen=0,nevals=len(invalid_ind),**record)

if verbose:

print(logbook.stream)

#开始遗传流程

for gen in range(1,ngen + 1):

#选择个体数目=种群个体数-名人堂成员数

offspring = toolbox.select(population,len(population) - hof_size)

#种群更新到下一代

offspring = algorithms.varAnd(offspring,toolbox,cxpb,mutpb)

#计算个体适应度

invalid_ind = [ind for ind in offspring if not ind.fitness.valid]

fitnesses = toolbox.map(toolbox.evaluate,invalid_ind)

for ind,fit in zip(invalid_ind,fitnesses):

ind.fitness.values = fit

#将名人堂成员添加到当前代

offspring.extend(halloffame.items)

#更新名人堂

halloffame.update(offspring)

#使用当前代替换种群

population[:] = offspring

#将当前统计信息附加到日志

record = stats.compile(population) if stats else {}

logbook.record(gen=gen,nevals=len(invalid_ind),**record)

if verbose:

print(logbook.stream)

return population,logbook

遗传流程

def main():

创建初始种群

population = toolbox.populationCreator(n=POPULATION_SIZE)

定义监听统计数据

stats = tools.Statistics(lambda ind: ind.fitness.values)

stats.register(“min”,np.min)

stats.register(“avg”,np.mean)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值