Пример #1
0
 @Test
 public void testCoolingSchedule() {
   final DiscreteAnnealSubclass anneal = new DiscreteAnnealSubclass(1000, 400, 1);
   assertEquals(400, anneal.coolingSchedule(), AIFH.DEFAULT_PRECISION);
   anneal.iteration();
   assertEquals(397.61057939346017, anneal.coolingSchedule(), AIFH.DEFAULT_PRECISION);
 }
Пример #2
0
 @Test
 public void testProbability() {
   final DiscreteAnnealSubclass anneal = new DiscreteAnnealSubclass(1000, 400, 1);
   assertEquals(
       0.9753099120283326,
       anneal.calcProbability(10, 20, anneal.coolingSchedule()),
       AIFH.DEFAULT_PRECISION);
   anneal.iteration();
   assertEquals(
       0.9751633961486054,
       anneal.calcProbability(10, 20, anneal.coolingSchedule()),
       AIFH.DEFAULT_PRECISION);
 }
Пример #3
0
  @Test
  public void testRun() {
    final DiscreteAnnealSubclass anneal = new DiscreteAnnealSubclass(1000, 400, 1);
    while (!anneal.done()) {
      anneal.iteration();
    }

    final CalculateDistance dist = new EuclideanDistance();

    assertEquals(1000, anneal.getK());
    assertEquals(
        0, dist.calculate(anneal.getBest(), DiscreteAnnealSubclass.IDEAL), AIFH.DEFAULT_PRECISION);
    assertEquals(0, anneal.getBestScore(), AIFH.DEFAULT_PRECISION);
  }