www.gusucode.com > 几种多目标优化算法集合,包括MOEAD,MOPSO,NNIA,NSGA2等 > MOPSO/DeleteFromRep.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % MATLAB Code for % % % % Multi-Objective Particle Swarm Optimization (MOPSO) % % Version 1.0 - Feb. 2011 % % % % According to: % % Carlos A. Coello Coello et al., % % "Handling Multiple Objectives with Particle Swarm Optimization," % % IEEE Transactions on Evolutionary Computation, Vol. 8, No. 3, % % pp. 256-279, June 2004. % % % % Developed Using MATLAB R2009b (Version 7.9) % % % % Programmed By: S. Mostapha Kalami Heris % % % % e-Mail: sm.kalami@gmail.com % % kalami@ee.kntu.ac.ir % % % % Homepage: http://www.kalami.ir % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function rep=DeleteFromRep(rep,EXTRA,gamma) if nargin<3 gamma=1; end for k=1:EXTRA [occ_cell_index occ_cell_member_count]=GetOccupiedCells(rep); p=occ_cell_member_count.^gamma; p=p/sum(p); selected_cell_index=occ_cell_index(RouletteWheelSelection(p)); GridIndices=[rep.GridIndex]; selected_cell_members=find(GridIndices==selected_cell_index); n=numel(selected_cell_members); selected_memebr_index=randi([1 n]); j=selected_cell_members(selected_memebr_index); rep=[rep(1:j-1); rep(j+1:end)]; end end