Exemple #1
0
class TestSimulatedAnnealing(unittest.TestCase):

    def setUp(self):
        self.flow = [
                [0, 1, 2],
                [4, 0, 5],
                [7, 2, 0]]
        self.distance = [
                [0, 5, 2],
                [1, 0, 1],
                [6, 2, 0]]
        self.i = Instance(None, self.distance, self.flow)
        self.sa = SimulatedAnnealing()
        self.startpoint = Solution((0, 1, 2))

    def test_solve_with_startpoint(self):
        expected = (2, 1, 0)
        actual = self.sa.solve(self.i, self.startpoint).sequence
        self.assertEqual(expected, actual)

    def test_guess_temperature(self):
        expected = 255.0
        actual = self.sa._guess_temp(None, prob=0.98, df=1000)
        self.assertAlmostEqual(expected, actual, -1)

    def test_guess_temperature_for_given_instance(self):
        expected = 3.5
        actual = self.sa._guess_temp(self.i, prob=0.95)
        self.assertAlmostEqual(expected, actual, 0)