opl - 如何在 OPL 中反映 3 维参数的数据
问题描述
我愿意在我的 LP 项目中使用 3D 参数。但是,我无法以正确的方式读取参数的数据。是否可以通过使用 Excel 或在 .dat 文件中以矩阵形式写入参数值来获取数据。此外,其他潜在的解决方案可能会有所帮助。
float rt[B][P][Z]=...; //Response time of boat type b at port p to zone z
解决方案
好吧,3dim 数组用于 3 个索引的所有组合,而 excel 是 2dim 表格格式,因此在您开始编写内容的过程中,您无法直接从 excel 读取 3dim 数组。3dim 是否意味着您确实需要所有组合或一些组合。如果稍后,如果某些组合存在 B/P/Z,那么您可以对三元组使用元组格式...元组类型的声明类似于
tuple BPZ {int B;
float P;
float Z};
然后你用这种类型声明数据,比如
{BPZ} myData = ...;
然后在excel中你有一张包含所有三胞胎的表格。
如果第一个(所有组合都有数据),那么另一种方法是让每个 PZ 2dim 数组/表/矩阵在 excel B 次中......乏味,但如果您不手动创建数据而是以编程方式 = 在 Python 中创建数据是可行的您可以使用 openpyxl(https://openpyxl.readthedocs.io/en/stable/ - 我已经使用它,它非常好/直截了当),然后使用 DOOPL 将 OPL/Python 放在一起(https://developer.ibm .com/docloud/blog/2018/09/26/opl-and-python/ + https://pypi.org/project/doopl/)。你可以在任何情况下使用三元组/元组,当所有组合都存在时,但它可能很有价值,所以这取决于你想要的 B P Z 的大小......
推荐阅读
- python - 英特尔实感 - 在两个 numpy 数组中对齐深度和颜色
- python - discord.ext.commands.errors.CommandNotFound:找不到命令“平衡”
- php - 具有 enctype 的表单在请求中返回空文件
- java - 如何将复杂 Map 表示为 Class.declaredMethod parameterType 的参数参数?
- javascript - 如何检查具有特定类名的元素是否可见?
- plotly - Plotly Treemap 不适用于 go.Treemap,但适用于 plotly.express?
- python - 在使用 api.get_status /Python 时显示 in_reply_to_status_id
- matlab - 编写一个函数文件,返回输入向量的正分量之和和负分量之和
- r - 如何在我的数据框中获取 R 向量属性作为变量?
- python - 谁能帮我解决径向分布函数的问题?