遗传算法-流水车间调度

文章展示了如何使用MATLAB实现遗传算法进行函数优化和流水车间调度问题的解决。通过定义个体数目、最大遗传代数、适应度函数等参数,进行选择、重组和变异操作,逐步优化解空间,寻找最优解。遗传算法在此过程中用于跳出局部最优,找到全局最优解。
摘要由CSDN通过智能技术生成

遗传算法

addpath('D:\matlab\.m文件夹\.m机器学习文件\遗传算法\gatbx');%增加包遗传算法的包

%fplot('varible.*sin(10*pi*varible)+2.0',[-1,2]);%画出函数曲线
fplot(@(varible)varible.*sin(10.*pi.*varible)+2.0);%画出函数曲线
NIND=50;%定义个体数目
MAXGEN=25;%定义最大遗传代数
PRECI=22;%变量的二进制位数   2-(-1)=3/0.0000001
GGAP= 0.9;%代沟,在生成的后代中,保留百分之90,去掉百分之10的不优良的后代。
trace=zeros(2,MAXGEN);%寻优结果的初始值
FieldD=[22;-1;2;1;0;1;1];%区域描述器 转化为二进制
Chrom=crtbp(NIND,PRECI);%初始群体
gen=0;%代计数器
varible=bs2rv(Chrom,FieldD);%计算初试群体的十进制转换,二进制转化为十进制
ObjV=varible.*sin(10*pi*varible)+2.0;%计算目标函数值
while gen<MAXGEN
    FitnV= ranking(-ObjV);%分配适应度值
    SelCh=select('sus',Chrom,FitnV,GGAP);%选择
    SelCh=recombin('xovsp', SelCh,0.7);  %重组
    SelCh=mut(SelCh);  %变异
    varible=bs2rv(SelCh,FieldD);%子代个体的十进制转换
    ObjVSel=varible.*sin(10*pi*varible)+2.0;%讣算子代的目标函数值
[Chrom ObjV
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值