8

我一直在用 NodeJs 编写很多脚本,但我需要使用GLPK库之类的东西来处理脚本中的一些优化。有人听说过 javascript 驱动程序吗?我想知道将硬币移植到 V8 库会有多难……可能高于我的工资等级。

4

4 回答 4

6

Javascript Simplex 库

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}}"
于 2012-11-21T18:43:37.083 回答
6

不确定它是否是 OP 正在寻找的东西,但我正在研究可能有用的东西。你会像这样使用它:

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}

它可能不是世界上最快的求解器,但它很容易使用。

于 2013-08-27T03:25:41.440 回答
3

我不知道这是否有帮助,但请查看numericjs.com。这是我正在研究的一个 javascript 数值分析库,它具有线性规划算法的基本实现。

于 2011-09-22T19:45:35.437 回答
2

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

试试看!

于 2018-08-31T14:16:19.870 回答