Scippy

SCIP

Solving Constraint Integer Programs

reopt.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2019 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not visit scip.zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file reopt.h
17  * @ingroup INTERNALAPI
18  * @brief data structures and methods for collecting reoptimization information
19  * @author Jakob Witzig
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_REOPT_H__
25 #define __SCIP_REOPT_H__
26 
27 
28 #include "scip/def.h"
29 #include "scip/pub_reopt.h"
30 #include "scip/type_primal.h"
31 #include "scip/type_sepastore.h"
32 #include "scip/type_cutpool.h"
33 #include "scip/type_retcode.h"
34 #include "scip/type_misc.h"
35 #include "scip/type_reopt.h"
36 #include "scip/struct_reopt.h"
37 #include "scip/struct_var.h"
38 #include "scip/struct_history.h"
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 /** creates reopt data */
45 extern
47  SCIP_REOPT** reopt, /**< pointer to reoptimization data structure */
48  SCIP_SET* set, /**< global SCIP settings */
49  BMS_BLKMEM* blkmem /**< block memory */
50  );
51 
52 /** frees reopt data */
53 extern
55  SCIP_REOPT** reopt, /**< reoptimization data structure */
56  SCIP_SET* set, /**< global SCIP settings */
57  SCIP_PRIMAL* origprimal, /**< original primal */
58  BMS_BLKMEM* blkmem /**< block memory */
59  );
60 
61 /* release all variables and constraints captured during reoptimization */
62 extern
64  SCIP_REOPT* reopt, /**< pointer to reoptimization data structure */
65  SCIP_SET* set, /**< global SCIP settings */
66  BMS_BLKMEM* blkmem /**< block memory */
67  );
68 
69 /** returns the number of constraints added by the reoptimization plug-in */
70 extern
72  SCIP_REOPT* reopt, /**< reoptimization data */
73  SCIP_NODE* node /**< node of the search tree */
74  );
75 
76 /** add a solution to the solution tree */
77 extern
79  SCIP_REOPT* reopt, /**< reoptimization data */
80  SCIP_SET* set, /**< global SCIP settings */
81  SCIP_STAT* stat, /**< dynamic problem statistics */
82  SCIP_PRIMAL* origprimal, /**< original primal */
83  BMS_BLKMEM* blkmem, /**< block memory */
84  SCIP_SOL* sol, /**< solution to add */
85  SCIP_Bool bestsol, /**< is the current solution an optimal solution? */
86  SCIP_Bool* added, /**< pointer to store the information if the soltion was added */
87  SCIP_VAR** vars, /**< variable array */
88  int nvars, /**< number of variables */
89  int run /**< number of the current run (1,2,...) */
90  );
91 
92 /** add optimal solution */
93 extern
95  SCIP_REOPT* reopt, /**< reoptimization data structure */
96  SCIP_SOL* sol, /**< solution to add */
97  BMS_BLKMEM* blkmem, /**< block memory */
98  SCIP_SET* set, /**< global SCIP settings */
99  SCIP_STAT* stat, /**< dynamic problem statistics */
100  SCIP_PRIMAL* origprimal, /**< original primal */
101  SCIP_VAR** vars, /**< original problem variables */
102  int nvars /**< number of original problem variables */
103  );
104 
105 /** add a run */
106 extern
108  SCIP_REOPT* reopt, /**< reoptimization data sturcture */
109  SCIP_SET* set, /**< global SCIP settings */
110  BMS_BLKMEM* blkmem, /**< block memory */
111  SCIP_VAR** origvars, /**< original problem variables */
112  int norigvars, /**< number of original variables */
113  int size /**< number of expected solutions */
114  );
115 
116 /** get the number of checked solutions during the reoptimization process */
117 extern
119  SCIP_REOPT* reopt /**< reoptimization data */
120  );
121 
122 /** update the number of checked solutions during the reoptimization process */
123 extern
125  SCIP_REOPT* reopt, /**< reoptimization data */
126  int ncheckedsols /**< number of updated solutions */
127  );
128 
129 /** get the number of checked solutions during the reoptimization process */
130 extern
132  SCIP_REOPT* reopt /**< reoptimization data */
133  );
134 
135 /** update the number of checked solutions during the reoptimization process */
136 extern
138  SCIP_REOPT* reopt, /**< reoptimization data */
139  int nimprovingsols /**< number of improving solutions */
140  );
141 
142 /** returns number of solutions stored in the solution tree of a given run */
143 extern
145  SCIP_REOPT* reopt, /**< reoptimization data */
146  int run /**< number of the run (1,2,..) */
147  );
148 
149 /** returns number of all solutions of all runs */
150 extern
152  SCIP_REOPT* reopt /**< reoptimization data */
153  );
154 
155 /** return the stored solutions of a given run */
156 extern
158  SCIP_REOPT* reopt, /**< reopt data */
159  int run, /**< number of the run (1,2,...) */
160  SCIP_SOL** sols, /**< array of solutions to fill */
161  int solssize, /**< length of the array */
162  int* nsols /**< pointer to store the number of added solutions */
163  );
164 
165 /** returns the number of saved solutions overall runs */
166 extern
168  SCIP_REOPT* reopt /**< reoptimization data */
169  );
170 
171 /** Check if the reoptimization process should be (locally) restarted.
172  *
173  * First, we check whether the current node is the root node, e.g., node == NULL. In this case, we do not need to calculate
174  * the similarity again. We trigger a restart if
175  * 1. the objective function has changed too much, or
176  * 2. the number of stored nodes is exceeded, or
177  * 3. the last n optimal solutions were found by heur_reoptsols (in this case, the stored tree was only needed to
178  * prove the optimality and this can probably be done faster by solving from scratch).
179  *
180  * If the current node is different to the root node we calculate the local similarity, i.e., exclude all variables
181  * that are already fixed at the given node.
182  */
183 extern
185  SCIP_REOPT* reopt, /**< reopt data */
186  SCIP_SET* set, /**< global SCIP settings */
187  BMS_BLKMEM* blkmem, /**< block memory */
188  SCIP_NODE* node, /**< current node of the branch and bound tree (or NULL) */
189  SCIP_VAR** transvars, /**< transformed problem variables */
190  int ntransvars, /**< number of transformed problem variables */
191  SCIP_Bool* restart /**< pointer to store if the reoptimization process should be restarted */
192  );
193 
194 /** returns the similarity to the previous objective function */
195 extern
197  SCIP_REOPT* reopt /**< reoptimization data */
198  );
199 
200 /** returns the similarity to the first objective functions */
201 extern
203  SCIP_REOPT* reopt /**< reoptimization data */
204  );
205 
206 /** return the similarity between two of objective functions of two given runs */
207 extern
209  SCIP_REOPT* reopt, /**< reoptimization data structure */
210  SCIP_SET* set, /**< global SCIP settings */
211  int run1, /**< number of the first run */
212  int run2, /**< number of the second run */
213  SCIP_VAR** origvars, /**< original problem variables */
214  int norigvars /**< number of original problem variables */
215  );
216 
217 /** returns the best solution of the last run */
218 extern
220  SCIP_REOPT* reopt /**< reoptimization data */
221  );
222 
223 /** returns the node of the reoptimization tree corresponding to the unique @p id */
224 extern
226  SCIP_REOPT* reopt, /**< reoptimization data structure */
227  unsigned int id /**< unique id */
228  );
229 
230 /** returns the coefficent of variable with index @p idx in run @p run */
231 extern
233  SCIP_REOPT* reopt, /**< reopt data */
234  int run, /**< number of the run */
235  int idx /**< problem index of variable */
236  );
237 
238 /** return the best solution of a given run
239  *
240  * @note the returned solution is part of the original space.
241  */
243  SCIP_REOPT* reopt, /**< reoptimization data structure */
244  int run /**< number of the run (1,2,...) */
245  );
246 
247 /** reset solving specific paramters */
249  SCIP_REOPT* reopt, /**< reoptimization data structure */
250  SCIP_SET* set, /**< global SCIP settings */
251  BMS_BLKMEM* blkmem /**< block memory */
252  );
253 
254 /** reset marks of stored solutions to not updated */
255 extern
257  SCIP_REOPT* reopt /**< reoptimization data */
258  );
259 
260 /** returns the number of stored nodes */
261 extern
263  SCIP_REOPT* reopt, /**< reoptimization data */
264  SCIP_NODE* node /**< node of the search tree */
265  );
266 
267 /** save information that given node is infeasible */
268 extern
270  SCIP_REOPT* reopt, /**< reoptimization data */
271  SCIP_SET* set, /**< global SCIP settings */
272  BMS_BLKMEM* blkmem, /**< block memory */
273  SCIP_NODE* node /**< node of the search tree */
274  );
275 
276 /** check the reason for cut off a node and if necessary store the node */
277 extern
279  SCIP_REOPT* reopt, /**< reoptimization data structure */
280  SCIP_SET* set, /**< global SCIP settings */
281  BMS_BLKMEM* blkmem, /**< block memery */
282  SCIP_NODE* node, /**< node of the search tree */
283  SCIP_EVENTTYPE eventtype, /**< eventtype */
284  SCIP_LP* lp, /**< LP data */
285  SCIP_LPSOLSTAT lpsolstat, /**< solution status of the LP */
286  SCIP_Bool isrootnode, /**< the node is the root */
287  SCIP_Bool isfocusnode, /**< the node is the current focus node */
288  SCIP_Real lowerbound, /**< lower bound of the node */
289  int effectiverootdepth /**< effective root depth */
290  );
291 
292 /** store bound change based on dual information */
293 extern
295  SCIP_REOPT* reopt, /**< reoptimization data structure */
296  SCIP_SET* set, /**< global SCIP settings */
297  BMS_BLKMEM* blkmem, /**< block memory */
298  SCIP_NODE* node, /**< node of the search tree */
299  SCIP_VAR* var, /**< variables */
300  SCIP_Real newval, /**< new bound */
301  SCIP_Real oldval /**< old bound */
302  );
303 
304 /** returns the number of bound changes based on dual information */
305 extern
307  SCIP_REOPT* reopt, /**< reoptimization data */
308  SCIP_NODE* node /**< node of the search tree */
309  );
310 
311 /** returns the number of leaf nodes of the subtree induced by @p node (of the whole tree if node == NULL) */
312 extern
314  SCIP_REOPT* reopt, /**< reoptimization data */
315  SCIP_NODE* node /**< node of the search tree */
316  );
317 
318 /** returns the child nodes of @p node that need to be reoptimized next or NULL if @p node is a leaf */
319 extern
321  SCIP_REOPT* reopt, /**< reoptimization data structure */
322  SCIP_SET* set, /**< global SCIP settings */
323  BMS_BLKMEM* blkmem, /**< block memory */
324  SCIP_NODE* node, /**< node of the search tree */
325  unsigned int* childs, /**< array to store the child ids */
326  int childssize, /**< size of the childs array */
327  int* nchilds /**< pointer to store the number of child nodes */
328  );
329 
330 /** returns all leaves of the subtree induced by @p node */
331 extern
333  SCIP_REOPT* reopt, /**< reoptimization data */
334  SCIP_NODE* node, /**< node of the search tree */
335  unsigned int* leaves, /**< array to the the ids */
336  int leavessize, /**< size of leaves array */
337  int* nleaves /**< pointer to store the number of leaf node */
338  );
339 
340 /** returns the time needed to store the nodes for reoptimization */
341 extern
343  SCIP_REOPT* reopt /**< reoptimization data */
344  );
345 
346 /** store a global constraint that should be added at the beginning of the next iteration */
347 extern
349  SCIP_REOPT* reopt, /**< reoptimization data */
350  SCIP_VAR** vars, /**< array to store the variables of the constraint */
351  SCIP_Real* vals, /**< array to store the coefficients of the variables */
352  int nvars, /**< pointer to store the size of the constraints */
353  BMS_BLKMEM* blkmem /**< block memory */
354  );
355 
356 /** add the stored constraints globally to the problem */
357 extern
359  SCIP* scip, /**< SCIP data structure */
360  SCIP_REOPT* reopt, /**< reoptimization data structure */
361  SCIP_SET* set, /**< global SCIP settings */
362  SCIP_STAT* stat, /**< dynamic problem statistics */
363  BMS_BLKMEM* blkmem /**< block memory */
364  );
365 
366 /** add the stored cuts to the separation storage */
368  SCIP_REOPT* reopt, /**< reoptimization data structure */
369  SCIP_NODE* node, /**< current focus node */
370  SCIP_SEPASTORE* sepastore, /**< separation storage */
371  SCIP_CUTPOOL* cutpool, /**< global cutpool */
372  BMS_BLKMEM* blkmem, /**< block memory */
373  SCIP_SET* set, /**< global SCIP settings */
374  SCIP_STAT* stat, /**< dynamic problem statistics */
375  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
376  SCIP_EVENTFILTER* eventfilter, /**< event filter */
377  SCIP_LP* lp, /**< current LP */
378  SCIP_Bool root /**< bool whether the current node is the root */
379  );
380 
381 /** check if the LP of the given node should be solved or not */
382 extern
384  SCIP_REOPT* reopt, /**< reoptimization data structure */
385  SCIP_SET* set, /**< global SCIP settings */
386  SCIP_NODE* node /**< node of the current search tree */
387  );
388 
389 /** reactivate the given @p reoptnode and split them into several nodes if necessary */
390 extern
392  SCIP_REOPT* reopt, /**< reoptimization data structure */
393  SCIP* scip, /**< SCIP data structure */
394  SCIP_SET* set, /**< global SCIP settings */
395  SCIP_STAT* stat, /**< dynamic problem statistics */
396  SCIP_PROB* transprob, /**< transformed problem */
397  SCIP_PROB* origprob, /**< original problem */
398  SCIP_TREE* tree, /**< branching tree */
399  SCIP_LP* lp, /**< current LP */
400  SCIP_BRANCHCAND* branchcand, /**< branching candidate */
401  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
402  SCIP_CLIQUETABLE* cliquetable, /**< clique table */
403  BMS_BLKMEM* blkmem, /**< block memory */
404  SCIP_REOPTNODE* reoptnode, /**< node of the reoptimization tree to reactivate */
405  unsigned int id, /**< id of the node to reactivate */
406  SCIP_Real estimate, /**< estimate of the child nodes that should be created */
407  SCIP_NODE** childnodes, /**< array to store the created child nodes */
408  int* ncreatedchilds, /**< pointer to store number of created child nodes */
409  int* naddedconss, /**< pointer to store number of generated constraints */
410  int childnodessize, /**< available size of childnodes array */
411  SCIP_Bool* success /**< pointer store the result */
412  );
413 
414 /** delete a node stored in the reoptimization tree */
415 extern
417  SCIP_REOPT* reopt, /**< reoptimization data */
418  SCIP_SET* set, /**< global SCIP settings */
419  unsigned int id, /**< id of the node */
420  BMS_BLKMEM* blkmem /**< block memory */
421  );
422 
423 /** reset the stored information abound bound changes based on dual information */
424 extern
426  SCIP_REOPT* reopt, /**< reoptimization data */
427  SCIP_NODE* node, /**< node of the search tree */
428  BMS_BLKMEM* blkmem /**< block memory */
429  );
430 
431 /** splits the root into several nodes and moves the child nodes of the root to one of the created nodes */
432 extern
434  SCIP_REOPT* reopt, /**< reoptimization data structure */
435  SCIP_TREE* tree, /**< branch and bound tree */
436  SCIP_SET* set, /**< global SCIP settings */
437  SCIP_STAT* stat, /**< dynamic SCIP statistics */
438  BMS_BLKMEM* blkmem, /**< block memory */
439  int* ncreatedchilds, /**< pointer to store the number of created nodes */
440  int* naddedconss /**< pointer to store the number added constraints */
441  );
442 
443 /** reset the complete tree and set the given search frontier */
444 extern
446  SCIP_REOPT* reopt, /**< reoptimization data structure */
447  SCIP_SET* set, /**< global SCIP settings */
448  BMS_BLKMEM* blkmem, /**< block memory */
449  SCIP_REOPTNODE** representatives, /**< array of representatives */
450  int nrepresentatives, /**< number of representatives */
451  SCIP_Bool* success /**< pointer to store if the method was successful */
452  );
453 
454 /** add all unprocessed nodes to the reoptimization tree */
455 extern
457  SCIP_REOPT* reopt, /**< reoptimization data structure */
458  SCIP_SET* set, /**< global SCIP settings */
459  SCIP_LP* lp, /**< LP data */
460  BMS_BLKMEM* blkmem, /**< block memory */
461  SCIP_NODE** leaves, /**< array of open leave nodes */
462  int nleaves, /**< number of open leave nodes */
463  SCIP_NODE** childs, /**< array of open children nodes */
464  int nchilds, /**< number of open leave nodes */
465  SCIP_NODE** siblings, /**< array of open sibling nodes */
466  int nsiblings /**< number of open leave nodes */
467  );
468 
469 /** merges the variable history of the current run with the stored history */
470 extern
472  SCIP_REOPT* reopt, /**< reoptimization data structure */
473  SCIP_SET* set, /**< global SCIP settings */
474  SCIP_STAT* stat, /**< dynamic problem statistics */
475  SCIP_VAR** vars, /**< original problem variables */
476  int nvars /**< number of original problem variables */
477  );
478 
479 /** updates the variable history */
480 extern
482  SCIP_REOPT* reopt, /**< reoptimization data structure */
483  SCIP_SET* set, /**< global SCIP settings */
484  SCIP_STAT* stat, /**< dynamic problem statistics */
485  BMS_BLKMEM* blkmem, /**< block memory */
486  SCIP_VAR** vars, /**< variable array */
487  int nvars /**< number of variables */
488  );
489 
490 /*
491  * methods for reoptnode
492  */
493 
494 /** initialize an empty node */
495 extern
496 void SCIPreoptnodeInit(
497  SCIP_REOPTNODE* reoptnode, /**< node of the reopttree */
498  SCIP_SET* set /**< global SCIP settings */
499  );
500 
501 /** reset the given reoptimization node */
502 extern
504  SCIP_REOPT* reopt, /**< reoptimization data structure */
505  SCIP_SET* set, /**< global SCIP settings */
506  BMS_BLKMEM* blkmem, /**< block memory */
507  SCIP_REOPTNODE* reoptnode /**< reoptimization node */
508  );
509 
510 /** delete the given reoptimization node */
511 extern
513  SCIP_REOPTNODE** reoptnode, /**< pointer of reoptnode */
514  BMS_BLKMEM* blkmem /**< block memory */
515  );
516 
517 /** add a variable to a given reoptnode */
518 extern
520  SCIP_REOPTNODE* reoptnode, /**< node of the reopttree */
521  SCIP_SET* set, /**< global SCIP settings */
522  BMS_BLKMEM* blkmem, /**< block memory */
523  SCIP_VAR* var, /**< variable to add */
524  SCIP_Real val, /**< value of the variable */
525  SCIP_BOUNDTYPE boundtype /**< boundtype of the variable */
526  );
527 
528 /** add a constraint to a given reoptnode */
529 extern
531  SCIP_REOPTNODE* reoptnode, /**< node of the reopttree */
532  SCIP_SET* set, /**< global SCIP settings */
533  BMS_BLKMEM* blkmem, /**< block memory */
534  SCIP_VAR** vars, /**< variables which are part of the constraint */
535  SCIP_Real* bounds, /**< bounds of the variables */
536  SCIP_BOUNDTYPE* boundtypes, /**< boundtypes of the varibales (or NULL is the constraint is a cut) */
537  SCIP_Real lhs, /**< lhs of the constraint */
538  SCIP_Real rhs, /**< rhs of the constraint */
539  int nvars, /**< number of variables */
540  REOPT_CONSTYPE constype, /**< type of the constraint */
541  SCIP_Bool linear /**< the given constraint has a linear representation */
542  );
543 
544 /** return the branching path of the given node in the reoptimization tree */
545 extern
547  SCIP_REOPT* reopt, /**< reoptimization data structure */
548  SCIP_REOPTNODE* reoptnode, /**< node of the reoptimization tree */
549  SCIP_VAR** vars, /**< array for variables */
550  SCIP_Real* vals, /**< array for values */
551  SCIP_BOUNDTYPE* boundtypes, /**< array for bound types */
552  int varssize, /**< size of arrays vars, vals, and boundtypes */
553  int* nbndchgs, /**< pointer to store the number of bound changes */
554  int* nbndchgsafterdual /**< pointer to store the number of bound changes applied after
555  * the first dual reduction at the given node */
556  );
557 
558 /** add a constraint to the reoptimization data structure */
559 extern
561  SCIP_REOPT* reopt, /**< reoptimization data structure */
562  SCIP_SET* set, /**< global SCIP settings */
563  BMS_BLKMEM* blkmem, /**< block memory */
564  SCIP_CONS* cons /**< constraint to add */
565  );
566 
567 /** save global lower and upper bounds
568  *
569  * @note this method can only called once, i.e., after fishing presolving of the first problem
570  */
571 extern
573  SCIP_REOPT* reopt, /**< reoptimization data structure */
574  SCIP_PROB* transprob, /**< transformed problem data */
575  BMS_BLKMEM* blkmem /**< block memory */
576  );
577 
578 /** save active constraints
579  *
580  * @note this method can only called once, i.e., after fishing presolving of the first problem
581  */
582 extern
584  SCIP_REOPT* reopt, /**< reoptimization data structure */
585  SCIP_PROB* transprob, /**< transformed problem data */
586  BMS_BLKMEM* blkmem /**< block memory */
587  );
588 
589 /** installs global lower and upper bounds */
590 extern
592  SCIP_REOPT* reopt, /**< reoptimization data structure */
593  SCIP_SET* set, /**< global SCIP settings */
594  SCIP_STAT* stat, /**< dynamic SCIP statistics */
595  SCIP_PROB* transprob, /**< transformed problem data */
596  SCIP_LP* lp, /**< current LP data */
597  SCIP_BRANCHCAND* branchcand, /**< branching candidate storage */
598  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
599  SCIP_CLIQUETABLE* cliquetable, /**< clique table data structure */
600  BMS_BLKMEM* blkmem /**< block memory */
601  );
602 
603 /** reactivate globally valid constraints that were deactivated and necessary to ensure correctness */
604 extern
606  SCIP_REOPT* reopt, /**< reoptimization data structure */
607  SCIP_SET* set, /**< global SCIP settings */
608  SCIP_STAT* stat /**< dynamic SCIP statistics */
609  );
610 
611 
612 /** returns whether a constraint is necessary to ensure correctness and cannot be deleted */
613 extern
615  SCIP_REOPT* reopt, /**< reoptimization data structure */
616  SCIP_CONS* cons /**< problem constraint */
617  );
618 
619 #ifdef __cplusplus
620 }
621 #endif
622 
623 #endif
enum SCIP_BoundType SCIP_BOUNDTYPE
Definition: type_lp.h:50
SCIP_REOPTNODE * SCIPreoptGetReoptnode(SCIP_REOPT *reopt, unsigned int id)
Definition: reopt.c:5667
SCIP_RETCODE SCIPreoptAddCons(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_CONS *cons)
Definition: reopt.c:8096
SCIP_Real SCIPreoptGetSimToPrevious(SCIP_REOPT *reopt)
Definition: reopt.c:5616
type definitions for miscellaneous datastructures
SCIP_Real SCIPreoptGetSavingtime(SCIP_REOPT *reopt)
Definition: reopt.c:7601
SCIP_RETCODE SCIPreoptApplyCompression(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_REOPTNODE **representatives, int nrepresentatives, SCIP_Bool *success)
Definition: reopt.c:6672
SCIP_SOL * SCIPreoptGetBestSolRun(SCIP_REOPT *reopt, int run)
Definition: reopt.c:5697
SCIP_RETCODE SCIPreoptMergeVarHistory(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR **vars, int nvars)
Definition: reopt.c:6520
SCIP_RETCODE SCIPreoptReleaseData(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem)
Definition: reopt.c:5113
SCIP_Bool SCIPreoptGetSolveLP(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_NODE *node)
Definition: reopt.c:7865
SCIP_Bool SCIPreoptConsCanBeDeleted(SCIP_REOPT *reopt, SCIP_CONS *cons)
Definition: reopt.c:8308
SCIP_RETCODE SCIPreoptnodeDelete(SCIP_REOPTNODE **reoptnode, BMS_BLKMEM *blkmem)
Definition: reopt.c:7963
SCIP_RETCODE SCIPreoptFree(SCIP_REOPT **reopt, SCIP_SET *set, SCIP_PRIMAL *origprimal, BMS_BLKMEM *blkmem)
Definition: reopt.c:5139
int SCIPreoptGetNLeaves(SCIP_REOPT *reopt, SCIP_NODE *node)
Definition: reopt.c:5914
SCIP_RETCODE SCIPreoptGetLeaves(SCIP_REOPT *reopt, SCIP_NODE *node, unsigned int *leaves, int leavessize, int *nleaves)
Definition: reopt.c:6404
SCIP_RETCODE SCIPreoptApply(SCIP_REOPT *reopt, SCIP *scip, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, BMS_BLKMEM *blkmem, SCIP_REOPTNODE *reoptnode, unsigned int id, SCIP_Real estimate, SCIP_NODE **childnodes, int *ncreatedchilds, int *naddedconss, int childnodessize, SCIP_Bool *success)
Definition: reopt.c:7297
SCIP_RETCODE SCIPreoptGetSolsRun(SCIP_REOPT *reopt, int run, SCIP_SOL **sols, int solssize, int *nsols)
Definition: reopt.c:5478
SCIP_RETCODE SCIPreoptAddDualBndchg(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newval, SCIP_Real oldval)
Definition: reopt.c:6241
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
SCIP_Real SCIPreoptGetSimilarity(SCIP_REOPT *reopt, SCIP_SET *set, int run1, int run2, SCIP_VAR **origvars, int norigvars)
Definition: reopt.c:5634
SCIP_RETCODE SCIPreoptAddSol(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *origprimal, BMS_BLKMEM *blkmem, SCIP_SOL *sol, SCIP_Bool bestsol, SCIP_Bool *added, SCIP_VAR **vars, int nvars, int run)
Definition: reopt.c:5281
SCIP_RETCODE SCIPreoptAddOptSol(SCIP_REOPT *reopt, SCIP_SOL *sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *origprimal, SCIP_VAR **vars, int nvars)
Definition: reopt.c:5334
SCIP_RETCODE SCIPreoptApplyCuts(SCIP_REOPT *reopt, SCIP_NODE *node, SCIP_SEPASTORE *sepastore, SCIP_CUTPOOL *cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp, SCIP_Bool root)
Definition: reopt.c:7732
public methods for reoptimization
type definitions for return codes for SCIP methods
void SCIPreoptResetSolMarks(SCIP_REOPT *reopt)
Definition: reopt.c:5741
SCIP_Real SCIPreoptGetOldObjCoef(SCIP_REOPT *reopt, int run, int idx)
Definition: reopt.c:5681
enum SCIP_LPSolStat SCIP_LPSOLSTAT
Definition: type_lp.h:42
type definitions for collecting reoptimization information
int SCIPreoptGetNDualBndchgs(SCIP_REOPT *reopt, SCIP_NODE *node)
Definition: reopt.c:6331
void SCIPreoptnodeGetPath(SCIP_REOPT *reopt, SCIP_REOPTNODE *reoptnode, SCIP_VAR **vars, SCIP_Real *vals, SCIP_BOUNDTYPE *boundtypes, int varssize, int *nbndchgs, int *nbndchgsafterdual)
Definition: reopt.c:7218
void SCIPreoptnodeInit(SCIP_REOPTNODE *reoptnode, SCIP_SET *set)
Definition: reopt.c:7912
SCIP_SOL * SCIPreoptGetLastBestSol(SCIP_REOPT *reopt)
Definition: reopt.c:5653
SCIP_RETCODE SCIPreoptnodeAddCons(SCIP_REOPTNODE *reoptnode, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_VAR **vars, SCIP_Real *bounds, SCIP_BOUNDTYPE *boundtypes, SCIP_Real lhs, SCIP_Real rhs, int nvars, REOPT_CONSTYPE constype, SCIP_Bool linear)
Definition: reopt.c:8005
SCIP_RETCODE SCIPreoptResetActiveConss(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat)
Definition: reopt.c:8264
SCIP_RETCODE SCIPreoptSaveOpenNodes(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_NODE **leaves, int nleaves, SCIP_NODE **childs, int nchilds, SCIP_NODE **siblings, int nsiblings)
Definition: reopt.c:6468
type definitions for storing cuts in a cut pool
SCIP_RETCODE SCIPreoptCreate(SCIP_REOPT **reopt, SCIP_SET *set, BMS_BLKMEM *blkmem)
Definition: reopt.c:5034
int SCIPreoptGetNSols(SCIP_REOPT *reopt)
Definition: reopt.c:5462
SCIP_RETCODE SCIPreoptResetDualBndchgs(SCIP_REOPT *reopt, SCIP_NODE *node, BMS_BLKMEM *blkmem)
Definition: reopt.c:7193
int SCIPreoptGetNNodes(SCIP_REOPT *reopt, SCIP_NODE *node)
Definition: reopt.c:5762
type definitions for storing separated cuts
SCIP_RETCODE SCIPreoptCheckRestart(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_NODE *node, SCIP_VAR **transvars, int ntransvars, SCIP_Bool *restart)
Definition: reopt.c:5547
data structures for collecting reoptimization information
#define SCIP_Bool
Definition: def.h:69
void SCIPreoptAddNImprovingSols(SCIP_REOPT *reopt, int nimprovingsols)
Definition: reopt.c:5436
SCIP_RETCODE SCIPreoptDeleteNode(SCIP_REOPT *reopt, SCIP_SET *set, unsigned int id, BMS_BLKMEM *blkmem)
Definition: reopt.c:7277
SCIP_RETCODE SCIPreoptnodeAddBndchg(SCIP_REOPTNODE *reoptnode, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real val, SCIP_BOUNDTYPE boundtype)
Definition: reopt.c:7977
SCIP_RETCODE SCIPreoptUpdateVarHistory(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_VAR **vars, int nvars)
Definition: reopt.c:6615
datastructures for branching and inference history
int SCIPreoptGetNAddedConss(SCIP_REOPT *reopt, SCIP_NODE *node)
Definition: reopt.c:5257
int SCIPreoptGetNSolsRun(SCIP_REOPT *reopt, int run)
Definition: reopt.c:5447
SCIP_RETCODE SCIPreoptReset(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem)
Definition: reopt.c:5709
SCIP_RETCODE SCIPreoptGetChildIDs(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_NODE *node, unsigned int *childs, int childssize, int *nchilds)
Definition: reopt.c:6351
SCIP_RETCODE SCIPreoptCheckCutoff(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_NODE *node, SCIP_EVENTTYPE eventtype, SCIP_LP *lp, SCIP_LPSOLSTAT lpsolstat, SCIP_Bool isrootnode, SCIP_Bool isfocusnode, SCIP_Real lowerbound, int effectiverootdepth)
Definition: reopt.c:5973
SCIP_RETCODE SCIPreoptInstallBounds(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, BMS_BLKMEM *blkmem)
Definition: reopt.c:8214
SCIP_Real SCIPreoptGetSimToFirst(SCIP_REOPT *reopt)
Definition: reopt.c:5625
datastructures for problem variables
SCIP_RETCODE SCIPreoptAddRun(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_VAR **origvars, int norigvars, int size)
Definition: reopt.c:5369
SCIP_RETCODE SCIPreoptnodeReset(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_REOPTNODE *reoptnode)
Definition: reopt.c:7945
#define SCIP_Real
Definition: def.h:157
SCIP_RETCODE SCIPreoptSaveActiveConss(SCIP_REOPT *reopt, SCIP_PROB *transprob, BMS_BLKMEM *blkmem)
Definition: reopt.c:8181
enum Reopt_ConsType REOPT_CONSTYPE
Definition: type_reopt.h:67
void SCIPreoptAddNCheckedSols(SCIP_REOPT *reopt, int ncheckedsols)
Definition: reopt.c:5415
SCIP_RETCODE SCIPreoptAddInfNode(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_NODE *node)
Definition: reopt.c:5949
int SCIPreoptGetNCheckedSols(SCIP_REOPT *reopt)
Definition: reopt.c:5405
type definitions for collecting primal CIP solutions and primal informations
common defines and data types used in all packages of SCIP
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:426
int SCIPreoptGetNSavedSols(SCIP_REOPT *reopt)
Definition: reopt.c:5520
int SCIPreoptGetNImprovingSols(SCIP_REOPT *reopt)
Definition: reopt.c:5426
SCIP_RETCODE SCIPreoptSaveGlobalBounds(SCIP_REOPT *reopt, SCIP_PROB *transprob, BMS_BLKMEM *blkmem)
Definition: reopt.c:8143
SCIP_RETCODE SCIPreoptAddGlbCons(SCIP_REOPT *reopt, SCIP_VAR **vars, SCIP_Real *vals, int nvars, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPreoptSplitRoot(SCIP_REOPT *reopt, SCIP_TREE *tree, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, int *ncreatedchilds, int *naddedconss)
Definition: reopt.c:6899
uint64_t SCIP_EVENTTYPE
Definition: type_event.h:134
SCIP_RETCODE SCIPreoptApplyGlbConss(SCIP *scip, SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem)
Definition: reopt.c:7611