Example #1
0
 def count_ones(self, stateCount):
     stateCount = stateCount
     initial = OneMax()
     state = self.generate_test_state(stateCount, "CO")
     problem = DiscreteOpt(length=stateCount,
                           fitness_fn=initial,
                           maximize=True)
     problem.set_state(state)
     return problem
Example #2
0
    def knapsack(self, max_weight_percent, stateCount):
        state, weights, values = self.generate_test_state(stateCount, "KS")
        initial = Knapsack(weights, values, max_weight_percent)
        problem = DiscreteOpt(length=stateCount,
                              fitness_fn=initial,
                              maximize=True)

        problem.set_state(state)
        return problem
Example #3
0
    def four_peaks(self, threshold, stateCount):
        initial = FourPeaks(t_pct=threshold)
        state = self.generate_test_state(stateCount, "FP")
        problem = DiscreteOpt(length=stateCount,
                              fitness_fn=initial,
                              maximize=True)
        problem.set_state(state)

        return problem
Example #4
0
    def test_random_neighbor_max2():
        """Test random_neighbor method when max_val is equal to 2"""

        problem = DiscreteOpt(5, OneMax(), maximize=True)

        x = np.array([0, 0, 1, 1, 1])
        problem.set_state(x)

        neigh = problem.random_neighbor()
        sum_diff = np.sum(np.abs(x - neigh))

        assert (len(neigh) == 5 and sum_diff == 1)
Example #5
0
    def test_find_neighbors_max2():
        """Test find_neighbors method when max_val is equal to 2"""

        problem = DiscreteOpt(5, OneMax(), maximize=True, max_val=2)

        x = np.array([0, 1, 0, 1, 0])
        problem.set_state(x)
        problem.find_neighbors()

        neigh = np.array([[1, 1, 0, 1, 0], [0, 0, 0, 1, 0], [0, 1, 1, 1, 0],
                          [0, 1, 0, 0, 0], [0, 1, 0, 1, 1]])

        assert np.array_equal(np.array(problem.neighbors), neigh)
Example #6
0
    def test_random_neighbor_max_gt2():
        """Test random_neighbor method when max_val is greater than 2"""

        problem = DiscreteOpt(5, OneMax(), maximize=True, max_val=5)

        x = np.array([0, 1, 2, 3, 4])
        problem.set_state(x)

        neigh = problem.random_neighbor()
        abs_diff = np.abs(x - neigh)
        abs_diff[abs_diff > 0] = 1

        sum_diff = np.sum(abs_diff)

        assert (len(neigh) == 5 and sum_diff == 1)