PPL
1.2
|
A Parametric Integer (linear) Programming problem. More...
#include <PIP_Problem_defs.hh>
Public Types | |
enum | Control_Parameter_Name { CUTTING_STRATEGY, PIVOT_ROW_STRATEGY, CONTROL_PARAMETER_NAME_SIZE } |
Possible names for PIP_Problem control parameters. More... | |
enum | Control_Parameter_Value { CUTTING_STRATEGY_FIRST, CUTTING_STRATEGY_DEEPEST, CUTTING_STRATEGY_ALL, PIVOT_ROW_STRATEGY_FIRST, PIVOT_ROW_STRATEGY_MAX_COLUMN, CONTROL_PARAMETER_VALUE_SIZE } |
Possible values for PIP_Problem control parameters. More... | |
typedef Constraint_Sequence::const_iterator | const_iterator |
A type alias for the read-only iterator on the constraints defining the feasible region. More... | |
Public Member Functions | |
PIP_Problem (dimension_type dim=0) | |
Builds a trivial PIP problem. More... | |
template<typename In > | |
PIP_Problem (dimension_type dim, In first, In last, const Variables_Set &p_vars) | |
Builds a PIP problem having space dimension dim from the sequence of constraints in the range ![]() p_vars are interpreted as parameters. More... | |
PIP_Problem (const PIP_Problem &y) | |
Ordinary copy-constructor. More... | |
~PIP_Problem () | |
Destructor. More... | |
PIP_Problem & | operator= (const PIP_Problem &y) |
Assignment operator. More... | |
dimension_type | space_dimension () const |
Returns the space dimension of the PIP problem. More... | |
const Variables_Set & | parameter_space_dimensions () const |
Returns a set containing all the variables' indexes representing the parameters of the PIP problem. More... | |
const_iterator | constraints_begin () const |
Returns a read-only iterator to the first constraint defining the feasible region. More... | |
const_iterator | constraints_end () const |
Returns a past-the-end read-only iterator to the sequence of constraints defining the feasible region. More... | |
void | clear () |
Resets *this to be equal to the trivial PIP problem. More... | |
void | add_space_dimensions_and_embed (dimension_type m_vars, dimension_type m_params) |
Adds m_vars + m_params new space dimensions and embeds the old PIP problem in the new vector space. More... | |
void | add_to_parameter_space_dimensions (const Variables_Set &p_vars) |
Sets the space dimensions whose indexes which are in set p_vars to be parameter space dimensions. More... | |
void | add_constraint (const Constraint &c) |
Adds a copy of constraint c to the PIP problem. More... | |
void | add_constraints (const Constraint_System &cs) |
Adds a copy of the constraints in cs to the PIP problem. More... | |
bool | is_satisfiable () const |
Checks satisfiability of *this . More... | |
PIP_Problem_Status | solve () const |
Optimizes the PIP problem. More... | |
PIP_Tree | solution () const |
Returns a feasible solution for *this , if it exists. More... | |
PIP_Tree | optimizing_solution () const |
Returns an optimizing solution for *this , if it exists. More... | |
bool | OK () const |
Checks if all the invariants are satisfied. More... | |
void | print_solution (std::ostream &s, int indent=0) const |
Prints on s the solution computed for *this . More... | |
void | ascii_dump () const |
Writes to std::cerr an ASCII representation of *this . More... | |
void | ascii_dump (std::ostream &s) const |
Writes to s an ASCII representation of *this . More... | |
void | print () const |
Prints *this to std::cerr using operator<< . More... | |
bool | ascii_load (std::istream &s) |
Loads from s an ASCII representation (as produced by ascii_dump(std::ostream&) const) and sets *this accordingly. Returns true if successful, false otherwise. More... | |
memory_size_type | total_memory_in_bytes () const |
Returns the total size in bytes of the memory occupied by *this . More... | |
memory_size_type | external_memory_in_bytes () const |
Returns the size in bytes of the memory managed by *this . More... | |
void | m_swap (PIP_Problem &y) |
Swaps *this with y . More... | |
Control_Parameter_Value | get_control_parameter (Control_Parameter_Name name) const |
Returns the value of control parameter name . More... | |
void | set_control_parameter (Control_Parameter_Value value) |
Sets control parameter value . More... | |
void | set_big_parameter_dimension (dimension_type big_dim) |
Sets the dimension for the big parameter to big_dim . More... | |
dimension_type | get_big_parameter_dimension () const |
Returns the space dimension for the big parameter. More... | |
Static Public Member Functions | |
static dimension_type | max_space_dimension () |
Returns the maximum space dimension a PIP_Problem can handle. More... | |
Private Types | |
enum | Status { UNSATISFIABLE, OPTIMIZED, PARTIALLY_SATISFIABLE } |
An enumerated type describing the internal status of the PIP problem. More... | |
typedef std::vector< Constraint > | Constraint_Sequence |
A type alias for a sequence of constraints. More... | |
typedef Sparse_Row | Row |
Private Member Functions | |
void | control_parameters_init () |
Initializes the control parameters with default values. More... | |
void | control_parameters_copy (const PIP_Problem &y) |
Copies the control parameters from problem object y . More... | |
Private Attributes | |
dimension_type | external_space_dim |
The dimension of the vector space. More... | |
dimension_type | internal_space_dim |
The space dimension of the current (partial) solution of the PIP problem; it may be smaller than external_space_dim . More... | |
Status | status |
The internal state of the MIP problem. More... | |
PIP_Tree_Node * | current_solution |
The current solution decision tree. More... | |
Constraint_Sequence | input_cs |
The sequence of constraints describing the feasible region. More... | |
dimension_type | first_pending_constraint |
The first index of `input_cs' containing a pending constraint. More... | |
Variables_Set | parameters |
A set containing all the indices of space dimensions that are interpreted as problem parameters. More... | |
Matrix< Row > | initial_context |
The initial context. More... | |
Control_Parameter_Value | control_parameters [CONTROL_PARAMETER_NAME_SIZE] |
The control parameters for the problem object. More... | |
dimension_type | big_parameter_dimension |
The dimension for the big parameter, or not_a_dimension() if not set. More... | |
Friends | |
class | PIP_Solution_Node |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &s, const PIP_Problem &pip) |
std::ostream & | operator<< (std::ostream &s, const PIP_Problem &pip) |
Output operator. More... | |
void | swap (PIP_Problem &x, PIP_Problem &y) |
Swaps x with y . More... | |
void | swap (PIP_Problem &x, PIP_Problem &y) |
A Parametric Integer (linear) Programming problem.
An object of this class encodes a parametric integer (linear) programming problem. The PIP problem is specified by providing:
Note that all problem variables and problem parameters are assumed to take non-negative integer values, so that there is no need to specify non-negativity constraints.
The class provides support for the (incremental) solution of the PIP problem based on variations of the revised simplex method and on Gomory cut generation techniques.
The solution for a PIP problem is the lexicographic minimum of the integer points of the feasible region, expressed in terms of the parameters. As the problem to be solved only involves non-negative variables and parameters, the problem will always be either unfeasible or optimizable.
As the feasibility and the solution value of a PIP problem depend on the values of the parameters, the solution is a binary decision tree, dividing the context parameter set into subsets. The tree nodes are of two kinds:
It may happen that a decision node has no false child. This means that there is no solution if at least one of the corresponding constraints is not satisfied. Decision nodes having two or more linear tests on the parameters cannot have a false child. Decision nodes always have a true child.
Both kinds of tree nodes may also contain the definition of extra parameters which are artificially introduced by the solver to enforce an integral solution. Such artificial parameters are defined by the integer division of a linear expression on the parameters by an integer coefficient.
By exploiting the incremental nature of the solver, it is possible to reuse part of the computational work already done when solving variants of a given PIP_Problem: currently, incremental resolution supports the addition of space dimensions, the addition of parameters and the addition of constraints.
i
and j
are the problem variables and n
and m
are the problem parameters. This problem can be optimized; the resulting solution tree may be represented as follows: if 7*n >= 10 then if 7*m >= 12 then {i = 2 ; j = 2} else Parameter P = (m) div 2 if 2*n + 3*m >= 8 then {i = -m - P + 4 ; j = m} else _|_ else _|_The solution tree starts with a decision node depending on the context constraint
7*n >= 10
. If this constraint is satisfied by the values assigned to the problem parameters, then the (textually first) then
branch is taken, reaching the true child of the root node (which in this case is another decision node); otherwise, the (textually last) else
branch is taken, for which there is no corresponding false child. P
in the (textually first) else
branch above. These artificial parameters are only meaningful inside the subtree where they are defined and are used to define the parametric values of the problem variables in solution nodes (e.g., the {i,j}
vector in the textually third then
branch).{i = 2 ; j = 2}
status
indicates if the problem has been optimized or if it is unfeasible for any possible configuration of the parameter values. The resolution process is also started if an attempt is made to get its solution, as follows: node
.Variable::set_output_function
): if 7*C >= 10 then if 7*D >= 12 then {2 ; 2} else Parameter E = (D) div 2 if 2*C + 3*D >= 8 then {-D - E + 4 ; D} else _|_ else _|_
node
represents an unfeasible solution (i.e., 0
. For a non-null tree node, the virtual methods PIP_Tree_Node::as_decision()
and PIP_Tree_Node::as_solution()
can be used to check whether the node is a decision or a solution node: PIP_Decision_Node::child_node(bool)
, passing true
(resp., false
) as the input argument.dim+1
, where the value of dim
is computed as follows:dim
is the space dimension of the PIP_Problem;dim
computed for the parent node to the number of artificial parameters defined in the parent node.
Parameter E = (C + 1) div 3 {D - E - 1 ; -C + D + E + 1}Under the notations above, the solution is:
Parameter E = (2*C + 3) div 5 {D - E - 1 ; D + 2*E - 2}Under the notations above, the solution is:
Definition at line 493 of file PIP_Problem_defs.hh.
typedef Constraint_Sequence::const_iterator Parma_Polyhedra_Library::PIP_Problem::const_iterator |
A type alias for the read-only iterator on the constraints defining the feasible region.
Definition at line 572 of file PIP_Problem_defs.hh.
|
private |
A type alias for a sequence of constraints.
Definition at line 565 of file PIP_Problem_defs.hh.
|
private |
Definition at line 805 of file PIP_Problem_defs.hh.
|
explicit |
Builds a trivial PIP problem.
A trivial PIP problem requires to compute the lexicographic minimum on a vector space under no constraints and with no parameters: due to the implicit non-negativity constraints, the origin of the vector space is an optimal solution.
dim | The dimension of the vector space enclosing *this (optional argument with default value ![]() |
std::length_error | Thrown if dim exceeds max_space_dimension() . |
Definition at line 50 of file PIP_Problem.cc.
References control_parameters_init(), max_space_dimension(), and OK().
Parma_Polyhedra_Library::PIP_Problem::PIP_Problem | ( | dimension_type | dim, |
In | first, | ||
In | last, | ||
const Variables_Set & | p_vars | ||
) |
Builds a PIP problem having space dimension dim
from the sequence of constraints in the range ; those dimensions whose indices occur in
p_vars
are interpreted as parameters.
dim | The dimension of the vector space (variables and parameters) enclosing *this . |
first | An input iterator to the start of the sequence of constraints. |
last | A past-the-end input iterator to the sequence of constraints. |
p_vars | The set of variables' indexes that are interpreted as parameters. |
std::length_error | Thrown if dim exceeds max_space_dimension() . |
std::invalid_argument | Thrown if the space dimension of a constraint in the sequence (resp., the parameter variables) is strictly greater than dim . |
Definition at line 32 of file PIP_Problem_templates.hh.
References control_parameters_init(), external_space_dim, input_cs, max_space_dimension(), OK(), and Parma_Polyhedra_Library::Variables_Set::space_dimension().
Parma_Polyhedra_Library::PIP_Problem::PIP_Problem | ( | const PIP_Problem & | y | ) |
Ordinary copy-constructor.
Definition at line 70 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::PIP_Tree_Node::clone(), control_parameters_copy(), current_solution, OK(), and Parma_Polyhedra_Library::PIP_Tree_Node::set_owner().
Parma_Polyhedra_Library::PIP_Problem::~PIP_Problem | ( | ) |
Destructor.
Definition at line 88 of file PIP_Problem.cc.
void Parma_Polyhedra_Library::PIP_Problem::add_constraint | ( | const Constraint & | c | ) |
Adds a copy of constraint c
to the PIP problem.
std::invalid_argument | Thrown if the space dimension of c is strictly greater than the space dimension of *this . |
Definition at line 697 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::Constraint::space_dimension().
void Parma_Polyhedra_Library::PIP_Problem::add_constraints | ( | const Constraint_System & | cs | ) |
Adds a copy of the constraints in cs
to the PIP problem.
std::invalid_argument | Thrown if the space dimension of constraint system cs is strictly greater than the space dimension of *this . |
Definition at line 713 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::Constraint_System::begin(), and Parma_Polyhedra_Library::Constraint_System::end().
void Parma_Polyhedra_Library::PIP_Problem::add_space_dimensions_and_embed | ( | dimension_type | m_vars, |
dimension_type | m_params | ||
) |
Adds m_vars + m_params
new space dimensions and embeds the old PIP problem in the new vector space.
m_vars | The number of space dimensions to add that are interpreted as PIP problem variables (i.e., non parameters). These are added before adding the m_params parameters. |
m_params | The number of space dimensions to add that are interpreted as PIP problem parameters. These are added after having added the m_vars problem variables. |
std::length_error | Thrown if adding m_vars + m_params new space dimensions would cause the vector space to exceed dimension max_space_dimension() . |
The new space dimensions will be those having the highest indexes in the new PIP problem; they are initially unconstrained.
Definition at line 632 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::max_space_dimension().
void Parma_Polyhedra_Library::PIP_Problem::add_to_parameter_space_dimensions | ( | const Variables_Set & | p_vars | ) |
Sets the space dimensions whose indexes which are in set p_vars
to be parameter space dimensions.
std::invalid_argument | Thrown if some index in p_vars does not correspond to a space dimension in *this . |
Definition at line 670 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::Variables_Set::space_dimension().
void Parma_Polyhedra_Library::PIP_Problem::ascii_dump | ( | ) | const |
Writes to std::cerr
an ASCII representation of *this
.
void Parma_Polyhedra_Library::PIP_Problem::ascii_dump | ( | std::ostream & | s | ) | const |
Writes to s
an ASCII representation of *this
.
Definition at line 372 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::PIP_Decision_Node::as_decision(), Parma_Polyhedra_Library::PIP_Solution_Node::as_solution(), Parma_Polyhedra_Library::PIP_Solution_Node::ascii_dump(), and value.
bool Parma_Polyhedra_Library::PIP_Problem::ascii_load | ( | std::istream & | s | ) |
Loads from s
an ASCII representation (as produced by ascii_dump(std::ostream&) const) and sets *this
accordingly. Returns true
if successful, false
otherwise.
Definition at line 453 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::PIP_Solution_Node::ascii_load(), Parma_Polyhedra_Library::Constraint::ascii_load(), Parma_Polyhedra_Library::PIP_Decision_Node::ascii_load(), c, Parma_Polyhedra_Library::PIP_Solution_Node::set_owner(), Parma_Polyhedra_Library::PIP_Decision_Node::set_owner(), value, and Parma_Polyhedra_Library::Constraint::zero_dim_positivity().
void Parma_Polyhedra_Library::PIP_Problem::clear | ( | ) |
Resets *this
to be equal to the trivial PIP problem.
The space dimension is reset to .
Definition at line 614 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::not_a_dimension().
|
inline |
Returns a read-only iterator to the first constraint defining the feasible region.
Definition at line 40 of file PIP_Problem_inlines.hh.
References input_cs.
Referenced by operator<<().
|
inline |
Returns a past-the-end read-only iterator to the sequence of constraints defining the feasible region.
Definition at line 45 of file PIP_Problem_inlines.hh.
References input_cs.
Referenced by operator<<().
|
private |
Copies the control parameters from problem object y
.
Definition at line 99 of file PIP_Problem.cc.
References control_parameters.
Referenced by PIP_Problem().
|
private |
Initializes the control parameters with default values.
Definition at line 93 of file PIP_Problem.cc.
Referenced by PIP_Problem().
PPL::memory_size_type Parma_Polyhedra_Library::PIP_Problem::external_memory_in_bytes | ( | ) | const |
Returns the size in bytes of the memory managed by *this
.
Definition at line 766 of file PIP_Problem.cc.
|
inline |
Returns the space dimension for the big parameter.
If a big parameter was not set, returns not_a_dimension()
.
Definition at line 85 of file PIP_Problem_inlines.hh.
References big_parameter_dimension.
Referenced by operator<<().
|
inline |
Returns the value of control parameter name
.
Definition at line 79 of file PIP_Problem_inlines.hh.
References CONTROL_PARAMETER_NAME_SIZE, and control_parameters.
bool Parma_Polyhedra_Library::PIP_Problem::is_satisfiable | ( | ) | const |
Checks satisfiability of *this
.
true
if and only if the PIP problem is satisfiable. Definition at line 721 of file PIP_Problem.cc.
|
inline |
Swaps *this
with y
.
Definition at line 55 of file PIP_Problem_inlines.hh.
References big_parameter_dimension, CONTROL_PARAMETER_NAME_SIZE, control_parameters, current_solution, external_space_dim, first_pending_constraint, initial_context, input_cs, internal_space_dim, parameters, status, swap(), and Parma_Polyhedra_Library::swap().
Referenced by operator=(), and swap().
|
inlinestatic |
Returns the maximum space dimension a PIP_Problem can handle.
Definition at line 35 of file PIP_Problem_inlines.hh.
References Parma_Polyhedra_Library::Constraint::max_space_dimension().
Referenced by PIP_Problem().
bool Parma_Polyhedra_Library::PIP_Problem::OK | ( | ) | const |
Checks if all the invariants are satisfied.
Definition at line 277 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::ascii_dump(), and Parma_Polyhedra_Library::not_a_dimension().
Referenced by PIP_Problem().
|
inline |
Assignment operator.
Definition at line 72 of file PIP_Problem_inlines.hh.
References m_swap().
PPL::PIP_Tree Parma_Polyhedra_Library::PIP_Problem::optimizing_solution | ( | ) | const |
Returns an optimizing solution for *this
, if it exists.
A null pointer is returned for an unfeasible PIP problem.
Definition at line 269 of file PIP_Problem.cc.
|
inline |
Returns a set containing all the variables' indexes representing the parameters of the PIP problem.
Definition at line 50 of file PIP_Problem_inlines.hh.
References parameters.
Referenced by operator<<(), Parma_Polyhedra_Library::PIP_Solution_Node::parametric_values(), Parma_Polyhedra_Library::PIP_Tree_Node::print(), and Parma_Polyhedra_Library::PIP_Solution_Node::update_solution().
void Parma_Polyhedra_Library::PIP_Problem::print | ( | ) | const |
Prints *this
to std::cerr
using operator<<
.
void Parma_Polyhedra_Library::PIP_Problem::print_solution | ( | std::ostream & | s, |
int | indent = 0 |
||
) | const |
Prints on s
the solution computed for *this
.
s | The output stream. |
indent | An indentation parameter (default value 0). |
std::logic_error | Thrown if trying to print the solution when the PIP problem still has to be solved. |
Definition at line 790 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::PIP_Tree_Node::indent_and_print().
void Parma_Polyhedra_Library::PIP_Problem::set_big_parameter_dimension | ( | dimension_type | big_dim | ) |
Sets the dimension for the big parameter to big_dim
.
Definition at line 750 of file PIP_Problem.cc.
void Parma_Polyhedra_Library::PIP_Problem::set_control_parameter | ( | Control_Parameter_Value | value | ) |
Sets control parameter value
.
Definition at line 729 of file PIP_Problem.cc.
References value.
PPL::PIP_Tree Parma_Polyhedra_Library::PIP_Problem::solution | ( | ) | const |
Returns a feasible solution for *this
, if it exists.
A null pointer is returned for an unfeasible PIP problem.
Definition at line 261 of file PIP_Problem.cc.
PPL::PIP_Problem_Status Parma_Polyhedra_Library::PIP_Problem::solve | ( | ) | const |
Optimizes the PIP problem.
Definition at line 106 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::Expression_Hide_Last< T >::all_zeroes_except(), Parma_Polyhedra_Library::Sparse_Row::begin(), c, Parma_Polyhedra_Library::Constraint::coefficient(), Parma_Polyhedra_Library::PIP_Tree_Node::compatibility_check(), current_solution, Parma_Polyhedra_Library::Sparse_Row::end(), Parma_Polyhedra_Library::Constraint::expression(), first_pending_constraint, Parma_Polyhedra_Library::Constraint::inhomogeneous_term(), initial_context, Parma_Polyhedra_Library::Sparse_Row::insert(), internal_space_dim, Parma_Polyhedra_Library::Constraint::is_equality(), Parma_Polyhedra_Library::Constraint::is_strict_inequality(), Parma_Polyhedra_Library::neg_assign(), Parma_Polyhedra_Library::nth_iter(), Parma_Polyhedra_Library::OPTIMIZED_PIP_PROBLEM, Parma_Polyhedra_Library::PIP_Tree_Node::solve(), Parma_Polyhedra_Library::Constraint::space_dimension(), status, Parma_Polyhedra_Library::UNFEASIBLE_PIP_PROBLEM, and Parma_Polyhedra_Library::PIP_Tree_Node::update_tableau().
|
inline |
Returns the space dimension of the PIP problem.
Definition at line 30 of file PIP_Problem_inlines.hh.
References external_space_dim.
Referenced by operator<<(), Parma_Polyhedra_Library::PIP_Solution_Node::parametric_values(), Parma_Polyhedra_Library::PIP_Tree_Node::print(), and Parma_Polyhedra_Library::PIP_Solution_Node::update_solution().
PPL::memory_size_type Parma_Polyhedra_Library::PIP_Problem::total_memory_in_bytes | ( | ) | const |
Returns the total size in bytes of the memory occupied by *this
.
Definition at line 785 of file PIP_Problem.cc.
References Parma_Polyhedra_Library::external_memory_in_bytes().
|
related |
Definition at line 32 of file PIP_Problem.cc.
References constraints_begin(), constraints_end(), get_big_parameter_dimension(), Parma_Polyhedra_Library::not_a_dimension(), parameter_space_dimensions(), and space_dimension().
|
related |
Output operator.
|
friend |
Definition at line 827 of file PIP_Problem_defs.hh.
|
related |
Swaps x
with y
.
Referenced by m_swap().
|
related |
Definition at line 91 of file PIP_Problem_inlines.hh.
References m_swap().
|
private |
The dimension for the big parameter, or not_a_dimension()
if not set.
Definition at line 825 of file PIP_Problem_defs.hh.
Referenced by get_big_parameter_dimension(), m_swap(), and Parma_Polyhedra_Library::PIP_Solution_Node::update_tableau().
|
private |
The control parameters for the problem object.
Definition at line 819 of file PIP_Problem_defs.hh.
Referenced by control_parameters_copy(), get_control_parameter(), m_swap(), and Parma_Polyhedra_Library::PIP_Solution_Node::solve().
|
private |
The current solution decision tree.
Definition at line 790 of file PIP_Problem_defs.hh.
Referenced by m_swap(), PIP_Problem(), and solve().
|
private |
The dimension of the vector space.
Definition at line 764 of file PIP_Problem_defs.hh.
Referenced by m_swap(), PIP_Problem(), space_dimension(), and Parma_Polyhedra_Library::PIP_Solution_Node::update_tableau().
|
private |
The first index of `input_cs' containing a pending constraint.
Definition at line 796 of file PIP_Problem_defs.hh.
The initial context.
Contains problem constraints on parameters only
Definition at line 815 of file PIP_Problem_defs.hh.
|
private |
The sequence of constraints describing the feasible region.
Definition at line 793 of file PIP_Problem_defs.hh.
Referenced by constraints_begin(), constraints_end(), m_swap(), and PIP_Problem().
|
private |
The space dimension of the current (partial) solution of the PIP problem; it may be smaller than external_space_dim
.
Definition at line 770 of file PIP_Problem_defs.hh.
Referenced by m_swap(), solve(), and Parma_Polyhedra_Library::PIP_Solution_Node::update_tableau().
|
private |
A set containing all the indices of space dimensions that are interpreted as problem parameters.
Definition at line 802 of file PIP_Problem_defs.hh.
Referenced by m_swap(), and parameter_space_dimensions().
|
private |
The internal state of the MIP problem.
Definition at line 787 of file PIP_Problem_defs.hh.