遗传算法中的轮盘赌选择法(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)

六、关键特点 & 缺点

✅ 优点:

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

❌ 缺点:

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

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


相关推荐
Theo_xx4 小时前
声学感知基础:Day1.常见音频类型(Chirp、FMCW、OFDM)的区别、联系和选择
人工智能·无线感知·声学感知
DisonTangor4 小时前
Qwen-Drive-1.0:首个统一 3D 感知、视觉问答与运动规划的自动驾驶视觉语言基础模型
人工智能·3d·自动驾驶
XiaoKe20264 小时前
数海云擎:以内外双向数智化锻造竞争壁垒,跑通销售全链路
大数据·人工智能·科技·软件需求
m0_587383004 小时前
全民健身解决方案软件开发:从架构设计到落地实践
人工智能·数据挖掘·系统架构·需求分析
Zzj_tju4 小时前
小模型指令微调:数据混合、模板与过拟合的最小复现
人工智能·深度学习·机器学习·语言模型
basketball6164 小时前
AI Infra 推理部署技术总结:2. vLLM 内核——PagedAttention 与调度器原理
android·人工智能·vllm·ai infra
新知图书4 小时前
第 1 章 大模型时代 《DeepSeek原生应用与智能体开发实践》
人工智能·智能体
伯恩bourne4 小时前
Qdrant 快速入门 :数据模型介绍
服务器·数据库·人工智能
开开心心就好4 小时前
免费桌签打印工具,支持批量导入名字
前端·javascript·人工智能·docker·jupyter·智能手机·语音识别
信安IT租赁4 小时前
本地化部署的AI营销CRM:基于事件驱动的全流程自动化状态机实践
大数据·人工智能·软件工程