grbmodel :: AddgenconStrindicator()


grbmodel :: AddgenconStrindicator()

添加一个新的类型的全新约束grb_genconstr_indicator.到一个模型。

指标约束<span> $ </ span> z = f \ lightarrow a ^ tx \ leq b <span> $ </ span>指出,如果二进制指示器变量<span> $ </ span> z <span> $ </ span>等于<span> $ </ span> f <span> $ </ span>, 在哪里<span> $ </ span> f \ in \ {0,1 \} <span> $ </ span>,然后是线性约束<span> $ </ span> a ^ tx \ leq b <span> $ </ span>应该持有。另一方面,如果<span> $ </ span> z = 1-f <span> $ </ span>,可以违反线性约束。也可以指定线性约束的感觉<span> $ </ span> = <span> $ </ span>或者<span> $ </ span> \ geq <span> $ </ span>

请注意指示器变量<span> $ </ span> z <span> $ </ span>约束将被迫成为二进制文件,而独立于如何创建它。

多签名可用。

grbgenconstr. AddgenconStrindicator. GRBVAR. 宾VAR,
宾Val,
const grblinexpr& expr,
char 感觉,
双倍的 RHS,
细绳 名称=“”)
    论点:

    宾VAR.:二进制指示器变量。

    宾Val.:将要满足线性约束的二进制指示器变量的值(<span> $ </ span> 0 <span> $ </ span>或者<span> $ </ span> 1 <span> $ </ span>)。

    expr.:指示灯触发的线性约束的左侧表达式。

    感觉:对线性约束的感觉。选择是grb_less_equal.grb_equal., 或者grb_greater_equal.

    RHS.:线性约束的右侧值。

    姓名(可选):新一般约束的名称。

    返回值:

    新的总约束。

grbgenconstr. AddgenconStrindicator. GRBVAR. 宾VAR,
宾Val,
const grbtempconstr& 约束,
细绳 名称=“”)
    论点:

    宾VAR.:二进制指示器变量。

    宾Val.:将要满足线性约束的二进制指示器变量的值(<span> $ </ span> 0 <span> $ </ span>或者<span> $ </ span> 1 <span> $ </ span>)。

    约束:临时约束对象定义由指示符触发的线性约束。临时约束对象是使用过载的比较运算符创建的。看GRBTEMPCONSTR.想要查询更多的信息。

    姓名(可选):新一般约束的名称。

    返回值:

    新的总约束。