1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (C) 2002-2021 Konrad-Zuse-Zentrum */ 7 /* fuer Informationstechnik Berlin */ 8 /* */ 9 /* SCIP is distributed under the terms of the ZIB Academic License. */ 10 /* */ 11 /* You should have received a copy of the ZIB Academic License */ 12 /* along with SCIP; see the file COPYING. If not visit scipopt.org. */ 13 /* */ 14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 16 /**@file type_sol.h 17 * @brief type definitions for storing primal CIP solutions 18 * @author Tobias Achterberg 19 */ 20 21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 22 23 #ifndef __SCIP_TYPE_SOL_H__ 24 #define __SCIP_TYPE_SOL_H__ 25 26 #ifdef __cplusplus 27 extern "C" { 28 #endif 29 30 /** origin of solution: where to retrieve uncached elements */ 31 enum SCIP_SolOrigin 32 { 33 SCIP_SOLORIGIN_ORIGINAL = 0, /**< solution describes original variables; non-cached elements are zero */ 34 SCIP_SOLORIGIN_ZERO = 1, /**< all non-cached elements in solution are equal to zero */ 35 SCIP_SOLORIGIN_LPSOL = 2, /**< all non-cached elements in solution are equal to current LP solution */ 36 SCIP_SOLORIGIN_NLPSOL = 3, /**< all non-cached elements in solution are equal to current NLP solution */ 37 SCIP_SOLORIGIN_RELAXSOL = 4, /**< all non-cached elements in solution are equal to current relaxation solution */ 38 SCIP_SOLORIGIN_PSEUDOSOL = 5, /**< all non-cached elements in solution are equal to current pseudo solution */ 39 SCIP_SOLORIGIN_PARTIAL = 6, /**< solution describes original solution; all non-cached elements in solution 40 * are treated as being an arbitrary value in the variable's bounds 41 */ 42 SCIP_SOLORIGIN_UNKNOWN = 7 /**< all non-cached elements in solution are unknown; they have to be treated 43 * as being an arbitrary value in the variable's bounds 44 */ 45 }; 46 typedef enum SCIP_SolOrigin SCIP_SOLORIGIN; 47 48 typedef struct SCIP_Sol SCIP_SOL; /**< primal CIP solution */ 49 50 typedef struct SCIP_Viol SCIP_VIOL; /**< maximum violations of problem constraints */ 51 52 /** type of solution: heuristic or (LP) relaxation solution, or unspecified origin */ 53 enum SCIP_SolType 54 { 55 SCIP_SOLTYPE_UNKNOWN = 0, /**< type of solution unspecified (the default) */ 56 SCIP_SOLTYPE_HEUR = 1, /**< solution was found by a heuristic */ 57 SCIP_SOLTYPE_RELAX = 2, /**< solution was found by a relaxation */ 58 SCIP_SOLTYPE_LPRELAX = 3, /**< solution was found by the LP relaxation */ 59 SCIP_SOLTYPE_STRONGBRANCH = 4, /**< solution was found during strong branching */ 60 SCIP_SOLTYPE_PSEUDO = 5 /**< solution originates from a pseudo solution */ 61 }; 62 typedef enum SCIP_SolType SCIP_SOLTYPE; 63 64 #ifdef __cplusplus 65 } 66 #endif 67 68 #endif 69