You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Python中创建简易进化算法的技术问询(附部分代码)

简易Python进化算法实现方案

我看到你已经搭好了进化算法的基础框架,下面帮你把代码补全并梳理清楚每个环节的逻辑,完全贴合你提出的需求:

需求回顾

  • 创建包含100个个体的初始种群,每个个体具备4个数值属性(a1-a4)
  • 基于属性计算个体得分
  • 淘汰得分最低的20个个体

完整实现代码

import random

# 种群规模设置
POPULATION_SIZE = 100
# 要淘汰的低得分个体数量
ELIMINATION_COUNT = 20

class Individual:
    def __init__(self, a1, a2, a3, a4):
        self.a1 = a1
        self.a2 = a2
        self.a3 = a3
        self.a4 = a4
        self.score = self.calculate_score()  # 初始化时直接计算得分

    def calculate_score(self):
        """示例得分计算函数:可根据需求替换成自定义逻辑"""
        # 这里用加权和作为示例,权重可根据目标调整
        return 0.3 * self.a1 + 0.2 * self.a2 + 0.4 * self.a3 + 0.1 * self.a4

def create_initial_population():
    """生成初始种群:随机生成个体属性值,范围可自定义"""
    population = []
    for _ in range(POPULATION_SIZE):
        # 生成0-100之间的浮点数属性,也可换成整数random.randint(0,100)
        a1 = random.uniform(0, 100)
        a2 = random.uniform(0, 100)
        a3 = random.uniform(0, 100)
        a4 = random.uniform(0, 100)
        population.append(Individual(a1, a2, a3, a4))
    return population

def eliminate_low_score_individuals(population):
    """淘汰得分最低的指定数量个体"""
    # 按得分从高到低排序
    sorted_population = sorted(population, key=lambda x: x.score, reverse=True)
    # 保留前POPULATION_SIZE - ELIMINATION_COUNT个个体
    return sorted_population[:POPULATION_SIZE - ELIMINATION_COUNT]

# 运行核心流程
if __name__ == "__main__":
    # 创建初始种群
    current_population = create_initial_population()
    print(f"初始种群规模:{len(current_population)}")

    # 执行淘汰操作
    current_population = eliminate_low_score_individuals(current_population)
    print(f"淘汰后种群规模:{len(current_population)}")

    # 可选:打印前5个个体的得分验证效果
    print("\n前5个个体的得分:")
    for idx, individual in enumerate(current_population[:5]):
        print(f"个体{idx+1}: {individual.score:.2f}")

关键逻辑说明

  • 个体类设计:初始化时自动计算并存储得分,避免后续排序、淘汰时重复计算,提升效率。
  • 得分函数:示例用了加权和逻辑,你可以直接替换成符合业务目标的函数(比如非线性计算、多目标加权等)。
  • 初始种群生成:用随机函数生成属性值,你可以根据需求调整数值范围、数据类型(整数/浮点数)。
  • 淘汰机制:通过排序截取的方式快速筛选高得分个体,逻辑简洁高效。

如果之后需要扩展进化算法的其他环节(比如交叉繁殖、变异、多轮迭代进化),也可以基于这个框架继续添加功能~

内容的提问来源于stack exchange,提问作者borkbork

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:17:56