cplex - CPLEX 中带索引的模运算
问题描述
我正在使用 CPLEX,我想对“d”索引使用模运算,我想将 d+8 设置为 28 的余数。例如,如果 d 是 21,那么 (d+8) 的值应该是 29 % 28=1 。“x”是二元决策变量。
我想要这样的东西:
forall(e in employee, d in day) x[e][(d+8)%28]==x[e][d];
但这给了我一个错误。我怎样才能以适当的方式做到这一点?如果你能帮助我,我很高兴。
解决方案
{string} employee={"me"};
range day=1..28;
dvar boolean x[employee][day];
minimize sum(e in employee,d in day) x[e][d];
subject to
{
x["me"][1]==1;
forall(e in employee, d in day) x[e][(d-1+8)%28+1]==x[e][d];
}
{int} x1PerEmployee[e in employee]={d | d in day : x[e][d]==1};
execute
{
writeln(x1PerEmployee);
}
给
[{1 5 9 13 17 21 25}]
推荐阅读
- c++ - 以编程方式测量Linux中带宽的正确方法
- r - 在 R 中为 Keras 丢失了 numpy
- python - 如何使用字节访问字符串?
- r - 为什么使用 R 包鼠标在插补过程中显示错误消息?错误消息:$ 运算符对原子向量无效
- php - 如何在托管服务提供商的服务器上存储敏感信息?
- c++ - 为什么在 glfw 窗口上没有使用 opengl 显示位图图像?在 C++ 中读取位图图像文件时出现问题
- azure-devops - 如何在 azure devops 中为工作项状态添加新的自定义类别?
- javascript - 在首发主题shopify的购物车页面中添加为数量下拉列表
- java - 无法在 Android Studio 中发送消息
- android - 这个颤振代码不起作用有什么原因吗?