Google OR-Tools
v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
model_utils.h
Go to the documentation of this file.
1
// Copyright 2010-2024 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_IO_LP_MODEL_UTILS_H_
15
#define OR_TOOLS_MATH_OPT_IO_LP_MODEL_UTILS_H_
16
17
#include <string>
18
19
#include "absl/status/statusor.h"
20
#include "
ortools/base/strong_vector.h
"
21
#include "
ortools/math_opt/io/lp/lp_model.h
"
22
23
namespace
operations_research::lp_format
{
24
25
// Returns a copy of `model`, but where the variables appearing in no constraint
26
// have been deleted (and variable order is otherwise preserved).
27
//
28
// Note that because the variables are re-indexed, the constraints will have
29
// different values in `terms`.
30
LpModel
RemoveUnusedVariables
(
const
LpModel&
model
);
31
32
// Returns a copy of `model` where the variables are permuted by
33
// `new_index_to_old_index` (a permutation of the indices of the variables).
34
//
35
// Returns an error if `new_index_to_old_index` is not a valid permutation.
36
//
37
// Note that because the variables are re-indexed, the constraints will have
38
// different values in `terms`.
39
absl::StatusOr<LpModel>
PermuteVariables
(
40
const
LpModel&
model
,
41
const
util_intops::StrongVector<VariableIndex, VariableIndex>
&
42
new_index_to_old_index);
43
44
// Returns a copy of `model` where the variables are reordered by
45
// `order_by_name`, where `order_by_name` contains the name of each variable
46
// exactly one time, giving the new ordering.
47
//
48
// Returns an error if `order_by_name` does not contain the name each variable
49
// in the model exactly once.
50
//
51
// Note that because the variables are re-indexed, the constraints will have
52
// different values in `terms`.
53
absl::StatusOr<LpModel>
PermuteVariables
(
54
const
LpModel&
model
,
55
const
util_intops::StrongVector<VariableIndex, std::string>
& order_by_name);
56
57
}
// namespace operations_research::lp_format
58
59
#endif
// OR_TOOLS_MATH_OPT_IO_LP_MODEL_UTILS_H_
util_intops::StrongVector
Definition
strong_vector.h:75
model
GRBmodel * model
Definition
gurobi_interface.cc:300
lp_model.h
operations_research::lp_format
Definition
lp_model.cc:32
operations_research::lp_format::PermuteVariables
absl::StatusOr< LpModel > PermuteVariables(const LpModel &model, const util_intops::StrongVector< VariableIndex, VariableIndex > &new_index_to_old_index)
Definition
model_utils.cc:103
operations_research::lp_format::RemoveUnusedVariables
LpModel RemoveUnusedVariables(const LpModel &model)
Definition
model_utils.cc:84
strong_vector.h
ortools
math_opt
io
lp
model_utils.h
Generated by
1.12.0