ortools.math_opt.model_pb2
@generated by mypy-protobuf. Do not edit manually! isort:skip_file Copyright 2010-2025 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
An encoding format for mathematical optimization problems.
1# -*- coding: utf-8 -*- 2# Generated by the protocol buffer compiler. DO NOT EDIT! 3# NO CHECKED-IN PROTOBUF GENCODE 4# source: ortools/math_opt/model.proto 5# Protobuf Python Version: 6.31.0 6"""Generated protocol buffer code.""" 7from google.protobuf import descriptor as _descriptor 8from google.protobuf import descriptor_pool as _descriptor_pool 9from google.protobuf import runtime_version as _runtime_version 10from google.protobuf import symbol_database as _symbol_database 11from google.protobuf.internal import builder as _builder 12_runtime_version.ValidateProtobufRuntimeVersion( 13 _runtime_version.Domain.PUBLIC, 14 6, 15 31, 16 0, 17 '', 18 'ortools/math_opt/model.proto' 19) 20# @@protoc_insertion_point(imports) 21 22_sym_db = _symbol_database.Default() 23 24 25from ortools.math_opt import sparse_containers_pb2 as ortools_dot_math__opt_dot_sparse__containers__pb2 26 27 28DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cortools/math_opt/model.proto\x12\x1coperations_research.math_opt\x1a(ortools/math_opt/sparse_containers.proto\"j\n\x0eVariablesProto\x12\x0b\n\x03ids\x18\x01 \x03(\x03\x12\x14\n\x0clower_bounds\x18\x02 \x03(\x01\x12\x14\n\x0cupper_bounds\x18\x03 \x03(\x01\x12\x10\n\x08integers\x18\x04 \x03(\x08\x12\r\n\x05names\x18\x05 \x03(\t\"\xfd\x01\n\x0eObjectiveProto\x12\x10\n\x08maximize\x18\x01 \x01(\x08\x12\x0e\n\x06offset\x18\x02 \x01(\x01\x12R\n\x13linear_coefficients\x18\x03 \x01(\x0b\x32\x35.operations_research.math_opt.SparseDoubleVectorProto\x12U\n\x16quadratic_coefficients\x18\x04 \x01(\x0b\x32\x35.operations_research.math_opt.SparseDoubleMatrixProto\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x10\n\x08priority\x18\x06 \x01(\x03\"`\n\x16LinearConstraintsProto\x12\x0b\n\x03ids\x18\x01 \x03(\x03\x12\x14\n\x0clower_bounds\x18\x02 \x03(\x01\x12\x14\n\x0cupper_bounds\x18\x03 \x03(\x01\x12\r\n\x05names\x18\x04 \x03(\t\"\xef\x01\n\x18QuadraticConstraintProto\x12K\n\x0clinear_terms\x18\x01 \x01(\x0b\x32\x35.operations_research.math_opt.SparseDoubleVectorProto\x12N\n\x0fquadratic_terms\x18\x02 \x01(\x0b\x32\x35.operations_research.math_opt.SparseDoubleMatrixProto\x12\x13\n\x0blower_bound\x18\x03 \x01(\x01\x12\x13\n\x0bupper_bound\x18\x04 \x01(\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\"\xc8\x01\n\x1eSecondOrderConeConstraintProto\x12H\n\x0bupper_bound\x18\x01 \x01(\x0b\x32\x33.operations_research.math_opt.LinearExpressionProto\x12N\n\x11\x61rguments_to_norm\x18\x02 \x03(\x0b\x32\x33.operations_research.math_opt.LinearExpressionProto\x12\x0c\n\x04name\x18\x03 \x01(\t\"}\n\x12SosConstraintProto\x12H\n\x0b\x65xpressions\x18\x01 \x03(\x0b\x32\x33.operations_research.math_opt.LinearExpressionProto\x12\x0f\n\x07weights\x18\x02 \x03(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\"\xe3\x01\n\x18IndicatorConstraintProto\x12\x19\n\x0cindicator_id\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x18\n\x10\x61\x63tivate_on_zero\x18\x06 \x01(\x08\x12I\n\nexpression\x18\x02 \x01(\x0b\x32\x35.operations_research.math_opt.SparseDoubleVectorProto\x12\x13\n\x0blower_bound\x18\x03 \x01(\x01\x12\x13\n\x0bupper_bound\x18\x04 \x01(\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0f\n\r_indicator_id\"\xba\x0c\n\nModelProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12?\n\tvariables\x18\x02 \x01(\x0b\x32,.operations_research.math_opt.VariablesProto\x12?\n\tobjective\x18\x03 \x01(\x0b\x32,.operations_research.math_opt.ObjectiveProto\x12_\n\x14\x61uxiliary_objectives\x18\n \x03(\x0b\x32\x41.operations_research.math_opt.ModelProto.AuxiliaryObjectivesEntry\x12P\n\x12linear_constraints\x18\x04 \x01(\x0b\x32\x34.operations_research.math_opt.LinearConstraintsProto\x12W\n\x18linear_constraint_matrix\x18\x05 \x01(\x0b\x32\x35.operations_research.math_opt.SparseDoubleMatrixProto\x12\x61\n\x15quadratic_constraints\x18\x06 \x03(\x0b\x32\x42.operations_research.math_opt.ModelProto.QuadraticConstraintsEntry\x12o\n\x1dsecond_order_cone_constraints\x18\x0b \x03(\x0b\x32H.operations_research.math_opt.ModelProto.SecondOrderConeConstraintsEntry\x12W\n\x10sos1_constraints\x18\x07 \x03(\x0b\x32=.operations_research.math_opt.ModelProto.Sos1ConstraintsEntry\x12W\n\x10sos2_constraints\x18\x08 \x03(\x0b\x32=.operations_research.math_opt.ModelProto.Sos2ConstraintsEntry\x12\x61\n\x15indicator_constraints\x18\t \x03(\x0b\x32\x42.operations_research.math_opt.ModelProto.IndicatorConstraintsEntry\x1ah\n\x18\x41uxiliaryObjectivesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.operations_research.math_opt.ObjectiveProto:\x02\x38\x01\x1as\n\x19QuadraticConstraintsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32\x36.operations_research.math_opt.QuadraticConstraintProto:\x02\x38\x01\x1a\x7f\n\x1fSecondOrderConeConstraintsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12K\n\x05value\x18\x02 \x01(\x0b\x32<.operations_research.math_opt.SecondOrderConeConstraintProto:\x02\x38\x01\x1ah\n\x14Sos1ConstraintsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12?\n\x05value\x18\x02 \x01(\x0b\x32\x30.operations_research.math_opt.SosConstraintProto:\x02\x38\x01\x1ah\n\x14Sos2ConstraintsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12?\n\x05value\x18\x02 \x01(\x0b\x32\x30.operations_research.math_opt.SosConstraintProto:\x02\x38\x01\x1as\n\x19IndicatorConstraintsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32\x36.operations_research.math_opt.IndicatorConstraintProto:\x02\x38\x01\x42\x1e\n\x1a\x63om.google.ortools.mathoptP\x01\x62\x06proto3') 29 30_globals = globals() 31_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ortools.math_opt.model_pb2', _globals) 33if not _descriptor._USE_C_DESCRIPTORS: 34 _globals['DESCRIPTOR']._loaded_options = None 35 _globals['DESCRIPTOR']._serialized_options = b'\n\032com.google.ortools.mathoptP\001' 36 _globals['_MODELPROTO_AUXILIARYOBJECTIVESENTRY']._loaded_options = None 37 _globals['_MODELPROTO_AUXILIARYOBJECTIVESENTRY']._serialized_options = b'8\001' 38 _globals['_MODELPROTO_QUADRATICCONSTRAINTSENTRY']._loaded_options = None 39 _globals['_MODELPROTO_QUADRATICCONSTRAINTSENTRY']._serialized_options = b'8\001' 40 _globals['_MODELPROTO_SECONDORDERCONECONSTRAINTSENTRY']._loaded_options = None 41 _globals['_MODELPROTO_SECONDORDERCONECONSTRAINTSENTRY']._serialized_options = b'8\001' 42 _globals['_MODELPROTO_SOS1CONSTRAINTSENTRY']._loaded_options = None 43 _globals['_MODELPROTO_SOS1CONSTRAINTSENTRY']._serialized_options = b'8\001' 44 _globals['_MODELPROTO_SOS2CONSTRAINTSENTRY']._loaded_options = None 45 _globals['_MODELPROTO_SOS2CONSTRAINTSENTRY']._serialized_options = b'8\001' 46 _globals['_MODELPROTO_INDICATORCONSTRAINTSENTRY']._loaded_options = None 47 _globals['_MODELPROTO_INDICATORCONSTRAINTSENTRY']._serialized_options = b'8\001' 48 _globals['_VARIABLESPROTO']._serialized_start=104 49 _globals['_VARIABLESPROTO']._serialized_end=210 50 _globals['_OBJECTIVEPROTO']._serialized_start=213 51 _globals['_OBJECTIVEPROTO']._serialized_end=466 52 _globals['_LINEARCONSTRAINTSPROTO']._serialized_start=468 53 _globals['_LINEARCONSTRAINTSPROTO']._serialized_end=564 54 _globals['_QUADRATICCONSTRAINTPROTO']._serialized_start=567 55 _globals['_QUADRATICCONSTRAINTPROTO']._serialized_end=806 56 _globals['_SECONDORDERCONECONSTRAINTPROTO']._serialized_start=809 57 _globals['_SECONDORDERCONECONSTRAINTPROTO']._serialized_end=1009 58 _globals['_SOSCONSTRAINTPROTO']._serialized_start=1011 59 _globals['_SOSCONSTRAINTPROTO']._serialized_end=1136 60 _globals['_INDICATORCONSTRAINTPROTO']._serialized_start=1139 61 _globals['_INDICATORCONSTRAINTPROTO']._serialized_end=1366 62 _globals['_MODELPROTO']._serialized_start=1369 63 _globals['_MODELPROTO']._serialized_end=2963 64 _globals['_MODELPROTO_AUXILIARYOBJECTIVESENTRY']._serialized_start=2284 65 _globals['_MODELPROTO_AUXILIARYOBJECTIVESENTRY']._serialized_end=2388 66 _globals['_MODELPROTO_QUADRATICCONSTRAINTSENTRY']._serialized_start=2390 67 _globals['_MODELPROTO_QUADRATICCONSTRAINTSENTRY']._serialized_end=2505 68 _globals['_MODELPROTO_SECONDORDERCONECONSTRAINTSENTRY']._serialized_start=2507 69 _globals['_MODELPROTO_SECONDORDERCONECONSTRAINTSENTRY']._serialized_end=2634 70 _globals['_MODELPROTO_SOS1CONSTRAINTSENTRY']._serialized_start=2636 71 _globals['_MODELPROTO_SOS1CONSTRAINTSENTRY']._serialized_end=2740 72 _globals['_MODELPROTO_SOS2CONSTRAINTSENTRY']._serialized_start=2742 73 _globals['_MODELPROTO_SOS2CONSTRAINTSENTRY']._serialized_end=2846 74 _globals['_MODELPROTO_INDICATORCONSTRAINTSENTRY']._serialized_start=2848 75 _globals['_MODELPROTO_INDICATORCONSTRAINTSENTRY']._serialized_end=2963 76# @@protoc_insertion_point(module_scope)
As used below, we define "#variables" = size(VariablesProto.ids).
Abstract base class for protocol messages.
Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.
As used below, we define "#linear constraints" = size(LinearConstraintsProto.ids).
A single quadratic constraint of the form:
lb <= sum{linear_terms} + sum{quadratic_terms} <= ub.
If a variable involved in this constraint is deleted, it is treated as if it were set to zero.
A single second-order cone constraint of the form:
||arguments_to_norm
||_2 <= upper_bound
,
where upper_bound
and each element of arguments_to_norm
are linear
expressions.
If a variable involved in this constraint is deleted, it is treated as if it were set to zero.
Data for representing a single SOS1 or SOS2 constraint.
If a variable involved in this constraint is deleted, it is treated as if it were set to zero.
Data for representing a single indicator constraint of the form:
Variable(indicator_id) = (activate_on_zero ? 0 : 1) ⇒ lower_bound <= expression <= upper_bound.
If a variable involved in this constraint (either the indicator, or appearing
in expression
) is deleted, it is treated as if it were set to zero. In
particular, deleting the indicator variable means that the indicator
constraint is vacuous if activate_on_zero
is false, and that it is
equivalent to a linear constraint if activate_on_zero
is true.
An optimization problem.
MathOpt supports:
- Continuous and integer decision variables with optional finite bounds.
- Linear and quadratic objectives (single or multiple objectives), either minimized or maximized.
- A number of constraints types, including:
- Linear constraints
- Quadratic constraints
- Second-order cone constraints
- Logical constraints > SOS1 and SOS2 constraints > Indicator constraints
By default, constraints are represented in "id-to-data" maps. However, we represent linear constraints in a more efficient "struct-of-arrays" format.
Abstract base class for protocol messages.
Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.
Abstract base class for protocol messages.
Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.
Abstract base class for protocol messages.
Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.
Abstract base class for protocol messages.
Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.
Abstract base class for protocol messages.
Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.
Abstract base class for protocol messages.
Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.