使用 Excel,对于所有 >0 的值返回 1,而不使用 IF

问题描述 投票:0回答:1

使用 Excel 中的求解器解决覆盖问题。 我有一个相邻单元格矩阵和一组二元决策变量。 我可以在决策变量和邻接矩阵的每一行中使用

sumproduct()
来告诉我某个单元格是否被特定解决方案覆盖。 如果我对决策变量的数量有限制,可以为 1,并且我想最大化覆盖单元格的数量,那么我需要计算有多少个 sumproduct 返回值 >0。 简单的答案是
=IF(<address> > 1, 1, 0)
,然后将它们相加,但求解器告诉我,任何带有
IF
的东西都不满足线性条件。 我还尝试在逻辑测试前使用
--
,如下所示,我得到了相同的错误......

enter image description here

enter image description here

有什么建议吗?

excel linear-programming solver
1个回答
0
投票

大致:

  • 将第
    N
    列中的项目以及您所做的其他声明覆盖到二进制变量中。
  • 添加列中这些变量为 LTE 的约束 (<=) to the adjacent values in column
    M

这就是线性化......最大化“覆盖”的总和

N    M
0 <= 0
1 <= 1
1 <= 4
1 <= 3
...

如果它变得更加复杂,我会切换到“真正的”线性编程框架。 ;)

© www.soinside.com 2019 - 2024. All rights reserved.