有没有人见过javascript/nodejs的Simplex库

BHP*_*BHP 5 v8 mathematical-optimization node.js simplex

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

Lar*_*tle 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}}"
Run Code Online (Sandbox Code Playgroud)

  • 我已经尝试了所有这些并且不幸的是它们是垃圾:( _SimplexJS_用于混合线性程序(实际上并没有实现Simplex方法,似乎只是为了好玩而选择了这个名称)._ SimpleSimplex_中有`document.write`代码...不是你要在另一个项目中使用的东西,只是一个演示._YASMIJ.js_从未使它成为测试版,你将目标函数作为字符串传递,这不是一个好兆头...... (2认同)
  • 有两种完全不同的优化算法,它们都是名为"单纯形算法":线性规划优化问题,其中空间由单纯形界定,解点从顶点移动到顶点,Nelder-Mead单纯形算法用于通过重复进行单纯形并在该单形内估计积分来优化连续空间中的任意函数.超级混乱!困扰许多人寻找实施.上面的例子是线性编程问题.https://en.wikipedia.org/wiki/Simplex_algorithm (2认同)

JWa*_*lly 5

不知道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);
Run Code Online (Sandbox Code Playgroud)

结果最终将是:

{feasible: true, Yusip: 270, Exotic: 260, result: 1985}
Run Code Online (Sandbox Code Playgroud)

它可能不是世界上最快的求解器,但操作起来很简单。


Séb*_*sel 2

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

  • numericsjs 已严重损坏,自 2012 年以来一直没有更新。不要使用它。 (3认同)