pricestore.c
Go to the documentation of this file.
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 219 SCIP_CALL( SCIPvarRelease(&pricestore->vars[pricestore->nvars-1], blkmem, set, eventqueue, lp) ); 257 assert(SCIPsetIsPositive(set, SCIPvarGetLbLocal(var)) || SCIPsetIsNegative(set, SCIPvarGetUbLocal(var))); 297 /** adds given problem variable to pricing storage, if zero is not best bound w.r.t. objective function */ 318 if( SCIPsetIsPositive(set, SCIPvarGetLbLocal(var)) || SCIPsetIsNegative(set, SCIPvarGetUbLocal(var)) ) 322 SCIP_CALL( SCIPpricestoreAddBdviolvar(pricestore, blkmem, set, stat, lp, branchcand, eventqueue, var) ); 386 /**@todo test pricing: is abortpricevars a good idea? -> like strong branching, lookahead, ... */ 414 SCIP_CALL( addBoundViolated(pricestore, blkmem, set, stat, tree, lp, branchcand, eventqueue, var, &added) ); 431 /* The LP was proven infeasible, so we have an infeasibility proof by the dual Farkas multipliers y. 436 * Pricing in this case means to add variables i with positive Farkas value, i.e. y^T A_i x'_i > 0 449 SCIPdebugMessage(" <%s> reduced cost feasibility: %e\n", SCIPvarGetName(col->var), feasibility); 453 * we must add variables with negative feasibility, but in order to not get a too large lower bound 458 SCIP_CALL( SCIPpricestoreAddVar(pricestore, blkmem, set, eventqueue, lp, var, -feasibility / (col->len+1), root) ); 497 SCIPdebugMessage("adding %d variables (%d bound violated and %d priced vars) to %d LP columns\n", 505 assert(SCIPvarGetStatus(var) == SCIP_VARSTATUS_LOOSE || SCIPvarGetStatus(var) == SCIP_VARSTATUS_COLUMN); 532 assert(SCIPvarGetStatus(var) == SCIP_VARSTATUS_LOOSE || SCIPvarGetStatus(var) == SCIP_VARSTATUS_COLUMN); 546 SCIPdebugMessage("adding priced variable <%s> (score=%g)\n", SCIPvarGetName(var), pricestore->scores[v]); 591 SCIPvarGetLbLocal(var), SCIPvarGetUbLocal(var), pricestore->bdviolvarslb[v], pricestore->bdviolvarsub[v]); 592 SCIP_CALL( SCIPvarChgLbLocal(var, blkmem, set, stat, lp, branchcand, eventqueue, pricestore->bdviolvarslb[v]) ); 593 SCIP_CALL( SCIPvarChgUbLocal(var, blkmem, set, stat, lp, branchcand, eventqueue, pricestore->bdviolvarsub[v]) ); void SCIPpricestoreEndInitialLP(SCIP_PRICESTORE *pricestore) Definition: pricestore.c:158 datastructures for storing priced variables internal methods for branch and bound tree int SCIPpricestoreGetNVars(SCIP_PRICESTORE *pricestore) Definition: pricestore.c:603 SCIP_RETCODE SCIPpricestoreAddBdviolvar(SCIP_PRICESTORE *pricestore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var) Definition: pricestore.c:243 int SCIPpricestoreGetNProbvarsFound(SCIP_PRICESTORE *pricestore) Definition: pricestore.c:645 SCIP_Real SCIPpricestoreGetProbPricingTime(SCIP_PRICESTORE *pricestore) Definition: pricestore.c:625 internal methods for clocks and timing issues Definition: struct_var.h:196 SCIP_RETCODE SCIPpricestoreCreate(SCIP_PRICESTORE **pricestore) Definition: pricestore.c:96 Definition: struct_prob.h:38 internal methods for LP management SCIP_Bool SCIPtreeIsFocusNodeLPConstructed(SCIP_TREE *tree) Definition: tree.c:7920 void SCIPpricestoreStartInitialLP(SCIP_PRICESTORE *pricestore) Definition: pricestore.c:146 int SCIPpricestoreGetNBoundResets(SCIP_PRICESTORE *pricestore) Definition: pricestore.c:614 Definition: struct_lp.h:123 Definition: struct_set.h:56 SCIP_RETCODE SCIPvarChgLbLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newbound) Definition: var.c:7455 static SCIP_RETCODE addBoundViolated(SCIP_PRICESTORE *pricestore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Bool *added) Definition: pricestore.c:299 Definition: type_clock.h:34 int SCIPpricestoreGetNVarsApplied(SCIP_PRICESTORE *pricestore) Definition: pricestore.c:665 internal methods for storing and manipulating the main problem SCIP_RETCODE SCIPlpAddCol(SCIP_LP *lp, SCIP_SET *set, SCIP_COL *col, int depth) Definition: lp.c:8963 SCIP_RETCODE SCIPvarRelease(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp) Definition: var.c:2752 Definition: struct_pricestore.h:37 Definition: type_var.h:42 Definition: type_retcode.h:33 internal methods for global SCIP settings internal methods for storing priced variables SCIP_RETCODE SCIPvarChgUbLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newbound) Definition: var.c:7581 SCIP_RETCODE SCIPpricestoreFree(SCIP_PRICESTORE **pricestore) Definition: pricestore.c:125 SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype) Definition: clock.c:160 internal methods for problem variables SCIP_RETCODE SCIPpricestoreApplyVars(SCIP_PRICESTORE *pricestore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp) Definition: pricestore.c:474 SCIP_RETCODE SCIPpricestoreAddProbVars(SCIP_PRICESTORE *pricestore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue) Definition: pricestore.c:345 SCIP_RETCODE SCIPpricestoreAddVar(SCIP_PRICESTORE *pricestore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_VAR *var, SCIP_Real score, SCIP_Bool root) Definition: pricestore.c:170 Definition: type_var.h:41 static SCIP_RETCODE pricestoreEnsureVarsMem(SCIP_PRICESTORE *pricestore, SCIP_SET *set, int num) Definition: pricestore.c:45 SCIP_RETCODE SCIPpricestoreResetBounds(SCIP_PRICESTORE *pricestore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue) Definition: pricestore.c:563 int SCIPpricestoreGetNVarsFound(SCIP_PRICESTORE *pricestore) Definition: pricestore.c:655 SCIP_RETCODE SCIPvarColumn(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_LP *lp) Definition: var.c:3389 Definition: struct_lp.h:255 public methods for message output static SCIP_RETCODE pricestoreEnsureBdviolvarsMem(SCIP_PRICESTORE *pricestore, SCIP_SET *set, int num) Definition: pricestore.c:70 SCIP_Real SCIPcolGetFarkasValue(SCIP_COL *col, SCIP_STAT *stat, SCIP_LP *lp) Definition: lp.c:3967 Definition: type_lp.h:35 Definition: struct_stat.h:44 Definition: struct_tree.h:165 SCIP_Real SCIPcolGetFeasibility(SCIP_COL *col, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp) Definition: lp.c:3782 common defines and data types used in all packages of SCIP Definition: struct_event.h:204 Definition: type_retcode.h:43 Definition: struct_branch.h:36 int SCIPsetGetPriceMaxvars(SCIP_SET *set, SCIP_Bool root) Definition: set.c:4908 int SCIPpricestoreGetNProbPricings(SCIP_PRICESTORE *pricestore) Definition: pricestore.c:635 |