Gointerface接口声明实现及作用详解
323
2022-09-07
【无人机三维路径规划】基于自适应遗传算法求解单无人机三维路径规划问题附matlab代码
1 简介
2 部分代码
function [globel]=GA( model )%UNTITLED4 Summary of this function goes here% Detailed explanation goes hereseeds_fitness =model.seeds_fitness;chromosome =model.chromosome;next_chromosome=model.next_chromosome;AllChromosome=model.AllChromosome;globel.cost =inf;%适应度最优值保留best=zeros(model.MaxIt+1,1);best(1)=model.globel.cost;[~,global_index ]=min(seeds_fitness); for it=1:model.MaxIt %由于适应度值越小越好 seeds_fitness = 1./seeds_fitness; total_fitness = sum(seeds_fitness); seeds_probability = seeds_fitness/ total_fitness; %计算累计概率 seeds_accumulate_probability = cumsum(seeds_probability, 2); %根据轮盘赌选择父母,总共选择出NP个子代 for seed=1:2:model.NP flag =0; %保证父母和子代都符合要求 [parents,flag] = SelectChromosome(seeds_accumulate_probability,model,chromosome); %在父母染色体进行基因重组和变异操作, %并获得保证每个子代都符合约束条件 [ sons] = CrossoverAndMutation( parents,model ); %符合要求以后计算子代的适应度值 [sons(1).cost,sons(1).sol] = FitnessFunction(sons(1),model); [sons(2).cost,sons(2).sol] = FitnessFunction(sons(2),model); next_chromosome(seed) = (sons(1)); next_chromosome(seed+1) = (sons(2)); end %把新旧合并同一种群 AllChromosome(1:model.NP) = chromosome(1:model.NP); AllChromosome(model.NP+1:model.NP*2) = next_chromosome(1:model.NP); %精英保留,新旧种群一起比较 [~,order]=sort([AllChromosome.cost]); %选出迭代的染色体和全局最优染色体 for index =1:model.NP chromosome(index) = next_chromosome(index); seeds_fitness(index) =chromosome(index).cost; if globel.cost >chromosome(index).cost globel = chromosome(index); global_index =index; end end %保留最优值 chromosome(global_index) = globel; best(it+1) = globel.cost; disp(['it: ',num2str(it),' best value:',num2str(best(it))]); end globel.best_plot =best;end
3 仿真结果
4 参考文献
[1]黄书召, 田军委, 乔路,等. 基于改进遗传算法的无人机路径规划[J]. 计算机应用, 2021, 41(2):8.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~