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

遗传算法二进制初始种群构建问题:输出格式不符XY配对需求

遗传算法初始种群二进制编码格式修正问题

问题描述

需要为求解方程 z = x⁵ - 10x³ + 30x - y² + 21y 的遗传算法创建二进制初始种群,编码规则如下:

  • X和Y的取值范围为 [-2.5, 2.5]
  • 第1位表示符号(0或1)
  • 第2-3位表示整数部分(取值0-2,对应编码00、01、10)
  • 剩余位表示小数部分(取值0-5000)

原Python代码如下:

def pop(pop_size):

    pop = []
    for i in range(pop_size):
        for j in range(2):
            signal = bin(np.random.randint(0, 2))[2:]
            integer = bin(np.random.randint(0, 3))[2:]
            float = bin(np.random.randint(0, 5001))[2:].zfill(13)
            binary = [signal, integer, float]
            binary = [''.join(binary)]
            pop.append(binary)

    return pop

当前输出格式为:

[['1110001000110000'], ['1100010010011000'], ['11000100010001010'], ['0100011000000010'], ['0100010111100001'], ['01000111001101110']]

期望输出格式(每个子列表对应一个种群个体,包含X和Y的二进制编码):

[['1110001000110000', '1100010010011000'], ['11000100010001010', '0100011000000010'], ['0100010111100001', '01000111001101110']]

问题原因

原代码的内层循环每生成一个X/Y的编码就直接将单个编码的列表追加到总种群列表中,导致每个元素仅包含一个变量的编码。而我们需要每个种群个体对应一对X和Y编码,因此需要在外层循环中先收集当前个体的两个编码,再将这对编码作为子列表加入总种群。

修正后的代码

import numpy as np

def create_population(pop_size):
    pop = []
    for _ in range(pop_size):
        individual = []
        # 生成X和Y的编码各一个
        for _ in range(2):
            # 符号位:确保是1位
            signal = bin(np.random.randint(0, 2))[2:].zfill(1)
            # 整数部分:0-2,补全为2位编码
            integer = bin(np.random.randint(0, 3))[2:].zfill(2)
            # 小数部分:0-5000,补全为13位编码
            float_part = bin(np.random.randint(0, 5001))[2:].zfill(13)
            # 拼接成完整编码
            binary_code = ''.join([signal, integer, float_part])
            individual.append(binary_code)
        # 将包含X和Y编码的个体加入种群
        pop.append(individual)
    return pop

补充说明

  • 修复了原代码中integer的补位问题:原代码中随机到0时整数部分是'0',未补全为规则要求的2位编码,修正后统一为2位格式,保证编码长度一致。
  • 重命名了函数和变量,避免与Python内置名称pop、float冲突,提升代码可读性。
  • 外层循环每次生成一个包含X和Y编码的子列表,再加入总种群,完全匹配期望的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:10:33