Google OR-Tools
v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
invalid_indicators.h
Go to the documentation of this file.
1
// Copyright 2010-2025 Google LLC
2
// Licensed under the Apache License, Version 2.0 (the "License");
3
// you may not use this file except in compliance with the License.
4
// You may obtain a copy of the License at
5
//
6
// http://www.apache.org/licenses/LICENSE-2.0
7
//
8
// Unless required by applicable law or agreed to in writing, software
9
// distributed under the License is distributed on an "AS IS" BASIS,
10
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
// See the License for the specific language governing permissions and
12
// limitations under the License.
13
14
#ifndef ORTOOLS_MATH_OPT_CORE_INVALID_INDICATORS_H_
15
#define ORTOOLS_MATH_OPT_CORE_INVALID_INDICATORS_H_
16
17
#include <cstddef>
18
#include <cstdint>
19
#include <vector>
20
21
#include "absl/status/status.h"
22
23
namespace
operations_research::math_opt
{
24
25
// The maximum number of non-binary indicator variables to report.
26
constexpr
std::size_t
kMaxNonBinaryIndicatorVariables
= 10;
27
28
// Indicator constraints which are invalid because their associated indicator
29
// variables are not binary.
30
//
31
// This is used internally by solvers to return an error on Solve().
32
struct
InvalidIndicators
{
33
struct
VariableAndConstraint
{
34
int64_t
variable
;
35
int64_t
constraint
;
36
};
37
38
// Returns an error listing at most kMaxNonBinaryIndicatorVariables indicator
39
// constraints whose indicator variables are not binary. Returns OK status if
40
// this object is empty.
41
absl::Status
ToStatus
()
const
;
42
43
// Sort the elements lexicographically by (constraint ID, variable ID).
44
void
Sort
();
45
46
// The variable and constraint pairs associated with indicator constraints
47
// whose indicator variables are not binary.
48
std::vector<VariableAndConstraint>
invalid_indicators
;
49
};
50
51
}
// namespace operations_research::math_opt
52
53
#endif
// ORTOOLS_MATH_OPT_CORE_INVALID_INDICATORS_H_
operations_research::math_opt
Definition
gurobi_isv.cc:28
operations_research::math_opt::kMaxNonBinaryIndicatorVariables
constexpr std::size_t kMaxNonBinaryIndicatorVariables
Definition
invalid_indicators.h:26
operations_research::math_opt::InvalidIndicators::VariableAndConstraint
Definition
invalid_indicators.h:33
operations_research::math_opt::InvalidIndicators::VariableAndConstraint::constraint
int64_t constraint
Definition
invalid_indicators.h:35
operations_research::math_opt::InvalidIndicators::VariableAndConstraint::variable
int64_t variable
Definition
invalid_indicators.h:34
operations_research::math_opt::InvalidIndicators
Definition
invalid_indicators.h:32
operations_research::math_opt::InvalidIndicators::invalid_indicators
std::vector< VariableAndConstraint > invalid_indicators
Definition
invalid_indicators.h:48
operations_research::math_opt::InvalidIndicators::Sort
void Sort()
Definition
invalid_indicators.cc:53
operations_research::math_opt::InvalidIndicators::ToStatus
absl::Status ToStatus() const
Definition
invalid_indicators.cc:30
ortools
math_opt
core
invalid_indicators.h
Generated by
1.15.0