SCIP Doxygen Documentation
Loading...
Searching...
No Matches
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-2026 Zuse Institute Berlin (ZIB) */
7/* */
8/* Licensed under the Apache License, Version 2.0 (the "License"); */
9/* you may not use this file except in compliance with the License. */
10/* You may obtain a copy of the License at */
11/* */
12/* http://www.apache.org/licenses/LICENSE-2.0 */
13/* */
14/* Unless required by applicable law or agreed to in writing, software */
15/* distributed under the License is distributed on an "AS IS" BASIS, */
16/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17/* See the License for the specific language governing permissions and */
18/* limitations under the License. */
19/* */
20/* You should have received a copy of the Apache-2.0 license */
21/* along with SCIP; see the file LICENSE. If not visit scipopt.org. */
22/* */
23/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24
25/**@file reopt.h
26 * @ingroup INTERNALAPI
27 * @brief data structures and methods for collecting reoptimization information
28 * @author Jakob Witzig
29 */
30
31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32
33#ifndef __SCIP_REOPT_H__
34#define __SCIP_REOPT_H__
35
37#include "scip/def.h"
38#include "scip/pub_reopt.h"
39#include "scip/type_branch.h"
40#include "scip/type_cutpool.h"
41#include "scip/type_misc.h"
42#include "scip/type_primal.h"
43#include "scip/type_prob.h"
44#include "scip/type_retcode.h"
45#include "scip/type_reopt.h"
46#include "scip/type_sepastore.h"
47#include "scip/type_set.h"
48#include "scip/type_stat.h"
49#include "scip/struct_reopt.h"
50#include "scip/struct_var.h"
51#include "scip/struct_history.h"
52
53#ifdef __cplusplus
54extern "C" {
55#endif
56
57/** creates reopt data */
59 SCIP_REOPT** reopt, /**< pointer to reoptimization data structure */
60 SCIP_SET* set, /**< global SCIP settings */
61 BMS_BLKMEM* blkmem /**< block memory */
62 );
63
64/** frees reopt data */
66 SCIP_REOPT** reopt, /**< reoptimization data structure */
67 SCIP_SET* set, /**< global SCIP settings */
68 SCIP_PRIMAL* origprimal, /**< original primal */
69 BMS_BLKMEM* blkmem /**< block memory */
70 );
71
72/* release all variables and constraints captured during reoptimization */
74 SCIP_REOPT* reopt, /**< pointer to reoptimization data structure */
75 SCIP_SET* set, /**< global SCIP settings */
76 BMS_BLKMEM* blkmem /**< block memory */
77 );
78
79/** returns the number of constraints added by the reoptimization plug-in */
81 SCIP_REOPT* reopt, /**< reoptimization data */
82 SCIP_NODE* node /**< node of the search tree */
83 );
84
85/** add a solution to the solution tree */
87 SCIP_REOPT* reopt, /**< reoptimization data */
88 SCIP_SET* set, /**< global SCIP settings */
89 SCIP_STAT* stat, /**< dynamic problem statistics */
90 SCIP_PRIMAL* origprimal, /**< original primal */
91 BMS_BLKMEM* blkmem, /**< block memory */
92 SCIP_SOL* sol, /**< solution to add */
93 SCIP_Bool bestsol, /**< is the current solution an optimal solution? */
94 SCIP_Bool* added, /**< pointer to store the information if the soltion was added */
95 SCIP_VAR** vars, /**< variable array */
96 int nvars, /**< number of variables */
97 int run /**< number of the current run (1,2,...) */
98 );
99
100/** add optimal solution */
102 SCIP_REOPT* reopt, /**< reoptimization data structure */
103 SCIP_SOL* sol, /**< solution to add */
104 BMS_BLKMEM* blkmem, /**< block memory */
105 SCIP_SET* set, /**< global SCIP settings */
106 SCIP_STAT* stat, /**< dynamic problem statistics */
107 SCIP_PRIMAL* origprimal, /**< original primal */
108 SCIP_VAR** vars, /**< original problem variables */
109 int nvars /**< number of original problem variables */
110 );
111
112/** add a run */
114 SCIP_REOPT* reopt, /**< reoptimization data sturcture */
115 SCIP_SET* set, /**< global SCIP settings */
116 BMS_BLKMEM* blkmem, /**< block memory */
117 SCIP_VAR** origvars, /**< original problem variables */
118 int norigvars, /**< number of original variables */
119 int size /**< number of expected solutions */
120 );
121
122/** get the number of checked solutions during the reoptimization process */
124 SCIP_REOPT* reopt /**< reoptimization data */
125 );
126
127/** update the number of checked solutions during the reoptimization process */
129 SCIP_REOPT* reopt, /**< reoptimization data */
130 int ncheckedsols /**< number of updated solutions */
131 );
132
133/** get the number of checked solutions during the reoptimization process */
135 SCIP_REOPT* reopt /**< reoptimization data */
136 );
137
138/** update the number of checked solutions during the reoptimization process */
140 SCIP_REOPT* reopt, /**< reoptimization data */
141 int nimprovingsols /**< number of improving solutions */
142 );
143
144/** returns number of solutions stored in the solution tree of a given run */
146 SCIP_REOPT* reopt, /**< reoptimization data */
147 int run /**< number of the run (1,2,..) */
148 );
149
150/** returns number of all solutions of all runs */
152 SCIP_REOPT* reopt /**< reoptimization data */
153 );
154
155/** return the stored solutions of a given run */
157 SCIP_REOPT* reopt, /**< reopt data */
158 int run, /**< number of the run (1,2,...) */
159 SCIP_SOL** sols, /**< array of solutions to fill */
160 int solssize, /**< length of the array */
161 int* nsols /**< pointer to store the number of added solutions */
162 );
163
164/** returns the number of saved solutions overall runs */
166 SCIP_REOPT* reopt /**< reoptimization data */
167 );
168
169/** Check if the reoptimization process should be (locally) restarted.
170 *
171 * First, we check whether the current node is the root node, e.g., node == NULL. In this case, we do not need to calculate
172 * the similarity again. We trigger a restart if
173 * 1. the objective function has changed too much, or
174 * 2. the number of stored nodes is exceeded, or
175 * 3. the last n optimal solutions were found by heur_reoptsols (in this case, the stored tree was only needed to
176 * prove the optimality and this can probably be done faster by solving from scratch).
177 *
178 * If the current node is different to the root node we calculate the local similarity, i.e., exclude all variables
179 * that are already fixed at the given node.
180 */
182 SCIP_REOPT* reopt, /**< reopt data */
183 SCIP_SET* set, /**< global SCIP settings */
184 BMS_BLKMEM* blkmem, /**< block memory */
185 SCIP_NODE* node, /**< current node of the branch and bound tree (or NULL) */
186 SCIP_VAR** transvars, /**< transformed problem variables */
187 int ntransvars, /**< number of transformed problem variables */
188 SCIP_Bool* restart /**< pointer to store if the reoptimization process should be restarted */
189 );
190
191/** returns the similarity to the previous objective function */
193 SCIP_REOPT* reopt /**< reoptimization data */
194 );
195
196/** returns the similarity to the first objective functions */
198 SCIP_REOPT* reopt /**< reoptimization data */
199 );
200
201/** return the similarity between two of objective functions of two given runs */
203 SCIP_REOPT* reopt, /**< reoptimization data structure */
204 SCIP_SET* set, /**< global SCIP settings */
205 int run1, /**< number of the first run */
206 int run2, /**< number of the second run */
207 SCIP_VAR** origvars, /**< original problem variables */
208 int norigvars /**< number of original problem variables */
209 );
210
211/** returns the best solution of the last run */
213 SCIP_REOPT* reopt /**< reoptimization data */
214 );
215
216/** returns the node of the reoptimization tree corresponding to the unique @p id */
218 SCIP_REOPT* reopt, /**< reoptimization data structure */
219 unsigned int id /**< unique id */
220 );
221
222/** returns the coefficent of variable with index @p idx in run @p run */
224 SCIP_REOPT* reopt, /**< reopt data */
225 int run, /**< number of the run */
226 int idx /**< problem index of variable */
227 );
228
229/** return the best solution of a given run
230 *
231 * @note the returned solution is part of the original space.
232 */
234 SCIP_REOPT* reopt, /**< reoptimization data structure */
235 int run /**< number of the run (1,2,...) */
236 );
237
238/** reset solving specific paramters */
240 SCIP_REOPT* reopt, /**< reoptimization data structure */
241 SCIP_SET* set, /**< global SCIP settings */
242 BMS_BLKMEM* blkmem /**< block memory */
243 );
244
245/** reset marks of stored solutions to not updated */
247 SCIP_REOPT* reopt /**< reoptimization data */
248 );
249
250/** returns the number of stored nodes */
252 SCIP_REOPT* reopt, /**< reoptimization data */
253 SCIP_NODE* node /**< node of the search tree */
254 );
255
256/** save information that given node is infeasible */
258 SCIP_REOPT* reopt, /**< reoptimization data */
259 SCIP_SET* set, /**< global SCIP settings */
260 BMS_BLKMEM* blkmem, /**< block memory */
261 SCIP_NODE* node /**< node of the search tree */
262 );
263
264/** check the reason for cut off a node and if necessary store the node */
266 SCIP_REOPT* reopt, /**< reoptimization data structure */
267 SCIP_SET* set, /**< global SCIP settings */
268 BMS_BLKMEM* blkmem, /**< block memery */
269 SCIP_NODE* node, /**< node of the search tree */
270 SCIP_EVENTTYPE eventtype, /**< eventtype */
271 SCIP_LP* lp, /**< LP data */
272 SCIP_LPSOLSTAT lpsolstat, /**< solution status of the LP */
273 SCIP_Bool isrootnode, /**< the node is the root */
274 SCIP_Bool isfocusnode, /**< the node is the current focus node */
275 SCIP_Real lowerbound, /**< lower bound of the node */
276 int effectiverootdepth /**< effective root depth */
277 );
278
279/** store bound change based on dual information */
281 SCIP_REOPT* reopt, /**< reoptimization data structure */
282 SCIP_SET* set, /**< global SCIP settings */
283 BMS_BLKMEM* blkmem, /**< block memory */
284 SCIP_NODE* node, /**< node of the search tree */
285 SCIP_VAR* var, /**< variables */
286 SCIP_Real newval, /**< new bound */
287 SCIP_Real oldval /**< old bound */
288 );
289
290/** returns the number of bound changes based on dual information */
292 SCIP_REOPT* reopt, /**< reoptimization data */
293 SCIP_NODE* node /**< node of the search tree */
294 );
295
296/** returns the number of leaf nodes of the subtree induced by @p node (of the whole tree if node == NULL) */
298 SCIP_REOPT* reopt, /**< reoptimization data */
299 SCIP_NODE* node /**< node of the search tree */
300 );
301
302/** returns the child nodes of @p node that need to be reoptimized next or NULL if @p node is a leaf */
304 SCIP_REOPT* reopt, /**< reoptimization data structure */
305 SCIP_SET* set, /**< global SCIP settings */
306 BMS_BLKMEM* blkmem, /**< block memory */
307 SCIP_NODE* node, /**< node of the search tree */
308 unsigned int* childs, /**< array to store the child ids */
309 int childssize, /**< size of the childs array */
310 int* nchilds /**< pointer to store the number of child nodes */
311 );
312
313/** returns all leaves of the subtree induced by @p node */
315 SCIP_REOPT* reopt, /**< reoptimization data */
316 SCIP_NODE* node, /**< node of the search tree */
317 unsigned int* leaves, /**< array to the the ids */
318 int leavessize, /**< size of leaves array */
319 int* nleaves /**< pointer to store the number of leaf node */
320 );
321
322/** returns the time needed to store the nodes for reoptimization */
324 SCIP_REOPT* reopt /**< reoptimization data */
325 );
326
327/** add the stored constraints globally to the problem */
329 SCIP* scip, /**< SCIP data structure */
330 SCIP_REOPT* reopt, /**< reoptimization data structure */
331 SCIP_SET* set, /**< global SCIP settings */
332 SCIP_STAT* stat, /**< dynamic problem statistics */
333 BMS_BLKMEM* blkmem /**< block memory */
334 );
335
336/** add the stored cuts to the separation storage */
338 SCIP_REOPT* reopt, /**< reoptimization data structure */
339 SCIP_NODE* node, /**< current focus node */
340 SCIP_SEPASTORE* sepastore, /**< separation storage */
341 SCIP_CUTPOOL* cutpool, /**< global cutpool */
342 BMS_BLKMEM* blkmem, /**< block memory */
343 SCIP_SET* set, /**< global SCIP settings */
344 SCIP_STAT* stat, /**< dynamic problem statistics */
345 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
346 SCIP_EVENTFILTER* eventfilter, /**< event filter */
347 SCIP_LP* lp, /**< current LP */
348 SCIP_Bool root /**< bool whether the current node is the root */
349 );
350
351/** check if the LP of the given node should be solved or not */
353 SCIP_REOPT* reopt, /**< reoptimization data structure */
354 SCIP_SET* set, /**< global SCIP settings */
355 SCIP_NODE* node /**< node of the current search tree */
356 );
357
358/** reactivate the given @p reoptnode and split them into several nodes if necessary */
360 SCIP_REOPT* reopt, /**< reoptimization data structure */
361 SCIP* scip, /**< SCIP data structure */
362 SCIP_SET* set, /**< global SCIP settings */
363 SCIP_STAT* stat, /**< dynamic problem statistics */
364 SCIP_PROB* transprob, /**< transformed problem */
365 SCIP_PROB* origprob, /**< original problem */
366 SCIP_TREE* tree, /**< branching tree */
367 SCIP_LP* lp, /**< current LP */
368 SCIP_BRANCHCAND* branchcand, /**< branching candidate */
369 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
370 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
371 SCIP_CLIQUETABLE* cliquetable, /**< clique table */
372 BMS_BLKMEM* blkmem, /**< block memory */
373 SCIP_REOPTNODE* reoptnode, /**< node of the reoptimization tree to reactivate */
374 unsigned int id, /**< id of the node to reactivate */
375 SCIP_Real estimate, /**< estimate of the child nodes that should be created */
376 SCIP_NODE** childnodes, /**< array to store the created child nodes */
377 int* ncreatedchilds, /**< pointer to store number of created child nodes */
378 int* naddedconss, /**< pointer to store number of generated constraints */
379 int childnodessize, /**< available size of childnodes array */
380 SCIP_Bool* success /**< pointer store the result */
381 );
382
383/** delete a node stored in the reoptimization tree */
385 SCIP_REOPT* reopt, /**< reoptimization data */
386 SCIP_SET* set, /**< global SCIP settings */
387 unsigned int id, /**< id of the node */
388 BMS_BLKMEM* blkmem /**< block memory */
389 );
390
391/** reset the stored information abound bound changes based on dual information */
393 SCIP_REOPT* reopt, /**< reoptimization data */
394 SCIP_NODE* node, /**< node of the search tree */
395 BMS_BLKMEM* blkmem /**< block memory */
396 );
397
398/** splits the root into several nodes and moves the child nodes of the root to one of the created nodes */
400 SCIP_REOPT* reopt, /**< reoptimization data structure */
401 SCIP_TREE* tree, /**< branch and bound tree */
402 SCIP_SET* set, /**< global SCIP settings */
403 SCIP_STAT* stat, /**< dynamic SCIP statistics */
404 BMS_BLKMEM* blkmem, /**< block memory */
405 int* ncreatedchilds, /**< pointer to store the number of created nodes */
406 int* naddedconss /**< pointer to store the number added constraints */
407 );
408
409/** reset the complete tree and set the given search frontier */
411 SCIP_REOPT* reopt, /**< reoptimization data structure */
412 SCIP_SET* set, /**< global SCIP settings */
413 BMS_BLKMEM* blkmem, /**< block memory */
414 SCIP_REOPTNODE** representatives, /**< array of representatives */
415 int nrepresentatives, /**< number of representatives */
416 SCIP_Bool* success /**< pointer to store if the method was successful */
417 );
418
419/** add all unprocessed nodes to the reoptimization tree */
421 SCIP_REOPT* reopt, /**< reoptimization data structure */
422 SCIP_SET* set, /**< global SCIP settings */
423 SCIP_LP* lp, /**< LP data */
424 BMS_BLKMEM* blkmem, /**< block memory */
425 SCIP_NODE** leaves, /**< array of open leave nodes */
426 int nleaves, /**< number of open leave nodes */
427 SCIP_NODE** childs, /**< array of open children nodes */
428 int nchilds, /**< number of open leave nodes */
429 SCIP_NODE** siblings, /**< array of open sibling nodes */
430 int nsiblings /**< number of open leave nodes */
431 );
432
433/** merges the variable history of the current run with the stored history */
435 SCIP_REOPT* reopt, /**< reoptimization data structure */
436 SCIP_SET* set, /**< global SCIP settings */
437 SCIP_STAT* stat, /**< dynamic problem statistics */
438 SCIP_VAR** vars, /**< original problem variables */
439 int nvars /**< number of original problem variables */
440 );
441
442/** updates the variable history */
444 SCIP_REOPT* reopt, /**< reoptimization data structure */
445 SCIP_SET* set, /**< global SCIP settings */
446 SCIP_STAT* stat, /**< dynamic problem statistics */
447 BMS_BLKMEM* blkmem, /**< block memory */
448 SCIP_VAR** vars, /**< variable array */
449 int nvars /**< number of variables */
450 );
451
452/*
453 * methods for reoptnode
454 */
455
456/** initialize an empty node */
458 SCIP_REOPTNODE* reoptnode, /**< node of the reopttree */
459 SCIP_SET* set /**< global SCIP settings */
460 );
461
462/** reset the given reoptimization node */
464 SCIP_REOPT* reopt, /**< reoptimization data structure */
465 SCIP_SET* set, /**< global SCIP settings */
466 BMS_BLKMEM* blkmem, /**< block memory */
467 SCIP_REOPTNODE* reoptnode /**< reoptimization node */
468 );
469
470/** delete the given reoptimization node */
472 SCIP_REOPTNODE** reoptnode, /**< pointer of reoptnode */
473 BMS_BLKMEM* blkmem /**< block memory */
474 );
475
476/** add a variable to a given reoptnode */
478 SCIP_REOPTNODE* reoptnode, /**< node of the reopttree */
479 SCIP_SET* set, /**< global SCIP settings */
480 BMS_BLKMEM* blkmem, /**< block memory */
481 SCIP_VAR* var, /**< variable to add */
482 SCIP_Real val, /**< value of the variable */
483 SCIP_BOUNDTYPE boundtype /**< boundtype of the variable */
484 );
485
486/** add a constraint to a given reoptnode */
488 SCIP_REOPTNODE* reoptnode, /**< node of the reopttree */
489 SCIP_SET* set, /**< global SCIP settings */
490 BMS_BLKMEM* blkmem, /**< block memory */
491 SCIP_VAR** vars, /**< variables which are part of the constraint */
492 SCIP_Real* bounds, /**< bounds of the variables */
493 SCIP_BOUNDTYPE* boundtypes, /**< boundtypes of the varibales (or NULL is the constraint is a cut) */
494 SCIP_Real lhs, /**< lhs of the constraint */
495 SCIP_Real rhs, /**< rhs of the constraint */
496 int nvars, /**< number of variables */
497 REOPT_CONSTYPE constype, /**< type of the constraint */
498 SCIP_Bool linear /**< the given constraint has a linear representation */
499 );
500
501/** return the branching path of the given node in the reoptimization tree */
503 SCIP_REOPT* reopt, /**< reoptimization data structure */
504 SCIP_REOPTNODE* reoptnode, /**< node of the reoptimization tree */
505 SCIP_VAR** vars, /**< array for variables */
506 SCIP_Real* vals, /**< array for values */
507 SCIP_BOUNDTYPE* boundtypes, /**< array for bound types */
508 int varssize, /**< size of arrays vars, vals, and boundtypes */
509 int* nbndchgs, /**< pointer to store the number of bound changes */
510 int* nbndchgsafterdual /**< pointer to store the number of bound changes applied after
511 * the first dual reduction at the given node */
512 );
513
514/** add a constraint to the reoptimization data structure */
516 SCIP_REOPT* reopt, /**< reoptimization data structure */
517 SCIP_SET* set, /**< global SCIP settings */
518 BMS_BLKMEM* blkmem, /**< block memory */
519 SCIP_CONS* cons /**< constraint to add */
520 );
521
522/** save global lower and upper bounds
523 *
524 * @note this method can only called once, i.e., after fishing presolving of the first problem
525 */
527 SCIP_REOPT* reopt, /**< reoptimization data structure */
528 SCIP_PROB* transprob, /**< transformed problem data */
529 BMS_BLKMEM* blkmem /**< block memory */
530 );
531
532/** save active constraints
533 *
534 * @note this method can only called once, i.e., after fishing presolving of the first problem
535 */
537 SCIP_REOPT* reopt, /**< reoptimization data structure */
538 SCIP_SET* set, /**< global SCIP settings */
539 SCIP_PROB* transprob, /**< transformed problem data */
540 BMS_BLKMEM* blkmem /**< block memory */
541 );
542
543/** installs global lower and upper bounds */
545 SCIP_REOPT* reopt, /**< reoptimization data structure */
546 SCIP_SET* set, /**< global SCIP settings */
547 SCIP_STAT* stat, /**< dynamic SCIP statistics */
548 SCIP_PROB* transprob, /**< transformed problem data */
549 SCIP_LP* lp, /**< current LP data */
550 SCIP_BRANCHCAND* branchcand, /**< branching candidate storage */
551 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
552 SCIP_CLIQUETABLE* cliquetable, /**< clique table data structure */
553 BMS_BLKMEM* blkmem /**< block memory */
554 );
555
556/** reactivate globally valid constraints that were deactivated and necessary to ensure correctness */
558 SCIP_REOPT* reopt, /**< reoptimization data structure */
559 SCIP_SET* set, /**< global SCIP settings */
560 SCIP_STAT* stat /**< dynamic SCIP statistics */
561 );
562
563
564/** returns whether a constraint is necessary to ensure correctness and cannot be deleted */
566 SCIP_REOPT* reopt, /**< reoptimization data structure */
567 SCIP_CONS* cons /**< problem constraint */
568 );
569
570#ifdef __cplusplus
571}
572#endif
573
574#endif
common defines and data types used in all packages of SCIP
#define SCIP_Bool
Definition def.h:98
#define SCIP_Real
Definition def.h:163
static SCIP_LPSOLSTAT lpsolstat
static SCIP_SOL * sol
int nvars
SCIP_VAR * var
static SCIP_VAR ** vars
memory allocation routines
struct BMS_BlkMem BMS_BLKMEM
Definition memory.h:437
public methods for reoptimization
SCIP_RETCODE SCIPreoptUpdateVarHistory(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_VAR **vars, int nvars)
Definition reopt.c:6598
int SCIPreoptGetNDualBndchgs(SCIP_REOPT *reopt, SCIP_NODE *node)
Definition reopt.c:6320
SCIP_RETCODE SCIPreoptSaveActiveConss(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_PROB *transprob, BMS_BLKMEM *blkmem)
Definition reopt.c:8151
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_EVENTFILTER *eventfilter, 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:7262
SCIP_RETCODE SCIPreoptnodeReset(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_REOPTNODE *reoptnode)
Definition reopt.c:7907
SCIP_RETCODE SCIPreoptAddRun(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_VAR **origvars, int norigvars, int size)
Definition reopt.c:5362
SCIP_RETCODE SCIPreoptAddCons(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_CONS *cons)
Definition reopt.c:8060
void SCIPreoptAddNCheckedSols(SCIP_REOPT *reopt, int ncheckedsols)
Definition reopt.c:5408
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:5275
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:5962
int SCIPreoptGetNImprovingSols(SCIP_REOPT *reopt)
Definition reopt.c:5419
SCIP_RETCODE SCIPreoptAddInfNode(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_NODE *node)
Definition reopt.c:5938
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:7697
SCIP_SOL * SCIPreoptGetLastBestSol(SCIP_REOPT *reopt)
Definition reopt.c:5643
SCIP_RETCODE SCIPreoptnodeAddBndchg(SCIP_REOPTNODE *reoptnode, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real val, SCIP_BOUNDTYPE boundtype)
Definition reopt.c:7939
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:7967
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:6869
SCIP_RETCODE SCIPreoptGetSolsRun(SCIP_REOPT *reopt, int run, SCIP_SOL **sols, int solssize, int *nsols)
Definition reopt.c:5470
SCIP_Bool SCIPreoptConsCanBeDeleted(SCIP_REOPT *reopt, SCIP_CONS *cons)
Definition reopt.c:8284
SCIP_RETCODE SCIPreoptDeleteNode(SCIP_REOPT *reopt, SCIP_SET *set, unsigned int id, BMS_BLKMEM *blkmem)
Definition reopt.c:7242
SCIP_RETCODE SCIPreoptReleaseData(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem)
Definition reopt.c:5098
SCIP_RETCODE SCIPreoptResetDualBndchgs(SCIP_REOPT *reopt, SCIP_NODE *node, BMS_BLKMEM *blkmem)
Definition reopt.c:7158
void SCIPreoptResetSolMarks(SCIP_REOPT *reopt)
Definition reopt.c:5733
int SCIPreoptGetNSols(SCIP_REOPT *reopt)
Definition reopt.c:5455
int SCIPreoptGetNSolsRun(SCIP_REOPT *reopt, int run)
Definition reopt.c:5440
SCIP_Real SCIPreoptGetSimToFirst(SCIP_REOPT *reopt)
Definition reopt.c:5615
int SCIPreoptGetNSavedSols(SCIP_REOPT *reopt)
Definition reopt.c:5510
SCIP_Real SCIPreoptGetOldObjCoef(SCIP_REOPT *reopt, int run, int idx)
Definition reopt.c:5671
int SCIPreoptGetNCheckedSols(SCIP_REOPT *reopt)
Definition reopt.c:5398
SCIP_RETCODE SCIPreoptFree(SCIP_REOPT **reopt, SCIP_SET *set, SCIP_PRIMAL *origprimal, BMS_BLKMEM *blkmem)
Definition reopt.c:5125
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:7183
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:5328
int SCIPreoptGetNNodes(SCIP_REOPT *reopt, SCIP_NODE *node)
Definition reopt.c:5754
SCIP_Real SCIPreoptGetSavingtime(SCIP_REOPT *reopt)
Definition reopt.c:7565
SCIP_RETCODE SCIPreoptResetActiveConss(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat)
Definition reopt.c:8243
SCIP_RETCODE SCIPreoptnodeDelete(SCIP_REOPTNODE **reoptnode, BMS_BLKMEM *blkmem)
Definition reopt.c:7925
SCIP_RETCODE SCIPreoptCreate(SCIP_REOPT **reopt, SCIP_SET *set, BMS_BLKMEM *blkmem)
Definition reopt.c:5017
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:6230
SCIP_Real SCIPreoptGetSimilarity(SCIP_REOPT *reopt, SCIP_SET *set, int run1, int run2, SCIP_VAR **origvars, int norigvars)
Definition reopt.c:5624
SCIP_RETCODE SCIPreoptGetLeaves(SCIP_REOPT *reopt, SCIP_NODE *node, unsigned int *leaves, int leavessize, int *nleaves)
Definition reopt.c:6393
int SCIPreoptGetNAddedConss(SCIP_REOPT *reopt, SCIP_NODE *node)
Definition reopt.c:5251
SCIP_RETCODE SCIPreoptMergeVarHistory(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR **vars, int nvars)
Definition reopt.c:6506
SCIP_RETCODE SCIPreoptSaveGlobalBounds(SCIP_REOPT *reopt, SCIP_PROB *transprob, BMS_BLKMEM *blkmem)
Definition reopt.c:8111
SCIP_REOPTNODE * SCIPreoptGetReoptnode(SCIP_REOPT *reopt, unsigned int id)
Definition reopt.c:5657
void SCIPreoptAddNImprovingSols(SCIP_REOPT *reopt, int nimprovingsols)
Definition reopt.c:5429
SCIP_Bool SCIPreoptGetSolveLP(SCIP_REOPT *reopt, SCIP_SET *set, SCIP_NODE *node)
Definition reopt.c:7827
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:5537
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:8191
SCIP_RETCODE SCIPreoptApplyGlbConss(SCIP *scip, SCIP_REOPT *reopt, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem)
Definition reopt.c:7575
SCIP_RETCODE SCIPreoptApplyCompression(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_REOPTNODE **representatives, int nrepresentatives, SCIP_Bool *success)
Definition reopt.c:6653
SCIP_Real SCIPreoptGetSimToPrevious(SCIP_REOPT *reopt)
Definition reopt.c:5606
SCIP_RETCODE SCIPreoptReset(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem)
Definition reopt.c:5699
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:6340
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:6456
SCIP_SOL * SCIPreoptGetBestSolRun(SCIP_REOPT *reopt, int run)
Definition reopt.c:5687
void SCIPreoptnodeInit(SCIP_REOPTNODE *reoptnode, SCIP_SET *set)
Definition reopt.c:7874
int SCIPreoptGetNLeaves(SCIP_REOPT *reopt, SCIP_NODE *node)
Definition reopt.c:5904
datastructures for branching and inference history
data structures for collecting reoptimization information
datastructures for problem variables
type definitions for branching rules
struct SCIP_BranchCand SCIP_BRANCHCAND
Definition type_branch.h:55
struct SCIP_Cons SCIP_CONS
Definition type_cons.h:63
type definitions for storing cuts in a cut pool
struct SCIP_Cutpool SCIP_CUTPOOL
struct SCIP_EventFilter SCIP_EVENTFILTER
Definition type_event.h:180
struct SCIP_EventQueue SCIP_EVENTQUEUE
Definition type_event.h:181
uint64_t SCIP_EVENTTYPE
Definition type_event.h:156
struct SCIP_CliqueTable SCIP_CLIQUETABLE
struct SCIP_Lp SCIP_LP
Definition type_lp.h:111
enum SCIP_LPSolStat SCIP_LPSOLSTAT
Definition type_lp.h:52
enum SCIP_BoundType SCIP_BOUNDTYPE
Definition type_lp.h:60
type definitions for miscellaneous datastructures
type definitions for collecting primal CIP solutions and primal informations
struct SCIP_Primal SCIP_PRIMAL
Definition type_primal.h:39
type definitions for storing and manipulating the main problem
struct SCIP_Prob SCIP_PROB
Definition type_prob.h:52
type definitions for collecting reoptimization information
struct SCIP_Reopt SCIP_REOPT
Definition type_reopt.h:39
struct SCIP_ReoptNode SCIP_REOPTNODE
Definition type_reopt.h:47
enum Reopt_ConsType REOPT_CONSTYPE
Definition type_reopt.h:76
type definitions for return codes for SCIP methods
enum SCIP_Retcode SCIP_RETCODE
struct Scip SCIP
Definition type_scip.h:39
type definitions for storing separated cuts
struct SCIP_SepaStore SCIP_SEPASTORE
type definitions for global SCIP settings
struct SCIP_Set SCIP_SET
Definition type_set.h:71
struct SCIP_Sol SCIP_SOL
Definition type_sol.h:57
type definitions for problem statistics
struct SCIP_Stat SCIP_STAT
Definition type_stat.h:66
struct SCIP_Node SCIP_NODE
Definition type_tree.h:63
struct SCIP_Tree SCIP_TREE
Definition type_tree.h:65
struct SCIP_Var SCIP_VAR
Definition type_var.h:166