Scippy

    SCIP

    Solving Constraint Integer Programs

    pub_sepa.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 pub_sepa.h
    26 * @ingroup PUBLICCOREAPI
    27 * @brief public methods for separators
    28 * @author Tobias Achterberg
    29 */
    30
    31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    32
    33#ifndef __SCIP_PUB_SEPA_H__
    34#define __SCIP_PUB_SEPA_H__
    35
    36
    37#include "scip/def.h"
    38#include "scip/type_misc.h"
    39#include "scip/type_sepa.h"
    40
    41#ifdef __cplusplus
    42extern "C" {
    43#endif
    44
    45/*--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    46/**@addtogroup PublicSeparatorMethods
    47 *
    48 * @{
    49 */
    50
    51
    52/** compares two separators w. r. to their priority */
    53SCIP_EXPORT
    54SCIP_DECL_SORTPTRCOMP(SCIPsepaComp);
    55
    56/** comparison method for sorting separators w.r.t. to their name */
    57SCIP_EXPORT
    58SCIP_DECL_SORTPTRCOMP(SCIPsepaCompName);
    59
    60/** gets user data of separator */
    61SCIP_EXPORT
    63 SCIP_SEPA* sepa /**< separator */
    64 );
    65
    66/** sets user data of separator; user has to free old data in advance! */
    67SCIP_EXPORT
    69 SCIP_SEPA* sepa, /**< separator */
    70 SCIP_SEPADATA* sepadata /**< new separator user data */
    71 );
    72
    73/** gets name of separator */
    74SCIP_EXPORT
    75const char* SCIPsepaGetName(
    76 SCIP_SEPA* sepa /**< separator */
    77 );
    78
    79/** gets description of separator */
    80SCIP_EXPORT
    81const char* SCIPsepaGetDesc(
    82 SCIP_SEPA* sepa /**< separator */
    83 );
    84
    85/** gets priority of separator */
    86SCIP_EXPORT
    88 SCIP_SEPA* sepa /**< separator */
    89 );
    90
    91/** gets frequency of separator */
    92SCIP_EXPORT
    94 SCIP_SEPA* sepa /**< separator */
    95 );
    96
    97/** sets frequency of separator */
    98SCIP_EXPORT
    100 SCIP_SEPA* sepa, /**< separator */
    101 int freq /**< new frequency of separator */
    102 );
    103
    104/** marks the separator as safe to use in exact solving mode */
    105SCIP_EXPORT
    107 SCIP_SEPA* sepa /**< separator */
    108 );
    109
    110/** get maximal bound distance at which the separator is called */
    111SCIP_EXPORT
    113 SCIP_SEPA* sepa /**< separator */
    114 );
    115
    116/** does the separator use a secondary SCIP instance? */
    117SCIP_EXPORT
    119 SCIP_SEPA* sepa /**< separator */
    120 );
    121
    122/** gets time in seconds used in this separator for setting up for next stages */
    123SCIP_EXPORT
    125 SCIP_SEPA* sepa /**< separator */
    126 );
    127
    128/** gets time in seconds used in this separator */
    129SCIP_EXPORT
    131 SCIP_SEPA* sepa /**< separator */
    132 );
    133
    134/** gets the total number of times the separator was called */
    135SCIP_EXPORT
    137 SCIP_SEPA* sepa /**< separator */
    138 );
    139
    140/** gets the total number of times the separator was called at the root */
    141SCIP_EXPORT
    143 SCIP_SEPA* sepa /**< separator */
    144 );
    145
    146/** gets the number of times, the separator was called at the current node */
    147SCIP_EXPORT
    149 SCIP_SEPA* sepa /**< separator */
    150 );
    151
    152/** gets total number of times, the separator detected a cutoff */
    153SCIP_EXPORT
    155 SCIP_SEPA* sepa /**< separator */
    156 );
    157
    158/** gets the total number of cutting planes added from the separator to the cut pool
    159 * and to the sepastore directly */
    160SCIP_EXPORT
    162 SCIP_SEPA* sepa /**< separator */
    163 );
    164
    165/** gets the total number of cutting planes added from the separator to the sepastore;
    166 * equal to the sum of added cuts directly and via the pool. */
    167SCIP_EXPORT
    169 SCIP_SEPA* sepa /**< separator */
    170 );
    171
    172/** gets the number of cutting planes from the separator added from the cut pool */
    173SCIP_EXPORT
    175 SCIP_SEPA* sepa /**< separator */
    176 );
    177
    178/** gets the number of cutting planes from the separator added directly to the sepastore */
    179SCIP_EXPORT
    181 SCIP_SEPA* sepa /**< separator */
    182 );
    183
    184/** gets the total number of cutting planes from the separator applied to the LP */
    185SCIP_EXPORT
    187 SCIP_SEPA* sepa /**< separator */
    188 );
    189
    190/** gets the total number of cutting planes from the separator applied to the LP from the cutpool */
    191SCIP_EXPORT
    193 SCIP_SEPA* sepa /**< separator */
    194 );
    195
    196/** gets the total number of cutting planes from the separator applied directly to the LP */
    197SCIP_EXPORT
    199 SCIP_SEPA* sepa /**< separator */
    200 );
    201
    202/** gets the number of cutting planes found by this separator at the current node */
    203SCIP_EXPORT
    205 SCIP_SEPA* sepa /**< separator */
    206 );
    207
    208/** gets total number of additional constraints added by this separator */
    209SCIP_EXPORT
    211 SCIP_SEPA* sepa /**< separator */
    212 );
    213
    214/** gets total number of domain reductions found by this separator */
    215SCIP_EXPORT
    217 SCIP_SEPA* sepa /**< separator */
    218 );
    219
    220/** should separator be delayed, if other separators found cuts? */
    221SCIP_EXPORT
    223 SCIP_SEPA* sepa /**< separator */
    224 );
    225
    226/** was separation of the LP solution delayed at the last call? */
    227SCIP_EXPORT
    229 SCIP_SEPA* sepa /**< separator */
    230 );
    231
    232/** was separation of the primal solution delayed at the last call? */
    233SCIP_EXPORT
    235 SCIP_SEPA* sepa /**< separator */
    236 );
    237
    238/** is separator initialized? */
    239SCIP_EXPORT
    241 SCIP_SEPA* sepa /**< separator */
    242 );
    243
    244/** gets whether separator is a parent separator */
    245SCIP_EXPORT
    247 SCIP_SEPA* sepa /**< separator */
    248 );
    249
    250/** gets parent separator (or NULL) */
    251SCIP_EXPORT
    253 SCIP_SEPA* sepa /**< separator */
    254 );
    255
    256/** @} */
    257
    258#ifdef __cplusplus
    259}
    260#endif
    261
    262#endif
    common defines and data types used in all packages of SCIP
    #define SCIP_Longint
    Definition: def.h:141
    #define SCIP_Bool
    Definition: def.h:91
    #define SCIP_Real
    Definition: def.h:156
    SCIP_Longint SCIPsepaGetNCutsApplied(SCIP_SEPA *sepa)
    Definition: sepa.c:954
    SCIP_Longint SCIPsepaGetNCutsAdded(SCIP_SEPA *sepa)
    Definition: sepa.c:924
    SCIP_Bool SCIPsepaWasSolDelayed(SCIP_SEPA *sepa)
    Definition: sepa.c:1122
    SCIP_Longint SCIPsepaGetNCutoffs(SCIP_SEPA *sepa)
    Definition: sepa.c:903
    SCIP_Longint SCIPsepaGetNCutsAppliedViaPool(SCIP_SEPA *sepa)
    Definition: sepa.c:964
    int SCIPsepaGetPriority(SCIP_SEPA *sepa)
    Definition: sepa.c:766
    SCIP_Real SCIPsepaGetMaxbounddist(SCIP_SEPA *sepa)
    Definition: sepa.c:821
    SCIP_Longint SCIPsepaGetNCutsAppliedDirect(SCIP_SEPA *sepa)
    Definition: sepa.c:974
    int SCIPsepaGetFreq(SCIP_SEPA *sepa)
    Definition: sepa.c:790
    const char * SCIPsepaGetName(SCIP_SEPA *sepa)
    Definition: sepa.c:746
    int SCIPsepaGetNCallsAtNode(SCIP_SEPA *sepa)
    Definition: sepa.c:893
    void SCIPsepaMarkExact(SCIP_SEPA *sepa)
    Definition: sepa.c:811
    SCIP_Longint SCIPsepaGetNDomredsFound(SCIP_SEPA *sepa)
    Definition: sepa.c:1092
    SCIP_Bool SCIPsepaIsParentsepa(SCIP_SEPA *sepa)
    Definition: sepa.c:1142
    const char * SCIPsepaGetDesc(SCIP_SEPA *sepa)
    Definition: sepa.c:756
    SCIP_Real SCIPsepaGetTime(SCIP_SEPA *sepa)
    Definition: sepa.c:863
    SCIP_Bool SCIPsepaIsInitialized(SCIP_SEPA *sepa)
    Definition: sepa.c:1132
    SCIP_Bool SCIPsepaWasLPDelayed(SCIP_SEPA *sepa)
    Definition: sepa.c:1112
    SCIP_SEPA * SCIPsepaGetParentsepa(SCIP_SEPA *sepa)
    Definition: sepa.c:1152
    SCIP_Longint SCIPsepaGetNCutsAddedViaPool(SCIP_SEPA *sepa)
    Definition: sepa.c:934
    SCIP_Longint SCIPsepaGetNConssFound(SCIP_SEPA *sepa)
    Definition: sepa.c:1082
    SCIP_DECL_SORTPTRCOMP(SCIPsepaComp)
    Definition: sepa.c:52
    SCIP_Bool SCIPsepaIsDelayed(SCIP_SEPA *sepa)
    Definition: sepa.c:1102
    SCIP_SEPADATA * SCIPsepaGetData(SCIP_SEPA *sepa)
    Definition: sepa.c:636
    SCIP_Longint SCIPsepaGetNRootCalls(SCIP_SEPA *sepa)
    Definition: sepa.c:883
    SCIP_Longint SCIPsepaGetNCutsAddedDirect(SCIP_SEPA *sepa)
    Definition: sepa.c:944
    void SCIPsepaSetData(SCIP_SEPA *sepa, SCIP_SEPADATA *sepadata)
    Definition: sepa.c:646
    SCIP_Bool SCIPsepaUsesSubscip(SCIP_SEPA *sepa)
    Definition: sepa.c:831
    SCIP_Real SCIPsepaGetSetupTime(SCIP_SEPA *sepa)
    Definition: sepa.c:853
    SCIP_Longint SCIPsepaGetNCutsFoundAtNode(SCIP_SEPA *sepa)
    Definition: sepa.c:1072
    SCIP_Longint SCIPsepaGetNCutsFound(SCIP_SEPA *sepa)
    Definition: sepa.c:913
    void SCIPsepaSetFreq(SCIP_SEPA *sepa, int freq)
    Definition: sepa.c:800
    SCIP_Longint SCIPsepaGetNCalls(SCIP_SEPA *sepa)
    Definition: sepa.c:873
    type definitions for miscellaneous datastructures
    type definitions for separators
    struct SCIP_SepaData SCIP_SEPADATA
    Definition: type_sepa.h:52