Scippy

    SCIP

    Solving Constraint Integer Programs

    iisfinder_greedy.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 iisfinder_greedy.h
    26 * @ingroup IISFINDERS
    27 * @brief greedy deletion and addition filter heuristic to compute IISs
    28 * @author Marc Pfetsch
    29 * @author Mark Turner
    30 * @author Paul Meinhold
    31 *
    32 * An irreducible infeasible subsystem (IIS) is a subset of the constraints and bounds from a problem
    33 * that is infeasible.
    34 * The greedy filter heuristic has two different approaches for producing an (I)IS:
    35 * - Remove constraints such that the remaining problem is still infeasible.
    36 * - Add constraints from an empty problem until the problem becomes infeasible.
    37 * Both these approaches can be augmented to include bounds. That is, existing bounds can be deleted
    38 * while the IS remains infeasible. A common approach is to also apply the deletion based
    39 * filter after applying the additive based filter.
    40 * This greedy algorithm is based on
    41 *
    42 * O. Guieu and J. Chinneck, Analyzing infeasible mixed-integer and integer linear programs,@p
    43 * INFORMS J. Comput. 11, no. 1 (1999), pp. 63–77.
    44 *
    45 * If the appropriate parameters are set then we can guarantee that the result is irreducible, i.e.,
    46 * an irreducible infeasible subsystem (IIS). Otherwise we may only obtain an infeasible subsystem (IS).
    47 * This algorithm cannot guarantee to find the smallest possible IIS.
    48 */
    49
    50/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    51
    52#ifndef __IISFINDER_GREEDY_H__
    53#define __IISFINDER_GREEDY_H__
    54
    55#include <scip/scip.h>
    56
    57#ifdef __cplusplus
    58extern "C" {
    59#endif
    60
    61/** creates the greedy IIS finder rule and includes it in SCIP
    62 *
    63 * @ingroup IISfinderIncludes
    64 */
    65SCIP_EXPORT
    67 SCIP* scip /**< SCIP data structure */
    68 );
    69
    70/**@addtogroup IISFINDERS
    71 *
    72 * @{
    73 */
    74
    75/** perform the greedy deletion algorithm with singleton batches to obtain an irreducible infeasible subsystem (IIS) */
    76SCIP_EXPORT
    78 SCIP_IIS* iis /**< IIS data structure */
    79 );
    80
    81/** @} */
    82
    83#ifdef __cplusplus
    84}
    85#endif
    86
    87#endif
    SCIP_RETCODE SCIPiisGreedyMakeIrreducible(SCIP_IIS *iis)
    SCIP_RETCODE SCIPincludeIISfinderGreedy(SCIP *scip)
    SCIP callable library.
    enum SCIP_Retcode SCIP_RETCODE
    Definition: type_retcode.h:63