擅长:python、mysql、java
<p><code>Model.logical_or</code>返回一个<em>表达式</em>,如果其中一个参数为true,则等于1<code>Model.if_then</code>需要<em>线性约束</em>,因此需要将表达式转换为约束,例如,write<code>(Model.logical_or(a,b) ==1)</code></p>
<p>在这个小示例中,我声明当a或b等于1时,c等于1(请注意,逻辑运算符(如logical_或logical_)和接受二进制变量时,无需在此处添加“==1”:</p>
<pre><code>m = Model()
[a,b,c] = m.binary_var_list(keys=['a', 'b', 'c'], name=str)
# if a or b then c
m.add(m.if_then(m.logical_or(a,b) == 1, c==1))
m.maximize(a+b)
m.solve()
m.print_solution()
</code></pre>
<p>结果是:</p>
<pre><code>objective: 2
"a"=1
"b"=1
"c"=1
</code></pre>