1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (c) 2002-2023 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 heur_indicator.h 26 * @ingroup PRIMALHEURISTICS 27 * @brief handle partial solutions for linear problems with indicators and otherwise continuous variables 28 * @author Marc Pfetsch 29 * 30 * For linear problems with indicators and otherwise continuous variables, the indicator constraint handler can produce 31 * partial solutions, i.e., values for the indicator variables. This partial solution can be passed to this heuristic, 32 * which then fixes these values and solves an LP. Additionally a local search for a better solution is added. 33 */ 34 35 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 36 37 #ifndef __SCIP_HEUR_INDICATOR_H__ 38 #define __SCIP_HEUR_INDICATOR_H__ 39 40 #include "scip/def.h" 41 #include "scip/type_cons.h" 42 #include "scip/type_heur.h" 43 #include "scip/type_retcode.h" 44 #include "scip/type_scip.h" 45 46 #ifdef __cplusplus 47 extern "C" { 48 #endif 49 50 /** creates the indicator primal heuristic and includes it in SCIP 51 * 52 * @ingroup PrimalHeuristicIncludes 53 */ 54 SCIP_EXPORT 55 SCIP_RETCODE SCIPincludeHeurIndicator( 56 SCIP* scip /**< SCIP data structure */ 57 ); 58 59 /**@addtogroup PRIMALHEURISTICS 60 * 61 * @{ 62 */ 63 64 /** pass partial solution for indicator variables to heuristic */ 65 SCIP_EXPORT 66 SCIP_RETCODE SCIPheurPassIndicator( 67 SCIP* scip, /**< SCIP data structure */ 68 SCIP_HEUR* heur, /**< indicator heuristic */ 69 int nindconss, /**< number of indicator constraints */ 70 SCIP_CONS** indconss, /**< indicator constraints */ 71 SCIP_Bool* solcand, /**< values for indicator variables in partial solution */ 72 SCIP_Real obj /**< objective of solution */ 73 ); 74 75 /** @} */ 76 77 #ifdef __cplusplus 78 } 79 #endif 80 81 #endif 82