Excel Solver中如何设置if A=1则B XOR C=1的可接受约束
Excel Solver 逻辑约束转换方案
首先确认前提:你提到的A、B、C均为二进制决策变量(取值仅为0或1,需要先在Solver的变量设置中指定为bin类型)。
要实现A=1时B XOR C=1的逻辑,只需要添加2个线性约束即可,不需要引入辅助变量或逻辑函数,兼容所有Solver求解算法:
- 约束1:
B + C ≥ A - 约束2:
B + C ≤ 2 - A
约束有效性说明
当A=1时:
约束1强制B+C≥1,约束2强制B+C≤1,因此B+C必须等于1,恰好符合“B和C仅能选中一个”的XOR要求。
当A=0时:
约束1变为B+C≥0(二进制变量天然满足),约束2变为B+C≤2(二进制变量天然满足),此时B、C的取值不受该规则限制,符合逻辑要求。
额外说明
如果使用带逻辑判断的IF函数写约束,仅能在选择「演化求解算法」时生效,运行速度慢且容易找不到最优解,优先推荐上述线性约束写法。
内容的提问来源于stack exchange,提问作者Vanessa
相关产品推荐
相关产品推荐

