⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 salesman-fitness.m

📁 Matlab中路径优化程序
💻 M
字号:
load('usborder.mat','x','y','xx','yy');
plot(x,y,'Color','red'); hold on;
cities = 40;
locations = zeros(cities,2);
n = 1;
while (n <= cities)
xp = rand*1.5;
yp = rand;
if inpolygon(xp,yp,xx,yy)
locations(n,1) = xp;
locations(n,2) = yp;
n = n+1;
end
end
plot(locations(:,1),locations(:,2),'bo');
distances = zeros(cities);
for count1=1:cities,
for count2=1:count1,
x1 = locations(count1,1);
y1 = locations(count1,2);
x2 = locations(count2,1);
y2 = locations(count2,2);
distances(count1,count2)=sqrt((x1-x2)^2+(y1-y2)^2);
distances(count2,count1)=distances(count1,count2);
end;
create_permutations.m
type create_permutations.m
type crossover_permutation.m
type mutate_permutation.m
type traveling_salesman_fitness.m
%distances defined earlier
FitnessFcn = @(x) traveling_salesman_fitness(x,distances);
type traveling_salesman_plot.m
%locations defined earlier
my_plot = @(options,state,flag) traveling_salesman_plot(options, ...
state,flag,locations);
options = gaoptimset('PopulationType', 'custom','PopInitRange', ...
[1;cities]);
options = gaoptimset(options,'CreationFcn',@create_permutations, ...
'CrossoverFcn',@crossover_permutation, ...
'MutationFcn',@mutate_permutation, ...
'PlotFcn', my_plot, ...
'Generations',500,'PopulationSize',60, ...
'StallGenLimit',200,'Vectorized','on');
numberOfVariables = cities;
[x,fval,reason,output] = ga(FitnessFcn,numberOfVariables,options)

⌨️ 快捷键说明

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