c_annealing.m

来自「用matlab编写的遗传算法和模拟退火程序」· M 代码 · 共 30 行

M
30
字号
function [ S,E,Tk ] = c_annealing( S,Wij,Tk,c )%C_ANNEALING p291确定性模拟退火算法%输入参数:%         S:网络节点的状态序列,每个节点可取值+1或-1%       Wij:节点间的权值矩阵%       Tk:温度%        c:T(k+1)=c*T(k)undone=true;n=size(S,2);%有n个节点k=1;k_max=800;while undone    i=round(rand*n);    if i==0        i=1;    end    li=Wij(i,:)*S';    liT=li/Tk;    %S(i)=round((1-exp(-liT))/(1+exp(-liT)));    S(i)=1/(1+exp(-liT));    if k==k_max        undone=false;    else        k=k+1;        Tk=c*Tk;    endendfor i=1:n    Wij(i,:)=S(i)*Wij(i,:);endE=-0.5*sum(Wij*S');  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?