OR-Tools
9.6
invalid_indicators.h
Go to the documentation of this file.
1
// Copyright 2010-2022 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 OR_TOOLS_MATH_OPT_CORE_INVALID_INDICATORS_H_
15
#define OR_TOOLS_MATH_OPT_CORE_INVALID_INDICATORS_H_
16
17
#include <cstdint>
18
#include <vector>
19
20
#include "absl/status/status.h"
21
22
namespace
operations_research::math_opt
{
23
24
// The maximum number of non-binary indicator variables to report.
25
constexpr std::size_t
kMaxNonBinaryIndicatorVariables
= 10;
26
27
// Indicator constraints which are invalid because their associated indicator
28
// variables are not binary.
29
//
30
// This is used internally by solvers to return an error on Solve().
31
struct
InvalidIndicators
{
32
struct
VariableAndConstraint
{
33
int64_t
variable
;
34
int64_t
constraint
;
35
};
36
37
// Returns an error listing at most kMaxNonBinaryIndicatorVariables indicator
38
// constraints whose indicator variables are not binary. Returns OK status if
39
// this object is empty.
40
absl::Status
ToStatus
()
const
;
41
42
// Sort the elements lexicographically by (constraint ID, variable ID).
43
void
Sort
();
44
45
// The variable and constraint pairs associated with indicator constraints
46
// whose indicator variables are not binary.
47
std::vector<VariableAndConstraint>
invalid_indicators
;
48
};
49
50
}
// namespace operations_research::math_opt
51
52
#endif
// OR_TOOLS_MATH_OPT_CORE_INVALID_INDICATORS_H_
operations_research::math_opt
Definition:
indicator_constraint.cc:26
operations_research::math_opt::kMaxNonBinaryIndicatorVariables
constexpr std::size_t kMaxNonBinaryIndicatorVariables
Definition:
invalid_indicators.h:25
operations_research::math_opt::InvalidIndicators::VariableAndConstraint
Definition:
invalid_indicators.h:32
operations_research::math_opt::InvalidIndicators::VariableAndConstraint::variable
int64_t variable
Definition:
invalid_indicators.h:33
operations_research::math_opt::InvalidIndicators::VariableAndConstraint::constraint
int64_t constraint
Definition:
invalid_indicators.h:34
operations_research::math_opt::InvalidIndicators
Definition:
invalid_indicators.h:31
operations_research::math_opt::InvalidIndicators::invalid_indicators
std::vector< VariableAndConstraint > invalid_indicators
Definition:
invalid_indicators.h:47
operations_research::math_opt::InvalidIndicators::ToStatus
absl::Status ToStatus() const
Definition:
invalid_indicators.cc:30
operations_research::math_opt::InvalidIndicators::Sort
void Sort()
Definition:
invalid_indicators.cc:53
ortools
math_opt
core
invalid_indicators.h
Generated by
1.9.1