 |
OR-Tools
8.1
|
Go to the documentation of this file.
14 #ifndef OR_TOOLS_GLOP_VARIABLE_VALUES_H_
15 #define OR_TOOLS_GLOP_VARIABLE_VALUES_H_
91 bool update_basic_variables);
111 template <
typename Rows>
125 return variable_values_[
col] -
130 variable_values_[
col];
134 const GlopParameters& parameters_;
135 const CompactSparseMatrix& matrix_;
137 const VariablesInfo& variables_info_;
138 const BasisFactorization& basis_factorization_;
147 mutable StatsGroup stats_;
148 mutable ScatteredColumn scratchpad_;
151 ScatteredColumn initially_all_zero_scratchpad_;
156 template <
typename Rows>
160 bool changed =
false;
161 const Fractional tolerance = parameters_.primal_feasibility_tolerance();
162 for (
const RowIndex
row : rows) {
163 const ColIndex
col = basis_[
row];
165 if (GetUpperBoundInfeasibility(
col) > tolerance) {
167 }
else if (GetLowerBoundInfeasibility(
col) > tolerance) {
170 if (new_cost != (*objective)[
col]) {
172 (*objective)[
col] = new_cost;
181 #endif // OR_TOOLS_GLOP_VARIABLE_VALUES_H_
StrictITIVector< ColIndex, Fractional > DenseRow
void RecomputeBasicVariableValues()
void ResetPrimalInfeasibilityInformation()
void UpdateGivenNonBasicVariables(const std::vector< ColIndex > &cols_to_update, bool update_basic_variables)
Fractional ComputeSumOfPrimalInfeasibilities() const
void UpdatePrimalInfeasibilityInformation(const std::vector< RowIndex > &rows)
StrictITIVector< RowIndex, ColIndex > RowToColMapping
void ResetAllNonBasicVariableValues()
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
const DenseRow & GetVariableUpperBounds() const
#define SCOPED_TIME_STAT(stats)
const DenseRow & GetVariableLowerBounds() const
Fractional ComputeMaximumPrimalResidual() const
const Fractional Get(ColIndex col) const
void SetNonBasicVariableValueFromStatus(ColIndex col)
VariableValues(const GlopParameters ¶meters, const CompactSparseMatrix &matrix, const RowToColMapping &basis, const VariablesInfo &variables_info, const BasisFactorization &basis_factorization)
void Set(ColIndex col, Fractional value)
std::string StatString() const
void UpdateOnPivoting(const ScatteredColumn &direction, ColIndex entering_col, Fractional step)
const DenseBitColumn & GetPrimalInfeasiblePositions() const
StrictITIVector< RowIndex, Fractional > DenseColumn
const DenseColumn & GetPrimalSquaredInfeasibilities() const
const DenseRow & GetDenseRow() const
Fractional ComputeMaximumPrimalInfeasibility() const
Bitset64< RowIndex > DenseBitColumn
bool UpdatePrimalPhaseICosts(const Rows &rows, DenseRow *objective)
std::string StatString() const