From 6f3e6ef4ef01a4af8d4aad2757380e6ee985cf58 Mon Sep 17 00:00:00 2001 From: puneet-pr-arya <71585635+puneet-pr-arya@users.noreply.github.com> Date: Thu, 1 Oct 2020 19:06:57 +0530 Subject: [PATCH 1/2] Create readme.txt --- .../Polynomial Minimization/readme.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 algorithms/Particle_Swarm_Optimization/Polynomial Minimization/readme.txt diff --git a/algorithms/Particle_Swarm_Optimization/Polynomial Minimization/readme.txt b/algorithms/Particle_Swarm_Optimization/Polynomial Minimization/readme.txt new file mode 100644 index 0000000..3d9142a --- /dev/null +++ b/algorithms/Particle_Swarm_Optimization/Polynomial Minimization/readme.txt @@ -0,0 +1 @@ +This Matlab code optimizes a polynomial by minimizing it within a given range using Particle Swarm optimization. From c41f733d547df8375ea5567313f42266a5caa175 Mon Sep 17 00:00:00 2001 From: puneet-pr-arya <71585635+puneet-pr-arya@users.noreply.github.com> Date: Thu, 1 Oct 2020 19:29:15 +0530 Subject: [PATCH 2/2] Add files via upload --- .../Polynomial Minimization/Parabola.m | 3 + .../Polynomial Minimization/code.m | 130 ++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 algorithms/Particle_Swarm_Optimization/Polynomial Minimization/Parabola.m create mode 100644 algorithms/Particle_Swarm_Optimization/Polynomial Minimization/code.m diff --git a/algorithms/Particle_Swarm_Optimization/Polynomial Minimization/Parabola.m b/algorithms/Particle_Swarm_Optimization/Polynomial Minimization/Parabola.m new file mode 100644 index 0000000..6415f97 --- /dev/null +++ b/algorithms/Particle_Swarm_Optimization/Polynomial Minimization/Parabola.m @@ -0,0 +1,3 @@ +function z = Parabola(x) + z = sum(x.^2); +end \ No newline at end of file diff --git a/algorithms/Particle_Swarm_Optimization/Polynomial Minimization/code.m b/algorithms/Particle_Swarm_Optimization/Polynomial Minimization/code.m new file mode 100644 index 0000000..a34ac18 --- /dev/null +++ b/algorithms/Particle_Swarm_Optimization/Polynomial Minimization/code.m @@ -0,0 +1,130 @@ +clc; +clear; +close all; + +%% Problem Definition + + +CostFunction=@(x) Parabola(x); % Cost Function + +nVar = 5; % 5 dimensional-Number of unknown (Decision Variables) + +VarSize = [1 nVar]; % Matrix size of Decision Variables + +VarMin = -10; % Lower bound of Decision Variables +VarMax = 10; % Upper bound of Decision Variables + + +%% Parameters of PSO + +MaxIt = 1000; % Maximum Numbers of Iterations + +nPop = 50; % Population size (Swarm Size) + +w = 1; % Inertia Coefficient +wdamp=0.99; % Damping Ratio of intertia weight +c1 = 2; % Personal Acceleration Coefficient +c2 = 2; % Social Acceleration Coefficient + + + +%% Initialization + +% The Particle Template +empty_particle.Position = []; % position of particle +empty_particle.Velocity = []; % velocity of particle +empty_particle.Cost = []; % own measurement of particle(cost value) +empty_particle.Best.Position = []; % personal best with its position +empty_particle.Best.Cost = []; % personal best with its cost value + + +particle = repmat(empty_particle, nPop,1); % Create random Population Array + +%Initialization Global best +GlobalBest.Cost=inf; % for minization fun. its infinity before 1st iteration + +% Initialize Population Members + + for i=1:nPop + + % Generate Random Solutions + particle(i).Position=unifrnd(VarMin,VarMax,VarSize); + + % Initialize Velocity + particle(i).Velocity=zeros(VarSize); %matrix with all o of varsize + + % Evaluation at above particle i position + particle(i).Cost=CostFunction(particle(i).Position); + + % Update Personal Best value + particle(i).Best.Position=particle(i).Position; + particle(i).Best.Cost=particle(i).Cost; + + % Update Global Best + if particle(i).Best.Cost