Opened 8 years ago
Closed 6 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)
Change History (7)
Changed 8 years ago by mkommend
comment:1 Changed 8 years ago by mkommend
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 8 years ago by abeham
- Status changed from new to accepted
comment:4 Changed 8 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 8 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 6 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
It looks like the infinite loop is a result of an invalid individual (out of bounds) in combination with the StochasticNormalMultiMoveGenerator line 60-62.
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.