|
20 | 20 | #include "util/HighsCDouble.h" |
21 | 21 | #include "util/HighsInt.h" |
22 | 22 | #include "util/HighsRandom.h" |
23 | | -#include "util/HighsSparseVectorSum.h" |
24 | 23 |
|
25 | 24 | class HighsLpRelaxation; |
26 | 25 | class HighsTransformedLp; |
@@ -119,20 +118,20 @@ class HighsCutGeneration { |
119 | 118 |
|
120 | 119 | /// Single Node Flow Relaxation for flow cover cuts |
121 | 120 | struct SNFRelaxation { |
122 | | - HighsInt numNnzs; // number of nonzeros |
123 | | - std::vector<HighsInt> coef; // coefficients of cols in SNFR |
124 | | - std::vector<double> vubCoef; // coefficients in vub of cols in SNFR |
125 | | - std::vector<double> binSolval; // vub bin col sol in SNFR |
126 | | - std::vector<double> contSolval; // real sol in SNFR |
127 | | - std::vector<HighsInt> origBinCols; // orig bin col used in SNFR |
128 | | - std::vector<HighsInt> origContCols; // orig cont cols used in SNFR |
129 | | - std::vector<double> aggrBinCoef; // aggr coef of orignal bin-col in SNFR |
130 | | - std::vector<double> aggrContCoef; // aggr coef of original cont-col in SNFR |
131 | | - std::vector<double> aggrConstant; // aggr original constant in SNFR |
132 | | - |
133 | | - std::vector<HighsInt> flowCoverStatus; // (+1) in fcover (-1) not in fcover |
134 | | - double rhs; |
135 | | - double lambda; |
| 121 | + HighsInt numNnzs; // |N-| + |N+| |
| 122 | + std::vector<HighsInt> coef; // (+-1) coefficient of col in SNFR |
| 123 | + std::vector<double> vubCoef; // u_j in y'_j <= u_j x_j in SNFR |
| 124 | + std::vector<double> binSolval; // lp[x_j], y'_j <= u_j x_j in SNFR |
| 125 | + std::vector<double> contSolval; // lp[y'_j] in y'_j <= u_j x_j in SNFR |
| 126 | + std::vector<HighsInt> origBinCols; // orig x_i, y'_j <= u_j x_j in SNFR |
| 127 | + std::vector<HighsInt> origContCols; // orig y_i used to make y'_j in SNFR |
| 128 | + std::vector<double> aggrBinCoef; // c_i row coef of x_i in orig aggrrow |
| 129 | + std::vector<double> aggrContCoef; // a_i row coef of y_i in orig aggrrow |
| 130 | + std::vector<double> aggrConstant; // constant shift used in SNFR transform |
| 131 | + |
| 132 | + std::vector<HighsInt> flowCoverStatus; // (+1) in f-cover (-1) notin f-cover |
| 133 | + double rhs; // in \sum_{j \in N+} y'_j - \sum_{j \in N-} y'_j <= b |
| 134 | + double lambda; // in sum_{j in C+} u_j - sum_{j in C-} u_j = b + lambda |
136 | 135 | }; |
137 | 136 |
|
138 | 137 | private: |
|
0 commit comments