nlm算法matlab代码_遗传算法GA的MATLAB代码

MATLAB

实现算法代码:

GA

(遗传算法)——整数编码

function

[BestGene,aa]

=

GA(MaxGeneration,GeneSize,GeneNum,pcross,pmute,minGene,maxGene)

Parent = Init(GeneSize,GeneNum,minGene,maxGene);

[BestGene,Parent] = KeepBest(Parent);

aa = [];

for i = 1:MaxGeneration

[i 1/value(BestGene)]

Child = chose(Parent);

Child = cross(Child,pcross);

Child = mute(Child,pmute,maxGene);

[BestGene,Parent] = KeepBest(Child);

aa = [aa;value(BestGene)];

end

function GeneInit = Init(GeneSize,GeneNum,minGene,maxGene)

GeneInit = [];

for i = 1:GeneSize

x = []; x = ceil(rand(1,GeneNum).*(maxGene-minGene)) + minGene;

GeneInit = [GeneInit;x];

end

GeneInit = [GeneInit;x];

function Child = chose(Parent)

GeneSize = size(Parent,1);

for i = 1:GeneSize

x = Parent(i,:);

val(i) = value(x);

end

ValSum = sum(val);

val = val / ValSum;

for i = 2:GeneSize

val(i) = val(i) + val(i-1);

end

for i = 1:GeneSize

randval = rand;

if randval <= val(1)

Child(i,:) = Parent(1,:);

end

for j = 2:GeneSize

if randval > val(j-1) && randval <= val(j)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值