16 #define LP_ME_DEFAULT 0 17 #define LP_ME_OPTIMALITY 1 18 #define LP_ME_FEASIBILITY 2 26 #define LP_INFEASIBLE 1 27 #define LP_UNBOUNDED 2 29 #define LP_INTINFEASIBLE 4 30 #define LP_NO_SOL_FOUND 5 34 #define LP_CUT_TYPES 8 40 #define LPC_ZERO_HALF 5 41 #define LPC_KNAPSACK 6 45 #define CONS_PARTITIONING 0 46 #define CONS_PACKING 1 47 #define CONS_COVERING 2 48 #define CONS_CARDINALITY 3 49 #define CONS_KNAPSACK 4 50 #define CONS_INV_KNAPSACK 5 51 #define CONS_FLOW_BIN 6 52 #define CONS_FLOW_INT 7 53 #define CONS_FLOW_MX 8 56 #define CONS_NUMBER 11 105 void lp_add_col(
LinearProgram *lp,
double obj,
double lb,
double ub,
char integer,
char *name,
int nz,
int *rowIdx,
double *rowCoef );
121 void lp_add_cols(
LinearProgram *lp,
const int count,
double *obj,
double *lb,
double *ub,
char *integer,
char **name );
156 void lp_add_row(
LinearProgram *lp,
const int nz,
int *indexes,
double *coefs,
const char *name,
char sense,
const double rhs );
170 void lp_add_rows(
LinearProgram *lp,
int nRows,
int *starts,
int *idx,
double *coef,
char *sense,
double *rhs,
const char **names );
459 void lp_add_cutoff(
LinearProgram *lp,
double cutoff,
char addConstraint );
461 void lp_set_branching_priorities(
LinearProgram *lp,
int *priorities );
463 void lp_set_branching_direction(
LinearProgram *lp,
int direction );
467 void lp_set_mip_emphasis(
LinearProgram *lp,
const int mipEmphasis );
469 char *lp_status_str(
int status,
char *statusStr );
477 int lp_strengthen_with_cuts(
LinearProgram *lp,
const int maxRoundsCuts[] );
481 void lp_add_cut(
LinearProgram *lp,
int nz,
int *cutIdx,
double *cutCoef,
const char *name,
char sense,
double rhs );
484 void lp_parse_options(
LinearProgram *lp,
int argc,
const char **argv );
485 void lp_help_options( );
488 void lp_set_sol_out_file_name(
LinearProgram *lp,
const char *sfn );
489 void lp_set_sol_in_file_name(
LinearProgram *lp,
const char *sfn );
502 void lp_set_abs_mip_gap(
LinearProgram *lp,
const double _value );
503 void lp_set_rel_mip_gap(
LinearProgram *lp,
const double _value );
722 void lp_set_callback(
LinearProgram *lp, lp_cb callback,
void *data );
725 void lp_set_store_names(
bool store );
void lp_close_env()
frees environment static memory at the end of the program
Definition: lp.cpp:4732
double lp_col_ub(LinearProgram *lp, int col)
queries a column upper bound
Definition: lp.cpp:2989
char lp_is_integer(LinearProgram *lp, const int j)
checks if a given variable is integer or continuous
Definition: lp.cpp:1412
int lp_row_type(LinearProgram *lp, const int row)
returns the constraint type of a given row
Definition: lp.cpp:4467
void lp_free(LinearProgramPtr *lp)
releases from memory the problem stored in lp
Definition: lp.cpp:2646
double lp_col_lb(LinearProgram *lp, int col)
queries a column lower bound
Definition: lp.cpp:2959
void lp_set_obj(LinearProgram *lp, double obj[])
sets objective function coefficients
int lp_cols(LinearProgram *lp)
returns the numbef of columns (variables) in a given problem
Definition: lp.cpp:1367
void lp_add_rows(LinearProgram *lp, int nRows, int *starts, int *idx, double *coef, char *sense, double *rhs, const char **names)
Definition: lp.cpp:968
int lp_row(LinearProgram *lp, int row, int *idx, double *coef)
gets the contents of a given row (linear constraint)
Definition: lp.cpp:2755
int lp_num_saved_sols(LinearProgram *lp)
number of solutions stored in the solution pool
Definition: lp.cpp:3252
int lp_col(LinearProgram *lp, int col, int *idx, double *coef)
gets the contents of a given column (variable)
Definition: lp.cpp:2711
char * lp_row_name(LinearProgram *lp, int row, char *dest)
queries a row name
Definition: lp.cpp:2891
char * lp_col_name(LinearProgram *lp, int col, char *dest)
queries a column name
Definition: lp.cpp:2927
void lp_save_mip_start(LinearProgram *lp, const char *fileName)
saves the solution entered as MIPStart
Definition: lp.cpp:4770
void lp_mipstart_debug(LinearProgram *lp)
tries to discover the source of infeasibility in MIPStart
Definition: lp.cpp:4672
int lp_read_mip_start(LinearProgram *lp, const char *fileName)
Loads from fileName an initial feasible solution.
Definition: lp.cpp:4365
int lp_rows(LinearProgram *lp)
returns the numbef of rows (linear constraints) in a given problem
Definition: lp.cpp:1389
void lp_set_col_bounds(LinearProgram *lp, int col, const double lb, const double ub)
changes lower and upper bound of a column
Definition: lp.cpp:3448
int * lp_original_colummns(LinearProgram *lp)
if this is a pre-processed problem, returns indexes of respective original columns ...
Definition: lp.cpp:4663
char lp_sense(LinearProgram *lp, int row)
returns the sense of a given constraints
Definition: lp.cpp:2838
int lp_optimize(LinearProgram *lp)
Optimizes your Mixed Integer Program.
Definition: lp.cpp:1482
double * lp_reduced_cost(LinearProgram *lp)
reduced cost for columns - only available when solving continous models
Definition: lp.cpp:4748
void lp_fix_mipstart(LinearProgram *lp)
For debugging purposes: fixes mipstart variables one by one and optimizes (if initial solution is inv...
Definition: lp.cpp:4882
int lp_row_index(LinearProgram *lp, const char *name)
returns the row (linear constraint) index of a given row name
Definition: lp.cpp:3786
const double * lp_obj_coef(LinearProgram *lp)
return the vector with objective coefficients
Definition: lp.cpp:1328
void lp_remove_row(LinearProgram *lp, int idxRow)
Removes a row from lp.
Definition: lp.cpp:4676
void lp_rows_by_type(LinearProgram *lp, int rtype[])
fills the constraint types vector
Definition: lp.cpp:4596
void lp_add_cols(LinearProgram *lp, const int count, double *obj, double *lb, double *ub, char *integer, char **name)
adds new columns (variables)
Definition: lp.cpp:1089
void lp_set_rhs(LinearProgram *lp, int row, double rhs)
modifies the right-hand-side of a constraint
Definition: lp.cpp:3145
void lp_add_col(LinearProgram *lp, double obj, double lb, double ub, char integer, char *name, int nz, int *rowIdx, double *rowCoef)
adds a new column (variable)
Definition: lp.cpp:3046
void lp_cols_by_type(LinearProgram *lp, int *binaries, int *integers, int *continuous)
counts the number of binary, general integer and continuous variables in this problem ...
Definition: lp.cpp:4330
double lp_obj_value(LinearProgram *lp)
objective value of your optimization
Definition: lp.cpp:2382
double * lp_saved_sol_x(LinearProgram *lp, int isol)
objective value for the isol-th solution of the solution pool
Definition: lp.cpp:3521
double lp_saved_sol_obj(LinearProgram *lp, int isol)
objective value for the isol-th solution of the solution pool
Definition: lp.cpp:3512
int lp_nz(LinearProgram *lp)
returns the numbef of non-zero coefficients in the linear program rows
Definition: lp.cpp:4308
char lp_is_binary(LinearProgram *lp, const int j)
checks if a given variable is binary or not
Definition: lp.cpp:4460
double lp_rhs(LinearProgram *lp, int row)
return the right hand side of a given row
Definition: lp.cpp:2798
void lp_remove_rows(LinearProgram *lp, int nRows, int *rows)
Removes a set of rows from lp Removes a set of rows from lp, calling this function is usually faster ...
Definition: lp.cpp:4787
void lp_write_sol(LinearProgram *lp, const char *fileName)
Saves the incumbent solution in for lp in fileName.
Definition: lp.cpp:4050
void lp_add_bin_cols(LinearProgram *lp, const int count, double *obj, char **name)
adds a set of binary variables
Definition: lp.cpp:1320
void lp_load_mip_start(LinearProgram *lp, int count, const char **colNames, const double *colValues)
Enters a initial feasible solution for the problem. Variables are referenced by their names...
Definition: lp.cpp:4264
int lp_optimize_as_continuous(LinearProgram *lp)
optimizes only the linear programming relaxation of your MIP
Definition: lp.cpp:1471
LinearProgram * lp_create()
Creates an empty problem.
Definition: lp.cpp:415
void lp_add_cols_same_bound(LinearProgram *lp, const int count, double *obj, double lb, double ub, char *integer, char **name)
adds set of columns with the same bounds
Definition: lp.cpp:1311
int lp_get_direction(LinearProgram *lp)
returns optimization direction, minimization (LP_MIN) or maximization (LP_MAX)
Definition: lp.cpp:725
void lp_read(LinearProgram *lp, const char *fileName)
Reads a .lp or .mps file in fileName to object lp.
Definition: lp.cpp:564
LinearProgram * lp_clone(LinearProgram *lp)
Clones the problem in lp.
Definition: lp.cpp:3530
void lp_fix_col(LinearProgram *lp, int col, double val)
fixed a column to a value
Definition: lp.cpp:3631
int lp_col_index(LinearProgram *lp, const char *name)
returns the column (variable) index of a given column name
Definition: lp.cpp:3747
double lp_best_bound(LinearProgram *lp)
returns the best dual bound found during the search
Definition: lp.cpp:4591
void lp_add_row(LinearProgram *lp, const int nz, int *indexes, double *coefs, const char *name, char sense, const double rhs)
Definition: lp.cpp:845
void lp_write_lp(LinearProgram *lp, const char *fileName)
saves the problem in lp to file fileName. Use extension .lp or .mps to define file format...
Definition: lp.cpp:603
void lp_set_integer(LinearProgram *lp, int nCols, int cols[])
sets the type of some variables to integer
Definition: lp.cpp:4604
void lp_set_direction(LinearProgram *lp, const char direction)
sets optimization direction, maximization or minimization
Definition: lp.cpp:674
char lp_is_mip(LinearProgram *lp)
checks if there are integer variables in this program
void lp_load_mip_starti(LinearProgram *lp, int count, const int *colIndexes, const double *colValues)
Enters a initial feasible solution for the problem using column indexes. Only the main decision varia...
Definition: lp.cpp:4234
void lp_chg_obj(LinearProgram *lp, int count, int idx[], double obj[])
changes a set of objective function coefficients
Definition: lp.cpp:4292
double * lp_x(LinearProgram *lp)
returns the vector of solution values
Definition: lp.cpp:2427