Research Article

A Novel Model on Curve Fitting and Particle Swarm Optimization for Vertical Handover in Heterogeneous Wireless Networks

Pseudocode 1

Network selection by MOPSO pseudo-code.
%% MOPSO Parameters
MaxIt=200;% Maximum Number of Iterations
nPop=50;% Population Size
nRep=50;% Repository Size
w=0.5;% Inertia Weight
wdamp=0.99;  % Inertia Weight Damping Rate
c1=1;   % Personal Learning Coefficient
c2=2;   % Global Learning Coefficient
nGrid=5;      % Number of Grids per Dimension
alpha=0.1; % Inflation Rate
beta=2; % Leader Selection Pressure
gamma=2;% Deletion Selection Pressure
mu=0.1;   % Mutation Rate
%% Initialization
pop=repmat(empty_particle,nPop,1);
for i=1:nPop
pop(i).Position=unifrnd(VarMin,VarMax,VarSize);
pop(i).Velocity=zeros(VarSize);
pop(i).Cost=CostFunction(pop(i).Position);
% Update Personal Best
pop(i).Best.Position=pop(i).Position;
pop(i).Best.Cost=pop(i).Cost;
end
% Determine Domination
pop=DetermineDomination(pop);
rep=pop(~[pop.IsDominated]);
Grid=CreateGrid(rep,nGrid,alpha);
for i=1:numel(rep)
rep(i)=FindGridIndex(rep(i),Grid);
end
%% MOPSO Main Loop
for it=1:MaxIt
for i=1:nPop
leader=SelectLeader(rep,beta);
pop(i).Velocity = w*pop(i).Velocity
+c1*rand(VarSize).*(pop(i).Best.Position-pop(i).Position)
+c2*rand(VarSize).*(leader.Position-pop(i).Position);
pop(i).Position = pop(i).Position + pop(i).Velocity;
pop(i).Cost = CostFunction(pop(i).Position);
% Apply Mutation
pm=(1-(it-1)/(MaxIt-1))(1/mu);
NewSol.Position=Mutate(pop(i).Position,pm,VarMin,VarMax);
NewSol.Cost=CostFunction(NewSol.Position);
rep=[rep; pop(~[pop.IsDominated])]; % Add Non-Dominated Particles to REPOSITORY
rep=DetermineDomination(rep); % Determine Domination of New Resository Members
rep=rep(~[rep.IsDominated]); % Keep only Non-Dminated Memebrs in the Repository
Grid=CreateGrid(rep,nGrid,alpha); % Update Grid
for i=1:numel(rep) % Update Grid Indices
rep(i)=FindGridIndex(rep(i),Grid);
end
if numel(rep)>nRep % Check if Repository is Full
Extra=numel(rep)-nRep;
for e=1:Extra
rep=DeleteOneRepMemebr(rep,gamma);
end
end