matlab启发式算法,启发式算法.ppt

启发式算法

gatool Fitness function:@ackleyfcn Number of variables:10 选中‘Plots’中的‘Best fitness’ X = gamultipoj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options) 可以处理线性不等式约束、线性等式约束和有界约束 解多目标规划 function y = simple_multiobjective(x) y(1) = (x+2)^2 - 10; y(2) = (x-2)^2 + 20; FitnessFunction = @simple_multiobjective; numberOfVariables = 1; [x,fval] = gamultiobj(FitnessFunction,numberOfVariables); Optimization terminated: average change in the spread of Pareto solutions less than options.TolFun. size(x) ans = 15 1 size(fval) ans = 15 2 4.4 遗传算法对TSP的应用 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; end; create_permutations.m crossover_permutation.m mutate_permutation.m traveling_salesman_fitness.m traveling_salesman_plot.m FitnessFcn = @(x) traveling_salesman_fitness(x,distances); 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) Optimization terminated: average change in the f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值