/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* This file is part of the program */ /* GCG --- Generic Column Generation */ /* a Dantzig-Wolfe decomposition based extension */ /* of the branch-cut-and-price framework */ /* SCIP --- Solving Constraint Integer Programs */ /* */ /* Copyright (C) 2010-2022 Operations Research, RWTH Aachen University */ /* Zuse Institute Berlin (ZIB) */ /* */ /* This program is free software; you can redistribute it and/or */ /* modify it under the terms of the GNU Lesser General Public License */ /* as published by the Free Software Foundation; either version 3 */ /* of the License, or (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU Lesser General Public License for more details. */ /* */ /* You should have received a copy of the GNU Lesser General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.*/ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /**@file pricingjob.h * @brief private methods for working with pricing jobs, to be used by the pricing controller only * @author Christian Puchert */ /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ #ifndef GCG_PRICINGJOB_H__ #define GCG_PRICINGJOB_H__ #include "struct_pricingjob.h" #include "type_pricingjob.h" #include "type_pricingprob.h" #ifdef __cplusplus extern "C" { #endif /** create a pricing job */ SCIP_EXPORT SCIP_RETCODE GCGpricingjobCreate( SCIP* scip, /**< SCIP data structure (master problem) */ GCG_PRICINGJOB** pricingjob, /**< pricing job to be created */ GCG_PRICINGPROB* pricingprob, /**< data structure of the corresponding pricing problem */ GCG_SOLVER* solver, /**< pricing solver responsible for the pricing job */ int chunk /**< chunk that the pricing problem should belong to */ ); /** free a pricing job */ SCIP_EXPORT void GCGpricingjobFree( SCIP* scip, /**< SCIP data structure (master problem) */ GCG_PRICINGJOB** pricingjob /**< pricing job to be freed */ ); /** setup a pricing job at the beginning of the pricing loop */ SCIP_EXPORT SCIP_RETCODE GCGpricingjobSetup( SCIP* scip, /**< SCIP data structure (master problem) */ GCG_PRICINGJOB* pricingjob, /**< pricing job */ SCIP_Bool heuristic, /**< shall the pricing job be performed heuristically? */ int scoring, /**< scoring parameter */ int nroundscol, /**< number of previous pricing rounds for which the number of improving columns should be counted */ SCIP_Real dualsolconv, /**< dual solution value of corresponding convexity constraint */ int npointsprob, /**< total number of extreme points generated so far by the pricing problem */ int nraysprob /**< total number of extreme rays generated so far by the pricing problem */ ); /** reset the pricing solver to be used to the one with the highest priority */ SCIP_EXPORT void GCGpricingjobResetSolver( SCIP* scip, /**< SCIP data structure (master problem) */ GCG_PRICINGJOB* pricingjob /**< pricing job */ ); /** get the next pricing solver to be used, or NULL of there is none */ SCIP_EXPORT void GCGpricingjobNextSolver( SCIP* scip, /**< SCIP data structure (master problem) */ GCG_PRICINGJOB* pricingjob /**< pricing job */ ); /** set the pricing job to be performed exactly */ SCIP_EXPORT void GCGpricingjobSetExact( GCG_PRICINGJOB* pricingjob /**< pricing job */ ); /** reset number of heuristic pricing iterations of a pricing job */ SCIP_EXPORT void GCGpricingjobResetHeuristic( GCG_PRICINGJOB* pricingjob /**< pricing job */ ); /** update number of heuristic pricing iterations of a pricing job */ SCIP_EXPORT void GCGpricingjobIncreaseNHeurIters( GCG_PRICINGJOB* pricingjob /**< pricing job */ ); #ifdef __cplusplus } #endif #endif