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