CS512 – Assignment 5

$30.00

Category: You will Instantly receive a download link for .zip solution file upon Payment || To Order Original Work Click Custom Order?

Description

5/5 - (1 vote)

Write a Python program to use “Binary Particle Swarm Optimization” (BPSO) scheme to predict a linear model for an HIV inhibitor (Pill). You can either choose a linear model such as “Multiple Linear Regression”, “Support Vector Machine”, or “Partial Least Square Regression”, or a none-linear model such “Artificial Neural Network”. The architecture of the BPSO is:

 

 

How to find the initial velocity:

for (i=0; i<50; i++)

for (j=0; j<385; j++)

{

V[i, j] = random number between 0 and 1; // this is not binary. It is between 0 and 1

}

 

 

How to find the new population:

  • Find the value of alpha (a)
    • During the 1000 iteration, the value of a ranges from 0.5 downs to 0.33. So, the different between 0.5 and 0.33 is (0.5 – 0.33 = 0.17). Thus, to reduce the value of a in each iteration (1000 iterations) we need to divide 0.17 by 1000 (0.00017) to know how much in each iteration we need to subtract from the value of a.

 

  • Finding the new population: (note: the value of p=(0.5) *(1+a) )
    • If (velocity[i][j] <=a) then new-population [i][j] = old-population[i][j]
    • Else if (velocity[i][j] > a and velocity[i][j] <=p ) then new-population [i][j] = local-best matrix[i][j]
    • Else if (velocity [i][j] > p and velocity[i][j] <=1) new-population[i][j] = global-best[j]
    • Else new-population[i][j] = old-population[i][j]

 

Updating the new local best Matrix:

For each row “i” of the current population

If the fitness of the population[i] < fitness of local-best[i]

Local-best[i] = population[i]

 

Updating the Global best row:

Global-best row = the row of the local-matrix with the lowest fitness

 

Updating the velocity: