Completed
Push — master ( 999c91...f44e7b )
by
unknown
23s queued 10s
created

custom_init_population   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 17
dl 0
loc 25
rs 10
c 0
b 0
f 0
wmc 1

1 Function

Rating   Name   Duplication   Size   Complexity  
A MyInit() 0 4 1
1
# encoding=utf8
2
# This is temporary fix to import module from parent folder
3
# It will be removed when package is published on PyPI
4
import sys
5
sys.path.append('../')
6
# End of fix
7
8
from NiaPy.algorithms.basic import ParticleSwarmAlgorithm
9
from NiaPy.task.task import StoppingTask, OptimizationType
10
from NiaPy.benchmarks import Sphere
11
from numpy import random as rand, apply_along_axis
12
13
def MyInit(task, NP, rnd=rand, **kwargs):
14
    pop = 0.2 + rnd.rand(NP, task.D) * task.bRange
15
    fpop = apply_along_axis(task.eval, 1, pop)
16
    return pop, fpop
17
18
19
# we will run Particle Swarm Algorithm with custom Init function for 5 independent runs
20
for i in range(5):
21
	task = StoppingTask(D=10, nFES=1000, optType=OptimizationType.MINIMIZATION, benchmark=Sphere())
22
	algo = ParticleSwarmAlgorithm(NP=10, C1=2.0, C2=2.0, w=0.7, vMin=-4, vMax=4, InitPopFunc=MyInit)
23
	best = algo.run(task=task)
24
	print(best)
25