Gecode 6.4.0
Gecode::Optimize::Model Class Reference

#include < -- improving gecode/implementation/gecode/gecode/optimize/model.hpp>

Public Member Functions

 Model ()
 Model (const Model &)=delete
Modeloperator= (const Model &)=delete
 Model (Model &&other) noexcept
Modeloperator= (Model &&other) noexcept
ModelId id () const noexcept
Revision revision () const noexcept
ModelSnapshot snapshot () const
Variable add_variable (VariableType type, double lower, double upper, std::string name={})
Variable add_continuous (double lower=0.0, double upper=std::numeric_limits< double >::infinity(), std::string name={})
Variable add_integer (double lower=0.0, double upper=std::numeric_limits< double >::infinity(), std::string name={})
Variable add_binary (std::string name={})
Constraint add_row (const std::vector< Term > &terms, double lower, double upper, std::string name={})
std::vector< Variableadd_variables (const std::vector< VariableSpec > &variables)
std::vector< Constraintadd_rows (const std::vector< RowSpec > &rows)
std::vector< Constraintadd_rows_sparse (const SparseRowBatch &rows)
void set_objective (const std::vector< Term > &terms, ObjectiveSense sense, double offset=0.0)
void minimize (const std::vector< Term > &terms, double offset=0.0)
void maximize (const std::vector< Term > &terms, double offset=0.0)
void set_bounds (Variable variable, double lower, double upper)
void set_bounds (Constraint constraint, double lower, double upper)
void set_coefficient (Constraint constraint, Variable variable, double coefficient)
void set_objective_coefficient (Variable variable, double coefficient)
void set_objective_offset (double offset)
void set_name (Variable variable, std::string name)
void set_name (Constraint constraint, std::string name)
void remove (Variable variable)
void remove (Constraint constraint)
const VariableDatavariable (Variable variable) const
const RowDatarow (Constraint constraint) const
GlobalConstraint add_global (GlobalPayload payload, std::string name={})
const GlobalDataglobal (GlobalConstraint constraint) const
void remove (GlobalConstraint constraint)
void set_name (GlobalConstraint constraint, std::string name)

Detailed Description

An owning sparse model with a linear objective and retained logical and global constraints.

Handles identify a model and a never-reused slot. Successful mutations advance the revision, including assignments of unchanged values. Failed mutations leave the model unchanged. Snapshots own their data and remain usable after edits.

Copying is disabled. Moving preserves the identity and all existing handles; a moved-from model can only be destroyed, assigned another model, or queried for its zero id/revision. Mutations and snapshot() reject a moved-from object. Mutation is not thread-safe; independent models can be created concurrently.

Constructor & Destructor Documentation

◆ Model() [1/3]

Gecode::Optimize::Model::Model ( )

◆ Model() [2/3]

Gecode::Optimize::Model::Model ( const Model & )
delete

◆ Model() [3/3]

Gecode::Optimize::Model::Model ( Model && other)
noexcept

Member Function Documentation

◆ operator=() [1/2]

Model & Gecode::Optimize::Model::operator= ( const Model & )
delete

◆ operator=() [2/2]

Model & Gecode::Optimize::Model::operator= ( Model && other)
noexcept

◆ id()

ModelId Gecode::Optimize::Model::id ( ) const
inlinenoexcept

◆ revision()

Revision Gecode::Optimize::Model::revision ( ) const
inlinenoexcept

◆ snapshot()

ModelSnapshot Gecode::Optimize::Model::snapshot ( ) const

◆ add_variable()

Variable Gecode::Optimize::Model::add_variable ( VariableType type,
double lower,
double upper,
std::string name = {} )

◆ add_continuous()

Variable Gecode::Optimize::Model::add_continuous ( double lower = 0.0,
double upper = std::numeric_limits< double >::infinity(),
std::string name = {} )

◆ add_integer()

Variable Gecode::Optimize::Model::add_integer ( double lower = 0.0,
double upper = std::numeric_limits< double >::infinity(),
std::string name = {} )

◆ add_binary()

Variable Gecode::Optimize::Model::add_binary ( std::string name = {})

◆ add_row()

Constraint Gecode::Optimize::Model::add_row ( const std::vector< Term > & terms,
double lower,
double upper,
std::string name = {} )

◆ add_variables()

std::vector< Variable > Gecode::Optimize::Model::add_variables ( const std::vector< VariableSpec > & variables)

Atomic bulk additions; one revision per nonempty batch, no reused slots. Validation/allocation failure leaves entities, revision and existing views unchanged. Empty valid batches are no-ops. Rows refer to existing variables.

◆ add_rows()

std::vector< Constraint > Gecode::Optimize::Model::add_rows ( const std::vector< RowSpec > & rows)

◆ add_rows_sparse()

std::vector< Constraint > Gecode::Optimize::Model::add_rows_sparse ( const SparseRowBatch & rows)

◆ set_objective()

void Gecode::Optimize::Model::set_objective ( const std::vector< Term > & terms,
ObjectiveSense sense,
double offset = 0.0 )

◆ minimize()

void Gecode::Optimize::Model::minimize ( const std::vector< Term > & terms,
double offset = 0.0 )

◆ maximize()

void Gecode::Optimize::Model::maximize ( const std::vector< Term > & terms,
double offset = 0.0 )

◆ set_bounds() [1/2]

void Gecode::Optimize::Model::set_bounds ( Variable variable,
double lower,
double upper )

◆ set_bounds() [2/2]

void Gecode::Optimize::Model::set_bounds ( Constraint constraint,
double lower,
double upper )

◆ set_coefficient()

void Gecode::Optimize::Model::set_coefficient ( Constraint constraint,
Variable variable,
double coefficient )

◆ set_objective_coefficient()

void Gecode::Optimize::Model::set_objective_coefficient ( Variable variable,
double coefficient )

◆ set_objective_offset()

void Gecode::Optimize::Model::set_objective_offset ( double offset)

◆ set_name() [1/3]

void Gecode::Optimize::Model::set_name ( Variable variable,
std::string name )

◆ set_name() [2/3]

void Gecode::Optimize::Model::set_name ( Constraint constraint,
std::string name )

◆ remove() [1/3]

void Gecode::Optimize::Model::remove ( Variable variable)

Reject removal while an active row or the objective references variable.

◆ remove() [2/3]

void Gecode::Optimize::Model::remove ( Constraint constraint)

Remove a row, retaining its slot as a tombstone.

◆ variable()

const VariableData & Gecode::Optimize::Model::variable ( Variable variable) const

◆ row()

const RowData & Gecode::Optimize::Model::row ( Constraint constraint) const

◆ add_global()

GlobalConstraint Gecode::Optimize::Model::add_global ( GlobalPayload payload,
std::string name = {} )

◆ global()

const GlobalData & Gecode::Optimize::Model::global ( GlobalConstraint constraint) const

◆ remove() [3/3]

void Gecode::Optimize::Model::remove ( GlobalConstraint constraint)

◆ set_name() [3/3]

void Gecode::Optimize::Model::set_name ( GlobalConstraint constraint,
std::string name )

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