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

custom_init_population.MyInit()   A

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nop 4
dl 0
loc 4
rs 10
c 0
b 0
f 0
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