问题标签 [glpk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - GLPK-Java 解决 MILP 类型问题
虽然我已经知道没有太多关于使用 GLPK-Java 库的文档,但我还是要问......(不,我不能使用另一个求解器)
我有一个涉及调度的基本问题。学生在有一些基本限制的情况下学习一学期的课程。
示例问题是:
我们以 CPLEX 格式给出的示例如下所示:
我可以通过 glpsol 命令通过求解器运行它并让它求解,但我需要使用 API 编写它。我从来没有真正使用过线性规划,文档还有一些不足之处。虽然这充其量只是简单化,但真正的问题涉及解决 12 个学期的 600 名学生,他们必须参加 18 门课程中的 12 门课程,其中某些课程仅在某些学期可用,而某些课程有先决条件。
我需要帮助将简单的问题转换为使用 API 的编码示例。我假设一旦我可以看到非常简单的问题如何映射到 API 调用,我就可以弄清楚如何为更复杂的问题创建应用程序。
从库中的示例中,我可以看到您设置了在这种情况下为学期的列,而行是学生
在这一点上,我假设您需要设置行约束,但我不知所措。任何方向将不胜感激。
python - igraph 不能使用 GLPK
我刚刚编写了一个 python 脚本来使用 igraph 模块执行优化模块,这个函数使用了 GLPK 库,但是即使在安装了 python-glpk 和几乎所有与 glpk 相关的包之后我也会收到这个错误:
这是脚本:
linear-programming - 使用 meth=GLP_PRIMAL 与 meth=GLP_DUALP 的 GLPK 单纯形行为
我有一个没有目标函数的线性程序。所以我只是想测试一下它的可行性。我正在使用 GLPK api for simplex 来做到这一点。当我使用默认方法 (meth=GLP_PRIMAL) 运行单纯形时,求解器无法在 100000 次迭代中收敛(这是我设置的限制)。但是,当我使用 GLP_DUALP 方法时,经过几次迭代后,我收到消息“警告:双重退化;切换到原始单纯形”,并且它继续在合理数量的迭代中收敛。
所以我的问题是,如果它最终在两种情况下都使用原始单纯形,为什么它在第一种情况下不收敛。可能会发生什么。
提前致谢。
ampl - GUSEK 中的 TSP 时间窗口
我正在尝试做一个程序,我有 9 个地方可以访问,每个地方都有一个时间窗口可以访问,程序中的 [a,b]。每个城市的时间是 p,我有一笔押金,我从一辆车开始,我也需要完成押金。我不需要在同一天访问所有城市。到那时,这就是我所拥有的,但程序说“p”没有定义。也许您可以帮助我并告诉我一些有关如何操作的提示。
谢谢你。
ampl - 当 LP 在 MathProg 中不可行时打印完全不同的东西
我正在使用 MathProg(一种特定于 GLPK 库的语言,类似于 AMPL 的子集)来查找图顶点的拓扑排名。这是我的线性编程课的作业。这是一个介绍性练习,以确保我们可以制定一个简单的线性程序并使用 GLPK 解决它。
我编写了一个 Perl 脚本,它在 MathProg 中为给定的图形生成线性程序。它通过 打印变量的值(顶点等级)printf
。如果可行,那正是我想要的;否则它会打印全零,但我只想打印Infeasible, has cycles or loops.
.
我设法以一种骇人听闻的方式做到了(见下文)。如何更优雅地做到这一点,而不重复可行性条件?有没有一种方法可以检测不依赖于正在解决的问题的不可行性?
我试图声明param Feasible binary := (exists{i in V} v[i] >= 1) or card(E) = 0;
,但 GLPK 拒绝了它Model processing error
。我之前声明的时候solve
,它说operand preceding >= has invalid type
,之后的时候,它说expression following := has invalid type
。我正在寻找常见编程语言中的变量之类的东西。
java - Glpk java 和 .mod 文件
我有一个 .mod 文件,我可以在 java 中运行它(使用 netbeans)。该文件从另一个文件 .dat 中获取数据,因为开发它的人使用了 GUSEK。现在我们需要在java中实现它,但是我不知道如何将数据放在.mod文件中的K常量中。
没关系,可以通过数据库查询或者文件读取。
我对数学编程一无所知,我只需要向已经制作的 glpk 函数添加值。
这是 .mod 函数:
这是Java代码:
我在控制台中得到了这个:
希望有人能帮忙,谢谢。
java - Glpk java输出
如何在控制台或文件上打印 java-glpk 中所有已解决的问题?
像这样:(此输出来自 gusek)
我的 java 代码中的侦听器(GlpkCallback.addListener(this) 和 GlpkTerminal.addListener(this))只返回这个:
希望有人可以提供帮助。
这是我的 Java 代码: https ://jsfiddle.net/ilucasrds/enok1h5k/3/