遗传算法中的轮盘赌选择法(Roulette Wheel Selection)

一、核心思想

  1. 每个个体适应度越高 ,分到的选择概率越大
  2. 把所有个体适应度拼成一个轮盘
  3. 随机转轮盘,指针落到哪个区间,就选中哪个个体;
  4. 概率 = 个体适应度 / 种群总适应度。

二、数学公式

设种群有 (N) 个个体,第 (i) 个个体适应度为 (f_i)

  1. 种群总适应度:

    F = \\sum_{i=1}\^N f_i

  2. 第 (i) 个个体被选中的概率:

    p_i = \\frac{f_i}{F}

  3. 累积概率(构造轮盘区间):

    P_i = \\sum_{k=1}\^i p_k


三、实现步骤(一步步流程)

  1. 计算种群每个个体适应度 (f_i)
  2. 总适应度 (F)
  3. 算每个个体选择概率 (p_i)
  4. 计算累积概率 (P_i),形成分段区间
  5. 生成一个 0~1 随机数 r
  6. 判断 r 落在哪个累积概率区间,对应个体被选中
  7. 重复多次,选出新种群

四、举个极简例子

种群4个个体,适应度:

(f_1=5,\ f_2=10,\ f_3=3,\ f_4=12)

总适应度 (F = 30)

概率:

  • (p_1 = 5/30 \approx 0.1667)
  • (p_2 = 10/30 \approx 0.3333)
  • (p_3 = 3/30 = 0.1)
  • (p_4 = 12/30 = 0.4)

累积概率:

  • (P_1 = 0.1667)
  • (P_2 = 0.5)
  • (P_3 = 0.6)
  • (P_4 = 1.0)

随机数举例:

  • 若 (r=0.2):在 (0.1667, 0.5) → 选个体2
  • 若 (r=0.7):在 (0.6, 1.0) → 选个体4

适应度越高,占区间越大,被选中概率越高。


五、Python 完整可运行代码实现

python 复制代码
import random
import numpy as np

# 轮盘赌概率分配选择法
def roulette_selection(population, fitness):
    # 1. 总适应度
    total_fit = sum(fitness)
    # 2. 每个个体选择概率
    prob = [f / total_fit for f in fitness]
    # 3. 累积概率
    cum_prob = np.cumsum(prob)
    
    # 4. 随机0~1,选择个体
    r = random.random()
    for i in range(len(cum_prob)):
        if r <= cum_prob[i]:
            return population[i]

# 测试
if __name__ == "__main__":
    pop = ['个体1','个体2','个体3','个体4']
    fit = [5, 10, 3, 12]
    selected = roulette_selection(pop, fit)
    print("本次选中个体:", selected)

六、关键特点 & 缺点

✅ 优点:

  • 完全按适应度概率分配,优胜劣汰直观
  • 实现简单、经典易懂

❌ 缺点:

  • 容易早熟收敛:超级优秀个体霸占轮盘,很快垄断种群
  • 适应度接近时,选择差异不大

👉 改进:排序选择、锦标赛选择(教学里常用轮盘赌作为基础原理)。


相关推荐
Revolution618 小时前
多个 Agent 同时工作时,主 Agent 怎样接收队友结果
人工智能·llm·claude
不加辣椒8 小时前
第8章:工具调用与多模态上下文集成
人工智能
葡萄城技术团队8 小时前
三大适配场景:释放AI Coding真实落地价值(四)
人工智能
MomentYY9 小时前
RAG 混合检索:关键词 + 语义
人工智能·agent·ai编程
Black蜡笔小新9 小时前
EasyAIS+国标GB28181视频监控平台EasyCVR强强联动,全域视频AI识别能力落地!
大数据·人工智能·音视频
Microvision维视智造9 小时前
智能工厂等级自检表:梯度培育,你的工厂在第几级?
人工智能·计算机视觉·视觉检测·机器视觉
时光不负努力9 小时前
skill 定义 + 多个skill 协作
人工智能·openai
武子康9 小时前
MCP 2026-07-28 无状态核心之后:身份、任务、幂等与审计状态到底放在哪里?
人工智能·llm·mcp
瓦学妹9 小时前
X(Twitter)新号如何防封?2026 养号与防限流全攻略
大数据·网络·人工智能·新媒体运营·twitter
EAIReport9 小时前
企业GEO全域运营技术落地路线与量化效果验证方案(AI大数据行业适配)
大数据·人工智能