Scippy

    SCIP

    Solving Constraint Integer Programs

    struct_scip.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 struct_scip.h
    26 * @ingroup INTERNALAPI
    27 * @brief SCIP main data structure
    28 * @author Tobias Achterberg
    29 */
    30
    31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    32
    33#ifndef __SCIP_STRUCT_SCIP_H__
    34#define __SCIP_STRUCT_SCIP_H__
    35
    36
    37#include "scip/def.h"
    38#include "scip/type_set.h"
    39#include "scip/type_stat.h"
    40#include "scip/type_clock.h"
    41#include "scip/type_dcmp.h"
    42#include "scip/type_event.h"
    43#include "scip/type_iisfinder.h"
    44#include "scip/type_interrupt.h"
    45#include "scip/type_mem.h"
    46#include "scip/type_message.h"
    47#include "scip/type_lp.h"
    48#include "scip/type_lpexact.h"
    49#include "scip/type_nlp.h"
    50#include "scip/type_implics.h"
    51#include "scip/type_prob.h"
    52#include "scip/type_primal.h"
    53#include "scip/type_relax.h"
    54#include "scip/type_tree.h"
    56#include "scip/type_sepastore.h"
    58#include "scip/type_cutpool.h"
    59#include "scip/type_branch.h"
    60#include "scip/type_conflict.h"
    61#include "scip/type_dialog.h"
    62#include "scip/type_reopt.h"
    64#include "scip/type_syncstore.h"
    65
    66#ifdef __cplusplus
    67extern "C" {
    68#endif
    69
    70/** SCIP main data structure */
    71struct Scip
    72{
    73 /* INIT */
    74 SCIP_MEM* mem; /**< block memory buffers */
    75 SCIP_SET* set; /**< global SCIP settings */
    76 SCIP_INTERRUPT* interrupt; /**< CTRL-C interrupt data */
    77 SCIP_DIALOGHDLR* dialoghdlr; /**< dialog handler for user interface */
    78 SCIP_MESSAGEHDLR* messagehdlr; /**< message handler for output handling, or NULL */
    79 SCIP_CLOCK* totaltime; /**< total SCIP running time */
    80
    81 /* PROBLEM */
    82 SCIP_STAT* stat; /**< dynamic problem statistics */
    83 SCIP_PROB* origprob; /**< original problem data */
    84 SCIP_PRIMAL* origprimal; /**< primal data and solution storage for solution candidates */
    85 SCIP_DECOMPSTORE* decompstore; /**< decomposition storage data structure */
    86
    87 /* REOPTIMIZATION */
    88 SCIP_REOPT* reopt; /**< reoptimization data */
    89
    90 /* TRANSFORMED */
    91 SCIP_EVENTQUEUE* eventqueue; /**< event queue to cache events and process them later (bound change events) */
    92 SCIP_EVENTFILTER* eventfilter; /**< global event filter */
    93 SCIP_BRANCHCAND* branchcand; /**< storage for branching candidates */
    94 SCIP_LP* lp; /**< LP data */
    95 SCIP_LPEXACT* lpexact; /**< exact LP data */
    96 SCIP_NLP* nlp; /**< NLP data */
    97 SCIP_RELAXATION* relaxation; /**< global relaxation data */
    98 SCIP_PRIMAL* primal; /**< primal data and solution storage */
    99 SCIP_TREE* tree; /**< branch and bound tree */
    100 SCIP_CONFLICT* conflict; /**< conflict analysis data */
    101 SCIP_CLIQUETABLE* cliquetable; /**< collection of cliques */
    102 SCIP_PROB* transprob; /**< transformed problem after presolve */
    103
    104 /* SOLVING */
    105 SCIP_PRICESTORE* pricestore; /**< storage for priced variables */
    106 SCIP_SEPASTORE* sepastore; /**< storage for separated cuts */
    107 SCIP_SEPASTORE* sepastoreprobing; /**< storage for separated cuts during probing mode */
    108 SCIP_SEPASTOREEXACT* sepastoreexact; /**< storage for exact cuts */
    109 SCIP_CONFLICTSTORE* conflictstore; /**< storage for conflicts */
    110 SCIP_CUTPOOL* cutpool; /**< global cut pool */
    111 SCIP_CUTPOOL* delayedcutpool; /**< global delayed cut pool */
    112
    113 /* PARALLEL */
    114 SCIP_SYNCSTORE* syncstore; /**< the data structure for storing synchronization information */
    115 SCIP_CONCURRENT* concurrent; /**< data required for concurrent solve */
    116
    117 /* IIS */
    118 SCIP_IIS* iis; /**< the data structure for storing IIS information */
    119};
    120
    121#ifdef __cplusplus
    122}
    123#endif
    124
    125#endif
    common defines and data types used in all packages of SCIP
    SCIP_CUTPOOL * cutpool
    Definition: struct_scip.h:110
    SCIP_PROB * origprob
    Definition: struct_scip.h:83
    SCIP_CONCURRENT * concurrent
    Definition: struct_scip.h:115
    SCIP_MEM * mem
    Definition: struct_scip.h:74
    SCIP_SEPASTOREEXACT * sepastoreexact
    Definition: struct_scip.h:108
    SCIP_INTERRUPT * interrupt
    Definition: struct_scip.h:76
    SCIP_REOPT * reopt
    Definition: struct_scip.h:88
    SCIP_BRANCHCAND * branchcand
    Definition: struct_scip.h:93
    SCIP_STAT * stat
    Definition: struct_scip.h:82
    SCIP_EVENTFILTER * eventfilter
    Definition: struct_scip.h:92
    SCIP_SYNCSTORE * syncstore
    Definition: struct_scip.h:114
    SCIP_EVENTQUEUE * eventqueue
    Definition: struct_scip.h:91
    SCIP_SEPASTORE * sepastoreprobing
    Definition: struct_scip.h:107
    SCIP_MESSAGEHDLR * messagehdlr
    Definition: struct_scip.h:78
    SCIP_CONFLICTSTORE * conflictstore
    Definition: struct_scip.h:109
    SCIP_CUTPOOL * delayedcutpool
    Definition: struct_scip.h:111
    SCIP_IIS * iis
    Definition: struct_scip.h:118
    SCIP_SET * set
    Definition: struct_scip.h:75
    SCIP_PRICESTORE * pricestore
    Definition: struct_scip.h:105
    SCIP_LPEXACT * lpexact
    Definition: struct_scip.h:95
    SCIP_DECOMPSTORE * decompstore
    Definition: struct_scip.h:85
    SCIP_LP * lp
    Definition: struct_scip.h:94
    SCIP_RELAXATION * relaxation
    Definition: struct_scip.h:97
    SCIP_PRIMAL * origprimal
    Definition: struct_scip.h:84
    SCIP_PROB * transprob
    Definition: struct_scip.h:102
    SCIP_CLOCK * totaltime
    Definition: struct_scip.h:79
    SCIP_DIALOGHDLR * dialoghdlr
    Definition: struct_scip.h:77
    SCIP_CLIQUETABLE * cliquetable
    Definition: struct_scip.h:101
    SCIP_SEPASTORE * sepastore
    Definition: struct_scip.h:106
    SCIP_PRIMAL * primal
    Definition: struct_scip.h:98
    SCIP_NLP * nlp
    Definition: struct_scip.h:96
    SCIP_TREE * tree
    Definition: struct_scip.h:99
    SCIP_CONFLICT * conflict
    Definition: struct_scip.h:100
    type definitions for branching rules
    type definitions for clocks and timing issues
    type definition of concurrent data
    type definitions for conflict analysis
    type definitions for conflict store
    type definitions for storing cuts in a cut pool
    type definitions for decompositions and the decomposition store
    type definitions for user interface dialog
    type definitions for managing events
    type definitions for IIS
    type definitions for implications, variable bounds, and cliques
    type definitions for catching the user CTRL-C interrupt
    type definitions for LP management
    type definitions for exact LP management
    type definitions for block memory pools and memory buffers
    type definitions for message output methods
    type definitions for NLP management
    type definitions for storing priced variables
    type definitions for collecting primal CIP solutions and primal informations
    type definitions for storing and manipulating the main problem
    type definitions for relaxators
    type definitions for collecting reoptimization information
    type definitions for storing separated cuts
    type definitions for global SCIP settings
    type definitions for problem statistics
    the type definitions for the synchronization store
    type definitions for branch and bound tree