Skip to content

Simulated annealing: bug in run method #11

@nelimee

Description

@nelimee

Description of the bug

The run() method of the SimulatedAnnealing class has a bug when the annealing method does not find a better state than the initial one.

When does it happens

The bug happens when the annealing algorithm fails to find a better state than the initial one. This can happen when the maximum number of steps is low or when the initial guess is already very good.

What is the current behaviour

The tuple returned by the run() method is (None, cost_of_initial_state).

How to fix

Add the line

self.best_state = deepcopy(self.current_state)

between L142 and L143.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions