JavaScript实现 Simulated-Annealing算法
2014-04-15 00:00
369 查看
Simulated-Annealing算法:
var SimulatedAnnealing = (function () { var coolingFactor = 0.0, stabilizingFactor = 0.0, freezingTemperature = 0.0, currentSystemEnergy = 0.0, currentSystemTemperature = 0.0, currentStabilizer = 0.0, generateNewSolution = null, generateNeighbor = null, acceptNeighbor = null; function _init (options) { coolingFactor = options.coolingFactor; stabilizingFactor = options.stabilizingFactor; freezingTemperature = options.freezingTemperature; generateNewSolution = options.generateNewSolution; generateNeighbor = options.generateNeighbor; acceptNeighbor = options.acceptNeighbor; currentSystemEnergy = generateNewSolution(); currentSystemTemperature = options.initialTemperature; currentStabilizer = options.initialStabilizer; } function _probabilityFunction (temperature, delta) { if (delta < 0) { return true; } var C = Math.exp(-delta / temperature); var R = Math.random(); if (R < C) { return true; } return false; } function _doSimulationStep () { if (currentSystemTemperature > freezingTemperature) { for (var i = 0; i < currentStabilizer; i++) { var newEnergy = generateNeighbor(), energyDelta = newEnergy - currentSystemEnergy; if (_probabilityFunction(currentSystemTemperature, energyDelta)) { acceptNeighbor(); currentSystemEnergy = newEnergy; } } currentSystemTemperature = currentSystemTemperature - coolingFactor; currentStabilizer = currentStabilizer * stabilizingFactor; return false; } currentSystemTemperature = freezingTemperature; return true; } return { Initialize: function (options) { _init(options); }, Step: function () { return _doSimulationStep(); }, GetCurrentEnergy: function () { return currentSystemEnergy; }, GetCurrentTemperature: function () { return currentSystemTemperature; } }; })();
相关文章推荐
- 用JavaScript实现MD5,SHA1加密
- 一个简单但常用的javascript表格样式_鼠标划过行变色 简洁实现
- 在CheckBoxList用JavaScript实现全选,反选及清空
- javascript实现自适应宽度的瀑布流
- 基于JavaScript实现TAB标签效果
- JavaScript实现DataGrid中的CheckBox全选与否
- JavaScriptCore, WebKit的JS实现(完)
- javascript实现字典数据结构
- javascript实现多表头分类交叉报表之二:效果图
- css+javascript实现苹果电脑桌面菜单滑动效果
- JavaScript实现类的private、public
- javascript 实现滚动效果 整理
- 用Javascript在客户端实现遍历datagrid,DataList控件,像MSN中的全选
- javascript实现一个IP只弹窗一次代码
- asp.net中倒计时自动跳转页面的实现方法(使用javascript)
- javascript+JQuery实现返回顶部功能
- JavaScript数据结构——队列的实现
- JavaScript如何实现继承
- 使用javascript原生实现一个模板引擎
- javascript 实现页面间传值(2)