当前位置: 首页 > news >正文

网站建设期末总结黄埔做网站公司

网站建设期末总结,黄埔做网站公司,建筑工人招工网,wordpress code snippets简介 遗传算法(Genetic Algorithm, GA)是一种基于自然选择和遗传机制的优化算法,由 John Holland 于20世纪70年代提出。它是一种模拟生物进化过程的启发式搜索算法,被广泛应用于函数优化、机器学习、调度问题等领域。 代码说明 …

简介

遗传算法(Genetic Algorithm, GA)是一种基于自然选择和遗传机制的优化算法,由 John Holland 于20世纪70年代提出。它是一种模拟生物进化过程的启发式搜索算法,被广泛应用于函数优化、机器学习、调度问题等领域。

代码说明

参数定义:
设置种群大小、基因长度、最大代数、交叉概率、变异概率等参数。
适应度函数:
目标函数为 f(x)=x^2 ,即计算个体的适应度值。
初始化种群:
随机生成一个种群,每个个体用 5 位二进制编码,表示范围[0,31]的整数。
选择操作(selection):
使用轮盘赌选择方法,根据适应度值的比例概率挑选个体。
交叉操作(crossover):
使用单点交叉,将两个父代基因部分交换生成子代。
变异操作(mutate):
以一定概率随机翻转个体的某个位,模拟基因突变。
主循环:
每一代执行以下操作:
计算每个个体的适应度值。
记录本代中适应度最高的个体。
执行选择、交叉和变异操作生成下一代种群。
重复直到达到指定代数。
结果输出与可视化:
打印每代的最佳适应度及个体。
绘制代数与最佳适应度的变化趋势图。
在这里插入图片描述

代码

import random
import matplotlib.pyplot as plt# 遗传算法参数
POPULATION_SIZE = 10  # 种群大小
GENE_LENGTH = 5       # 基因长度
GENERATIONS = 20      # 最大代数
CROSSOVER_RATE = 0.8  # 交叉概率
MUTATION_RATE = 0.1   # 变异概率# 适应度函数
def fitness_function(x):return x ** 2# 初始化种群(随机生成二进制字符串)
def initialize_population():return [random.randint(0, 2**GENE_LENGTH - 1) for _ in range(POPULATION_SIZE)]# 个体解码(二进制 -> 十进制)
def decode(individual):return individual# 选择操作(轮盘赌选择)
def selection(population, fitness_values):total_fitness = sum(fitness_values)probabilities = [f / total_fitness for f in fitness_values]cumulative_probs = [sum(probabilities[:i+1]) for i in range(len(probabilities))]selected = []for _ in range(POPULATION_SIZE):r = random.random()for i, cumulative_prob in enumerate(cumulative_probs):if r <= cumulative_prob:selected.append(population[i])breakreturn selected# 交叉操作
def crossover(parent1, parent2):if random.random() < CROSSOVER_RATE:point = random.randint(1, GENE_LENGTH - 1)mask = (1 << point) - 1child1 = (parent1 & mask) | (parent2 & ~mask)child2 = (parent2 & mask) | (parent1 & ~mask)return child1, child2return parent1, parent2# 变异操作
def mutate(individual):for i in range(GENE_LENGTH):if random.random() < MUTATION_RATE:individual ^= (1 << i)  # 翻转某个位return individual# 遗传算法主程序
def genetic_algorithm():# 初始化种群population = initialize_population()best_fitness_history = []  # 每一代的最佳适应度记录for generation in range(GENERATIONS):# 计算适应度fitness_values = [fitness_function(decode(ind)) for ind in population]best_fitness = max(fitness_values)best_fitness_history.append(best_fitness)  # 记录当前代的最佳适应度# 打印每代的最佳结果best_individual = population[fitness_values.index(best_fitness)]print(f"Generation {generation + 1}: Best fitness = {best_fitness}, Best individual = {best_individual} (Decoded: {decode(best_individual)})")# 选择操作selected_population = selection(population, fitness_values)# 交叉操作next_generation = []for i in range(0, POPULATION_SIZE, 2):parent1 = selected_population[i]parent2 = selected_population[(i + 1) % POPULATION_SIZE]child1, child2 = crossover(parent1, parent2)next_generation.extend([child1, child2])# 变异操作population = [mutate(ind) for ind in next_generation]# 返回结果和适应度历史final_fitness_values = [fitness_function(decode(ind)) for ind in population]best_individual = population[final_fitness_values.index(max(final_fitness_values))]return best_individual, max(final_fitness_values), best_fitness_history# 运行遗传算法
best_individual, best_fitness, fitness_history = genetic_algorithm()# 打印最优结果
print(f"Optimal solution: {best_individual} (Decoded: {decode(best_individual)}), Fitness: {best_fitness}")# 绘制统计图
plt.figure(figsize=(10, 6))
plt.plot(range(1, GENERATIONS + 1), fitness_history, marker='o', linestyle='-', color='b', label='Best Fitness')
plt.title("Genetic Algorithm Convergence", fontsize=14)
plt.xlabel("Generation", fontsize=12)
plt.ylabel("Fitness Value", fontsize=12)
plt.grid(True)
plt.legend()
plt.show()
http://www.yayakq.cn/news/625961/

相关文章:

  • 西安建设学院网站连云港做网站建设
  • 自己做同城购物网站广告设计是做什么的
  • 网站建设seo网络推广音乐外链生成网站怎么做
  • 塑胶加工 技术支持 东莞网站建设青海省网站建设平台
  • 如何建设高校网站购物小程序开发公司
  • 怀化汽车网站网站首页风格
  • 那个网站可以做网站测速对比行业门户网站cms
  • 网站建设优惠中四川省建设网站平台
  • 网站建立连接不安全怎么解决网站建设怎样回答客户问题
  • 三亚建设信息网站网站建设服务费计什么科目
  • 网站如何做关键字收录攻略做的比较好的网站
  • 做淘宝客要建网站吗上海建站市场
  • 长春市做网站推广如何做好网站开发项目需求分析
  • 企业网站规划与设计游戏网站建设内容
  • 宁波网站建设联系电话查询营销营网站建设
  • 有口碑的常州网站优化成都网站建设众成联邦
  • 报表网站建设企业网站需要哪些功能
  • 金华市建设监理协会网站wordpress分类目录混乱
  • 住房和城乡建设部科技发展促进中心网站网站 linux 服务器
  • icp网站域名怎么填写优化师和运营区别
  • 10G网站空间wordpress编辑页面没用
  • 创造与魔法官方网站一起做喜欢的事淮南查查论坛
  • 南翔镇网站建设公司企业排名优化公司
  • 哈尔滨模板建站平台php免费企业网站模板
  • 免费搭建永久网站商务网站建设的应用
  • python网站开发用什么软件网站建设需多少钱
  • 掌握商务网站建设内容重庆高铁建设网站
  • 精通网站建设工资多少做cpa必须要有网站吗
  • 南京地区网站开发大专网页设计工资怎么样
  • 处网站的建设速卖通下载app