Scippy

SCIP

Solving Constraint Integer Programs

type_lpi.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-2014 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 email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file type_lpi.h
17  * @brief type definitions for specific LP solvers interface
18  * @author Tobias Achterberg
19  */
20 
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
22 
23 #ifndef __SCIP_TYPE_LPI_H__
24 #define __SCIP_TYPE_LPI_H__
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 /** objective sense */
32 {
33  SCIP_OBJSEN_MAXIMIZE = -1, /**< maximize objective function */
34  SCIP_OBJSEN_MINIMIZE = +1 /**< minimize objective function */
35 };
36 typedef enum SCIP_ObjSen SCIP_OBJSEN;
37 
38 /** LP solver parameters */
40 {
41  SCIP_LPPAR_FROMSCRATCH = 0, /**< solver should start from scratch at next call? */
42  SCIP_LPPAR_FASTMIP = 1, /**< fast mip setting of LP solver */
43  SCIP_LPPAR_SCALING = 2, /**< should LP solver use scaling? */
44  SCIP_LPPAR_PRESOLVING = 3, /**< should LP solver use presolving? */
45  SCIP_LPPAR_PRICING = 4, /**< pricing strategy */
46  SCIP_LPPAR_LPINFO = 5, /**< should LP solver output information to the screen? */
47  SCIP_LPPAR_FEASTOL = 6, /**< feasibility tolerance for primal variables and slacks */
48  SCIP_LPPAR_DUALFEASTOL = 7, /**< feasibility tolerance for dual variables and reduced costs */
49  SCIP_LPPAR_BARRIERCONVTOL = 8, /**< convergence tolerance used in barrier algorithm */
50  SCIP_LPPAR_LOBJLIM = 9, /**< lower objective limit */
51  SCIP_LPPAR_UOBJLIM = 10, /**< upper objective limit */
52  SCIP_LPPAR_LPITLIM = 11, /**< LP iteration limit */
53  SCIP_LPPAR_LPTILIM = 12, /**< LP time limit */
54  SCIP_LPPAR_MARKOWITZ = 13, /**< Markowitz tolerance */
55  SCIP_LPPAR_ROWREPSWITCH = 14, /**< simplex algorithm shall use row representation of the basis
56  * if number of rows divided by number of columns exceeds this value */
57  SCIP_LPPAR_THREADS = 15, /**< number of threads used to solve the LP */
58  SCIP_LPPAR_CONDITIONLIMIT = 16, /**< maximum condition number of LP basis counted as stable */
59  SCIP_LPPAR_TIMING = 17 /**< type of timer (1 - cpu, 2 - wallclock, 0 - off) */
60 };
62 
63 /** LP pricing strategy */
65 {
66  SCIP_PRICING_LPIDEFAULT = 0, /**< the SCIP/LP interface should use its preferred strategy */
67  SCIP_PRICING_AUTO = 1, /**< the LP solver should use its preferred strategy */
68  SCIP_PRICING_FULL = 2, /**< full pricing */
69  SCIP_PRICING_PARTIAL = 3, /**< partial pricing */
70  SCIP_PRICING_STEEP = 4, /**< steepest edge pricing */
71  SCIP_PRICING_STEEPQSTART = 5, /**< steepest edge pricing without initial dual norms */
72  SCIP_PRICING_DEVEX = 6 /**< devex pricing */
73 };
75 
76 /** basis status for columns and rows */
78 {
79  SCIP_BASESTAT_LOWER = 0, /**< (slack) variable is at its lower bound */
80  SCIP_BASESTAT_BASIC = 1, /**< (slack) variable is basic */
81  SCIP_BASESTAT_UPPER = 2, /**< (slack) variable is at its upper bound */
82  SCIP_BASESTAT_ZERO = 3 /**< free variable is non-basic and set to zero */
83 };
85 
86 /** LP solution quality quantities */
88 {
89  SCIP_LPSOLQUALITY_ESTIMCONDITION, /**< estimated condition number of (scaled) basis matrix (SCIP_Real) */
90  SCIP_LPSOLQUALITY_EXACTCONDITION /**< exact condition number of (scaled) basis matrix (SCIP_Real) */
91 };
93 
94 typedef struct SCIP_LPi SCIP_LPI; /**< solver dependent LP interface */
95 typedef struct SCIP_LPiState SCIP_LPISTATE; /**< complete LP state (i.e. basis information) */
96 typedef struct SCIP_LPiNorms SCIP_LPINORMS; /**< LP pricing norms information */
97 
98 #ifdef __cplusplus
99 }
100 #endif
101 
102 #endif
enum SCIP_LPSolQuality SCIP_LPSOLQUALITY
Definition: type_lpi.h:92
enum SCIP_BaseStat SCIP_BASESTAT
Definition: type_lpi.h:84
enum SCIP_ObjSen SCIP_OBJSEN
Definition: type_lpi.h:36
SCIP_ObjSen
Definition: type_lpi.h:31
enum SCIP_LPParam SCIP_LPPARAM
Definition: type_lpi.h:61
enum SCIP_Pricing SCIP_PRICING
Definition: type_lpi.h:74
SCIP_LPSolQuality
Definition: type_lpi.h:87
SCIP_BaseStat
Definition: type_lpi.h:77
struct SCIP_LPiState SCIP_LPISTATE
Definition: type_lpi.h:95
SCIP_Pricing
Definition: type_lpi.h:64
struct SCIP_LPi SCIP_LPI
Definition: type_lpi.h:94
SCIP_LPParam
Definition: type_lpi.h:39