Scippy

    SCIP

    Solving Constraint Integer Programs

    pub_relax.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_relax.h
    26 * @ingroup PUBLICCOREAPI
    27 * @brief public methods for relaxation handlers
    28 * @author Tobias Achterberg
    29 */
    30
    31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    32
    33#ifndef __SCIP_PUB_RELAX_H__
    34#define __SCIP_PUB_RELAX_H__
    35
    36
    37#include "scip/def.h"
    38#include "scip/type_misc.h"
    39#include "scip/type_relax.h"
    40
    41#ifdef __cplusplus
    42extern "C" {
    43#endif
    44
    45
    46/**@addtogroup PublicRelaxatorMethods
    47 *
    48 * @{
    49 */
    50
    51
    52/** compares two relaxation handlers w. r. to their priority */
    53SCIP_EXPORT
    54SCIP_DECL_SORTPTRCOMP(SCIPrelaxComp);
    55
    56/** comparison method for sorting relaxators w.r.t. to their name */
    57SCIP_EXPORT
    58SCIP_DECL_SORTPTRCOMP(SCIPrelaxCompName);
    59
    60/** gets user data of relaxation handler */
    61SCIP_EXPORT
    63 SCIP_RELAX* relax /**< relaxation handler */
    64 );
    65
    66/** sets user data of relaxation handler; user has to free old data in advance! */
    67SCIP_EXPORT
    69 SCIP_RELAX* relax, /**< relaxation handler */
    70 SCIP_RELAXDATA* relaxdata /**< new relaxation handler user data */
    71 );
    72
    73/** marks the relaxator as safe to use in exact solving mode */
    74SCIP_EXPORT
    76 SCIP_RELAX* relax /**< relaxation handler */
    77 );
    78
    79/** gets name of relaxation handler */
    80SCIP_EXPORT
    81const char* SCIPrelaxGetName(
    82 SCIP_RELAX* relax /**< relaxation handler */
    83 );
    84
    85/** gets description of relaxation handler */
    86SCIP_EXPORT
    87const char* SCIPrelaxGetDesc(
    88 SCIP_RELAX* relax /**< relaxation handler */
    89 );
    90
    91/** gets priority of relaxation handler */
    92SCIP_EXPORT
    94 SCIP_RELAX* relax /**< relaxation handler */
    95 );
    96
    97/** gets frequency of relaxation handler */
    98SCIP_EXPORT
    100 SCIP_RELAX* relax /**< relaxation handler */
    101 );
    102
    103/** gets time in seconds used in this relaxator for setting up for next stages */
    104SCIP_EXPORT
    106 SCIP_RELAX* relax /**< relaxator */
    107 );
    108
    109/** gets time in seconds used in this relaxation handler */
    110SCIP_EXPORT
    112 SCIP_RELAX* relax /**< relaxation handler */
    113 );
    114
    115/** gets the total number of times the relaxation handler was called */
    116SCIP_EXPORT
    118 SCIP_RELAX* relax /**< relaxation handler */
    119 );
    120
    121/** gets the total number of times the relaxation handler cut off a node */
    122SCIP_EXPORT
    124 SCIP_RELAX* relax /**< relaxation handler */
    125 );
    126
    127/** gets the total number of times the relaxation handler improved a node's lower bound */
    128SCIP_EXPORT
    130 SCIP_RELAX* relax /**< relaxation handler */
    131 );
    132
    133/** gets the time in seconds spent for the execution of the relaxation handler when a node's lower bound could be improved (or a cutoff was found) */
    134SCIP_EXPORT
    136 SCIP_RELAX* relax /**< relaxation handler */
    137 );
    138
    139/** gets the total number of times the relaxation handler added constraints */
    140SCIP_EXPORT
    142 SCIP_RELAX* relax /**< relaxation handler */
    143 );
    144
    145/** gets the total number of times the relaxation handler reduced variable domains */
    146SCIP_EXPORT
    148 SCIP_RELAX* relax /**< relaxation handler */
    149 );
    150
    151/** gets the total number of times the relaxation handler separated cutting planes */
    152SCIP_EXPORT
    154 SCIP_RELAX* relax /**< relaxation handler */
    155 );
    156
    157/** is relaxation handler initialized? */
    158SCIP_EXPORT
    160 SCIP_RELAX* relax /**< relaxation handler */
    161 );
    162
    163/** marks the current relaxation unsolved, s.t. the relaxation handler is called again in the next solving round */
    164SCIP_EXPORT
    166 SCIP_RELAX* relax /**< relaxation handler */
    167 );
    168
    169/** @} */
    170
    171#ifdef __cplusplus
    172}
    173#endif
    174
    175#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
    void SCIPrelaxMarkUnsolved(SCIP_RELAX *relax)
    Definition: relax.c:735
    SCIP_Longint SCIPrelaxGetNAddedConss(SCIP_RELAX *relax)
    Definition: relax.c:673
    SCIP_Bool SCIPrelaxIsInitialized(SCIP_RELAX *relax)
    Definition: relax.c:713
    SCIP_Real SCIPrelaxGetTime(SCIP_RELAX *relax)
    Definition: relax.c:633
    int SCIPrelaxGetFreq(SCIP_RELAX *relax)
    Definition: relax.c:601
    const char * SCIPrelaxGetName(SCIP_RELAX *relax)
    Definition: relax.c:557
    SCIP_DECL_SORTPTRCOMP(SCIPrelaxComp)
    Definition: relax.c:56
    SCIP_Real SCIPrelaxGetSetupTime(SCIP_RELAX *relax)
    Definition: relax.c:611
    void SCIPrelaxMarkExact(SCIP_RELAX *relax)
    Definition: relax.c:547
    SCIP_Longint SCIPrelaxGetNCutoffs(SCIP_RELAX *relax)
    Definition: relax.c:653
    SCIP_Longint SCIPrelaxGetNSeparatedCuts(SCIP_RELAX *relax)
    Definition: relax.c:703
    void SCIPrelaxSetData(SCIP_RELAX *relax, SCIP_RELAXDATA *relaxdata)
    Definition: relax.c:470
    const char * SCIPrelaxGetDesc(SCIP_RELAX *relax)
    Definition: relax.c:567
    SCIP_Longint SCIPrelaxGetNReducedDomains(SCIP_RELAX *relax)
    Definition: relax.c:693
    SCIP_Real SCIPrelaxGetImprovedLowerboundTime(SCIP_RELAX *relax)
    Definition: relax.c:683
    int SCIPrelaxGetPriority(SCIP_RELAX *relax)
    Definition: relax.c:577
    SCIP_Longint SCIPrelaxGetNImprovedLowerbound(SCIP_RELAX *relax)
    Definition: relax.c:663
    SCIP_Longint SCIPrelaxGetNCalls(SCIP_RELAX *relax)
    Definition: relax.c:643
    SCIP_RELAXDATA * SCIPrelaxGetData(SCIP_RELAX *relax)
    Definition: relax.c:460
    type definitions for miscellaneous datastructures
    type definitions for relaxators
    struct SCIP_RelaxData SCIP_RELAXDATA
    Definition: type_relax.h:52