# ppl_MIP_Problem_tag Interface Reference

Types and functions for MIP problems. More...

`#include <ppl_c_header.h>`

List of all members.

## Related Functions

(Note that these are not member functions.)
Symbolic Constants
int | PPL_OPTIMIZATION_MODE_MAXIMIZATION
| Code of the "maximization" optimization mode.
int | PPL_OPTIMIZATION_MODE_MINIMIZATION
| Code of the "minimization" optimization mode.
int | PPL_MIP_PROBLEM_STATUS_UNFEASIBLE
| Code of the "unfeasible MIP problem" status.
int | PPL_MIP_PROBLEM_STATUS_UNBOUNDED
| Code of the "unbounded MIP problem" status.
int | PPL_MIP_PROBLEM_STATUS_OPTIMIZED
| Code of the "optimized MIP problem" status.
int | PPL_MIP_PROBLEM_CONTROL_PARAMETER_NAME_PRICING
| Code for the MIP problem's "pricing" control parameter name.
int | PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_TEXTBOOK
| Code of MIP problem's "textbook" pricing method.
int | PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_EXACT
| Code of MIP problem's "exact steepest-edge" pricing method.
int | PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_FLOAT
| Code of MIP problem's "float steepest-edge" pricing method.
Constructors, Assignment and Destructor
int | ppl_new_MIP_Problem_from_space_dimension (ppl_MIP_Problem_t *pmip, ppl_dimension_type d)
| Builds a trivial MIP problem of dimension `d` and writes a handle to it at address `pmip`.
int | ppl_new_MIP_Problem (ppl_MIP_Problem_t *pmip, ppl_dimension_type d, ppl_const_Constraint_System_t cs, ppl_const_Linear_Expression_t le, int m)
| Builds a MIP problem of space dimension `d` having feasible region `cs`, objective function `le` and optimization mode `m`; writes a handle to it at address `pmip`.
int | ppl_new_MIP_Problem_from_MIP_Problem (ppl_MIP_Problem_t *pmip, ppl_const_MIP_Problem_t mip)
| Builds a MIP problem that is a copy of `mip`; writes a handle for the newly created system at address `pmip`.
int | ppl_assign_MIP_Problem_from_MIP_Problem (ppl_MIP_Problem_t dst, ppl_const_MIP_Problem_t src)
| Assigns a copy of the MIP problem `src` to `dst`.
int | ppl_delete_MIP_Problem (ppl_const_MIP_Problem_t mip)
| Invalidates the handle `mip:` this makes sure the corresponding resources will eventually be released.
Functions that Do Not Modify the MIP_Problem
int | ppl_MIP_Problem_space_dimension (ppl_const_MIP_Problem_t mip, ppl_dimension_type *m)
| Writes to `m` the dimension of the vector space enclosing `mip`.
int | ppl_MIP_Problem_number_of_integer_space_dimensions (ppl_const_MIP_Problem_t mip, ppl_dimension_type *m)
| Writes to `m` the number of integer space dimensions of `mip`.
int | ppl_MIP_Problem_integer_space_dimensions (ppl_const_MIP_Problem_t mip, ppl_dimension_type ds[])
| Writes in the first positions of the array `ds` all the integer space dimensions of problem `mip`. If the array is not big enough to hold all of the integer space dimensions, the behavior is undefined.
int | ppl_MIP_Problem_number_of_constraints (ppl_const_MIP_Problem_t mip, ppl_dimension_type *m)
| Writes to `m` the number of constraints defining the feasible region of `mip`.
int | ppl_MIP_Problem_constraint_at_index (ppl_const_MIP_Problem_t mip, ppl_dimension_type i, ppl_const_Constraint_t *pc)
| Writes at address `pc` a const handle to the `i-th` constraint defining the feasible region of the MIP problem `mip`.
int | ppl_MIP_Problem_objective_function (ppl_const_MIP_Problem_t mip, ppl_const_Linear_Expression_t *ple)
| Writes a const handle to the linear expression defining the objective function of the MIP problem `mip` at address `ple`.
int | ppl_MIP_Problem_optimization_mode (ppl_const_MIP_Problem_t mip)
| Returns the optimization mode of the MIP problem `mip`.
int | ppl_MIP_Problem_OK (ppl_const_MIP_Problem_t mip)
| Returns a positive integer if `mip` is well formed, i.e., if it satisfies all its implementation invariants; returns 0 and perhaps makes some noise if `mip` is broken. Useful for debugging purposes.
Functions that May Modify the MIP_Problem
int | ppl_MIP_Problem_clear (ppl_MIP_Problem_t mip)
| Resets the MIP problem to be a trivial problem of space dimension 0.
int | ppl_MIP_Problem_add_space_dimensions_and_embed (ppl_MIP_Problem_t mip, ppl_dimension_type d)
| Adds `d` new dimensions to the space enclosing the MIP problem `mip` and to `mip` itself.
int | ppl_MIP_Problem_add_to_integer_space_dimensions (ppl_MIP_Problem_t mip, ppl_dimension_type ds[], size_t n)
| Sets the space dimensions that are specified in first `n` positions of the array `ds` to be integer dimensions of problem `mip`. The presence of duplicates in `ds` is a waste but an innocuous one.
int | ppl_MIP_Problem_add_constraint (ppl_MIP_Problem_t mip, ppl_const_Constraint_t c)
| Modifies the feasible region of the MIP problem `mip` by adding a copy of the constraint `c`.
int | ppl_MIP_Problem_add_constraints (ppl_MIP_Problem_t mip, ppl_const_Constraint_System_t cs)
| Modifies the feasible region of the MIP problem `mip` by adding a copy of the constraints in `cs`.
int | ppl_MIP_Problem_set_objective_function (ppl_MIP_Problem_t mip, ppl_const_Linear_Expression_t le)
| Sets the objective function of the MIP problem `mip` to a copy of `le`.
int | ppl_MIP_Problem_set_optimization_mode (ppl_MIP_Problem_t mip, int mode)
| Sets the optimization mode of the MIP problem `mip` to `mode`.
Computing the Solution of the MIP_Problem
int | ppl_MIP_Problem_is_satisfiable (ppl_const_MIP_Problem_t mip)
| Returns a positive integer if `mip` is satisfiable; returns 0 otherwise.
int | ppl_MIP_Problem_solve (ppl_const_MIP_Problem_t mip)
| Solves the MIP problem `mip`, returning an exit status.
int | ppl_MIP_Problem_evaluate_objective_function (ppl_const_MIP_Problem_t mip, ppl_const_Generator_t g, ppl_Coefficient_t num, ppl_Coefficient_t den)
| Evaluates the objective function of `mip` on point `g`.
int | ppl_MIP_Problem_feasible_point (ppl_const_MIP_Problem_t mip, ppl_const_Generator_t *pg)
| Writes a const handle to a feasible point for the MIP problem `mip` at address `pg`.
int | ppl_MIP_Problem_optimizing_point (ppl_const_MIP_Problem_t mip, ppl_const_Generator_t *pg)
| Writes a const handle to an optimizing point for the MIP problem `mip` at address `pg`.
int | ppl_MIP_Problem_optimal_value (ppl_const_MIP_Problem_t mip, ppl_Coefficient_t num, ppl_Coefficient_t den)
| Returns the optimal value for `mip`.
Querying/Setting Control Parameters
int | ppl_MIP_Problem_get_control_parameter (ppl_const_MIP_Problem_t mip, int name)
| Returns the value of control parameter `name` in problem `mip`.
int | ppl_MIP_Problem_set_control_parameter (ppl_MIP_Problem_t mip, int value)
| Sets control parameter `value` in problem `mip`.
int | ppl_MIP_Problem_total_memory_in_bytes (ppl_const_MIP_Problem_t mip, size_t *sz)
| Writes into `*sz` the size in bytes of the memory occupied by `mip`.
int | ppl_MIP_Problem_external_memory_in_bytes (ppl_const_MIP_Problem_t mip, size_t *sz)
| Writes into `*sz` the size in bytes of the memory managed by `mip`.
Input/Output Functions
int | ppl_io_print_MIP_Problem (ppl_const_MIP_Problem_t x)
| Prints `x` to `stdout`.
int | ppl_io_fprint_MIP_Problem (FILE *stream, ppl_const_MIP_Problem_t x)
| Prints `x` to the given output `stream`.
int | ppl_io_asprint_MIP_Problem (char **strp, ppl_const_MIP_Problem_t x)
| Prints `x` to a malloc-allocated string, a pointer to which is returned via `strp`.
int | ppl_MIP_Problem_ascii_dump (ppl_const_MIP_Problem_t x, FILE *stream)
| Dumps an ascii representation of `x` on `stream`.
int | ppl_MIP_Problem_ascii_load (ppl_MIP_Problem_t x, FILE *stream)
| Loads an ascii representation of `x` from `stream`.

## Detailed Description

Types and functions for MIP problems.

The types and functions for MIP problems provide an interface towards MIP_Problem.

## Friends And Related Function Documentation

int ppl_MIP_Problem_solve | ( | ppl_const_MIP_Problem_t | mip | ) | `[related]`

Solves the MIP problem `mip`, returning an exit status.

Returns:
  `PPL_MIP_PROBLEM_STATUS_UNFEASIBLE` if the MIP problem is not satisfiable; `PPL_MIP_PROBLEM_STATUS_UNBOUNDED` if the MIP problem is satisfiable but there is no finite bound to the value of the objective function; `PPL_MIP_PROBLEM_STATUS_OPTIMIZED` if the MIP problem admits an optimal solution.

int ppl_MIP_Problem_evaluate_objective_function | ( | ppl_const_MIP_Problem_t | mip,
|  | ppl_const_Generator_t | g,
|  | ppl_Coefficient_t | num,
|  | ppl_Coefficient_t | den |
| ) |  |  | `[related]`

Evaluates the objective function of `mip` on point `g`.

Parameters:

  | mip | The MIP problem defining the objective function;
  | g | The generator on which the objective function will be evaluated;
  | num | Will be assigned the numerator of the objective function value;
  | den | Will be assigned the denominator of the objective function value;

int ppl_MIP_Problem_optimal_value | ( | ppl_const_MIP_Problem_t | mip,
|  | ppl_Coefficient_t | num,
|  | ppl_Coefficient_t | den |
| ) |  |  | `[related]`

Returns the optimal value for `mip`.

Parameters:

  | mip | The MIP problem;
  | num | Will be assigned the numerator of the optimal value;
  | den | Will be assigned the denominator of the optimal value.

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

- ppl_c_header.h