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-2025 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:91
#define SCIP_Real
Definition: def.h:156
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
Definition: heur_padm.c:135
type definitions for branching rules
type definitions for storing cuts in a cut pool
uint64_t SCIP_EVENTTYPE
Definition: type_event.h:156
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
type definitions for storing and manipulating the main problem
type definitions for collecting reoptimization information
enum Reopt_ConsType REOPT_CONSTYPE
Definition: type_reopt.h:76
type definitions for return codes for SCIP methods
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:63
type definitions for storing separated cuts
type definitions for global SCIP settings
type definitions for problem statistics