146 else if( nfound >= 2 )
219 for(
r = 0;
r < nreaders; ++
r )
242 SCIP_Bool transformed,
257 if( filename[0] !=
'\0' )
290 if( extension ==
NULL )
298 "select a suitable reader by extension (or return): ", &extension, &
endoffile) );
300 if( extension[0] ==
'\0' )
322 while( extension !=
NULL );
394 SCIP_CALL(
SCIPparseCons(
scip, &cons,
str,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE, &
success) );
512 SCIPdialogMessage(
scip,
NULL,
"ignore new upper bound <%.15g> since it is smaller than the current lower bound <%.15g>\n",
566 if(
strncmp(objsense,
"max", 3) == 0 )
570 else if(
strncmp(objsense ,
"min", 3) == 0 )
669 if( filename[0] !=
'\0' )
704 for(
i = 0;
i < nbenders; ++
i )
743 for(
i = 0;
i < nbranchrules; ++
i )
791 for(
i = 0;
i < nrelaxs; ++
i )
835 for(
i = 0;
i < nconflicthdlrs; ++
i )
872 for(
i = 0;
i < nconshdlrs; ++
i )
913 for(
i = 0;
i < ndisps; ++
i )
965 for(
i = 0;
i < nexprhdlrs; ++
i )
995 for(
i = 0;
i < ncutsels; ++
i )
1034 for(
i = 0;
i < nheurs; ++
i )
1098 for(
i = 0;
i < nnlpis; ++
i )
1137 for(
i = 0;
i < nnodesels; ++
i )
1190 for(
i = 0;
i < npresols; ++
i )
1226 for(
i = 0;
i < npricers; ++
i )
1283 for(
i = 0;
i < nprops; ++
i )
1333 for(
i = 0;
i < nsepas; ++
i )
1375 assert(fixedvars !=
NULL || nfixedvars == 0);
1378 for( v = 0; v < nfixedvars; ++v )
1389If you want SCIP to display an optimal solution without infinite values, use 'display finitesolution'.\n");
1408 if( bestsol !=
NULL )
1558 if( nactivebenders == 0 )
1568 if( nactivebenders > 1 )
1572 for(
i = 0;
i < nbenders;
i++ )
1577 benders[count] = benders[
i];
1611 if( nsubproblems > 1 )
1703 if( nactivebenders == 0 )
1713 if( nactivebenders > 1 )
1717 for(
i = 0;
i < nbenders;
i++ )
1722 benders[count] = benders[
i];
1758 if( nsubproblems > 1 )
1780 SCIP_Bool infeasible;
1902 for(
i = 0;
i < ncomprs; ++
i )
2286 if( filename[0] !=
'\0' )
2309 if( extension ==
NULL )
2321 if( extension ==
NULL )
2329 "select a suitable reader by extension (or return): ", &extension, &
endoffile) );
2331 if( extension[0] ==
'\0' )
2347 while( extension !=
NULL );
2390 if( filename[0] !=
'\0' )
2424 if( filename[0] !=
'\0' )
2461 if( filename[0] !=
'\0' )
2524 SCIPdialogMessage(
scip,
NULL,
"\nInvalid value <%s> for bool parameter <%s>. Must be <0>, <1>, <FALSE>, or <TRUE>.\n\n",
2640 SCIPdialogMessage(
scip,
NULL,
"\nInvalid real parameter value <%s> for parameter <%s>. Must be in range [%.15g,%.15g].\n\n",
2908 SCIPerrorMessage(
"invalid preferred branching direction <%d> of variable <%s>\n",
3362 if( filename[0] !=
'\0' )
3429 "using generic variable and row names (TRUE/FALSE): ",
3456 "using original objective function (TRUE/FALSE): ",
3482 "output removable rows as lazy constraints (TRUE/FALSE): ",
3552 if( filename[0] !=
'\0' )
3629 if( filename[0] !=
'\0' )
3635 file =
fopen(filename,
"w");
3680 if( filename[0] !=
'\0' )
3686 file =
fopen(filename,
"w");
3736 if( filename[0] !=
'\0' )
3747 "check that the directory exists and that you have correct permissions\n", filename);
3778 if( filename[0] !=
'\0' )
3784 file =
fopen(filename,
"w");
3801 if( bestsol !=
NULL )
3856 if( filename[0] !=
'\0' )
3862 file =
fopen(filename,
"w");
3935 const char*
primaldual[] = {
"primal",
"dual"};
3940 for(
i = 0;
i < 2; ++
i )
4011 "SCIP",
"SCIP's main menu",
TRUE,
NULL) );
4043 "change",
"change the problem",
TRUE,
NULL) );
4059 "add",
"add constraint",
FALSE,
NULL) );
4070 "bounds",
"change bounds of a variable",
FALSE,
NULL) );
4081 "freetransproblem",
"free transformed problem",
FALSE,
NULL) );
4092 "objsense",
"change objective sense",
FALSE,
NULL) );
4103 "checksol",
"double checks best solution w.r.t. original problem",
FALSE,
NULL) );
4114 "display",
"display information",
TRUE,
NULL) );
4130 "benders",
"display Benders' decomposition",
FALSE,
NULL) );
4141 "branching",
"display branching rules",
FALSE,
NULL) );
4152 "compression",
"display compression techniques",
FALSE,
NULL) );
4163 "conflict",
"display conflict handlers",
FALSE,
NULL) );
4174 "conshdlrs",
"display constraint handlers",
FALSE,
NULL) );
4185 "displaycols",
"display display columns",
FALSE,
NULL) );
4196 "exprhdlrs",
"display expression handlers",
FALSE,
NULL) );
4206 "cutselectors",
"display cut selectors",
FALSE,
NULL));
4217 "heuristics",
"display primal heuristics",
FALSE,
NULL) );
4228 "memory",
"display memory diagnostics",
FALSE,
NULL) );
4239 "nlpis",
"display NLP solver interfaces",
FALSE,
NULL) );
4250 "nodeselectors",
"display node selectors",
FALSE,
NULL) );
4261 "parameters",
"display non-default parameter settings",
FALSE,
NULL) );
4272 "presolvers",
"display presolvers",
FALSE,
NULL) );
4283 "pricers",
"display pricers",
FALSE,
NULL) );
4294 "problem",
"display original problem",
FALSE,
NULL) );
4305 "propagators",
"display propagators",
FALSE,
NULL) );
4316 "readers",
"display file readers",
FALSE,
NULL) );
4327 "relaxators",
"display relaxators",
FALSE,
NULL) );
4338 "separators",
"display cut separators",
FALSE,
NULL) );
4349 "solution",
"display best primal solution",
FALSE,
NULL) );
4360 "finitesolution",
"display best primal solution (try to make solution values finite, first)",
FALSE,
NULL) );
4371 "dualsolution",
"display dual solution vector (LP only, without presolving)",
FALSE,
NULL) );
4382 "sols",
"display solutions from pool",
FALSE,
NULL) );
4393 "subproblem",
"display subproblem of a Benders' decomposition",
FALSE,
NULL) );
4404 "subsolution",
"display solution to the Benders' decomposition subproblems given the best master problem solution",
FALSE,
NULL) );
4415 "statistics",
"display problem and optimization statistics",
FALSE,
NULL) );
4426 "reoptstatistics",
"display reoptimization statistics",
FALSE,
NULL) );
4437 "transproblem",
"display current node transformed problem",
FALSE,
NULL) );
4448 "value",
"display value of single variable in best primal solution",
FALSE,
NULL) );
4459 "varbranchstatistics",
"display statistics for branching on variables",
FALSE,
NULL) );
4470 "lpsolquality",
"display quality of the current LP solution, if available",
FALSE,
NULL) );
4481 "transsolution",
"display best primal solution in transformed variables",
FALSE,
NULL) );
4492 "linclass",
"linear constraint classification as used for MIPLIB",
FALSE,
NULL) );
4503 "free",
"free current problem from memory",
FALSE,
NULL) );
4514 "help",
"display this help",
FALSE,
NULL) );
4525 "newstart",
"reset branch and bound tree to start again from root",
FALSE,
NULL) );
4537 "transform",
"transforms problem from original state",
FALSE,
NULL) );
4549 "optimize",
"solve the problem",
FALSE,
NULL) );
4560 "concurrentopt",
"solve the problem using concurrent solvers",
FALSE,
NULL) );
4571 "presolve",
"solve the problem, but stop after presolving stage",
FALSE,
NULL) );
4593 "read",
"read a problem",
FALSE,
NULL) );
4604 "write",
"write information to file",
TRUE,
NULL) );
4620 "lp",
"write current node LP relaxation in LP format to file",
FALSE,
NULL) );
4631 "mip",
"write current node MIP relaxation in LP format to file",
FALSE,
NULL) );
4642 "nlp",
"write current node NLP relaxation to file",
FALSE,
NULL) );
4654 "write original problem to file (format is given by file extension, e.g., orig.{lp,rlp,cip,mps})",
4667 "write original problem with generic names to file (format is given by file extension, e.g., orig.{lp,rlp,cip,mps})",
4679 "solution",
"write best primal solution to file",
FALSE,
NULL) );
4690 "finitesolution",
"write best primal solution to file (try to make solution values finite, first)",
FALSE,
NULL) );
4701 "mipstart",
"write mip start to file",
FALSE,
NULL) );
4712 "statistics",
"write statistics to file",
FALSE,
NULL) );
4724 "write current node transformed problem to file (format is given by file extension, e.g., trans.{lp,rlp,cip,mps})",
4737 "write current node transformed problem with generic names to file (format is given by file extension, e.g., trans.{lp,rlp,cip,mps})",
4750 "write graph of cliques and implications of binary variables to GML file (better call after presolving)",
4763 "write command line history to a file (only works if SCIP was compiled with 'readline')",
4774 "validate the solution against external objective reference interval",
5017 "emphasis",
"predefined parameter settings",
TRUE,
NULL) );
5086 "set",
"load/save/change parameters",
TRUE,
NULL) );
5102 "default",
"reset parameter settings to their default values",
FALSE,
NULL) );
5113 "load",
"load parameter settings from a file",
FALSE,
NULL) );
5124 "save",
"save parameter settings to a file",
FALSE,
NULL) );
5135 "diffsave",
"save non-default parameter settings to a file",
FALSE,
NULL) );
5146 "branching",
"change parameters for branching rules",
TRUE,
NULL) );
5159 for(
i = 0;
i < nbranchrules; ++
i )
5178 "priority",
"change branching priority of a single variable",
FALSE,
NULL) );
5189 "direction",
"change preferred branching direction of a single variable (-1:down, 0:auto, +1:up)",
5201 "conflict",
"change parameters for conflict handlers",
TRUE,
NULL) );
5214 for(
i = 0;
i < nconflicthdlrs; ++
i )
5233 "constraints",
"change parameters for constraint handlers",
TRUE,
NULL) );
5246 for(
i = 0;
i < nconshdlrs; ++
i )
5265 "cutselection",
"change parameters for cut selectors",
TRUE,
NULL) );
5278 for(
i = 0;
i < ncutsels; ++
i )
5297 "display",
"change parameters for display columns",
TRUE,
NULL) );
5310 for(
i = 0;
i < ndisps; ++
i )
5328 "estimation",
"change parameters for restarts and tree size estimation",
TRUE,
NULL) );
5338 "expr",
"change parameters for expression handlers",
TRUE,
NULL) );
5349 "heuristics",
"change parameters for primal heuristics",
TRUE,
NULL) );
5362 for(
i = 0;
i < nheurs; ++
i )
5384 "aggressive",
"sets heuristics <aggressive>",
FALSE,
NULL) );
5394 "default",
"sets heuristics settings to <default> ",
FALSE,
NULL) );
5404 "fast",
"sets heuristics <fast>",
FALSE,
NULL) );
5414 "off",
"turns <off> all heuristics",
FALSE,
NULL) );
5425 "limits",
"change parameters for time, memory, objective value, and other limits",
TRUE,
NULL) );
5431 "objective",
"set limit on objective function, such that only solutions better than this limit are accepted",
FALSE,
NULL) );
5444 "lp",
"change parameters for linear programming relaxations",
TRUE,
NULL) );
5455 "nlp",
"change parameters for nonlinear programming relaxation",
TRUE,
NULL) );
5466 "memory",
"change parameters for memory management",
TRUE,
NULL) );
5477 "misc",
"change parameters for miscellaneous stuff",
TRUE,
NULL) );
5487 "nlhdlr",
"change parameters for nonlinear handlers",
TRUE,
NULL) );
5498 "nlpi",
"change parameters for NLP solver interfaces",
TRUE,
NULL) );
5511 for(
i = 0;
i < nnlpis; ++
i )
5530 "nodeselection",
"change parameters for node selectors",
TRUE,
NULL) );
5543 for(
i = 0;
i < nnodesels; ++
i )
5562 "numerics",
"change parameters for numerical values",
TRUE,
NULL) );
5573 "parallel",
"change parameters for parallel implementation",
TRUE,
NULL) );
5584 "presolving",
"change parameters for presolving",
TRUE,
NULL) );
5597 for(
i = 0;
i < npresols; ++
i )
5618 "aggressive",
"sets presolving <aggressive>",
FALSE,
NULL) );
5628 "default",
"sets presolving settings to <default>",
FALSE,
NULL) );
5638 "fast",
"sets presolving <fast>",
FALSE,
NULL) );
5648 "off",
"turns <off> all presolving",
FALSE,
NULL) );
5659 "pricing",
"change parameters for pricing variables",
TRUE,
NULL) );
5672 for(
i = 0;
i < npricers; ++
i )
5691 "propagating",
"change parameters for constraint propagation",
TRUE,
NULL) );
5702 "reading",
"change parameters for problem file readers",
TRUE,
NULL) );
5715 for(
i = 0;
i < nreaders; ++
i )
5733 "separating",
"change parameters for cut separators",
TRUE,
NULL) );
5746 for(
i = 0;
i < nsepas; ++
i )
5767 "aggressive",
"sets separating <aggressive>",
FALSE,
NULL) );
5777 "default",
"sets separating settings to <default>",
FALSE,
NULL) );
5787 "fast",
"sets separating <fast>",
FALSE,
NULL) );
5797 "off",
"turns <off> all separation",
FALSE,
NULL) );
5807 "timing",
"change parameters for timing issues",
TRUE,
NULL) );
5817 "visual",
"change parameters for visualization output",
TRUE,
NULL) );
5830 for(
i = 0;
i < nparams; ++
i )
5845 "counter",
"predefined parameter settings for a \"feasible\" and \"fast\" counting process",
FALSE,
NULL) );
5854 "cpsolver",
"predefined parameter settings for CP like search",
FALSE,
NULL) );
5863 "easycip",
"predefined parameter settings for easy problems",
FALSE,
NULL) );
5872 "feasibility",
"predefined parameter settings for feasibility problems",
FALSE,
NULL) );
5881 "hardlp",
"predefined parameter settings for problems with a hard LP",
FALSE,
NULL) );
5890 "optimality",
"predefined parameter settings for proving optimality fast",
FALSE,
NULL) );
5899 "numerics",
"predefined parameter settings for increased numerical stability",
FALSE,
NULL) );
5908 "benchmark",
"predefined parameter settings for running in benchmark mode",
FALSE,
NULL) );
5968 "fix",
"fix/unfix parameters",
TRUE,
NULL) );
5984 "branching",
"fix parameters for branching rules",
TRUE,
NULL) );
5997 for(
i = 0;
i < nbranchrules; ++
i )
6016 "conflict",
"fix parameters for conflict handlers",
TRUE,
NULL) );
6029 for(
i = 0;
i < nconflicthdlrs; ++
i )
6048 "constraints",
"fix parameters for constraint handlers",
TRUE,
NULL) );
6061 for(
i = 0;
i < nconshdlrs; ++
i )
6080 "cutselection",
"fix parameters for cut selectors",
TRUE,
NULL) );
6093 for(
i = 0;
i < ncutsels; ++
i )
6112 "display",
"fix parameters for display columns",
TRUE,
NULL) );
6125 for(
i = 0;
i < ndisps; ++
i )
6144 "heuristics",
"fix parameters for primal heuristics",
TRUE,
NULL) );
6157 for(
i = 0;
i < nheurs; ++
i )
6176 "limits",
"fix parameters for time, memory, objective value, and other limits",
TRUE,
NULL) );
6188 "lp",
"fix parameters for linear programming relaxations",
TRUE,
NULL) );
6199 "nlp",
"fix parameters for nonlinear programming relaxations",
TRUE,
NULL) );
6210 "memory",
"fix parameters for memory management",
TRUE,
NULL) );
6221 "misc",
"fix parameters for miscellaneous stuff",
TRUE,
NULL) );
6232 "nlpi",
"fix parameters for NLP solver interfaces",
TRUE,
NULL) );
6245 for(
i = 0;
i < nnlpis; ++
i )
6264 "nodeselection",
"fix parameters for node selectors",
TRUE,
NULL) );
6277 for(
i = 0;
i < nnodesels; ++
i )
6296 "numerics",
"fix parameters for numerical values",
TRUE,
NULL) );
6307 "presolving",
"fix parameters for presolving",
TRUE,
NULL) );
6320 for(
i = 0;
i < npresols; ++
i )
6338 "pricing",
"fix parameters for pricing variables",
TRUE,
NULL) );
6351 for(
i = 0;
i < npricers; ++
i )
6370 "propagating",
"fix parameters for constraint propagation",
TRUE,
NULL) );
6381 "reading",
"fix parameters for problem file readers",
TRUE,
NULL) );
6394 for(
i = 0;
i < nreaders; ++
i )
6412 "separating",
"fix parameters for cut separators",
TRUE,
NULL) );
6425 for(
i = 0;
i < nsepas; ++
i )
6442 "timing",
"fix parameters for timing issues",
TRUE,
NULL) );
6452 for(
i = 0;
i < nparams; ++
i )
Constraint handler for linear constraints in their most general form, .
#define SCIP_CALL_FINALLY(x, y)
static SCIP_RETCODE writeProblem(SCIP *scip, SCIP_DIALOG *dialog, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG **nextdialog, SCIP_Bool transformed, SCIP_Bool genericnames)
static SCIP_RETCODE dialogExecMenu(SCIP *scip, SCIP_DIALOG *dialog, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG **nextdialog)
static SCIP_RETCODE addFixParamDialog(SCIP *scip, SCIP_DIALOG *menu, SCIP_PARAM *param, char *paramname)
static SCIP_RETCODE createEmphasisSubmenu(SCIP *scip, SCIP_DIALOG *root, SCIP_DIALOG **submenu)
static SCIP_RETCODE addSetParamDialog(SCIP *scip, SCIP_DIALOG *menu, SCIP_PARAM *param, char *paramname)
static void displayReaders(SCIP *scip, SCIP_Bool reader, SCIP_Bool writer)
static SCIP_Bool parseBoolValue(SCIP *scip, const char *valuestr, SCIP_Bool *error)
default user interface dialog
SCIP_RETCODE SCIPclassifyConstraintTypesLinear(SCIP *scip, SCIP_LINCONSSTATS *linconsstats)
SCIP_RETCODE SCIPcreateRootDialog(SCIP *scip, SCIP_DIALOG **root)
SCIP_RETCODE SCIPincludeDialogDefaultBasic(SCIP *scip)
SCIP_RETCODE SCIPincludeDialogDefaultSet(SCIP *scip)
SCIP_RETCODE SCIPincludeDialogDefaultFix(SCIP *scip)
SCIP_Bool SCIPfileExists(const char *filename)
SCIP_Bool SCIPisTransformed(SCIP *scip)
SCIP_RETCODE SCIPprintStatus(SCIP *scip, FILE *file)
SCIP_STAGE SCIPgetStage(SCIP *scip)
SCIP_RETCODE SCIPwriteOrigProblem(SCIP *scip, const char *filename, const char *extension, SCIP_Bool genericnames)
SCIP_RETCODE SCIPsetObjlimit(SCIP *scip, SCIP_Real objlimit)
SCIP_Real SCIPgetObjlimit(SCIP *scip)
SCIP_RETCODE SCIPaddCons(SCIP *scip, SCIP_CONS *cons)
SCIP_RETCODE SCIPfreeProb(SCIP *scip)
SCIP_RETCODE SCIPsetObjsense(SCIP *scip, SCIP_OBJSENSE objsense)
SCIP_RETCODE SCIPwriteTransProblem(SCIP *scip, const char *filename, const char *extension, SCIP_Bool genericnames)
int SCIPgetNFixedVars(SCIP *scip)
SCIP_VAR ** SCIPgetFixedVars(SCIP *scip)
SCIP_VAR * SCIPfindVar(SCIP *scip, const char *name)
SCIP_RETCODE SCIPreadProb(SCIP *scip, const char *filename, const char *extension)
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
SCIP_MESSAGEHDLR * SCIPgetMessagehdlr(SCIP *scip)
void SCIPdialogMessage(SCIP *scip, FILE *file, const char *formatstr,...)
SCIP_RETCODE SCIPgetBoolParam(SCIP *scip, const char *name, SCIP_Bool *value)
SCIP_Bool SCIPisStringParamValid(SCIP *scip, SCIP_PARAM *param, const char *value)
SCIP_RETCODE SCIPresetParams(SCIP *scip)
SCIP_RETCODE SCIPchgCharParam(SCIP *scip, SCIP_PARAM *param, char value)
SCIP_RETCODE SCIPchgStringParam(SCIP *scip, SCIP_PARAM *param, const char *value)
int SCIPgetNParams(SCIP *scip)
SCIP_RETCODE SCIPsetHeuristics(SCIP *scip, SCIP_PARAMSETTING paramsetting, SCIP_Bool quiet)
SCIP_Bool SCIPisCharParamValid(SCIP *scip, SCIP_PARAM *param, const char value)
SCIP_RETCODE SCIPgetRealParam(SCIP *scip, const char *name, SCIP_Real *value)
SCIP_Bool SCIPisIntParamValid(SCIP *scip, SCIP_PARAM *param, int value)
SCIP_RETCODE SCIPreadParams(SCIP *scip, const char *filename)
SCIP_RETCODE SCIPwriteParams(SCIP *scip, const char *filename, SCIP_Bool comments, SCIP_Bool onlychanged)
SCIP_RETCODE SCIPchgBoolParam(SCIP *scip, SCIP_PARAM *param, SCIP_Bool value)
SCIP_RETCODE SCIPsetPresolving(SCIP *scip, SCIP_PARAMSETTING paramsetting, SCIP_Bool quiet)
SCIP_RETCODE SCIPchgRealParam(SCIP *scip, SCIP_PARAM *param, SCIP_Real value)
SCIP_RETCODE SCIPsetEmphasis(SCIP *scip, SCIP_PARAMEMPHASIS paramemphasis, SCIP_Bool quiet)
SCIP_RETCODE SCIPchgLongintParam(SCIP *scip, SCIP_PARAM *param, SCIP_Longint value)
SCIP_PARAM ** SCIPgetParams(SCIP *scip)
SCIP_Bool SCIPisLongintParamValid(SCIP *scip, SCIP_PARAM *param, SCIP_Longint value)
SCIP_Bool SCIPisRealParamValid(SCIP *scip, SCIP_PARAM *param, SCIP_Real value)
SCIP_RETCODE SCIPchgIntParam(SCIP *scip, SCIP_PARAM *param, int value)
SCIP_RETCODE SCIPsetSeparating(SCIP *scip, SCIP_PARAMSETTING paramsetting, SCIP_Bool quiet)
SCIP_Bool SCIPisBoolParamValid(SCIP *scip, SCIP_PARAM *param, SCIP_Bool value)
int SCIPgetNActiveBenders(SCIP *scip)
SCIP_BENDERS ** SCIPgetBenders(SCIP *scip)
int SCIPgetNBenders(SCIP *scip)
int SCIPbendersGetPriority(SCIP_BENDERS *benders)
const char * SCIPbendersGetDesc(SCIP_BENDERS *benders)
SCIP_BENDERSSUBTYPE SCIPbendersGetSubproblemType(SCIP_BENDERS *benders, int probnumber)
SCIP_RETCODE SCIPfreeBendersSubproblem(SCIP *scip, SCIP_BENDERS *benders, int probnumber)
SCIP_RETCODE SCIPsetupBendersSubproblem(SCIP *scip, SCIP_BENDERS *benders, SCIP_SOL *sol, int probnumber, SCIP_BENDERSENFOTYPE type)
SCIP_RETCODE SCIPsolveBendersSubproblem(SCIP *scip, SCIP_BENDERS *benders, SCIP_SOL *sol, int probnumber, SCIP_Bool *infeasible, SCIP_Bool solvecip, SCIP_Real *objective)
SCIP_Bool SCIPbendersIsActive(SCIP_BENDERS *benders)
const char * SCIPbendersGetName(SCIP_BENDERS *benders)
int SCIPbendersGetNSubproblems(SCIP_BENDERS *benders)
SCIP * SCIPbendersSubproblem(SCIP_BENDERS *benders, int probnumber)
int SCIPbranchruleGetMaxdepth(SCIP_BRANCHRULE *branchrule)
SCIP_BRANCHRULE ** SCIPgetBranchrules(SCIP *scip)
const char * SCIPbranchruleGetName(SCIP_BRANCHRULE *branchrule)
int SCIPbranchruleGetPriority(SCIP_BRANCHRULE *branchrule)
SCIP_Real SCIPbranchruleGetMaxbounddist(SCIP_BRANCHRULE *branchrule)
const char * SCIPbranchruleGetDesc(SCIP_BRANCHRULE *branchrule)
int SCIPgetNBranchrules(SCIP *scip)
int SCIPcomprGetPriority(SCIP_COMPR *compr)
int SCIPgetNCompr(SCIP *scip)
SCIP_COMPR ** SCIPgetComprs(SCIP *scip)
const char * SCIPcomprGetDesc(SCIP_COMPR *compr)
const char * SCIPcomprGetName(SCIP_COMPR *compr)
int SCIPcomprGetMinNodes(SCIP_COMPR *compr)
int SCIPconflicthdlrGetPriority(SCIP_CONFLICTHDLR *conflicthdlr)
const char * SCIPconflicthdlrGetName(SCIP_CONFLICTHDLR *conflicthdlr)
const char * SCIPconflicthdlrGetDesc(SCIP_CONFLICTHDLR *conflicthdlr)
SCIP_CONFLICTHDLR ** SCIPgetConflicthdlrs(SCIP *scip)
int SCIPgetNConflicthdlrs(SCIP *scip)
int SCIPconshdlrGetEagerFreq(SCIP_CONSHDLR *conshdlr)
SCIP_PRESOLTIMING SCIPconshdlrGetPresolTiming(SCIP_CONSHDLR *conshdlr)
int SCIPgetNConshdlrs(SCIP *scip)
int SCIPconshdlrGetSepaPriority(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetPropFreq(SCIP_CONSHDLR *conshdlr)
const char * SCIPconshdlrGetName(SCIP_CONSHDLR *conshdlr)
const char * SCIPconshdlrGetDesc(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetCheckPriority(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetSepaFreq(SCIP_CONSHDLR *conshdlr)
SCIP_CONSHDLR ** SCIPgetConshdlrs(SCIP *scip)
int SCIPconshdlrGetEnfoPriority(SCIP_CONSHDLR *conshdlr)
SCIP_RETCODE SCIPparseCons(SCIP *scip, SCIP_CONS **cons, const char *str, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode, SCIP_Bool *success)
SCIP_RETCODE SCIPreleaseCons(SCIP *scip, SCIP_CONS **cons)
const char * SCIPcutselGetDesc(SCIP_CUTSEL *cutsel)
int SCIPcutselGetPriority(SCIP_CUTSEL *cutsel)
const char * SCIPcutselGetName(SCIP_CUTSEL *cutsel)
SCIP_CUTSEL ** SCIPgetCutsels(SCIP *scip)
int SCIPgetNCutsels(SCIP *scip)
void SCIPdialoghdlrClearBuffer(SCIP_DIALOGHDLR *dialoghdlr)
SCIP_RETCODE SCIPreleaseDialog(SCIP *scip, SCIP_DIALOG **dialog)
SCIP_DIALOG * SCIPdialoghdlrGetRoot(SCIP_DIALOGHDLR *dialoghdlr)
SCIP_Bool SCIPdialogHasEntry(SCIP_DIALOG *dialog, const char *entryname)
SCIP_RETCODE SCIPdialoghdlrAddHistory(SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog, const char *command, SCIP_Bool escapecommand)
SCIP_RETCODE SCIPincludeDialog(SCIP *scip, SCIP_DIALOG **dialog, SCIP_DECL_DIALOGCOPY((*dialogcopy)), SCIP_DECL_DIALOGEXEC((*dialogexec)), SCIP_DECL_DIALOGDESC((*dialogdesc)), SCIP_DECL_DIALOGFREE((*dialogfree)), const char *name, const char *desc, SCIP_Bool issubmenu, SCIP_DIALOGDATA *dialogdata)
SCIP_Bool SCIPdialoghdlrIsBufferEmpty(SCIP_DIALOGHDLR *dialoghdlr)
SCIP_RETCODE SCIPaddDialogEntry(SCIP *scip, SCIP_DIALOG *dialog, SCIP_DIALOG *subdialog)
SCIP_RETCODE SCIPdialoghdlrGetWord(SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog, const char *prompt, char **inputword, SCIP_Bool *endoffile)
SCIP_DIALOGDATA * SCIPdialogGetData(SCIP_DIALOG *dialog)
SCIP_RETCODE SCIPdialogDisplayCompletions(SCIP_DIALOG *dialog, SCIP *scip, const char *entryname)
SCIP_RETCODE SCIPsetRootDialog(SCIP *scip, SCIP_DIALOG *dialog)
SCIP_DIALOG * SCIPgetRootDialog(SCIP *scip)
SCIP_RETCODE SCIPdialogWriteHistory(const char *filename)
int SCIPdialogFindEntry(SCIP_DIALOG *dialog, const char *entryname, SCIP_DIALOG **subdialog)
SCIP_RETCODE SCIPdialoghdlrGetLine(SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog, const char *prompt, char **inputline, SCIP_Bool *endoffile)
SCIP_DIALOG * SCIPdialogGetParent(SCIP_DIALOG *dialog)
SCIP_RETCODE SCIPdialogDisplayMenu(SCIP_DIALOG *dialog, SCIP *scip)
SCIP_DISP ** SCIPgetDisps(SCIP *scip)
int SCIPgetNDisps(SCIP *scip)
SCIP_DISPSTATUS SCIPdispGetStatus(SCIP_DISP *disp)
const char * SCIPdispGetName(SCIP_DISP *disp)
const char * SCIPdispGetHeader(SCIP_DISP *disp)
int SCIPdispGetPosition(SCIP_DISP *disp)
int SCIPdispGetPriority(SCIP_DISP *disp)
int SCIPdispGetWidth(SCIP_DISP *disp)
const char * SCIPdispGetDesc(SCIP_DISP *disp)
const char * SCIPexprhdlrGetName(SCIP_EXPRHDLR *exprhdlr)
int SCIPgetNExprhdlrs(SCIP *scip)
unsigned int SCIPexprhdlrGetPrecedence(SCIP_EXPRHDLR *exprhdlr)
const char * SCIPexprhdlrGetDescription(SCIP_EXPRHDLR *exprhdlr)
SCIP_EXPRHDLR ** SCIPgetExprhdlrs(SCIP *scip)
char SCIPheurGetDispchar(SCIP_HEUR *heur)
SCIP_HEUR ** SCIPgetHeurs(SCIP *scip)
const char * SCIPheurGetDesc(SCIP_HEUR *heur)
int SCIPheurGetPriority(SCIP_HEUR *heur)
int SCIPgetNHeurs(SCIP *scip)
int SCIPheurGetFreqofs(SCIP_HEUR *heur)
int SCIPheurGetFreq(SCIP_HEUR *heur)
const char * SCIPheurGetName(SCIP_HEUR *heur)
SCIP_RETCODE SCIPprintLPSolutionQuality(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPwriteMIP(SCIP *scip, const char *filename, SCIP_Bool genericnames, SCIP_Bool origobj, SCIP_Bool lazyconss)
SCIP_RETCODE SCIPwriteLP(SCIP *scip, const char *filename)
void SCIPprintMemoryDiagnostic(SCIP *scip)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPduplicateBufferArray(scip, ptr, source, num)
#define SCIPfreeBufferArrayNull(scip, ptr)
const char * SCIPnlpiGetDesc(SCIP_NLPI *nlpi)
int SCIPnlpiGetPriority(SCIP_NLPI *nlpi)
const char * SCIPnlpiGetName(SCIP_NLPI *nlpi)
int SCIPgetNNlpis(SCIP *scip)
SCIP_NLPI ** SCIPgetNlpis(SCIP *scip)
SCIP_RETCODE SCIPwriteNLP(SCIP *scip, const char *filename)
SCIP_Bool SCIPisNLPConstructed(SCIP *scip)
SCIP_NODESEL ** SCIPgetNodesels(SCIP *scip)
const char * SCIPnodeselGetDesc(SCIP_NODESEL *nodesel)
int SCIPnodeselGetMemsavePriority(SCIP_NODESEL *nodesel)
int SCIPnodeselGetStdPriority(SCIP_NODESEL *nodesel)
int SCIPgetNNodesels(SCIP *scip)
const char * SCIPnodeselGetName(SCIP_NODESEL *nodesel)
int SCIPpresolGetPriority(SCIP_PRESOL *presol)
SCIP_PRESOL ** SCIPgetPresols(SCIP *scip)
const char * SCIPpresolGetDesc(SCIP_PRESOL *presol)
int SCIPgetNPresols(SCIP *scip)
int SCIPpresolGetMaxrounds(SCIP_PRESOL *presol)
SCIP_PRESOLTIMING SCIPpresolGetTiming(SCIP_PRESOL *presol)
const char * SCIPpresolGetName(SCIP_PRESOL *presol)
const char * SCIPpricerGetDesc(SCIP_PRICER *pricer)
SCIP_Bool SCIPpricerIsDelayed(SCIP_PRICER *pricer)
int SCIPpricerGetPriority(SCIP_PRICER *pricer)
int SCIPgetNPricers(SCIP *scip)
SCIP_PRICER ** SCIPgetPricers(SCIP *scip)
const char * SCIPpricerGetName(SCIP_PRICER *pricer)
void SCIPlinConsStatsFree(SCIP *scip, SCIP_LINCONSSTATS **linconsstats)
void SCIPprintLinConsStats(SCIP *scip, FILE *file, SCIP_LINCONSSTATS *linconsstats)
SCIP_RETCODE SCIPlinConsStatsCreate(SCIP *scip, SCIP_LINCONSSTATS **linconsstats)
SCIP_Bool SCIPpropIsDelayed(SCIP_PROP *prop)
int SCIPpropGetFreq(SCIP_PROP *prop)
int SCIPgetNProps(SCIP *scip)
const char * SCIPpropGetDesc(SCIP_PROP *prop)
int SCIPpropGetPresolPriority(SCIP_PROP *prop)
const char * SCIPpropGetName(SCIP_PROP *prop)
int SCIPpropGetPriority(SCIP_PROP *prop)
SCIP_PROP ** SCIPgetProps(SCIP *scip)
SCIP_PRESOLTIMING SCIPpropGetPresolTiming(SCIP_PROP *prop)
const char * SCIPreaderGetExtension(SCIP_READER *reader)
int SCIPgetNReaders(SCIP *scip)
const char * SCIPreaderGetName(SCIP_READER *reader)
SCIP_Bool SCIPreaderCanRead(SCIP_READER *reader)
SCIP_READER ** SCIPgetReaders(SCIP *scip)
SCIP_Bool SCIPreaderCanWrite(SCIP_READER *reader)
const char * SCIPreaderGetDesc(SCIP_READER *reader)
SCIP_RELAX ** SCIPgetRelaxs(SCIP *scip)
int SCIPgetNRelaxs(SCIP *scip)
int SCIPrelaxGetFreq(SCIP_RELAX *relax)
const char * SCIPrelaxGetName(SCIP_RELAX *relax)
const char * SCIPrelaxGetDesc(SCIP_RELAX *relax)
int SCIPrelaxGetPriority(SCIP_RELAX *relax)
int SCIPgetNSepas(SCIP *scip)
int SCIPsepaGetPriority(SCIP_SEPA *sepa)
SCIP_Real SCIPsepaGetMaxbounddist(SCIP_SEPA *sepa)
int SCIPsepaGetFreq(SCIP_SEPA *sepa)
const char * SCIPsepaGetName(SCIP_SEPA *sepa)
const char * SCIPsepaGetDesc(SCIP_SEPA *sepa)
SCIP_Bool SCIPsepaIsDelayed(SCIP_SEPA *sepa)
SCIP_SEPA ** SCIPgetSepas(SCIP *scip)
SCIP_RETCODE SCIPcheckSolOrig(SCIP *scip, SCIP_SOL *sol, SCIP_Bool *feasible, SCIP_Bool printreason, SCIP_Bool completely)
SCIP_SOL * SCIPgetBestSol(SCIP *scip)
SCIP_RETCODE SCIPprintBestSol(SCIP *scip, FILE *file, SCIP_Bool printzeros)
SCIP_Real SCIPsolGetRelBoundViolation(SCIP_SOL *sol)
SCIP_RETCODE SCIPprintSol(SCIP *scip, SCIP_SOL *sol, FILE *file, SCIP_Bool printzeros)
SCIP_Real SCIPsolGetAbsConsViolation(SCIP_SOL *sol)
SCIP_Real SCIPsolGetAbsBoundViolation(SCIP_SOL *sol)
SCIP_RETCODE SCIPcreateNLPSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur)
SCIP_Real SCIPsolGetAbsIntegralityViolation(SCIP_SOL *sol)
SCIP_Real SCIPtransformObj(SCIP *scip, SCIP_Real obj)
int SCIPgetNSols(SCIP *scip)
SCIP_Real SCIPsolGetAbsLPRowViolation(SCIP_SOL *sol)
SCIP_RETCODE SCIPcreateFiniteSolCopy(SCIP *scip, SCIP_SOL **sol, SCIP_SOL *sourcesol, SCIP_Bool *success)
SCIP_RETCODE SCIPprintBestTransSol(SCIP *scip, FILE *file, SCIP_Bool printzeros)
SCIP_Bool SCIPsolIsOriginal(SCIP_SOL *sol)
SCIP_RETCODE SCIPprintMIPStart(SCIP *scip, SCIP_SOL *sol, FILE *file)
SCIP_Real SCIPsolGetRelLPRowViolation(SCIP_SOL *sol)
SCIP_SOL ** SCIPgetSols(SCIP *scip)
SCIP_Real SCIPgetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var)
SCIP_Real SCIPsolGetRelConsViolation(SCIP_SOL *sol)
SCIP_RETCODE SCIPprintDualSol(SCIP *scip, FILE *file, SCIP_Bool printzeros)
SCIP_RETCODE SCIPtransformProb(SCIP *scip)
SCIP_RETCODE SCIPsolveParallel(SCIP *scip)
SCIP_RETCODE SCIPpresolve(SCIP *scip)
SCIP_RETCODE SCIPfreeTransform(SCIP *scip)
SCIP_RETCODE SCIPfreeSolve(SCIP *scip, SCIP_Bool restart)
SCIP_RETCODE SCIPsolve(SCIP *scip)
SCIP_RETCODE SCIPprintStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPprintBranchingStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPprintTransProblem(SCIP *scip, FILE *file, const char *extension, SCIP_Bool genericnames)
SCIP_RETCODE SCIPprintReoptStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPprintOrigProblem(SCIP *scip, FILE *file, const char *extension, SCIP_Bool genericnames)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
SCIP_RETCODE SCIPchgFeastol(SCIP *scip, SCIP_Real feastol)
SCIP_Real SCIPfeastol(SCIP *scip)
SCIP_Bool SCIPisGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPparseReal(SCIP *scip, const char *str, SCIP_Real *value, char **endptr)
SCIP_RETCODE SCIPvalidateSolve(SCIP *scip, SCIP_Real primalreference, SCIP_Real dualreference, SCIP_Real reftol, SCIP_Bool quiet, SCIP_Bool *feasible, SCIP_Bool *primalboundcheck, SCIP_Bool *dualboundcheck)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
SCIP_RETCODE SCIPwriteCliqueGraph(SCIP *scip, const char *fname, SCIP_Bool writenodeweights)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
SCIP_RETCODE SCIPchgVarBranchDirection(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
SCIP_RETCODE SCIPchgVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_RETCODE SCIPchgVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_BRANCHDIR SCIPvarGetBranchDirection(SCIP_VAR *var)
SCIP_RETCODE SCIPchgVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
int SCIPvarGetBranchPriority(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
void SCIPsortPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
SCIP_Bool SCIPstrToIntValue(const char *str, int *value, char **endptr)
int SCIPsnprintf(char *t, int len, const char *s,...)
void SCIPescapeString(char *t, int bufsize, const char *s)
void SCIPprintSysError(const char *message)
int SCIPstrncpy(char *t, const char *s, int size)
SCIPfreeSol(scip, &heurdata->sol))
assert(minobj< SCIPgetCutoffbound(scip))
static const char * paramname[]
memory allocation routines
#define BMSduplicateMemoryArray(ptr, source, num)
#define BMSfreeMemoryArray(ptr)
void SCIPmessageFPrintInfo(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, const char *formatstr,...)
const char * SCIPparamGetName(SCIP_PARAM *param)
SCIP_Real SCIPparamGetRealMin(SCIP_PARAM *param)
char * SCIPparamGetCharAllowedValues(SCIP_PARAM *param)
SCIP_Bool SCIPparamIsAdvanced(SCIP_PARAM *param)
SCIP_PARAMTYPE SCIPparamGetType(SCIP_PARAM *param)
char * SCIPparamGetString(SCIP_PARAM *param)
int SCIPparamGetIntMin(SCIP_PARAM *param)
void SCIPparamSetFixed(SCIP_PARAM *param, SCIP_Bool fixed)
SCIP_Longint SCIPparamGetLongintMin(SCIP_PARAM *param)
SCIP_Bool SCIPparamGetBool(SCIP_PARAM *param)
const char * SCIPparamGetDesc(SCIP_PARAM *param)
int SCIPparamGetInt(SCIP_PARAM *param)
int SCIPparamGetIntMax(SCIP_PARAM *param)
SCIP_Real SCIPparamGetReal(SCIP_PARAM *param)
char SCIPparamGetChar(SCIP_PARAM *param)
SCIP_Longint SCIPparamGetLongint(SCIP_PARAM *param)
SCIP_Longint SCIPparamGetLongintMax(SCIP_PARAM *param)
SCIP_Real SCIPparamGetRealMax(SCIP_PARAM *param)
SCIP_Bool SCIPparamIsFixed(SCIP_PARAM *param)
public methods for Benders' decomposition
public methods for branching rules
public methods for tree compressions
public methods for conflict analysis handlers
public methods for managing constraints
public methods for cut selectors
public methods for user interface dialog
public methods for displaying runtime statistics
public functions to work with algebraic expressions
public methods for primal heuristics
public methods for message output
public data structures and miscellaneous methods
methods for sorting joint arrays of various types
public methods for node selectors
public methods for handling parameter settings
public methods for presolvers
public methods for variable pricers
public methods for propagators
public methods for input file readers
public methods for relaxation handlers
public methods for separators
public methods for primal CIP solutions
public methods for problem variables
public methods for Benders decomposition
public methods for branching rule plugins and branching
public methods for compression plugins
public methods for conflict handler plugins and conflict analysis
public methods for constraint handler plugins and constraints
public methods for cut selector plugins
public methods for dialog handler plugins
public methods for display handler plugins
public functions to work with algebraic expressions
public methods for primal heuristic plugins and divesets
public methods for the LP relaxation, rows and columns
public methods for memory management
public methods for message handling
public methods for nonlinear relaxation
public methods for NLPI solver interfaces
public methods for node selector plugins
public methods for numerical tolerances
public methods for SCIP parameter handling
public methods for presolving plugins
public methods for variable pricer plugins
public methods for global and local (sub)problems
public methods for propagator plugins
public methods for reader plugins
public methods for relaxator plugins
public methods for separator plugins
public methods for solutions
public methods for querying solving statistics
public methods for validation
public methods for SCIP variables
@ SCIP_BENDERSENFOTYPE_CHECK
@ SCIP_BENDERSSUBTYPE_CONVEXCONT
#define SCIP_DECL_DIALOGCOPY(x)
#define SCIP_DECL_DIALOGEXEC(x)
struct SCIP_DialogData SCIP_DIALOGDATA
#define SCIP_DECL_DIALOGDESC(x)
@ SCIP_BRANCHDIR_DOWNWARDS
@ SCIP_PARAMSETTING_AGGRESSIVE
@ SCIP_PARAMSETTING_DEFAULT
@ SCIP_PARAMEMPHASIS_NUMERICS
@ SCIP_PARAMEMPHASIS_CPSOLVER
@ SCIP_PARAMEMPHASIS_HARDLP
@ SCIP_PARAMEMPHASIS_FEASIBILITY
@ SCIP_PARAMEMPHASIS_BENCHMARK
@ SCIP_PARAMEMPHASIS_EASYCIP
@ SCIP_PARAMEMPHASIS_COUNTER
@ SCIP_PARAMEMPHASIS_OPTIMALITY
enum SCIP_Retcode SCIP_RETCODE
@ SCIP_STAGE_INITPRESOLVE
@ SCIP_STAGE_EXITPRESOLVE
@ SCIP_STAGE_TRANSFORMING
#define SCIP_PRESOLTIMING_MEDIUM
#define SCIP_PRESOLTIMING_FAST
#define SCIP_PRESOLTIMING_EXHAUSTIVE