- Rename method and add comments to clarify use by @chrisbloom7 in #20
- Config Cleanup: remove logger config by @chrisbloom7 in #21
- Simply configuration and overrides by @chrisbloom7 in #22
- Idea: Add library of built-in functions by @chrisbloom7 in #23
- Removed the default state change function; you are now required to define a custom
state_change
function for the simulation (#2) - Added support for specifying a custom
termination_condition
function to override the default condition of the temperature reaching 0 (#5) - Added support for specifying a custom
cool_down
function to override the default linear cooling function (#9) - Normalized configurations options such that they can be specified in a consistent way across many interfaces (#19)
Annealing::Pool
has been replaced withAnnealing::Metal
which has a different interface from the old classAnnealing.simulate
,Annealing::Simulator.new
andAnnealing::Simulator#run
method signatures have changed to accommodate normalized configuration optionsAnnealing::Simulator.new
no longer raisesRuntimeError
exceptions if configuration options are invalid. Instead, they will be raised fromAnnealing::Simulator#run
asArgumentError
exceptions.- Negative
cooling_rate
values are no longer valid;Annealing::Simulator#run
will raise an error if one is specified - Comprehensive test suite added
- Improve private methods
- Minor code cleanup
- It allows custom configuration
- It use distance method to calculate energy
- It allows user to implement their own total energy calculator