| Total Complexity | 2 |
| Total Lines | 21 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | # Author: Simon Blanke |
||
| 2 | # Email: [email protected] |
||
| 3 | # License: MIT License |
||
| 4 | |||
| 5 | |||
| 6 | from ..local import HillClimbingOptimizer |
||
| 7 | from ...search import Search |
||
| 8 | |||
| 9 | |||
| 10 | class RandomAnnealingOptimizer(HillClimbingOptimizer, Search): |
||
| 11 | def __init__(self, search_space, annealing_rate=0.99, start_temp=100): |
||
| 12 | super().__init__(search_space) |
||
| 13 | self.annealing_rate = annealing_rate |
||
| 14 | self.temp = start_temp |
||
| 15 | |||
| 16 | def iterate(self): |
||
| 17 | pos = self._move_climb(self.pos_current, epsilon_mod=self.temp / 10) |
||
| 18 | self.temp = self.temp * self.annealing_rate |
||
| 19 | |||
| 20 | return pos |
||
| 21 |