gams-math - 如何将 if 语句转换为线性方程?
问题描述
我想将此 if 语句转换为线性方程。
for i,j -> 1 to n
if D[i]>D[j] and f[i] > s[j] then w[i]+=c[j]
下面这行是我目前想到的,但我不知道如何写剩下的。C(j) 必须乘以一个短语(该短语是代码条件) 如果该短语(在下面的括号中)的结果为 1,则将 C(j) 添加到 w(j),如果为 0,则执行不要将其添加到 w(j)。你能告诉我如何写那个条件,如果条件为真,它变成 1,如果条件为假,它变成 0?
sum( j, c[j]*(?) )
解决方案
你说的“被一个短语相乘”是什么意思?短语是模型中的参数还是变量?C(j) 是数据还是变量?根据您的答案,您应该将二进制变量添加到模型中以注册该短语的结果,然后您必须根据该二进制变量制定 c(j) 和 w(j) 的条件和。
推荐阅读
- javascript - 单击reactjs在数组中添加和删除项目
- excel - Excel 公式在我写一个特定单词后在同一个单元格中写一个单词
- python - 插入数据库Django时出错
- ios - 优先于avfoundation播放器节点的背景音乐(iTunes)
- cordova - 升级到 xcode 9 后,cordova 应用程序将无法构建,错误 70,需要具有推送通知功能的配置文件
- php - 在复杂的 PHP 数组中搜索值
- javascript - 保存到谷歌地图
- php - PHP in_array 问题
- python - 如何在python中将web元素添加到列表中
- rest - 在此处字符串标题之后但在行尾之前不允许使用任何字符