energy.m

来自「Hopfield网络解决旅行商问题(TSP)」· M 代码 · 共 28 行

M
28
字号
       %计算能量函数
       function [Em,Ep]=Energy(d,v,n);
     Em=0;Ep=0;
%      dis_wave=0;
       tmp=0;em=0;ep=0;A=500;B=500;D=500;C=200;
       for xk=1:n
           for k=1:n
               for yk=1:n
                   if yk~=k
                       em=em+v(xk,k)*v(xk,yk)*A/2;
                   end
                   if yk~=xk
                       em=em+v(xk,k)*v(yk,k)*B/2;
                       if k==1
                           ep=ep+d(xk,yk)*v(xk,k)*(v(yk,2)+v(yk,n))*D/2;
                       elseif k==n
                           ep=ep+d(xk,yk)*v(xk,k)*(v(yk,1)+v(yk,n-1))*D/2;
                       else
                           ep=ep+d(xk,yk)*v(xk,k)*(v(yk,k+1)+v(yk,k-1))*D/2;
                       end
                   end%if yk~=xk
               end%for yk
           end%for k
       end%for xk
       em=em+(tmp-n)^2*C/2;
       Em=Em+em;
       Ep=Ep+ep;
       %完成能量计算

⌨️ 快捷键说明

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