我已经用NodeJs编写了很多脚本,但是我需要使用类似GLPK库来处理脚本中的一些优化问题。有人听说过JavaScript驱动程序吗?我想知道将coin移植到V8库会有多难...可能超出了我的工资级别。
我已经用NodeJs编写了很多脚本,但是我需要使用类似GLPK库来处理脚本中的一些优化问题。有人听说过JavaScript驱动程序吗?我想知道将coin移植到V8库会有多难...可能超出了我的工资级别。
我不确定这是否是原帖作者正在寻找的,但我正在 这里 开发一个可能适用的东西。你可以像这样使用它:
var solver = new Solver,
results,
model = {
optimize: "profit",
opType: "max",
constraints: {
"Costa Rican" : {max: 200},
"Etheopian": {max: 330}
},
variables: {
"Yusip": {"Costa Rican" : 0.5, "Etheopian": 0.5, profit: 3.5},
"Exotic": {"Costa Rican" : 0.25, "Etheopian": 0.75, profit: 4}
}
};
results = solver.solve(model);
console.log(results);
最终结果会是:
{feasible: true, Yusip: 270, Exotic: 260, result: 1985}
它可能不是世界上最快的求解器,但它足够易于使用。
YASMIJ示例:
var input = {
type: "maximize",
objective : "x1 + 2x2 - x3",
constraints : [
"2x1 + x2 + x3 <= 14",
"4x1 + 2x2 + 3x3 <= 28",
"2x1 + 5x2 + 5x3 <= 30"
]
};
YASMIJ.solve( input ).toString();
// returns
"{"result":{"slack1":0,"slack2":0,"slack3":0,"x1":5,"x2":4,"x3":0,"z":13}}"
GLPK已经使用emScripten转换为JavaScript。生成的js文件大小约为1 MB(经过压缩后为230 KB)。
截至2018年8月
1)最后一次提交时间为2015年12月: https://github.com/hgourvest/node-glpk
2)最后一次提交时间为2017年12月: https://github.com/jvail/glpk.js
试试它们吧!
我不知道这是否有帮助,但请看一下numericjs.com。这是一个我正在开发的JavaScript数值分析库,其中包含线性规划算法的基本实现。
document.write
,这不是您将在另一个项目中使用的内容,它只是一个演示。 YASMIJ.js 从未退出 beta 版本,并将目标函数作为字符串传递,这不是一个好兆头... - Meekohi