Opened 8 years ago

Closed 5 years ago

#1983 closed defect (duplicate)

Simulated Annealing in combination with the test functions can lead to an endless loop

Reported by: mkommend Owned by: abeham
Priority: high Milestone:
Component: Problems.TestFunctions Version: branch
Keywords: Cc: jkarder

Description

The problem can be reproduces by executing the attached algorithm a few times. The file contains a simulated annealing algorithm which optimizes the rastrigin function and uses the QuadraticDiscreteDoubleValueModifier (all other parameters were left at the default values).

Attachments (1)

Simulated Annealing.hl (53.9 KB) - added by mkommend 8 years ago.

Download all attachments as: .zip

Change History (7)

Changed 8 years ago by mkommend

comment:1 Changed 8 years ago by mkommend

It looks like the infinite loop is a result of an invalid individual (out of bounds) in combination with the StochasticNormalMultiMoveGenerator line 60-62.

 do {
    strength = N.NextDouble();
 } while (vector[index] + strength < min || vector[index] + strength > max);

The probability that the strength has a value to correct the individual (moves it into the specified bounds) is almost 0 and this code block loops forever.

The problem is that I don't know how and where the invalid individual is created and how it surpasses the bounds checker.

comment:2 Changed 8 years ago by abeham

I looked at the engine and think the reason lies in the InnerIterations of the simulated annealing. If you test with InnerIterations = 1 this bug should not occur.

This is similar to the issue addressed in #1185.

comment:3 Changed 7 years ago by abeham

  • Status changed from new to accepted

comment:4 Changed 7 years ago by abeham

r9085: Added 3.4 version of SA (including a reheating strategy and limited to one move per iteration)

comment:5 Changed 7 years ago by abeham

  • Milestone changed from HeuristicLab 3.3.8 to HeuristicLab 3.3.x Backlog
  • Version changed from 3.3.7 to branch

pulling from next release

comment:6 Changed 5 years ago by abeham

  • Milestone HeuristicLab 3.3.x Backlog deleted
  • Resolution set to duplicate
  • Status changed from accepted to closed

will be fixed with #1836

Note: See TracTickets for help on using tickets.