simulated-annealing
v1.0.2
Published
Simulated Annealing optimization algorithm for node.js
Downloads
52
Maintainers
Readme
Simulated Annealing for node.js
Simulated Annealing optimization algorithm for node.js.
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 * 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