首页 > 解决方案 > 线性规划:如果数组中的值超过某个阈值,如何将决策变量(二进制)变为 1

问题描述

我有一个数组,它包含一个关于决策变量的线性表达式。假设决策变量采用数组 = [1.7, 0.3, 0] 的值。现在我想要的是以下内容:

1) 如果上述数组中的任何值 > 0.5,则决策变量:y1 (binary) = 1,否则为 0。所以 y1 应该是 [1, 0, 0]

2) 如果上述数组中的任何值 > 0.5,则决策变量:y2(实值)= 值,否则为 0。因此 y2 = [1.7, 0, 0]

3) 如果数组中的任何值 > 0 且 <= 0.5,则决策变量:y3(二进制)= 1,否则为 0。因此 y3 = [0, 1, 0]

我知道大 M 公式可以提供帮助,但我正在努力寻找方法。有人可以帮我制定以上三点吗。我正在研究 pyomo 和 gurobi 来解决问题。

标签: optimizationlinear-programmingpyomogurobiinteger-programming

解决方案


推荐阅读