Scippy

    SCIP

    Solving Constraint Integer Programs

    struct_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 struct_primal.h
    26 * @ingroup INTERNALAPI
    27 * @brief datastructures 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_STRUCT_PRIMAL_H__
    34#define __SCIP_STRUCT_PRIMAL_H__
    35
    36
    37#include "scip/def.h"
    38#include "scip/type_rational.h"
    39#include "scip/type_sol.h"
    40#include "scip/type_primal.h"
    41
    42#ifdef __cplusplus
    43extern "C" {
    44#endif
    45
    46/** primal data and solution storage */
    48{
    49 SCIP_Longint nsolsfound; /**< number of primal CIP solutions found up to now */
    50 SCIP_Longint nlimsolsfound; /**< number of primal CIP solutions respecting the objective limit found
    51 * up to now */
    52 SCIP_Longint nbestsolsfound; /**< number of new best primal CIP solutions found up to now */
    53 SCIP_Longint nlimbestsolsfound; /**< number of new best primal CIP solutions respecting the objective limit
    54 * found up to now */
    55 SCIP_Real upperbound; /**< upper (primal) bound of CIP: objective value of best solution or user bound */
    56 SCIP_RATIONAL* upperboundexact; /**< upper (primal) bound of CIP: objective value of best solution or user bound */
    57 SCIP_Real cutoffbound; /**< upper bound for better primal solutions (if objective value is always
    58 * integral, cutoffbound is equal to ceil(upperbound) - 1.0 (+eps) */
    59 SCIP_RATIONAL* cutoffboundexact; /**< store the exact cutoff bound here, if in exact solving mode */
    60 SCIP_SOL** sols; /**< primal CIP solutions */
    61 SCIP_SOL** partialsols; /**< partial solutions */
    62 SCIP_SOL** existingsols; /**< all existing primal solutions (feasible, partial, and infeasible) */
    63 SCIP_SOL* currentsol; /**< internal solution for temporarily storing the current solution */
    64 SCIP_SOL* primalray; /**< solution representing the primal ray for (infeasible or) unbounded problems;
    65 * warning: this does not have to be a feasible solution */
    66 int solssize; /**< size of sols array */
    67 int partialsolssize; /**< size of partialsols array */
    68 int nsols; /**< number of primal CIP solutions stored in sols array */
    69 int npartialsols; /**< number of partial solutions stored in partialsol array */
    70 int existingsolssize; /**< size of existingsols array */
    71 int nexistingsols; /**< number of primal CIP solutions stored in existingsols array */
    72
    73 SCIP_Bool updateviolations; /**< marks whether the updating of violations is turned on */
    74};
    75
    76#ifdef __cplusplus
    77}
    78#endif
    79
    80#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_SOL * currentsol
    Definition: struct_primal.h:63
    int partialsolssize
    Definition: struct_primal.h:67
    int existingsolssize
    Definition: struct_primal.h:70
    SCIP_SOL ** partialsols
    Definition: struct_primal.h:61
    SCIP_SOL ** sols
    Definition: struct_primal.h:60
    SCIP_RATIONAL * cutoffboundexact
    Definition: struct_primal.h:59
    SCIP_Longint nlimbestsolsfound
    Definition: struct_primal.h:53
    SCIP_RATIONAL * upperboundexact
    Definition: struct_primal.h:56
    SCIP_Longint nbestsolsfound
    Definition: struct_primal.h:52
    SCIP_Bool updateviolations
    Definition: struct_primal.h:73
    SCIP_SOL * primalray
    Definition: struct_primal.h:64
    SCIP_Longint nsolsfound
    Definition: struct_primal.h:49
    SCIP_Longint nlimsolsfound
    Definition: struct_primal.h:50
    SCIP_Real cutoffbound
    Definition: struct_primal.h:57
    SCIP_SOL ** existingsols
    Definition: struct_primal.h:62
    SCIP_Real upperbound
    Definition: struct_primal.h:55
    type definitions for collecting primal CIP solutions and primal informations
    type definitions for rational numbers
    type definitions for storing primal CIP solutions