simulated-annealing

1.0.2 • Public • Published

Simulated Annealing for node.js

NPM version

Simulated Annealing optimization algorithm for node.js.

Simulated annealing searching for a maximum

Install

npm install --save simulated-annealing

Usage

var simulatedAnnealing = require('simulated-annealing');
var result = simulatedAnnealing(params);

Params

  • initialState - first state value
  • tempMax - initial temperature
  • tempMin - min temperature when algorithm will stop
  • newState - function for generating new state from current state newState(state)
  • getTemp - function for generating new temperature based on previous temperature getTemp(temperature)
  • getEnergy - function for calculating energy for state getEnergy(state) (less is better)

Example

Find solution for x^2=16

var simulatedAnnealing = require('simulated-annealing');
 
function getEnergy(v) {
    return Math.abs(* v - 16);
}
 
function newState(x) {
    return x + (Math.random() - 0.5);
}
 
// linear temperature decreasing
function getTemp(prevTemperature) {
    return prevTemperature - 0.001;
}
 
var result = simulatedAnnealing({
    initialState: Math.random() * 16,
    tempMax: 15,
    tempMin: 0.001,
    newState: newState,
    getTemp: getTemp,
    getEnergy: getEnergy,
});
 

Testing

npm test

Package Sidebar

Install

npm i simulated-annealing

Weekly Downloads

11

Version

1.0.2

License

MIT

Unpacked Size

7.49 kB

Total Files

6

Last publish

Collaborators

  • saveryanov