예제 #1
0
파일: fa.py 프로젝트: tuahk/NiaPy
 def __init__(self, **kwargs):
     Algorithm.__init__(self, name='FireflyAlgorithm', sName='FA', **kwargs)
예제 #2
0
	def setUp(self):
		self.a = Algorithm()
예제 #3
0
파일: kh.py 프로젝트: tuahk/NiaPy
 def __init__(self, **kwargs):
     if kwargs.get('name', None) == None:
         Algorithm.__init__(self, name='KrillHerd', sName='KH', **kwargs)
     else:
         Algorithm.__init__(self, **kwargs)
예제 #4
0
파일: hc.py 프로젝트: zyumons/NiaPy
 def getParameters(self):
     d = Algorithm.getParameters(self)
     d.update({'delta': self.delta, 'Neighborhood': self.Neighborhood})
     return d
예제 #5
0
 def __init__(self, **kwargs):
     Algorithm.__init__(self,
                        name='SineCosineAlgorithm',
                        sName='SCA',
                        **kwargs)
예제 #6
0
 def initPopulation(self, task):
     pop, fpop, d = Algorithm.initPopulation(self, task)
     d.update({'S': zeros((self.NP, task.D))})
     return pop, fpop, d
예제 #7
0
 def test_algorithm_getParameters_fine(self):
     r"""Check if method works fine."""
     algo = Algorithm()
     params = algo.getParameters()
     self.assertIsNotNone(params)
예제 #8
0
 def test_type_parameters_fine(self):
     d = Algorithm.typeParameters()
     self.assertIsNotNone(d)
예제 #9
0
 def setUp(self):
     self.seed = 1
     self.rnd = rnd.RandomState(self.seed)
     self.a = Algorithm(seed=self.seed)
예제 #10
0
 def test_algorithm_info_fine(self):
     r"""Check if method works fine."""
     i = Algorithm.algorithmInfo()
     self.assertIsNotNone(i)
예제 #11
0
class AlgorithBaseTestCase(TestCase):
    r"""Test case for testing Algorithm class.

	Date:
		April 2019

	Author:
		Klemen Berkovič

	Attributes:
		seed (int): Starting seed of random generator.
		rnd (mtrand.RandomState): Random generator.
		a (Algorithm): Algorithm to use for testing.

	See Also:
		* :class:`NiaPy.algorithms.Individual`
	"""
    def setUp(self):
        self.seed = 1
        self.rnd = rnd.RandomState(self.seed)
        self.a = Algorithm(seed=self.seed)

    def test_algorithm_info_fine(self):
        r"""Check if method works fine."""
        i = Algorithm.algorithmInfo()
        self.assertIsNotNone(i)

    def test_algorithm_getParameters_fine(self):
        r"""Check if method works fine."""
        algo = Algorithm()
        params = algo.getParameters()
        self.assertIsNotNone(params)

    def test_type_parameters_fine(self):
        d = Algorithm.typeParameters()
        self.assertIsNotNone(d)

    def test_init_population_numpy_fine(self):
        r"""Test if custome generation initialization works ok."""
        a = Algorithm(NP=10, InitPopFunc=init_pop_numpy)
        t = Task(D=20, benchmark=MyBenchmark())
        self.assertTrue(
            array_equal(full((10, t.D), 0.0),
                        a.initPopulation(t)[0]))

    def test_init_population_individual_fine(self):
        r"""Test if custome generation initialization works ok."""
        a = Algorithm(NP=10, InitPopFunc=init_pop_individual, itype=Individual)
        t = Task(D=20, benchmark=MyBenchmark())
        i = Individual(x=full(t.D, 0.0), task=t)
        pop, fpop, d = a.initPopulation(t)
        for e in pop:
            self.assertEqual(i, e)

    def test_setParameters(self):
        self.a.setParameters(t=None, a=20)
        self.assertRaises(AttributeError,
                          lambda: self.assertEqual(self.a.a, None))

    def test_randint_fine(self):
        o = self.a.randint(Nmax=20, Nmin=10, D=[10, 10])
        self.assertEqual(o.shape, (10, 10))
        self.assertTrue(array_equal(self.rnd.randint(10, 20, (10, 10)), o))
        o = self.a.randint(Nmax=20, Nmin=10, D=(10, 5))
        self.assertEqual(o.shape, (10, 5))
        self.assertTrue(array_equal(self.rnd.randint(10, 20, (10, 5)), o))
        o = self.a.randint(Nmax=20, Nmin=10, D=10)
        self.assertEqual(o.shape, (10, ))
        self.assertTrue(array_equal(self.rnd.randint(10, 20, 10), o))

    def test_randn_fine(self):
        a = self.a.randn([1, 2])
        self.assertEqual(a.shape, (1, 2))
        self.assertTrue(array_equal(self.rnd.randn(1, 2), a))
        a = self.a.randn(1)
        self.assertEqual(len(a), 1)
        self.assertTrue(array_equal(self.rnd.randn(1), a))
        a = self.a.randn(2)
        self.assertEqual(len(a), 2)
        self.assertTrue(array_equal(self.rnd.randn(2), a))
        a = self.a.randn()
        self.assertIsInstance(a, float)
        self.assertTrue(array_equal(self.rnd.randn(), a))

    def test_uniform_fine(self):
        a = self.a.uniform(-10, 10, [10, 10])
        self.assertEqual(a.shape, (10, 10))
        self.assertTrue(array_equal(self.rnd.uniform(-10, 10, (10, 10)), a))
        a = self.a.uniform(4, 10, (4, 10))
        self.assertEqual(len(a), 4)
        self.assertEqual(len(a[0]), 10)
        self.assertTrue(array_equal(self.rnd.uniform(4, 10, (4, 10)), a))
        a = self.a.uniform(1, 4, 2)
        self.assertEqual(len(a), 2)
        self.assertTrue(array_equal(self.rnd.uniform(1, 4, 2), a))
        a = self.a.uniform(10, 100)
        self.assertIsInstance(a, float)
        self.assertEqual(self.rnd.uniform(10, 100), a)

    def test_normal_fine(self):
        a = self.a.normal(-10, 10, [10, 10])
        self.assertEqual(a.shape, (10, 10))
        self.assertTrue(array_equal(self.rnd.normal(-10, 10, (10, 10)), a))
        a = self.a.normal(4, 10, (4, 10))
        self.assertEqual(len(a), 4)
        self.assertEqual(len(a[0]), 10)
        self.assertTrue(array_equal(self.rnd.normal(4, 10, (4, 10)), a))
        a = self.a.normal(1, 4, 2)
        self.assertEqual(len(a), 2)
        self.assertTrue(array_equal(self.rnd.normal(1, 4, 2), a))
        a = self.a.normal(10, 100)
        self.assertIsInstance(a, float)
        self.assertEqual(self.rnd.normal(10, 100), a)
예제 #12
0
파일: cs.py 프로젝트: sisco0/NiaPy
 def getParameters(self):
     d = Algorithm.getParameters(self)
     d.pop('NP', None)
     d.update({'N': self.NP, 'pa': self.pa, 'alpha': self.alpha})
     return d
예제 #13
0
 def __init__(self, **kwargs):
     Algorithm.__init__(self, **kwargs)
     self.LSs = [MTS_LS1, MTS_LS2, MTS_LS3]
예제 #14
0
 def setParameters(self, **ukwargs):
     r"""Set the algorithm parameters/arguments."""
     Algorithm.setParameters(self, **ukwargs)
예제 #15
0
	def test_init_population_numpy_fine(self):
		r"""Test if custome generation initialization works ok."""
		a = Algorithm(NP=10, InitPopFunc=init_pop_numpy)
		t = Task(D=20, benchmark=MyBenchmark())
		self.assertTrue(array_equal(full((10, t.D), 0.0), a.initPopulation(t)[0]))