问题标签 [mosel]
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 - 如何在 Java 中使用 Fico Xpress (Mosel)?
我已经使用 Xpress 创建了一个优化模型,现在我想通过我的 Java 代码访问它。在官方 Xpress 帮助页面(https://www.fico.com/fico-xpress-optimization/docs/dms2019-01/mosel/UG/dhtml/moselugC2_sec_secc2java.html)上,它说使用
import com.dashoptimization.*;
但根据我对 Java 导入的理解,为此我需要 dashoptimization.jar 文件。此外,Eclipse 表示无法解决导入问题。但是我在哪里可以找到要添加到我的项目中的 dashoptimization.jar 文件?我上网查了一下,没找到。还是导入有其他问题?
谢谢你的帮助!
optimization - 运算符类型与 Mosel 不兼容
我开始使用 Xpress Fico 工作台。model
我试图以这种方式在文件中定义一个简单的模型:
当我尝试构建文件时,我收到以下错误
有什么建议可以解决这个问题吗?
mosel - Xpress mosel 中的 abs 和 mpvar^integer 错误
这是我的代码,并且:
这是代码的错误声明。
我该如何解决这些错误?
linear-programming - 在 Mosel 中对决策变量求平方
在我的问题中,我想最小化决策变量 * LARGE_CONSTANT 的平方和。平方的原因是激励求解器平均分布决策变量;如果我必须使用恐慌变量,我想在一组位置中平等地使用它们。
一些代码(诚然不足以重现),如下:
但是,这会产生错误:Mosel: E-101...运算符类型不兼容(mpvar' ^
未定义整数)。
删除 ^ 使问题正常工作。
我很震惊为什么我不能解决这个问题?事实上,我在文档中看到的示例看起来像是对目标函数求平方的成功尝试。例如,FICO Xpress 用户指南的第 186 页似乎是这样做的:
我错过了什么!!把我的头发扯下来谢谢...
mathematical-optimization - Xpress Mosel 为所有行返回零
我是 Xpress Mosel 和线性规划的绝对初学者,所以如果我犯了任何明显的错误,请原谅我。话虽如此,我目前正在解决问题并在 Xpress Workbench 中实施它。
问题:
假设有一个小型国际象棋制造商制造国际象棋A和B的场景。国际象棋A的价格为30美元,而国际象棋B的价格为40美元。这家国际象棋制造商收到了 10 家零售商的订单,他们想同时购买这两种国际象棋,每个零售商为每件出售的国际象棋产生不同的运费。如果棋具制造商只能向每个零售商销售最少 100 件和最多 300 件,那么该制造商应该向每个零售商销售多少件才能实现利润最大化?
如果我没记错的话,目标函数是:
利润 = (30 * x1 - s * x1) + (40 * x2 - s * x2)
其中 x1 是国际象棋 A 的数量,X2 是国际象棋 B 的数量,s 是运费。
约束是:
x1, x2 <= 300
x1, x2 >= 100
x1, x2 >= 0
每个零售商的运费为:
下面的代码显示了我在 Mosel 中实现这个问题的尝试。
其中 CHESSA 和 CHESSB 是要出售的棋盘数量,PROFITOFCHESSA 和 PROFITOFCHESSB 是出售每盘棋的利润,S_COSTS 是运费。
但是,运行此问题会为所有零售商返回零。我非常感谢一些关于我在这里做错了什么的反馈。
mathematical-optimization - (FICO Xpress) 是否可以指定我想通过约束获得的正面和负面结果的数量?
我目前正在尝试创建一个模型,其中将目标函数的结果应用于问题中的所有行时将用于推荐目的。
该模型的目的是使用 PRINSTANDIFF 中的值来决定投资哪个选项。如果结果值为正,则选项 1 (INVESTMENT1) 是更好的选择,而如果值为负,则选项 2 (INVESTMENT2) 是更好的选择。更好的选择。
我的问题是,有没有办法控制我可以通过约束从模型中获得的正值和负值的数量?理想情况下,我希望将正面和负面的数量保持在 6:4 的最小比例和 7:3 的最大比例。
mosel - 我将 d 定义为二进制变量,但解是 xpress mosel 中 0 和 1 之间的连续变量
我试图为整数编程建模,但即使我将 d 和 v 声明为二进制变量,它也给了我 0 到 1 之间的连续变量。有人可以看看吗?提前致谢
indexing - 在 Xpress Mosel 中的集合中索引变量
我正在尝试解决我已经用 Python 库解决的问题的线性松弛,以查看它在 Xpress Mosel 中的行为是否相同。
我使用的一个索引集不是典型的 c=1..n 而是一组集,这意味着我已经采用了 1..n 集并创建了所有可能的子集组合(例如集合1..3 创建集合集{{1},{2},{3},{1,2},{2,3},{1,2,3}}
)。
在我的约束之一中,索引之一必须在这些子集中的每个子集中运行。Python中的相应代码如下(使用Gurobi库):
(如果上面的代码令人困惑,我怀疑是这样)我要编写的约束是:
z(i,j)>= sum_{h in C1}(x(i,h)-x(j,h))
C中的所有C1
其中 C1 是每个子集。
有没有办法在摩泽尔做到这一点?
modeling - 如何在 Xpress IVE 中声明约束?
我正在尝试在 Xpress IVE 中编写模型,但是出现 错误 101:运算符的不兼容类型('mpvar' * 'mpvar' not defined)。错误。
我试图写这个约束,但我做不到。 字符串上的两个连续字符必须定位到网格的相邻节点。
我认为,我的模型是真的,我所有的决策变量都是真的。
谁能帮我解决这个问题?这是我的代码: