Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
Google.OrTools.Sat.CpObjectiveProto Class Referencesealed

Optimization objective. More...

Detailed Description

Optimization objective.

Definition at line 6991 of file CpModel.pb.cs.

Inheritance diagram for Google.OrTools.Sat.CpObjectiveProto:

Public Member Functions

 CpObjectiveProto ()
 CpObjectiveProto (CpObjectiveProto other)
CpObjectiveProto Clone ()
override bool Equals (object other)
bool Equals (CpObjectiveProto other)
override int GetHashCode ()
override string ToString ()
void WriteTo (pb::CodedOutputStream output)
int CalculateSize ()
void MergeFrom (CpObjectiveProto other)
void MergeFrom (pb::CodedInputStream input)

Static Public Attributes

const int VarsFieldNumber = 1
 Field number for the "vars" field.
const int CoeffsFieldNumber = 4
 Field number for the "coeffs" field.
const int OffsetFieldNumber = 2
 Field number for the "offset" field.
const int ScalingFactorFieldNumber = 3
 Field number for the "scaling_factor" field.
const int DomainFieldNumber = 5
 Field number for the "domain" field.
const int ScalingWasExactFieldNumber = 6
 Field number for the "scaling_was_exact" field.
const int IntegerBeforeOffsetFieldNumber = 7
 Field number for the "integer_before_offset" field.
const int IntegerAfterOffsetFieldNumber = 9
 Field number for the "integer_after_offset" field.
const int IntegerScalingFactorFieldNumber = 8
 Field number for the "integer_scaling_factor" field.

Properties

static pb::MessageParser< CpObjectiveProtoParser [get]
static pbr::MessageDescriptor Descriptor [get]
pbc::RepeatedField< int > Vars [get]
 The linear terms of the objective to minimize. For a maximization problem, one can negate all coefficients in the objective and set scaling_factor to -1.
pbc::RepeatedField< long > Coeffs [get]
double Offset [get, set]
 The displayed objective is always: scaling_factor * (sum(coefficients[i] * objective_vars[i]) + offset). This is needed to have a consistent objective after presolve or when scaling a double problem to express it with integers.
double ScalingFactor [get, set]
pbc::RepeatedField< long > Domain [get]
 If non-empty, only look for an objective value in the given domain.
bool ScalingWasExact [get, set]
 Internal field. Do not set. When we scale a FloatObjectiveProto to a integer version, we set this to true if the scaling was exact (i.e. all original coeff were integer for instance).
long IntegerBeforeOffset [get, set]
 Internal fields to recover a bound on the original integer objective from the presolved one. Basically, initially the integer objective fit on an int64 and is in [Initial_lb, Initial_ub]. During presolve, we might change the linear expression to have a new domain [Presolved_lb, Presolved_ub] that will also always fit on an int64.
long IntegerAfterOffset [get, set]
long IntegerScalingFactor [get, set]

Constructor & Destructor Documentation

◆ CpObjectiveProto() [1/2]

Google.OrTools.Sat.CpObjectiveProto.CpObjectiveProto ( )
inline

Definition at line 7016 of file CpModel.pb.cs.

◆ CpObjectiveProto() [2/2]

Google.OrTools.Sat.CpObjectiveProto.CpObjectiveProto ( CpObjectiveProto other)
inline

Definition at line 7024 of file CpModel.pb.cs.

Member Function Documentation

◆ CalculateSize()

int Google.OrTools.Sat.CpObjectiveProto.CalculateSize ( )
inline

Definition at line 7321 of file CpModel.pb.cs.

◆ Clone()

CpObjectiveProto Google.OrTools.Sat.CpObjectiveProto.Clone ( )
inline

Definition at line 7039 of file CpModel.pb.cs.

◆ Equals() [1/2]

bool Google.OrTools.Sat.CpObjectiveProto.Equals ( CpObjectiveProto other)
inline

Definition at line 7199 of file CpModel.pb.cs.

◆ Equals() [2/2]

override bool Google.OrTools.Sat.CpObjectiveProto.Equals ( object other)
inline

Definition at line 7193 of file CpModel.pb.cs.

◆ GetHashCode()

override int Google.OrTools.Sat.CpObjectiveProto.GetHashCode ( )
inline

Definition at line 7220 of file CpModel.pb.cs.

◆ MergeFrom() [1/2]

void Google.OrTools.Sat.CpObjectiveProto.MergeFrom ( CpObjectiveProto other)
inline

Definition at line 7352 of file CpModel.pb.cs.

◆ MergeFrom() [2/2]

void Google.OrTools.Sat.CpObjectiveProto.MergeFrom ( pb.CodedInputStream input)
inline

Definition at line 7382 of file CpModel.pb.cs.

◆ ToString()

override string Google.OrTools.Sat.CpObjectiveProto.ToString ( )
inline

Definition at line 7239 of file CpModel.pb.cs.

◆ WriteTo()

void Google.OrTools.Sat.CpObjectiveProto.WriteTo ( pb.CodedOutputStream output)
inline

Definition at line 7245 of file CpModel.pb.cs.

Member Data Documentation

◆ CoeffsFieldNumber

const int Google.OrTools.Sat.CpObjectiveProto.CoeffsFieldNumber = 4
static

Field number for the "coeffs" field.

Definition at line 7060 of file CpModel.pb.cs.

◆ DomainFieldNumber

const int Google.OrTools.Sat.CpObjectiveProto.DomainFieldNumber = 5
static

Field number for the "domain" field.

Definition at line 7105 of file CpModel.pb.cs.

◆ IntegerAfterOffsetFieldNumber

const int Google.OrTools.Sat.CpObjectiveProto.IntegerAfterOffsetFieldNumber = 9
static

Field number for the "integer_after_offset" field.

Definition at line 7168 of file CpModel.pb.cs.

◆ IntegerBeforeOffsetFieldNumber

const int Google.OrTools.Sat.CpObjectiveProto.IntegerBeforeOffsetFieldNumber = 7
static

Field number for the "integer_before_offset" field.

Definition at line 7141 of file CpModel.pb.cs.

◆ IntegerScalingFactorFieldNumber

const int Google.OrTools.Sat.CpObjectiveProto.IntegerScalingFactorFieldNumber = 8
static

Field number for the "integer_scaling_factor" field.

Definition at line 7180 of file CpModel.pb.cs.

◆ OffsetFieldNumber

const int Google.OrTools.Sat.CpObjectiveProto.OffsetFieldNumber = 2
static

Field number for the "offset" field.

Definition at line 7071 of file CpModel.pb.cs.

◆ ScalingFactorFieldNumber

const int Google.OrTools.Sat.CpObjectiveProto.ScalingFactorFieldNumber = 3
static

Field number for the "scaling_factor" field.

Definition at line 7093 of file CpModel.pb.cs.

◆ ScalingWasExactFieldNumber

const int Google.OrTools.Sat.CpObjectiveProto.ScalingWasExactFieldNumber = 6
static

Field number for the "scaling_was_exact" field.

Definition at line 7121 of file CpModel.pb.cs.

◆ VarsFieldNumber

const int Google.OrTools.Sat.CpObjectiveProto.VarsFieldNumber = 1
static

Field number for the "vars" field.

Definition at line 7044 of file CpModel.pb.cs.

Property Documentation

◆ Coeffs

pbc.RepeatedField<long> Google.OrTools.Sat.CpObjectiveProto.Coeffs
get

Definition at line 7066 of file CpModel.pb.cs.

◆ Descriptor

pbr.MessageDescriptor Google.OrTools.Sat.CpObjectiveProto.Descriptor
staticget

Definition at line 7004 of file CpModel.pb.cs.

◆ Domain

pbc.RepeatedField<long> Google.OrTools.Sat.CpObjectiveProto.Domain
get

If non-empty, only look for an objective value in the given domain.

Note
this does not depend on the offset or scaling factor, it is a domain on the sum of the objective terms only.

Definition at line 7116 of file CpModel.pb.cs.

◆ IntegerAfterOffset

long Google.OrTools.Sat.CpObjectiveProto.IntegerAfterOffset
getset

Definition at line 7172 of file CpModel.pb.cs.

◆ IntegerBeforeOffset

long Google.OrTools.Sat.CpObjectiveProto.IntegerBeforeOffset
getset

Internal fields to recover a bound on the original integer objective from the presolved one. Basically, initially the integer objective fit on an int64 and is in [Initial_lb, Initial_ub]. During presolve, we might change the linear expression to have a new domain [Presolved_lb, Presolved_ub] that will also always fit on an int64.

The two domain will always be linked with an affine transformation between the two of the form: old = (new + before_offset) * integer_scaling_factor + after_offset.

Note
we use both offsets to always be able to do the computation while staying in the int64 domain. In particular, the after_offset will always be in (-integer_scaling_factor, integer_scaling_factor).

Definition at line 7160 of file CpModel.pb.cs.

◆ IntegerScalingFactor

long Google.OrTools.Sat.CpObjectiveProto.IntegerScalingFactor
getset

Definition at line 7184 of file CpModel.pb.cs.

◆ Offset

double Google.OrTools.Sat.CpObjectiveProto.Offset
getset

The displayed objective is always: scaling_factor * (sum(coefficients[i] * objective_vars[i]) + offset). This is needed to have a consistent objective after presolve or when scaling a double problem to express it with integers.

Note
if scaling_factor is zero, then it is assumed to be 1, so that by default these fields have no effect.

Definition at line 7085 of file CpModel.pb.cs.

◆ Parser

pb.MessageParser<CpObjectiveProto> Google.OrTools.Sat.CpObjectiveProto.Parser
staticget

Definition at line 7000 of file CpModel.pb.cs.

◆ ScalingFactor

double Google.OrTools.Sat.CpObjectiveProto.ScalingFactor
getset

Definition at line 7097 of file CpModel.pb.cs.

◆ ScalingWasExact

bool Google.OrTools.Sat.CpObjectiveProto.ScalingWasExact
getset

Internal field. Do not set. When we scale a FloatObjectiveProto to a integer version, we set this to true if the scaling was exact (i.e. all original coeff were integer for instance).

Todo
(user): Put the error bounds we computed instead?

Definition at line 7133 of file CpModel.pb.cs.

◆ Vars

pbc.RepeatedField<int> Google.OrTools.Sat.CpObjectiveProto.Vars
get

The linear terms of the objective to minimize. For a maximization problem, one can negate all coefficients in the objective and set scaling_factor to -1.

Definition at line 7055 of file CpModel.pb.cs.


The documentation for this class was generated from the following file: