GA遗传算法及相关代码

GA遗传算法解决TSP问题

Matlab函数

  1. 随机数生成函数:

    • rand(n,1):返回n个0到1随机数排列的列向量。
    • randn(n,1):类似,服从标准正态分布。
    • randperm(n):返回n以内随机数排列的n维行向量。
    • unifrnd(a,b,n,1):生成(a,b)区间均匀分布的n个随机数列向量。
  2. 取整函数:

    • fix():取小于n的整数。
    • round(n):四舍五入。
    • ceil(n):向正方向舍入,floor(n):向负方向舍入。
  3. zeros(m,n):生成m*n全0阵。常用于提前分配数组大小,提升性能。

    ones():类似,生成全1阵。

  4. sort(A):对向量A升序排序后返回。

  5. cumsum(A,1):矩阵A每行元素与对应上一行元素相加得到新一行。

  6. 矩阵间的**.*./**表示对应位置的元素两两相乘除。

遗传算法认知

  • 作用:解决遍历求解次数过多的问题,以生物进化优胜劣汰的思想有效减少遍历次数
  • 步骤
    • 设置种群规模,最大迭代次数,交叉率,变异率,代沟(选择概率)以及适应度函数。
    • 建立或更新种群,染色体即为一个排好的序列。
    • 记录最优值,适应度值。
    • 自然选择,淘汰一部分个体。
    • 留下的进行交叉、变异、进化逆转等操作。
    • 插入父代优秀个体,构成子代。
  • 代码及注释1


  1. 参考自公众号基山督。 ↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值