예제 #1
0
    def init(self, task):
        r"""Initialize dynamic arguments of Particle Swarm Optimization algorithm.

		Args:
			task (Task): Optimization task.

		Returns:
			Dict[str, numpy.ndarray]:
				* vMin: Mininal velocity.
				* vMax: Maximal velocity.
				* V: Initial velocity of particle.
				* flag: Refresh gap counter.
		"""
        return {
            'min_velocity':
            full_array(self.vMin, task.D),
            'max_velocity':
            full_array(self.vMax, task.D),
            'v':
            np.full([self.NP, task.D], 0.0),
            'flag':
            np.full(self.NP, 0),
            'pc':
            np.asarray([
                .05 + .45 * (np.exp(10 * (i - 1) / (self.NP - 1)) - 1) /
                (np.exp(10) - 1) for i in range(self.NP)
            ])
        }
예제 #2
0
 def test_range(self):
     self.assertTrue(
         np.array_equal(
             full_array(self.Upper, self.D) -
             full_array(self.Lower, self.D), self.task.bRange))
     self.assertTrue(
         np.array_equal(
             full_array(self.Upper, self.D) -
             full_array(self.Lower, self.D), self.task.range()))
예제 #3
0
	def init(self, task):
		r"""Initialize dynamic parameters of algorithm.

		Args:
			task (Task): Optimization task.

		Returns:
			Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]
				1. Array of `self.alpha` propagated values
				2. Array of `self.gamma` propagated values
				3. Array of `self.theta` propagated values
		"""
		return full_array(self.alpha, self.NP), full_array(self.gamma, self.NP), full_array(self.theta, self.NP)
예제 #4
0
파일: fwa.py 프로젝트: kb2623/WeOptPy
    def init_ranges(self, task):
        r"""Initialize ranges.

		Args:
			task (Task): Optimization task.

		Returns:
			Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]:
				1. Initial amplitude values over dimensions.
				2. Final amplitude values over dimensions.
				3. uAmin.
		"""
        Ainit, Afinal = full_array(self.Ainit,
                                   task.D), full_array(self.Afinal, task.D)
        return Ainit, Afinal, self.uAmin(Ainit, Afinal, task)
예제 #5
0
파일: fwa.py 프로젝트: kb2623/WeOptPy
    def init_amplitude(self, task):
        r"""Initialize amplitudes for dimensions.

		Args:
			task (Task): Optimization task.

		Returns:
			numpy.ndarray: Starting amplitudes.
		"""
        return full_array(self.A, task.D)
예제 #6
0
    def init(self, task):
        r"""Initialize dynamic arguments of Particle Swarm Optimization algorithm.

		Args:
			task (Task): Optimization task.

		Returns:
			Dict[str, Union[float, numpy.ndarray]]:
				* w (numpy.ndarray): Inertial weight.
				* vMin (numpy.ndarray): Minimal velocity.
				* vMax (numpy.ndarray): Maximal velocity.
				* V (numpy.ndarray): Initial velocity of particle.
		"""
        return {
            'w': full_array(self.w, task.D),
            'min_velocity': full_array(self.vMin, task.D),
            'max_velocity': full_array(self.vMax, task.D),
            'v': np.full([self.NP, task.D], 0.0)
        }
예제 #7
0
 def test_a_int_array2_fine(self):
     a = [25 + i for i in range(10)]
     A = full_array(np.asarray(a), 13)
     a.extend([25 + i for i in range(3)])
     self.assertTrue(np.array_equal(A, np.asarray(a)))
예제 #8
0
 def test_is_feasible(self):
     self.assertFalse(self.task.is_feasible(full_array([1, 2, 3], self.D)))
예제 #9
0
 def test_a_int_array3_fine(self):
     a = [25 + i for i in range(10)]
     A = full_array(np.asarray(a), 9)
     a.remove(34)
     self.assertTrue(np.array_equal(A, np.asarray(a)))
예제 #10
0
 def test_upper(self):
     self.assertTrue(
         np.array_equal(full_array(self.Upper, self.D), self.task.Upper))
     self.assertTrue(
         np.array_equal(full_array(self.Upper, self.D), self.task.upper()))
예제 #11
0
 def test_lower(self):
     self.assertTrue(
         np.array_equal(full_array(self.Lower, self.D), self.task.Lower))
     self.assertTrue(
         np.array_equal(full_array(self.Lower, self.D), self.task.lower()))
예제 #12
0
파일: test_jade.py 프로젝트: kb2623/WeOptPy
 def setUp(self):
     self.D, self.NP, self.F, self.CR, self.p = 10, 100, 0.5, 0.5, 0.25
     self.Upper, self.Lower = full_array(100,
                                         self.D), full_array(-100, self.D)
     self.evalFun = Sphere().function()
예제 #13
0
 def test_a_float_list3_fine(self):
     a = [25.25 + i for i in range(10)]
     A = full_array(a, 9)
     a.remove(34.25)
     self.assertTrue(np.array_equal(A, np.asarray(a)))
예제 #14
0
 def test_a_float_array1_fine(self):
     a = [25.25 + i for i in range(10)]
     A = full_array(np.asarray(a), 15)
     a.extend([25.25 + i for i in range(5)])
     self.assertTrue(np.array_equal(A, np.asarray(a)))
예제 #15
0
 def test_a_int_array_fine(self):
     a = np.asarray([25 for i in range(10)])
     A = full_array(a, 10)
     self.assertTrue(np.array_equal(A, np.full(10, 25)))
예제 #16
0
 def generate_individual(self, D, upper, lower):
     arr_upper, arr_lower = full_array(upper, D), full_array(lower, D)
     return arr_lower + rnd.rand(D) * (arr_upper - arr_lower)
예제 #17
0
 def setUp(self):
     self.D = 10
     self.Upper, self.Lower = full_array(10,
                                         self.D), full_array(-10, self.D)
     self.met = limit_repair
예제 #18
0
 def test_a_float_list_fine(self):
     a = [25.25 for i in range(10)]
     A = full_array(a, 10)
     self.assertTrue(np.array_equal(A, np.full(10, 25.25)))
예제 #19
0
 def test_a_int_fine(self):
     A = full_array(25, 10)
     self.assertTrue(np.array_equal(A, np.full(10, 25)))