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