问题标签 [neos-server]

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 回答
292 浏览

variables - 在 NEOS 中使用 CBC MPS 输入显示变量

我正在尝试使用 NEOS 来解决使用 MPS 输入的线性程序。

MPS 文件很好,但显然您还需要一个“参数文件”来告诉求解器要做什么(最小/最大等)。但是,我在任何地方都找不到有关此在线的任何信息。

到目前为止,我已经让 NEOS 解决了一个最大化问题并显示了目标函数。但是我无法让它显示变量。

有谁知道我应该在参数文件中添加什么代码来告诉 NEOS/CBC 显示结果变量?

0 投票
0 回答
69 浏览

neos-server - 使用 NEOS 服务器变量求解 MILP 将不会显示

我已经向NEOS服务器提交了一个混合整数线性程序来解决。我正在使用CBC求解器AMPL commands。我的命令文件包含两行:

当我使用一个小数据集进行测试时,结果通过电子邮件发送给我,并且变量x显示正确。但是,当我使用更大的数据集时,我收到一封电子邮件,说工作已完成,但`x was not displayed in the email or when I logged in to the results page using my job数字/密码可变。

我怎样才能获得解决方案?非常感谢您的帮助!

0 投票
1 回答
669 浏览

ampl - AMPL:当命令文件中不能包含数据和模型命令时,如何使用 NEOS Server 打印变量输出?

我正在使用一个模型进行一些优化,其约束和变量的数量超过了学生版的上限,比如 AMPL,所以我找到了一个网页 [ http://www.neos-server.org/neos/ solvers/milp:Gurobi/AMPL.html]可以解决我的模型类型。

然而,我发现当使用解算器时,您可以提供命令文件(我假设它与 .run 文件相同),NEOS 服务器的文档告诉您应该查看输入文件的文档。我正在使用 AMPL 输入,根据 [ http://www.neos-guide.org/content/FAQ#ampl_variables]应该能够使用具有以下外观的命令文件打印决策变量:

问题是 NEOS 声称您不能添加:

命令进入 .run 文件,导致编译器找不到变量。

有谁知道解决这个问题的方法?提前致谢!

编辑:如果其他人有这个问题(我相信很多人都有基于我的互联网搜索)。尝试删除任何最终重置;来自 .run 文件的命令!

0 投票
1 回答
153 浏览

python - AMPL:数据集和规范中的一个大集

我现在正在做一个模型,我需要进行很大的调整。基本上我需要扩展我当前的集合 V,它是一组城市,成为一组城市和时间。例如,V 中的元素 Kir 必须从简单的 "Kir" 扩展到 "Kir1"、"Kir2"、...、"Kir72" 以表示城市 Kir 以及由数字指定的时间范围。

我已经开始将其定义为(在 .mod 文件中): set V; 将 K 设置在 V 内;

在 .dat 文件中,我很不确定如何写这个。如果没有简单的方法在集合 K 中包含“字符串”Kir,我想我会写:

例如。我的问题是我该怎么做?我可以包括城市名称 Kir 吗?具体来说,我已经定义了原始 V 集中城市之间距离的数据透视表。例如,城市 Kir 和 Sto 之间的原始集合 V 中的距离必须与扩展集合中 Kir1 和 Sto1 之间的距离相同。Kir1 和 Sto72 之间的距离也必须相同。原始距离必须相同,即与它所处的时间范围无关。在 AMPL 中是否有一种简单的方法可以做到这一点?

编辑:添加了标签 Python。我想这也可以在 Python 中实现。我已经设法定义了新的集合,使用:

例如。我被困在距离矩阵上

0 投票
1 回答
58 浏览

ampl - AMPL:目的地城市内的模型终端

我遇到了一个问题,我没有找到任何解决方案来阅读集的 AMPL 文档。

我想建模的是,一个城市,比如 Kir,必须有来自另一个城市的例如 9 个交付,例如 Sto。但是,这些货物必须在某些特定的航站楼到达 Kir ,每个航站楼每天只开放一小段时间(大约 2 分钟)。源节点也必须如此。必须从特定终端指定来自 Sto 的路线(因此可以在结果中“遵循”路径)。

我已经开始对集合使用“在 K 中设置 V”操作进行建模,但这要求 V 必须是相同的集合,或者 K 的子集,其中 K 是表示“节点”的集合 - Kir、Sto 等on 和 V 是终端“Terminal1”、“Terminal2”等名称的集合。

我已经开始检查例如定义为例如“设置 K 维 4”:

其中集合 K 表示应该从哪个城市(例如 Sto)驱动交付(例如 Kir),其中 Sto 的出发终端是 Terminal1,Kir 的交付终端是 Terminal2。这样做的缺点是必须手动指定大量组合(仅 Kir 就有大约 22 个终端等)。我也不知道如何对约束进行建模。例如我之前的“一维”集:

其中 V 是单独的城市集,H 是车辆集,maxVisits 表示从城市 i 到城市 j 的最大交付量,如果使用车辆 k 从 i 到 j 进行交付,则 x 为 1。我不明白如何使用四维集 K 对其进行建模。

问候,

0 投票
1 回答
112 浏览

ampl - AMPL:下标超出范围

各位优化师您好!

我在以下约束方面遇到了一些问题:

这自然会导致此约束在第一次循环时提供错误,因为 t-1 未定义(对我来说, l[i,0,c] 未定义。在哪里

并设置 T;(在 .mod 中)是一组定义为:

我试过这样做:

这给了我一个语法错误。我还尝试为所有可能的组合包含“let l[1,0,1] := 0”,这让我出错了

我也试过

在哪里

在 .dat 文件中(并且仅设置 TT; 在 .mod 中),这也给出了错误。有人知道如何做到这一点吗?

0 投票
1 回答
50 浏览

ampl - 需要改造以避免不可行

我正在林业行业进行优化,其中一组公司 C 可能会从收获区域集 I 中的某个分类集 A 中扣除一些木材。参数 x[I,J,V,T,C,A ] 变量表示从采伐区 I 到锯木厂 J 的流量,使用车辆 V 在时间 T 用于公司 C 和分类 A。

我遇到的麻烦是每个锯木厂都必须满足最低需求,d_minus。这是在:

问题是车辆 V 具有特定容量,模型如下:

然而,这会导致编译器抱怨约束 2 的不可能边界。例如

我使用 4 辆车,每辆车的容量为 40(我也尝试使用 400 和 1000,但错误仍然存​​在)。d_minus 参数介于 500 和 1000 之间。

我认为参数不应该太窄。使用 1000 人的容量,他们应该满足我认为 3 人的车队的需要。我倾向于“所有人”的约束是限制解决方案的原因,从而导致错误。我已经尝试对 Constraint2 使用“for all t in T, j in J”,但是它找不到 d_minus 的那些下标。有人有任何线索吗?

问候

0 投票
1 回答
430 浏览

ampl - 使用 AMPL + Neos 服务器仅打印非零结果

我正在做一个相对较大模型的优化模型。我将在这个模型中使用 15 个时间步,但现在当我测试它时,我只使用了 4 个。然而,即使比预期少 11 个时间步,模型仍然会打印 22 000 行变量,其中可能只有 100 行与0。

有没有人看到过去的方法?即一种使用 NEOS 服务器仅在变量名称和对应值大于 0 时打印的方法。

我测试的是:

同时使用 omit_zero_rows 0; 或省略_zero_rows 1;仍然打印每个结果,而不是高于 0 的结果。

我也试过:

但它给了我语法错误。在我用于 NEOS 服务器的 .run 文件中测试了两个(或者实际上是三个)变体。

0 投票
1 回答
79 浏览

python - 使用 NEOS 服务器的奇怪错误

我尝试使用 NEOS 服务器,但出现以下错误:

在此处输入图像描述

我使用 MINTO 求解器和 Gurobi 求解器得到了这个。我在工作中进行优化时没有收到此错误,但我确实使用我的家用电脑。有谁知道如何以通常的方式接收错误?

问候,

0 投票
1 回答
64 浏览

set - NEOS 服务器的模型数据和脚本文件中的 setof

在将我的 AMPL 公式提交到 NEOS 服务器时,为什么下面使用“setof”运算符的代码行在模型文件中可以正常工作,但在数据文件中却不行?

NEOS 服务器要求将代码分别分离为 .mod 、 .dat 和脚本文件。我已经看到let X := ...在脚本文件中使用的引用。这些文件有什么区别,放在哪里?

示例 使用 AMPL 的 steelT.x 文件,这第一块 2 个文件有效

而以下不起作用:

它返回错误

预期的 ; ( : 或符号上下文: set PROD := setof >>> { <<< i in DUMMYPROD} i;

更广泛的问题 一般来说,模型文件、数据文件和脚本文件属于什么?(还有 forparam和其他定义)处理这些的顺序是什么?当我阅读 AMPL 指南时,我可能会遗漏一些基础知识,但我没有找到这个(我从未参加过优化课程)。

关于 NEOS 服务器 “新” AMPL 中的 Constraint 编程逻辑的额外问题包括整个约束的条件和逻辑运算符。我不认为这些在 NEOS 中可用。还是他们(因为他们不为我工作)?有简单的解决方法吗?

谢谢!