Opened 12 years ago
Closed 9 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 12 years ago by mkommend
comment:1 Changed 12 years ago by mkommend
comment:2 Changed 12 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 12 years ago by abeham
- Status changed from new to accepted
comment:4 Changed 12 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 12 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 9 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.