optimization - Julia JuMP 中的多维字符串变量
问题描述
我在 JuMP 中定义多维变量,但是,为了便于操作,我要求索引是字符串。一些指数可能不明显。如何在允许重复元素的同时在 JuMP 中设置多维变量?
我已经尝试将变量定义为字符串变量。但是,一旦变量的索引数或维度数超过 3,则错误表明索引应为 ::Int64 类型。
Set1 = Set{String}(["One", "Two", "Three"])
Set2 = Set{String}(["This", "That", "Where", "There"])
Set3 = Set{String}([1,2,3,4,5])
Set4 = Set{String}(["Where", "There"])
@variable(model, x[Set1, Set2, Set2, Set3, Set4] >= 0)
这给出了索引不是类型 ::Int64 的错误,因为索引超过了维度 3。
这工作正常:
@variable(model, y[Set1, Set2] >= 0)
为了限制维度,我尝试将变量设为二维,如下所示:
@variable(model, x[Set1, [Set2, Set2, Set3, Set4]] >= 0)
但是,这给出了索引重复的错误(Set2)。
是否有适当的解决方法或语法更正?
解决方案
在评估解决方案中的集合和数组后,我发现如果索引描述为“集合”以外的内容,则不会给出错误。
因此,为了使多维变量具有字符串索引,请将索引声明为数组而不是集合。
推荐阅读
- unix - - 在“tar -czf - 目录”中代表什么?
- oracle-apex - oracle apex 中两个页面之间的动态操作
- amazon-web-services - 使用 AWS Gateway 长时间运行的作业 - Lambda - RDS
- mysql - mysql。8.0.19。匹配给定查询的最佳索引
- ios - dyld:库未加载用于设备的 XCFramework,但可与模拟器一起使用
- sql - 由于列“Id”,链接服务器无法插入表。用户无权写入该列
- python - 规范化 Numpy 数组
- python - 在我的 sql 连接器 python 中创建表错误
- sql - 在SQL中按某列分组后如何按日期聚合总和过滤计算?
- r - 无法在 R 中将数字转换为日期