Scippy

    SCIP

    Solving Constraint Integer Programs

    primal.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 primal.h
    26 * @ingroup INTERNALAPI
    27 * @brief internal methods for collecting primal CIP solutions and primal informations
    28 * @author Tobias Achterberg
    29 */
    30
    31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    32
    33#ifndef __SCIP_PRIMAL_H__
    34#define __SCIP_PRIMAL_H__
    35
    36
    37#include "scip/def.h"
    39#include "scip/type_retcode.h"
    40#include "scip/type_set.h"
    41#include "scip/type_event.h"
    42#include "scip/type_lp.h"
    43#include "scip/type_lpexact.h"
    44#include "scip/type_var.h"
    45#include "scip/type_prob.h"
    46#include "scip/type_sol.h"
    47#include "scip/type_primal.h"
    48#include "scip/type_tree.h"
    49#include "scip/type_reopt.h"
    50#include "scip/type_heur.h"
    51
    52#include "scip/struct_primal.h"
    53
    54#ifdef __cplusplus
    55extern "C" {
    56#endif
    57
    58/** creates primal data */
    60 SCIP_PRIMAL** primal /**< pointer to primal data */
    61 );
    62
    63/** frees primal data */
    65 SCIP_PRIMAL** primal, /**< pointer to primal data */
    66 BMS_BLKMEM* blkmem /**< block memory */
    67 );
    68
    69/** clears primal data */
    71 SCIP_PRIMAL* primal, /**< pointer to primal data */
    72 BMS_BLKMEM* blkmem /**< block memory */
    73 );
    74
    75/** sets the cutoff bound in primal data and in LP solver */
    77 SCIP_PRIMAL* primal, /**< primal data */
    78 BMS_BLKMEM* blkmem, /**< block memory */
    79 SCIP_SET* set, /**< global SCIP settings */
    80 SCIP_STAT* stat, /**< problem statistics data */
    81 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    82 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    83 SCIP_PROB* transprob, /**< tranformed problem data */
    84 SCIP_PROB* origprob, /**< original problem data */
    85 SCIP_TREE* tree, /**< branch and bound tree */
    86 SCIP_REOPT* reopt, /**< reoptimization data structure */
    87 SCIP_LP* lp, /**< current LP data */
    88 SCIP_Real cutoffbound, /**< new cutoff bound */
    89 SCIP_Bool useforobjlimit /**< should the cutoff bound be used to update the objective limit, if
    90 * better? */
    91 );
    92
    93/** sets upper bound in primal data and in LP solver */
    95 SCIP_PRIMAL* primal, /**< primal data */
    96 BMS_BLKMEM* blkmem, /**< block memory */
    97 SCIP_SET* set, /**< global SCIP settings */
    98 SCIP_STAT* stat, /**< problem statistics data */
    99 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    100 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    101 SCIP_PROB* prob, /**< transformed problem after presolve */
    102 SCIP_TREE* tree, /**< branch and bound tree */
    103 SCIP_REOPT* reopt, /**< reoptimization data structure */
    104 SCIP_LP* lp, /**< current LP data */
    105 SCIP_Real upperbound /**< new upper bound */
    106 );
    107
    108/** updates upper bound and cutoff bound in primal data after a tightening of the problem's objective limit */
    110 SCIP_PRIMAL* primal, /**< primal data */
    111 BMS_BLKMEM* blkmem, /**< block memory */
    112 SCIP_SET* set, /**< global SCIP settings */
    113 SCIP_STAT* stat, /**< problem statistics data */
    114 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    115 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    116 SCIP_PROB* transprob, /**< tranformed problem data */
    117 SCIP_PROB* origprob, /**< original problem data */
    118 SCIP_TREE* tree, /**< branch and bound tree */
    119 SCIP_REOPT* reopt, /**< reoptimization data structure */
    120 SCIP_LP* lp /**< current LP data */
    121 );
    122
    123/** recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset */
    125 SCIP_PRIMAL* primal, /**< primal data */
    126 BMS_BLKMEM* blkmem, /**< block memory */
    127 SCIP_SET* set, /**< global SCIP settings */
    128 SCIP_STAT* stat, /**< problem statistics data */
    129 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    130 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    131 SCIP_PROB* transprob, /**< tranformed problem data */
    132 SCIP_PROB* origprob, /**< original problem data */
    133 SCIP_TREE* tree, /**< branch and bound tree */
    134 SCIP_REOPT* reopt, /**< reoptimization data structure */
    135 SCIP_LP* lp /**< current LP data */
    136 );
    137
    138/** recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset */
    140 SCIP_PRIMAL* primal, /**< primal data */
    141 BMS_BLKMEM* blkmem, /**< block memory */
    142 SCIP_SET* set, /**< global SCIP settings */
    143 SCIP_STAT* stat, /**< problem statistics data */
    144 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    145 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    146 SCIP_PROB* transprob, /**< tranformed problem data */
    147 SCIP_PROB* origprob, /**< original problem data */
    148 SCIP_TREE* tree, /**< branch and bound tree */
    149 SCIP_REOPT* reopt, /**< reoptimization data structure */
    150 SCIP_LP* lp /**< current LP data */
    151 );
    152
    153/** adds additional objective offset in origanal space to all existing solution (in original space) */
    155 SCIP_PRIMAL* primal, /**< primal data */
    156 SCIP_SET* set, /**< global SCIP settings */
    157 SCIP_Real addval /**< additional objective offset in original space */
    158 );
    159
    160/** adds additional objective offset in original space to all existing solution (in original space) */
    162 SCIP_PRIMAL* primal, /**< primal data */
    163 SCIP_SET* set, /**< global SCIP settings */
    164 SCIP_RATIONAL* addval /**< additional objective offset in original space */
    165 );
    166
    167/** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
    168 * was set from the user as objective limit
    169 */
    171 SCIP_PRIMAL* primal, /**< primal data */
    172 SCIP_SET* set, /**< global SCIP settings */
    173 SCIP_PROB* transprob, /**< tranformed problem data */
    174 SCIP_PROB* origprob /**< original problem data */
    175 );
    176
    177/** returns the primal ray thats proves unboundedness */
    179 SCIP_PRIMAL* primal /**< primal data */
    180 );
    181
    182/** update the primal ray thats proves unboundedness */
    184 SCIP_PRIMAL* primal, /**< primal data */
    185 SCIP_SET* set, /**< global SCIP settings */
    186 SCIP_STAT* stat, /**< dynamic SCIP statistics */
    187 SCIP_SOL* primalray, /**< the new primal ray */
    188 BMS_BLKMEM* blkmem /**< block memory */
    189 );
    190
    191/** adds primal solution to solution storage by copying it */
    193 SCIP_PRIMAL* primal, /**< primal data */
    194 BMS_BLKMEM* blkmem, /**< block memory */
    195 SCIP_SET* set, /**< global SCIP settings */
    196 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
    197 SCIP_STAT* stat, /**< problem statistics data */
    198 SCIP_PROB* origprob, /**< original problem */
    199 SCIP_PROB* transprob, /**< transformed problem after presolve */
    200 SCIP_TREE* tree, /**< branch and bound tree */
    201 SCIP_REOPT* reopt, /**< reoptimization data structure */
    202 SCIP_LP* lp, /**< current LP data */
    203 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    204 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    205 SCIP_SOL* sol, /**< primal CIP solution */
    206 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
    207 );
    208
    209/** adds primal solution to solution storage, frees the solution afterwards */
    211 SCIP_PRIMAL* primal, /**< primal data */
    212 BMS_BLKMEM* blkmem, /**< block memory */
    213 SCIP_SET* set, /**< global SCIP settings */
    214 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
    215 SCIP_STAT* stat, /**< problem statistics data */
    216 SCIP_PROB* origprob, /**< original problem */
    217 SCIP_PROB* transprob, /**< transformed problem after presolve */
    218 SCIP_TREE* tree, /**< branch and bound tree */
    219 SCIP_REOPT* reopt, /**< reoptimization data structure */
    220 SCIP_LP* lp, /**< current LP data */
    221 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    222 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    223 SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
    224 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
    225 );
    226
    227/** adds primal solution to solution candidate storage of original problem space */
    229 SCIP_PRIMAL* primal, /**< primal data */
    230 BMS_BLKMEM* blkmem, /**< block memory */
    231 SCIP_SET* set, /**< global SCIP settings */
    232 SCIP_STAT* stat, /**< problem statistics data */
    233 SCIP_PROB* prob, /**< original problem data */
    234 SCIP_SOL* sol, /**< primal CIP solution; is cleared in function call */
    235 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
    236 );
    237
    238/** adds primal solution to solution candidate storage of original problem space, frees the solution afterwards */
    240 SCIP_PRIMAL* primal, /**< primal data */
    241 BMS_BLKMEM* blkmem, /**< block memory */
    242 SCIP_SET* set, /**< global SCIP settings */
    243 SCIP_STAT* stat, /**< problem statistics data */
    244 SCIP_PROB* prob, /**< original problem data */
    245 SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
    246 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
    247 );
    248
    249/** adds current LP/pseudo solution to solution storage */
    251 SCIP_PRIMAL* primal, /**< primal data */
    252 BMS_BLKMEM* blkmem, /**< block memory */
    253 SCIP_SET* set, /**< global SCIP settings */
    254 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
    255 SCIP_STAT* stat, /**< problem statistics data */
    256 SCIP_PROB* origprob, /**< original problem */
    257 SCIP_PROB* transprob, /**< transformed problem after presolve */
    258 SCIP_TREE* tree, /**< branch and bound tree */
    259 SCIP_REOPT* reopt, /**< reoptimization data structure */
    260 SCIP_LP* lp, /**< current LP data */
    261 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    262 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    263 SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
    264 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
    265 );
    266
    267/** checks primal solution; if feasible, adds it to storage by copying it */
    269 SCIP_PRIMAL* primal, /**< primal data */
    270 BMS_BLKMEM* blkmem, /**< block memory */
    271 SCIP_SET* set, /**< global SCIP settings */
    272 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
    273 SCIP_STAT* stat, /**< problem statistics data */
    274 SCIP_PROB* origprob, /**< original problem */
    275 SCIP_PROB* transprob, /**< transformed problem after presolve */
    276 SCIP_TREE* tree, /**< branch and bound tree */
    277 SCIP_REOPT* reopt, /**< reoptimization data structure */
    278 SCIP_LP* lp, /**< current LP data */
    279 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    280 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    281 SCIP_SOL* sol, /**< primal CIP solution */
    282 SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
    283 SCIP_Bool completely, /**< Should all violations be checked? */
    284 SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
    285 SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
    286 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
    287 SCIP_Bool* stored /**< stores whether given solution was feasible and good enough to keep */
    288 );
    289
    290/** checks primal solution; if feasible, adds it to storage; solution is freed afterwards */
    292 SCIP_PRIMAL* primal, /**< primal data */
    293 BMS_BLKMEM* blkmem, /**< block memory */
    294 SCIP_SET* set, /**< global SCIP settings */
    295 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
    296 SCIP_STAT* stat, /**< problem statistics data */
    297 SCIP_PROB* origprob, /**< original problem */
    298 SCIP_PROB* transprob, /**< transformed problem after presolve */
    299 SCIP_TREE* tree, /**< branch and bound tree */
    300 SCIP_REOPT* reopt, /**< reoptimization data structure */
    301 SCIP_LP* lp, /**< current LP data */
    302 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    303 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    304 SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
    305 SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
    306 SCIP_Bool completely, /**< Should all violations be checked? */
    307 SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
    308 SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
    309 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
    310 SCIP_Bool* stored /**< stores whether solution was feasible and good enough to keep */
    311 );
    312
    313/** checks current LP/pseudo solution; if feasible, adds it to storage */
    315 SCIP_PRIMAL* primal, /**< primal data */
    316 BMS_BLKMEM* blkmem, /**< block memory */
    317 SCIP_SET* set, /**< global SCIP settings */
    318 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
    319 SCIP_STAT* stat, /**< problem statistics data */
    320 SCIP_PROB* origprob, /**< original problem */
    321 SCIP_PROB* transprob, /**< transformed problem after presolve */
    322 SCIP_TREE* tree, /**< branch and bound tree */
    323 SCIP_REOPT* reopt, /**< reoptimization data structure */
    324 SCIP_LP* lp, /**< current LP data */
    325 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    326 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    327 SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
    328 SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
    329 SCIP_Bool completely, /**< Should all violations be checked? */
    330 SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
    331 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
    332 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
    333 );
    334
    335/** inserts solution into the global array of all existing primal solutions */
    337 SCIP_PRIMAL* primal, /**< primal data */
    338 SCIP_SET* set, /**< global SCIP settings */
    339 SCIP_SOL* sol /**< primal CIP solution */
    340 );
    341
    342/** removes solution from the global array of all existing primal solutions */
    344 SCIP_PRIMAL* primal, /**< primal data */
    345 SCIP_SOL* sol /**< primal CIP solution */
    346 );
    347
    348/** updates all existing primal solutions after a change in a variable's objective value */
    350 SCIP_PRIMAL* primal, /**< primal data */
    351 SCIP_VAR* var, /**< problem variable */
    352 SCIP_Real oldobj, /**< old objective value */
    353 SCIP_Real newobj /**< new objective value */
    354 );
    355
    356/** retransforms all existing solutions to original problem space
    357 *
    358 * @note as a side effect, the objective value of the solutions can change (numerical errors)
    359 * so we update the objective cutoff value and upper bound accordingly
    360 */
    362 SCIP_PRIMAL* primal, /**< primal data */
    363 BMS_BLKMEM* blkmem, /**< block memory */
    364 SCIP_SET* set, /**< global SCIP settings */
    365 SCIP_STAT* stat, /**< problem statistics data */
    366 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    367 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    368 SCIP_PROB* origprob, /**< original problem */
    369 SCIP_PROB* transprob, /**< transformed problem */
    370 SCIP_TREE* tree, /**< branch and bound tree */
    371 SCIP_REOPT* reopt, /**< reoptimization data structure */
    372 SCIP_LP* lp /**< current LP data */
    373 );
    374
    375/** tries to transform original solution to the transformed problem space */
    377 SCIP_PRIMAL* primal, /**< primal data */
    378 SCIP_SOL* sol, /**< primal solution */
    379 BMS_BLKMEM* blkmem, /**< block memory */
    380 SCIP_SET* set, /**< global SCIP settings */
    381 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
    382 SCIP_STAT* stat, /**< problem statistics data */
    383 SCIP_PROB* origprob, /**< original problem */
    384 SCIP_PROB* transprob, /**< transformed problem after presolve */
    385 SCIP_TREE* tree, /**< branch and bound tree */
    386 SCIP_REOPT* reopt, /**< reoptimization data structure */
    387 SCIP_LP* lp, /**< current LP data */
    388 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    389 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
    390 SCIP_Real* solvals, /**< array for internal use to store solution values, or NULL;
    391 * if the method is called multiple times in a row, an array with size >=
    392 * number of active variables should be given for performance reasons */
    393 SCIP_Bool* solvalset, /**< array for internal use to store which solution values were set, or NULL;
    394 * if the method is called multiple times in a row, an array with size >=
    395 * number of active variables should be given for performance reasons */
    396 int solvalssize, /**< size of solvals and solvalset arrays, should be >= number of active
    397 * variables */
    398 SCIP_Bool* added /**< pointer to store whether the solution was added */
    399 );
    400
    401/** is the updating of violations enabled for this problem? */
    403 SCIP_PRIMAL* primal /**< problem data */
    404 );
    405
    406/** set whether the updating of violations is turned on */
    408 SCIP_PRIMAL* primal, /**< problem data */
    409 SCIP_Bool updateviolations /**< TRUE to enable violation updates, FALSE otherwise */
    410 );
    411
    412/** adds exact primal solution to solution storage, frees the solution afterwards */
    414 SCIP_PRIMAL* primal, /**< primal data */
    415 BMS_BLKMEM* blkmem, /**< block memory */
    416 SCIP_SET* set, /**< global SCIP settings */
    417 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
    418 SCIP_STAT* stat, /**< problem statistics data */
    419 SCIP_PROB* origprob, /**< original problem */
    420 SCIP_PROB* transprob, /**< transformed problem after presolve */
    421 SCIP_TREE* tree, /**< branch and bound tree */
    422 SCIP_REOPT* reopt, /**< reoptimization data structure */
    423 SCIP_LPEXACT* lpexact, /**< current LP data */
    424 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    425 SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
    426 SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
    427 SCIP_Bool printreason, /**< Should all the reasons of violations be printed? */
    428 SCIP_Bool completely, /**< Should all violations be checked? */
    429 SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
    430 SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
    431 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
    432 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
    433 );
    434
    435/** adds exact primal solution to solution storage by copying it and frees the solution afterwards */
    437 SCIP_PRIMAL* primal, /**< primal data */
    438 BMS_BLKMEM* blkmem, /**< block memory */
    439 SCIP_SET* set, /**< global SCIP settings */
    440 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
    441 SCIP_STAT* stat, /**< problem statistics data */
    442 SCIP_PROB* origprob, /**< original problem */
    443 SCIP_PROB* transprob, /**< transformed problem after presolve */
    444 SCIP_TREE* tree, /**< branch and bound tree */
    445 SCIP_REOPT* reopt, /**< reoptimization data structure */
    446 SCIP_LPEXACT* lpexact, /**< current exact LP data */
    447 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
    448 SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
    449 SCIP_SOL** sol, /**< primal CIP solution */
    450 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
    451 );
    452
    453#ifdef __cplusplus
    454}
    455#endif
    456
    457#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
    SCIP_RETCODE SCIPprimalAddCurrentSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_HEUR *heur, SCIP_Bool *stored)
    Definition: primal.c:1793
    void SCIPprimalAddOrigObjoffsetExact(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_RATIONAL *addval)
    Definition: primal.c:752
    SCIP_RETCODE SCIPprimalUpdateObjoffsetExact(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
    Definition: primal.c:646
    void SCIPprimalSetUpdateViolations(SCIP_PRIMAL *primal, SCIP_Bool updateviolations)
    Definition: primal.c:2311
    SCIP_RETCODE SCIPprimalUpdateRay(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *primalray, BMS_BLKMEM *blkmem)
    Definition: primal.c:810
    void SCIPprimalSolFreed(SCIP_PRIMAL *primal, SCIP_SOL *sol)
    Definition: primal.c:2024
    SCIP_RETCODE SCIPprimalTrySolFreeExact(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LPEXACT *lpexact, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
    Definition: primal.c:2382
    SCIP_RETCODE SCIPprimalAddOrigSolFree(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL **sol, SCIP_Bool *stored)
    Definition: primal.c:1709
    SCIP_RETCODE SCIPprimalTryCurrentSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_HEUR *heur, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
    Definition: primal.c:1967
    void SCIPprimalAddOrigObjoffset(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_Real addval)
    Definition: primal.c:719
    SCIP_RETCODE SCIPprimalFree(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
    Definition: primal.c:165
    SCIP_SOL * SCIPprimalGetRay(SCIP_PRIMAL *primal)
    Definition: primal.c:800
    SCIP_RETCODE SCIPprimalTrySolFree(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
    Definition: primal.c:1893
    SCIP_Bool SCIPprimalUpdateViolations(SCIP_PRIMAL *primal)
    Definition: primal.c:2301
    SCIP_Bool SCIPprimalUpperboundIsSol(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
    Definition: primal.c:787
    SCIP_RETCODE SCIPprimalSetUpperbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real upperbound)
    Definition: primal.c:518
    SCIP_RETCODE SCIPprimalAddOrigSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL *sol, SCIP_Bool *stored)
    Definition: primal.c:1654
    SCIP_RETCODE SCIPprimalSetCutoffbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real cutoffbound, SCIP_Bool useforobjlimit)
    Definition: primal.c:348
    void SCIPprimalUpdateVarObj(SCIP_PRIMAL *primal, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
    Definition: primal.c:2054
    SCIP_RETCODE SCIPprimalCreate(SCIP_PRIMAL **primal)
    Definition: primal.c:133
    SCIP_RETCODE SCIPprimalTrySol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
    Definition: primal.c:1823
    SCIP_RETCODE SCIPprimalRetransformSolutions(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
    Definition: primal.c:2077
    SCIP_RETCODE SCIPprimalTransformSol(SCIP_PRIMAL *primal, SCIP_SOL *sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_Real *solvals, SCIP_Bool *solvalset, int solvalssize, SCIP_Bool *added)
    Definition: primal.c:2126
    SCIP_RETCODE SCIPprimalAddSolFree(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool *stored)
    Definition: primal.c:1599
    SCIP_RETCODE SCIPprimalUpdateObjoffset(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
    Definition: primal.c:590
    SCIP_RETCODE SCIPprimalAddSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool *stored)
    Definition: primal.c:1523
    SCIP_RETCODE SCIPprimalUpdateObjlimit(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
    Definition: primal.c:550
    SCIP_RETCODE SCIPprimalSolCreated(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_SOL *sol)
    Definition: primal.c:2002
    SCIP_RETCODE SCIPprimalAddSolFreeExact(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LPEXACT *lpexact, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool *stored)
    Definition: primal.c:2449
    SCIP_RETCODE SCIPprimalClear(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem)
    Definition: primal.c:190
    datastructures for collecting primal CIP solutions and primal informations
    Definition: heur_padm.c:135
    type definitions for managing events
    type definitions for primal heuristics
    type definitions for LP management
    type definitions for exact LP management
    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
    type definitions for return codes for SCIP methods
    enum SCIP_Retcode SCIP_RETCODE
    Definition: type_retcode.h:63
    type definitions for global SCIP settings
    type definitions for storing primal CIP solutions
    type definitions for branch and bound tree
    type definitions for problem variables