Red de conocimiento informático - Conocimiento informático - Cómo diseñar un algoritmo que utilice el menor número de comparaciones para resolver el problema de TSP en 5 ciudades

Cómo diseñar un algoritmo que utilice el menor número de comparaciones para resolver el problema de TSP en 5 ciudades

Este programa intenta resolver un VRP con 31 ciudades. La solución óptima conocida es 784.1. Solo puedo optimizar hasta aproximadamente 810 con este programa. Debería caer en un óptimo local, pero no lo sé. . Cuál es el problema. Brinde consejos de expertos que hayan utilizado el algoritmo de colonias de hormigas. El código fuente de Matlab del algoritmo de colonia de hormigas e indique por qué no se puede optimizar con la solución más conocida %%%elprocedimientodelalgoritmodecoloniadeantiguasparaVRP%%%%%%%%%%%%initializetheparametersofantcolonyalgorithmsloaddata.txt;d=data(:,2 :3 );g=data(:,4);m=31;%número de hormigas alfa=1;belta=4;%parámetros que determinan la importancia de tao y miu lmda=0;rou=0.9;%coeficiente de atenuación q0=0.95; %Probabilidad tao0=1/(31*841.04);%Feromona inicial Q=1;%Feromona liberada por las hormigas durante una semana definido_phrm=15.0;%valor de nivel de feromona inicialQV=100;%Capacidad del vehículovehicle_best=round(sum(g) / QV)+1;%El número mínimo de autos necesarios para completar la tarea V=40;%Calcular la distancia entre dos puntos fori=1:32;forj=1:32;dist(i,j)=sqrt(( d(i ,1)-d(j,1))^2+(d(i,2)-d(j,2))^2);end;end;%Asigna el valor inicial a taomiu fori=1 :32;forj =1:32;ifi~=j;%s(i,j)=dist(i,1)+dist(1,j)-dist(i,j);tao(i,j)= definido_phrm;miu( i,j)=1/dist(i,j);end;end;end;fork=1:32;fork=1:32;deltao(i,j)=0;end;end;best_cost =10000;forn_gen =1:50;print_head(n_gen);fori=1:m;%best_solution=[];print_head2(i);sumload=0;cur_pos(i)=1;rn=randperm(32);n =1;nn =1;part_sol(nn)=1;%cost(n_gen,i)=0.0;n_sol=0;%El número de caminos generados por las hormigas M_vehicle=500;t=0;%El número de elementos de la matriz de ruta óptima es 0 whilesumloadmaxpmaxp= p(j);index_max=j;end;end;old_pos=cur_pos(i);ifrand(1)