Solving Constraint Integer Programs

scip_probing.c File Reference

Detailed Description

public methods for the probing mode

Tobias Achterberg
Timo Berthold
Gerald Gamrath
Robert Lion Gottwald
Stefan Heinz
Gregor Hendel
Thorsten Koch
Alexander Martin
Marc Pfetsch
Michael Winkler
Kati Wolter

Definition in file scip_probing.c.

#include "blockmemshell/memory.h"
#include "scip/conflict.h"
#include "scip/cons.h"
#include "scip/debug.h"
#include "scip/heur.h"
#include "scip/lp.h"
#include "scip/prob.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_relax.h"
#include "scip/pub_tree.h"
#include "scip/pub_var.h"
#include "scip/relax.h"
#include "scip/scip_general.h"
#include "scip/scip_lp.h"
#include "scip/scip_mem.h"
#include "scip/scip_message.h"
#include "scip/scip_numerics.h"
#include "scip/scip_prob.h"
#include "scip/scip_probing.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_tree.h"
#include "scip/sepastore.h"
#include "scip/set.h"
#include "scip/solve.h"
#include "scip/stat.h"
#include "scip/struct_lp.h"
#include "scip/struct_mem.h"
#include "scip/struct_scip.h"
#include "scip/struct_set.h"
#include "scip/struct_stat.h"
#include "scip/struct_tree.h"
#include "scip/struct_var.h"
#include "scip/tree.h"
#include "scip/var.h"

Go to the source code of this file.


SCIP_Bool SCIPinProbing (SCIP *scip)
SCIP_RETCODE SCIPstartProbing (SCIP *scip)
SCIP_RETCODE SCIPnewProbingNode (SCIP *scip)
int SCIPgetProbingDepth (SCIP *scip)
SCIP_RETCODE SCIPbacktrackProbing (SCIP *scip, int probingdepth)
SCIP_RETCODE SCIPendProbing (SCIP *scip)
SCIP_RETCODE SCIPchgVarLbProbing (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_RETCODE SCIPchgVarUbProbing (SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_Real SCIPgetVarObjProbing (SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPfixVarProbing (SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval)
SCIP_RETCODE SCIPchgVarObjProbing (SCIP *scip, SCIP_VAR *var, SCIP_Real newobj)
SCIP_Bool SCIPisObjChangedProbing (SCIP *scip)
SCIP_RETCODE SCIPpropagateProbing (SCIP *scip, int maxproprounds, SCIP_Bool *cutoff, SCIP_Longint *ndomredsfound)
SCIP_RETCODE SCIPpropagateProbingImplications (SCIP *scip, SCIP_Bool *cutoff)
static SCIP_RETCODE solveProbingLP (SCIP *scip, int itlim, SCIP_Bool pricing, SCIP_Bool pretendroot, SCIP_Bool displayinfo, int maxpricerounds, SCIP_Bool *lperror, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPsolveProbingLP (SCIP *scip, int itlim, SCIP_Bool *lperror, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPsolveProbingLPWithPricing (SCIP *scip, SCIP_Bool pretendroot, SCIP_Bool displayinfo, int maxpricerounds, SCIP_Bool *lperror, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPsetProbingLPState (SCIP *scip, SCIP_LPISTATE **lpistate, SCIP_LPINORMS **lpinorms, SCIP_Bool primalfeas, SCIP_Bool dualfeas)
SCIP_RETCODE SCIPaddRowProbing (SCIP *scip, SCIP_ROW *row)
SCIP_RETCODE SCIPapplyCutsProbing (SCIP *scip, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPsolveProbingRelax (SCIP *scip, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPgetDivesetScore (SCIP *scip, SCIP_DIVESET *diveset, SCIP_DIVETYPE divetype, SCIP_VAR *divecand, SCIP_Real divecandsol, SCIP_Real divecandfrac, SCIP_Real *candscore, SCIP_Bool *roundup)
void SCIPupdateDivesetLPStats (SCIP *scip, SCIP_DIVESET *diveset, SCIP_Longint niterstoadd)
void SCIPupdateDivesetStats (SCIP *scip, SCIP_DIVESET *diveset, int nprobingnodes, int nbacktracks, SCIP_Longint nsolsfound, SCIP_Longint nbestsolsfound, SCIP_Longint nconflictsfound, SCIP_Bool leavewassol)
SCIP_RETCODE SCIPgetDiveBoundChanges (SCIP *scip, SCIP_DIVESET *diveset, SCIP_SOL *sol, SCIP_Bool *success, SCIP_Bool *infeasible)
SCIP_RETCODE SCIPaddDiveBoundChange (SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Bool preferred)
void SCIPgetDiveBoundChangeData (SCIP *scip, SCIP_VAR ***variables, SCIP_BRANCHDIR **directions, SCIP_Real **values, int *ndivebdchgs, SCIP_Bool preferred)
void SCIPclearDiveBoundChanges (SCIP *scip)

Function Documentation

◆ solveProbingLP()

static SCIP_RETCODE solveProbingLP ( SCIP scip,
int  itlim,
SCIP_Bool  pricing,
SCIP_Bool  pretendroot,
SCIP_Bool  displayinfo,
int  maxpricerounds,
SCIP_Bool lperror,
SCIP_Bool cutoff 

solves the LP at the current probing node (cannot be applied at preprocessing stage) with or without pricing

scipSCIP data structure
itlimmaximal number of LP iterations to perform, or -1 for no limit
pricingshould pricing be applied?
pretendrootshould the pricers be called as if we are at the root node?
displayinfoshould info lines be displayed after each pricing round?
maxpriceroundsmaximal number of pricing rounds (-1: no limit)
lperrorpointer to store whether an unresolved LP error occurred
cutoffpointer to store whether the probing LP was infeasible or the objective limit was reached (or NULL, if not needed)

Definition at line 692 of file scip_probing.c.

References Scip::branchcand, Scip::cliquetable, Scip::conflict, Scip::conflictstore, Scip::cutpool, Scip::eventfilter, Scip::eventqueue, FALSE, Scip::lp, Scip::mem, Scip::messagehdlr, SCIP_Set::misc_exactsolve, NULL, Scip::origprob, Scip::pricestore, Scip::primal, SCIP_Tree::probingobjchanged, SCIP_Tree::probingsolvedlp, SCIP_Mem::probmem, Scip::reopt, SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_Longint, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPconflictAnalyzeLP(), SCIPerrorMessage, SCIPgetCutoffbound(), SCIPgetLPObjval(), SCIPinitConssLP(), SCIPisGE(), SCIPlpGetSolstat(), SCIPlpSetIsRelax(), SCIPlpSolveAndEval(), SCIPpriceLoop(), SCIPprobAllColsInLP(), SCIPtreeGetCurrentDepth(), SCIPtreeIsFocusNodeLPConstructed(), SCIPtreeLoadProbingLPState(), SCIPtreeMarkProbingNodeHasLP(), SCIPtreeProbing(), Scip::sepastore, Scip::set, Scip::stat, Scip::transprob, Scip::tree, and TRUE.

Referenced by SCIPsolveProbingLP(), and SCIPsolveProbingLPWithPricing().