问题标签 [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.

0 投票
1 回答
1298 浏览

java - GLPK-Java 解决 MILP 类型问题

虽然我已经知道没有太多关于使用 GLPK-Java 库的文档,但我还是要问......(不,我不能使用另一个求解器)

我有一个涉及调度的基本问题。学生在有一些基本限制的情况下学习一学期的课程。

示例问题是:

我们以 CPLEX 格式给出的示例如下所示:

我可以通过 glpsol 命令通过求解器运行它并让它求解,但我需要使用 API 编写它。我从来没有真正使用过线性规划,文档还有一些不足之处。虽然这充其量只是简单化,但真正的问题涉及解决 12 个学期的 600 名学生,他们必须参加 18 门课程中的 12 门课程,其中某些课程仅在某些学期可用,而某些课程有先决条件。

我需要帮助将简单的问题转换为使用 API 的编码示例。我假设一旦我可以看到非常简单的问题如何映射到 API 调用,我就可以弄清楚如何为更复杂的问题创建应用程序。

从库中的示例中,我可以看到您设置了在这种情况下为学期的列,而行是学生

在这一点上,我假设您需要设置行约束,但我不知所措。任何方向将不胜感激。

0 投票
1 回答
334 浏览

ampl - 如何使用 GLPK 在 TSP 中创建新的约束

我使用这个示例TSP来计算旅行。

但是如何创建新的约束?

想象一个简单的例子,我有 5 个城市,但是每个城市都没有道路,所以我想用新的限制来消除没有路段,我在 GLPK 中是怎么做的?

0 投票
1 回答
592 浏览

ampl - 如何在GLPK中读取带有坐标的数据文件

我用这个例子

为城市生成随机位置

如何读取带有GLPK坐标的数据文件以及如何格式化?

0 投票
2 回答
1262 浏览

python - igraph 不能使用 GLPK

我刚刚编写了一个 python 脚本来使用 igraph 模块执行优化模块,这个函数使用了 GLPK 库,但是即使在安装了 python-glpk 和几乎所有与 glpk 相关的包之后我也会收到这个错误:

这是脚本:

0 投票
1 回答
1446 浏览

linear-programming - 使用现有的线性规划工具查找所有替代的基本解决方案

我必须找到一些微小的线性规划问题的所有基本解决方案。

这是一个示例(采用 lp_solve 格式):

所有2个基本解决方案:

  • x1 = 0.2, x2 = 0.8
  • x1 = 0.8, x2 = 0.2

当然,有一种方法可以找到替代解决方案,但我真的更喜欢使用现有的库而不是制作我自己的单工代码。

我使用 Python 作为我的编程语言,并希望lp_solveGLPK的 C API 中有一些方法可以做到这一点。

谢谢。

0 投票
1 回答
440 浏览

linear-programming - 使用 meth=GLP_PRIMAL 与 meth=GLP_DUALP 的 GLPK 单纯形行为

我有一个没有目标函数的线性程序。所以我只是想测试一下它的可行性。我正在使用 GLPK api for simplex 来做到这一点。当我使用默认方法 (meth=GLP_PRIMAL) 运行单纯形时,求解器无法在 100000 次迭代中收敛(这是我设置的限制)。但是,当我使用 GLP_DUALP 方法时,经过几次迭代后,我收到消息“警告:双重退化;切换到原始单纯形”,并且它继续在合理数量的迭代中收敛。

所以我的问题是,如果它最终在两种情况下都使用原始单纯形,为什么它在第一种情况下不收敛。可能会发生什么。

提前致谢。

0 投票
1 回答
457 浏览

ampl - GUSEK 中的 TSP 时间窗口

我正在尝试做一个程序,我有 9 个地方可以访问,每个地方都有一个时间窗口可以访问,程序中的 [a,b]。每个城市的时间是 p,我有一笔押金,我从一辆车开始,我也需要完成押金。我不需要在同一天访问所有城市。到那时,这就是我所拥有的,但程序说“p”没有定义。也许您可以帮助我并告诉我一些有关如何操作的提示。

谢谢你。

0 投票
1 回答
256 浏览

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。我正在寻找常见编程语言中的变量之类的东西。

0 投票
2 回答
783 浏览

java - Glpk java 和 .mod 文件

我有一个 .mod 文件,我可以在 java 中运行它(使用 netbeans)。该文件从另一个文件 .dat 中获取数据,因为开发它的人使用了 GUSEK。现在我们需要在java中实现它,但是我不知道如何将数据放在.mod文件中的K常量中。

没关系,可以通过数据库查询或者文件读取。

我对数学编程一无所知,我只需要向已经制作的 glpk 函数添加值。

这是 .mod 函数:

这是Java代码:

我在控制台中得到了这个:

希望有人能帮忙,谢谢。

0 投票
1 回答
408 浏览

java - Glpk java输出

如何在控制台或文件上打印 java-glpk 中所有已解决的问题?

像这样:(此输出来自 gusek)

我的 java 代码中的侦听器(GlpkCallback.addListener(this) 和 GlpkTerminal.addListener(this))只返回这个:

希望有人可以提供帮助。

这是我的 Java 代码: https ://jsfiddle.net/ilucasrds/enok1h5k/3/