哈密尔顿算法matlab,完全图哈密尔顿圈的遗传模拟退火算法matlab通用源程序

% maxpop 给定群体规模

% pop 群体

% newpop 种群

%t0 初始温度

function [codmin,finmin]=fc0(cc,v0,t0) N=length(cc(1,:));

%定群体规模

if N>50

maxpop=2*N-20;

end

if N<=40

maxpop=2*N;

end

%产生初始群体

pop=zeros(maxpop,N);

pop(:,1)=v0;

finmin=inf;

codmin=0;

for i=1:maxpop

Ra=randperm(N);

Ra(find(Ra==v0))=Ra(1);

Ra(1)=v0;

pop(i,:)=Ra;

end

t=t0;

while t>0

%用模拟退火产生新的群体

pop=fc1(maxpop,pop,N,cc,v0,t);

%转轮赌选择种群

f=zeros(1,maxpop);

for i=1:maxpop

for j=1:N-1

x=pop(i,j);

y=pop(i,j+1);

fo1=cc(pop(i,j),pop(i,j+1));

f(i)=f(i)+fo1;

end

f(i)=f(i)+cc(pop(i,1),pop(i,N));

end

fmin=min(f);

for i=1:maxpop

if fmin==inf&f(i)==inf

dd=inf;

end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值