问题标签 [gams-math]
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.
modeling - GAMS 与 AMPL 代数建模语言的比较
我很想从 GAMS 和 AMPL 的用户那里获得关于这些语言的优缺点的意见。
syntax - 我如何在 x(i,j) 中使用 $ - GAMS
我试过这个&不起作用,并给出了类似的错误。
等式 ST3(i$(ord(i) LE (5) 和 ord(i) GE (1)),k$(ord(k) LE (19) 和 ord(k) GE (1)));
* * 10,185 美元 195,96 美元
ST3(i$(ord(i) LE (5) and ord(i) GE (1)),k$(ord(k) LE (19) and ord(k) GE (1))) ..
* * $148,8 $36 $409
IN(i,k) + sum(j, X(j,k+1)*p(i,j)) + W(i,k+1) - W(i,k) - sum(j, X( j,k)*p(i+1,j)) - IN(i+1,k) =E=0;
8 ')' 预期
10 ',' 预计
36 '=' 或 '..' 或 ':=' 或 '$=' 运算符预期语句的其余部分被忽略
96 标识符和文本之间需要空格(-或-标识符中的非法字符)(-或-检查前一行是否缺少';')
148 尺寸不同 - 符号被声明的更多/更少索引引用
185 设置标识符或“*”预期
195 符号用不同的类型重新定义
409 Unrecognizable item - 跳到寻找一个新的语句寻找一个';' 或重新开始的关键词
我该如何修复这些代码部分?
matrix - GAMS,矩阵直接赋值
我想将值分配给 GAMS 中的 3-D 表。但它似乎不像在 Matlab 中那样工作......运气好吗?代码如下,问题出在最后几行:
recursion - 如何在 GAMS 中递归定义参数?
我需要定义一组具有自然递归关系的参数。
这是一个 MWE,我尝试在一组(九个)参数 S 上定义阶乘函数:
“delta1”是一个关系,包含按排序顺序排列的元素对,相差 1。从逻辑上讲,f 的定义与阶乘函数的定义相匹配(对于输入 1 到 9),但 GAMS 似乎不喜欢 f 是递归定义。GAMS 编译的输出如下所示:
问题:
是否可以在 GAMS 中递归定义参数?如果没有,什么是解决方法?
(PS 有足够代表的人应该创建一个标签“GAMS”并将其添加到这个问题中。)
modeling - 游戏如何写方程?
我想写下这些方程:
我知道我应该使用 SUM 函数,但我不确切知道但我无法转换它们。我怎样才能把它们写在方程式部分?这是我的代码的一部分:
loops - 如何在 GAMS 中的循环中编写循环
我有一个确定性模型,我想每次更改两个参数时多次运行我的模型Var1
,并Var2
查看它们如何影响结果。我可以这样总结我的模型:
其中 x,y 是变量,var1、z1、var2 和 z2 是参数。我想为 var1 尝试 10 个不同的值,为 var2 尝试 10 个不同的值并得到结果。
请告诉我最好的方法是什么?
c++ - 将 c++ 链接到游戏软件
我想使用 createprocess() 函数将 c++ 链接到 GAMS 软件。我使用了这段代码,但它只是打开了 GAMS 软件。我希望程序在打开 GAMS 软件后自动运行 file.gms:
请帮我。非常感谢。
linux - GAMS,如何将标准输出保存到 linux shell 中的文件中?
我想知道如何将 GAMS 运行进程的标准输出保存在文件中?.lst 文件很大,我只需要求解过程。
cplex - GAMS CPLEX 理解 IIS 报告
我将 GAMS 与 CPLEX 优化器一起使用。在 CPLEX 优化器中有一个选项“iis”,以便它生成不可约不一致的约束集。如果我将 iis 选项设置为 1(或者我认为是 0 以外的任何值,但我只测试了 0 和 1),则会列出 iis 方程和变量。
但我的问题是这个列表没有以有用或易于使用的方式给出。它不会在作为 IIS 一部分的方程式集中列出特定方程式,而是列出代码中可以找到该方程式的行。但是这条线是由GAMS自己生成的,以这种形式来理解,既不实用也不友好。
例如,我收到一个 iis 报告,其中包含一堆行,每行如下所示:
=E'upper:'445793'<7432。
但我知道可以将所有这些乱七八糟的内容翻译成更用户友好的内容,例如:
Upper: purchase_limit(12385, 972130, t443) < 7432.83
事实上,我以前什至收到过这种格式的结果。但我似乎无法复制这种更友好的格式。
我联系了 GAMS 的支持,但响应很慢,所以我想我会问这个社区。
谢谢!
java - 在 JRuby 中加载 GAMS Java API
我正在开发一个需要能够与 GAMS 交互的 Java/JRuby 项目。我知道我们可以使用 Java API,但如果可能的话,我真的希望能够使用 JRuby 访问它,因为我们希望最终添加 DSL 和其他一些复杂性,我对必须在纯Java。
按照 GAMS 的官方 Java API文档,我已经下载并设置了从命令行运行 GAMS 所需的一切,但我不知道如何在 LD_LIBRARY_PATH 中包含 GAMS 目录并仍然运行 JRuby irb。当我跑
export LD_LIBRARY_PATH=/home/wikk/Downloads/gams24.0_linux_x64_64_sfx
然后尝试用 JRuby 运行 irb,我得到了
jruby: /home/wikk/Downloads/gams24.0_linux_x64_64_sfx/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found (required by jruby)
我认为这是文档要求我运行调用 API 的 Java 程序的方法,是否有某种方法可以在 irb 中设置 LD_LIBRARY_PATH,但在导入所有 Java 类文件之前?如果我不设置 LD_LIBRARY_PATH,我可以成功地做到这一点,但是当我尝试创建一个新的 GAMSWorkspace 对象时,GAMS 告诉我它找不到主程序:
我做错了吗?或者 API 是否需要一些在 JRuby 中未实现的 Java 功能?