Scippy

    SCIP

    Solving Constraint Integer Programs

    visual.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 visual.h
    26 * @ingroup INTERNALAPI
    27 * @brief methods for creating output for visualization tools (VBC, BAK)
    28 * @author Tobias Achterberg
    29 * @author Marc Pfetsch
    30 */
    31
    32/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    33
    34#ifndef __SCIP_VISUAL_H__
    35#define __SCIP_VISUAL_H__
    36
    37
    38#include "scip/def.h"
    39#include "scip/type_set.h"
    40#include "scip/type_sol.h"
    41#include "scip/type_stat.h"
    42#include "scip/type_tree.h"
    43#include "scip/type_visual.h"
    44
    45#ifdef __cplusplus
    46extern "C" {
    47#endif
    48
    49/** creates visualization data structure */
    50SCIP_EXPORT
    52 SCIP_VISUAL** visual, /**< pointer to store the visualization information */
    53 SCIP_MESSAGEHDLR* messagehdlr /**< message handler */
    54 );
    55
    56/** frees visualization data structure */
    57SCIP_EXPORT
    59 SCIP_VISUAL** visual /**< pointer to store the visualization information */
    60 );
    61
    62/** initializes visualization information and creates a file for visualization output */
    63SCIP_EXPORT
    65 SCIP_VISUAL* visual, /**< visualization information */
    66 BMS_BLKMEM* blkmem, /**< block memory */
    67 SCIP_SET* set, /**< global SCIP settings */
    68 SCIP_MESSAGEHDLR* messagehdlr /**< message handler */
    69 );
    70
    71/** closes the visualization output file */
    72SCIP_EXPORT
    74 SCIP_VISUAL* visual, /**< visualization information */
    75 SCIP_SET* set, /**< global SCIP settings */
    76 SCIP_MESSAGEHDLR* messagehdlr /**< message handler */
    77 );
    78
    79/** creates a new node entry in the visualization output file */
    80SCIP_EXPORT
    82 SCIP_VISUAL* visual, /**< visualization information */
    83 SCIP_SET* set, /**< global SCIP settings */
    84 SCIP_STAT* stat, /**< problem statistics */
    85 SCIP_NODE* node /**< new node, that was created */
    86 );
    87
    88/** updates a node entry in the visualization output file */
    90 SCIP_VISUAL* visual, /**< visualization information */
    91 SCIP_SET* set, /**< global SCIP settings */
    92 SCIP_STAT* stat, /**< problem statistics */
    93 SCIP_NODE* node /**< new node, that was created */
    94 );
    95
    96/** marks node as solved in visualization output file */
    97SCIP_EXPORT
    99 SCIP_VISUAL* visual, /**< visualization information */
    100 SCIP_SET* set, /**< global SCIP settings */
    101 SCIP_STAT* stat, /**< problem statistics */
    102 SCIP_NODE* node /**< node, that was solved */
    103 );
    104
    105/** changes the color of the node to the color of cutoff nodes */
    106SCIP_EXPORT
    108 SCIP_VISUAL* visual, /**< visualization information */
    109 SCIP_SET* set, /**< global SCIP settings */
    110 SCIP_STAT* stat, /**< problem statistics */
    111 SCIP_NODE* node, /**< node, that was cut off */
    112 SCIP_Bool infeasible /**< whether the node is infeasible (otherwise exceeded the cutoff bound) */
    113 );
    114
    115/** changes the color of the node to the color of nodes where a conflict constraint was found */
    116SCIP_EXPORT
    118 SCIP_VISUAL* visual, /**< visualization information */
    119 SCIP_STAT* stat, /**< problem statistics */
    120 SCIP_NODE* node /**< node, where the conflict was found */
    121 );
    122
    123/** changes the color of the node to the color of nodes that were marked to be repropagated */
    124SCIP_EXPORT
    126 SCIP_VISUAL* visual, /**< visualization information */
    127 SCIP_STAT* stat, /**< problem statistics */
    128 SCIP_NODE* node /**< node, that was marked to be repropagated */
    129 );
    130
    131/** changes the color of the node to the color of repropagated nodes */
    132SCIP_EXPORT
    134 SCIP_VISUAL* visual, /**< visualization information */
    135 SCIP_STAT* stat, /**< problem statistics */
    136 SCIP_NODE* node /**< node, that was repropagated */
    137 );
    138
    139/** changes the color of the node to the color of nodes with a primal solution */
    140SCIP_EXPORT
    142 SCIP_VISUAL* visual, /**< visualization information */
    143 SCIP_SET* set, /**< global SCIP settings */
    144 SCIP_STAT* stat, /**< problem statistics */
    145 SCIP_NODE* node, /**< node where the solution was found, or NULL */
    146 SCIP_Bool bettersol, /**< the solution was better than the previous ones */
    147 SCIP_SOL* sol /**< solution that has been found */
    148 );
    149
    150/** outputs a new global lower bound to the visualization output file */
    151SCIP_EXPORT
    153 SCIP_VISUAL* visual, /**< visualization information */
    154 SCIP_SET* set, /**< global SCIP settings */
    155 SCIP_STAT* stat, /**< problem statistics */
    156 SCIP_Real lowerbound /**< new lower bound */
    157 );
    158
    159/** outputs a new global upper bound to the visualization output file */
    160SCIP_EXPORT
    162 SCIP_VISUAL* visual, /**< visualization information */
    163 SCIP_SET* set, /**< global SCIP settings */
    164 SCIP_STAT* stat, /**< problem statistics */
    165 SCIP_Real upperbound /**< new upper bound */
    166 );
    167
    168#ifdef __cplusplus
    169}
    170#endif
    171
    172#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
    struct BMS_BlkMem BMS_BLKMEM
    Definition: memory.h:437
    Definition: heur_padm.c:135
    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 problem statistics
    type definitions for branch and bound tree
    type definitions for output for visualization tools (VBC, BAK)
    SCIP_RETCODE SCIPvisualUpdateChild(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)
    Definition: visual.c:341
    void SCIPvisualUpperbound(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real upperbound)
    Definition: visual.c:805
    void SCIPvisualLowerbound(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real lowerbound)
    Definition: visual.c:768
    void SCIPvisualMarkedRepropagateNode(SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)
    Definition: visual.c:630
    void SCIPvisualFoundSolution(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node, SCIP_Bool bettersol, SCIP_SOL *sol)
    Definition: visual.c:669
    SCIP_RETCODE SCIPvisualNewChild(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)
    Definition: visual.c:266
    void SCIPvisualSolvedNode(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)
    Definition: visual.c:473
    void SCIPvisualFree(SCIP_VISUAL **visual)
    Definition: visual.c:106
    SCIP_RETCODE SCIPvisualInit(SCIP_VISUAL *visual, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
    Definition: visual.c:120
    SCIP_RETCODE SCIPvisualCreate(SCIP_VISUAL **visual, SCIP_MESSAGEHDLR *messagehdlr)
    Definition: visual.c:85
    void SCIPvisualFoundConflict(SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)
    Definition: visual.c:612
    void SCIPvisualCutoffNode(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node, SCIP_Bool infeasible)
    Definition: visual.c:533
    void SCIPvisualExit(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
    Definition: visual.c:189
    void SCIPvisualRepropagatedNode(SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)
    Definition: visual.c:651