Skip to content

Commit

Permalink
Merge pull request #73 from GregaVrbancic/refactoring
Browse files Browse the repository at this point in the history
Refactoring
  • Loading branch information
GregaVrbancic committed Feb 22, 2018
2 parents aad3b06 + b05b42e commit 602eea8
Show file tree
Hide file tree
Showing 12 changed files with 35 additions and 198 deletions.
4 changes: 3 additions & 1 deletion .pylint.ini
Expand Up @@ -122,7 +122,9 @@ disable=print-statement,
fixme,
too-many-arguments,
too-many-branches,
similarities
similarities,
too-many-statements,
too-many-instance-attributes

# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
Expand Down
1 change: 0 additions & 1 deletion NiaPy/algorithms/basic/abc.py
Expand Up @@ -52,7 +52,6 @@ class ArtificialBeeColonyAlgorithm(object):
TODO: EVALUATIONS!
"""

# pylint: disable=too-many-instance-attributes
def __init__(self, D, NP, nFES, benchmark):
"""**__init__(self, D, NP, nFES, benchmark)**.
Expand Down
1 change: 0 additions & 1 deletion NiaPy/algorithms/basic/ba.py
Expand Up @@ -18,7 +18,6 @@ class BatAlgorithm(object):
Springer, Berlin, Heidelberg, 2010. 65-74.
"""

# pylint: disable=too-many-instance-attributes
def __init__(self, D, NP, nFES, A, r, Qmin, Qmax, benchmark):
"""**__init__(self, D, NP, nFES, A, r, Qmin, Qmax, benchmark)**.
Expand Down
1 change: 0 additions & 1 deletion NiaPy/algorithms/basic/de.py
Expand Up @@ -46,7 +46,6 @@ class DifferentialEvolutionAlgorithm(object):
optimization 11.4 (1997): 341-359.
"""

# pylint: disable=too-many-instance-attributes
def __init__(self, D, NP, nFES, F, CR, benchmark):
"""**__init__(self, D, NP, nFES, F, CR, benchmark)**.
Expand Down
1 change: 0 additions & 1 deletion NiaPy/algorithms/basic/fa.py
Expand Up @@ -17,7 +17,6 @@ class FireflyAlgorithm(object):
A comprehensive review of firefly algorithms. Swarm and Evolutionary Computation, 13, 34-46.
"""

# pylint: disable=too-many-instance-attributes
def __init__(self, D, NP, nFES, alpha, betamin, gamma, benchmark):
"""**__init__(self, D, NP, nFES, alpha, betamin, gamma, benchmark)**.
Expand Down
1 change: 0 additions & 1 deletion NiaPy/algorithms/basic/fpa.py
Expand Up @@ -23,7 +23,6 @@ class FlowerPollinationAlgorithm(object):
https://www.mathworks.com/matlabcentral/fileexchange/45112-flower-pollination-algorithm?requestedDomain=true
"""

# pylint: disable=too-many-instance-attributes
def __init__(self, D, NP, nFES, p, benchmark):
"""**__init__(self, D, NP, nFES, p, benchmark)**.
Expand Down
1 change: 0 additions & 1 deletion NiaPy/algorithms/basic/ga.py
Expand Up @@ -49,7 +49,6 @@ class GeneticAlgorithm(object):
"""

# pylint: disable=too-many-instance-attributes
def __init__(self, D, NP, nFES, Ts, Mr, Lower, Upper, function):
self.NP = NP
self.D = D
Expand Down
1 change: 0 additions & 1 deletion NiaPy/algorithms/basic/gwo.py
Expand Up @@ -18,7 +18,6 @@ class GreyWolfOptimizer(object):
& Grey Wold Optimizer (GWO) source code version 1.0 (MATLAB) from MathWorks
"""

# pylint: disable=too-many-instance-attributes
def __init__(self, D, NP, nFES, benchmark):
"""**__init__(self, D, NP, nFES, benchmark)**.
Expand Down
1 change: 0 additions & 1 deletion NiaPy/algorithms/basic/pso.py
Expand Up @@ -75,7 +75,6 @@ class ParticleSwarmAlgorithm(object):
EDITED: TODO: Tests and validation! Bug in code.
"""

# pylint: disable=too-many-instance-attributes
def __init__(self, Np, D, nFES, C1, C2, w, vMin, vMax, Lower, Upper, function):
"""Constructor."""
self.Np = Np
Expand Down
1 change: 0 additions & 1 deletion NiaPy/algorithms/modified/hba.py
Expand Up @@ -30,7 +30,6 @@ class HybridBatAlgorithm(object):
"A Hybrid Bat Algorithm". Elektrotehniski vestnik, 2013. 1-7.
"""

# pylint: disable=too-many-instance-attributes
def __init__(self, D, NP, nFES, A, r, F, CR, Qmin, Qmax, benchmark):
"""**__init__(self, D, NP, nFES, A, r, Qmin, Qmax, benchmark)**.
Expand Down
1 change: 0 additions & 1 deletion NiaPy/algorithms/modified/jde.py
Expand Up @@ -49,7 +49,6 @@ class SelfAdaptiveDifferentialEvolutionAlgorithm(object):
TODO
"""

# pylint: disable=too-many-instance-attributes
def __init__(self, D, NP, nFES, F, CR, Lower, Upper, function):
# TODO: check for F and CR parameters!
self.D = D # dimension of problem
Expand Down
219 changes: 32 additions & 187 deletions NiaPy/benchmarks/utility.py
Expand Up @@ -10,199 +10,44 @@
__all__ = ['Utility']


# pylint: disable=too-many-return-statements
class Utility(object):

def __init__(self):
pass

# pylint: disable=inconsistent-return-statements,too-many-statements
def get_benchmark(self, benchmark, Lower=None, Upper=None):
self.classes = {
'ackley': Ackley,
'alpine1': Alpine1,
'alpine2': Alpine2,
'chungReynolds': ChungReynolds,
'csendes': Csendes,
'griewank': Griewank,
'happyCat': HappyCat,
'pinter': Pinter,
'quing': Qing,
'quintic': Quintic,
'rastrigin': Rastrigin,
'ridge': Ridge,
'rosenbrock': Rosenbrock,
'salomon': Salomon,
'schumerSteiglitz': SchumerSteiglitz,
'schwefel': Schwefel,
'schwefel221': Schwefel221,
'schwefel222': Schwefel222,
'sphere': Sphere,
'step': Step,
'step2': Step2,
'step3': Step3,
'stepint': Stepint,
'styblinskiTang': StyblinskiTang,
'sumSquares': SumSquares,
'whitley': Whitley
}

def get_benchmark(self, benchmark):
if not isinstance(benchmark, ''.__class__):
return benchmark
else:
if benchmark == 'rastrigin':
if Lower is None and Upper is None:
return Rastrigin()
elif Lower is not None and Upper is not None:
return Rastrigin(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'rosenbrock':
if Lower is None and Upper is None:
return Rosenbrock()
elif Lower is not None and Upper is not None:
return Rosenbrock(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'griewank':
if Lower is None and Upper is None:
return Griewank()
elif Lower is not None and Upper != None:
return Griewank(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'sphere':
if Lower is None and Upper is None:
return Sphere()
elif Lower is not None and Upper is not None:
return Sphere(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'ackley':
if Lower is None and Upper is None:
return Ackley()
elif Lower is not None and Upper is not None:
return Ackley(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'schwefel':
if Lower is None and Upper is None:
return Schwefel()
elif Lower is not None and Upper is not None:
return Schwefel(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'schwefel221':
if Lower is None and Upper is None:
return Schwefel221()
elif Lower is not None and Upper is not None:
return Schwefel221(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'schwefel222':
if Lower is None and Upper is None:
return Schwefel222()
elif Lower is not None and Upper is not None:
return Schwefel222(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'whitley':
if Lower is None and Upper is None:
return Whitley()
elif Lower is not None and Upper is not None:
return Whitley(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'alpine1':
if Lower is None and Upper is None:
return Alpine1()
elif Lower is not None and Upper is not None:
return Alpine1(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'alpine2':
if Lower is None and Upper is None:
return Alpine2()
elif Lower is not None and Upper is not None:
return Alpine2(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'happyCat':
if Lower is None and Upper is None:
return HappyCat()
elif Lower is not None and Upper is not None:
return HappyCat(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'ridge':
if Lower is None and Upper is None:
return Ridge()
elif Lower is not None and Upper is not None:
return Ridge(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'chungReynolds':
if Lower is None and Upper is None:
return ChungReynolds()
elif Lower is not None and Upper is not None:
return ChungReynolds(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'csendes':
if Lower is None and Upper is None:
return Csendes()
elif Lower is not None and Upper is not None:
return Csendes(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'pinter':
if Lower is None and Upper is None:
return Pinter()
elif Lower is not None and Upper is not None:
return Pinter(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'qing':
if Lower is None and Upper is None:
return Qing()
elif Lower is not None and Upper is not None:
return Qing(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'quintic':
if Lower is None and Upper is None:
return Quintic()
elif Lower is not None and Upper is not None:
return Quintic(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'salomon':
if Lower is None and Upper is None:
return Salomon()
elif Lower is not None and Upper is not None:
return Salomon(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'schumerSteiglitz':
if Lower is None and Upper is None:
return SchumerSteiglitz()
elif Lower is not None and Upper is not None:
return SchumerSteiglitz(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'step':
if Lower is None and Upper is None:
return Step()
elif Lower is not None and Upper is not None:
return Step(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'step2':
if Lower is None and Upper is None:
return Step2()
elif Lower is not None and Upper is not None:
return Step2(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'step3':
if Lower is None and Upper is None:
return Step3()
elif Lower is not None and Upper is not None:
return Step3(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'stepint':
if Lower is None and Upper is None:
return Stepint()
elif Lower is not None and Upper is not None:
return Stepint(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'sumSquares':
if Lower is None and Upper is None:
return SumSquares()
elif Lower is not None and Upper is not None:
return SumSquares(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
elif benchmark == 'styblinskiTang':
if Lower is None and Upper is None:
return StyblinskiTang()
elif Lower is not None and Upper is not None:
return StyblinskiTang(Lower, Upper)
else:
self.__raiseLowerAndUpperNotDefined()
if benchmark in self.classes:
return self.classes[benchmark]()
else:
raise TypeError('Passed benchmark is not defined!')

Expand Down

0 comments on commit 602eea8

Please sign in to comment.