/usr/src/RPM/BUILD/CoinBlis-0.93.2/Blis/src/Blis.h
Go to the documentation of this file.
00001 /*===========================================================================*
00002  * This file is part of the BiCePS Linear Integer Solver (BLIS).             *
00003  *                                                                           *
00004  * BLIS is distributed under the Eclipse Public License as part of the       *
00005  * COIN-OR repository (http://www.coin-or.org).                              *
00006  *                                                                           *
00007  * Authors:                                                                  *
00008  *                                                                           *
00009  *          Yan Xu, Lehigh University                                        *
00010  *          Ted Ralphs, Lehigh University                                    *
00011  *                                                                           *
00012  * Conceptual Design:                                                        *
00013  *                                                                           *
00014  *          Yan Xu, Lehigh University                                        *
00015  *          Ted Ralphs, Lehigh University                                    *
00016  *          Laszlo Ladanyi, IBM T.J. Watson Research Center                  *
00017  *          Matthew Saltzman, Clemson University                             *
00018  *                                                                           * 
00019  *                                                                           *
00020  * Copyright (C) 2001-2011, Lehigh University, Yan Xu, and Ted Ralphs.       *
00021  * All Rights Reserved.                                                      *
00022  *===========================================================================*/
00023 
00024 //#############################################################################
00025 
00026 #ifndef Blis_h_
00027 #define Blis_h_
00028 
00029 #include "AlpsConfig.h"
00030 #include "BcpsConfig.h"
00031 #include "BlisConfig.h"
00032 
00033 //#############################################################################
00034 
00035 enum BlisLpStatus{
00036    BlisLpStatusOptimal,
00037    BlisLpStatusAbandoned,
00038    BlisLpStatusPrimalInfeasible,
00039    BlisLpStatusDualInfeasible,
00040    BlisLpStatusPrimalObjLim,
00041    BlisLpStatusDualObjLim,
00042    BlisLpStatusIterLim,
00043    BlisLpStatusUnknown
00044 };
00045 
00046 //#############################################################################
00047 
00048 enum BlisReturnStatus {
00049    BlisReturnStatusOk = 0,
00050    BlisReturnStatusErrLp,
00051    BlisReturnStatusInfeasible,
00052    BlisReturnStatusUnbounded,
00053    BlisReturnStatusOverObjLim,
00054    BlisReturnStatusFeasible,
00055    BlisReturnStatusBranch,
00056    BlisReturnStatusUnknown
00057 };
00058 
00059 #if 0
00060 #define BLIS_ERR_LP         100
00061 #define BLIS_INF            200
00062 #define BLIS_UNBOUND        201
00063 #define BLIS_OPTIMAL          0
00064 #define BLIS_UNKNOWN        202
00065 #endif
00066 
00067 //#############################################################################
00068 
00069 enum BlisCutStrategy{
00070    BlisCutStrategyNotSet = -1,
00071    BlisCutStrategyNone = 0,
00072    BlisCutStrategyRoot,
00073    BlisCutStrategyAuto,
00074    BlisCutStrategyPeriodic
00075 };
00076 
00077 enum BlisHeurStrategy{
00078    BlisHeurStrategyNotSet = -1,
00079    BlisHeurStrategyNone = 0,
00080    BlisHeurStrategyRoot,
00081    BlisHeurStrategyAuto,
00082    BlisHeurStrategyPeriodic,
00083    BlisHeurStrategyBeforeRoot // Before solving first relaxation
00084 };
00085 
00086 #if 0
00087 #define BLIS_NOT_SET       -555
00088 #define BLIS_ROOT            -2
00089 #define BLIS_AUTO            -1
00090 #define BLIS_NONE             0
00091 #endif
00092 
00093 //#############################################################################
00094 
00095 enum BlisHotStartStrategy{
00096    BlisHotStartBranchIncorrect,
00097    BlisHotStartBranchCorrect
00098 };
00099 
00100 //#############################################################################
00101 
00102 enum BlisBranchingStrategy{
00103    BlisBranchingStrategyMaxInfeasibility,
00104    BlisBranchingStrategyPseudoCost,
00105    BlisBranchingStrategyReliability,   
00106    BlisBranchingStrategyStrong,
00107    BlisBranchingStrategyBilevel
00108 };
00109 
00110 //#############################################################################
00111 
00112 enum BlisSolutionType {
00113     BlisSolutionTypeBounding,
00114     BlisSolutionTypeBranching,
00115     BlisSolutionTypeDiving,
00116     BlisSolutionTypeHeuristic,
00117     BlisSolutionTypeStrong
00118 };
00119 
00120 //#############################################################################
00121 
00123 enum BlisBranchingObjectType {
00124     BlisBranchingObjectTypeNone = 0,
00125     BlisBranchingObjectTypeInt,
00126     BlisBranchingObjectTypeSos,
00127     BlisBranchingObjectTypeBilevel
00128 };
00129 
00130 //#############################################################################
00131 
00132 #define BLIS_CUT_DISABLE            20
00133 
00134 #define BLIS_HEUR_ROUND_DISABLE     1000000
00135 
00136 #define BLIS_PSEUDO                 21
00137 
00138 //#############################################################################
00139 
00140 #endif