基于君主方案的遗传算法程序(带注释)

1、目标函数介绍
2、遗传算法与程序
3、仿真

1、目标函数介绍

该函数有10个变量,变量的取值范围为[-20,20],这个函数只有一个极小值点,其坐标为x=(0,0,…,0),极小值为0,具体函数形式为下式
在这里插入图片描述

2、遗传算法与程序

遗传算法参数
(1)、初始化种群数目为NP=100, 染色体基因维数为10(即基因维数与变量数相等),最大进化代数为G=1000,交叉概率为Pc=0.8,变异概率为Pm=0.1。
(2)、产生初始种群,计算个体适应度值;进行实数编码的选择以及交叉和变异操作。选择和交叉操作采用“君主方案”,即在对群体根据适应度值高低进行排序的基础上,用最优个体与其他偶数位的所有个体进行交叉,每次交叉产生两个新的个体。在交叉过后,对新产生的群体进行多点变异产生子群体,再计算其适应度值,然后和父群体合并,并且根据适应度值进行排序,取前NP个个体为新群体,进行下一次遗传操作。
具体MATLAB实现程序与介绍如下

// 遗传算法程序
%初始化
clear all;                           %清除所有变量
close all;                           %清图
clc;                                 %清屏
D=10;                                %单染色体上的基因数(即10个变量)(每个基因采用10进制)    
NP=100;                              %染色体数目(初始化种群的数目)
Xs=20;                               %变量上限          
Xx=-20;                              %变量下限
G=1000;                              %最大遗传代数
f=zeros(D,NP);                       %初始种群赋空间 创建一个10*1000矩阵
nf=zeros(D,NP);                      %子种群赋空间   创建一个10*1000矩阵
Pc=0.8;                              %交叉概率
Pm=0.1;                              %变异概率
f=rand(D,NP)*(Xs-Xx)+Xx;             %随机获得初始种群(10进制的种群),维数10*100
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%按适应度升序排列
for np=1:NP
    
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值