Alps  1.5.7
Alps.h
Go to the documentation of this file.
1 /*===========================================================================*
2  * This file is part of the Abstract Library for Parallel Search (ALPS). *
3  * *
4  * ALPS is distributed under the Eclipse Public License as part of the *
5  * COIN-OR repository (http://www.coin-or.org). *
6  * *
7  * Authors: *
8  * *
9  * Yan Xu, Lehigh University *
10  * Ted Ralphs, Lehigh University *
11  * *
12  * Conceptual Design: *
13  * *
14  * Yan Xu, Lehigh University *
15  * Ted Ralphs, Lehigh University *
16  * Laszlo Ladanyi, IBM T.J. Watson Research Center *
17  * Matthew Saltzman, Clemson University *
18  * *
19  * *
20  * Copyright (C) 2001-2019, Lehigh University, Yan Xu, and Ted Ralphs. *
21  * All Rights Reserved. *
22  *===========================================================================*/
23 
24 #ifndef Alps_h_
25 #define Alps_h_
26 
27 #include <cfloat>
28 #include <cstdio>
29 
30 #include "AlpsConfig.h"
31 #include "CoinFinite.hpp"
32 
33 //#############################################################################
34 
35 #if defined(__linux__)
36 #define ALPS_MEMORY_USAGE 1
37 #endif
38 
39 //#############################################################################
41 //#############################################################################
42 
46 };
47 
48 //#############################################################################
50 //#############################################################################
51 
55 };
56 
57 //#############################################################################
59 //#############################################################################
60 
68 };
69 
70 //#############################################################################
72 //#############################################################################
73 
80 };
81 
82 //#############################################################################
84 //#############################################################################
85 
86 typedef int KnowledgeType;
87 
95 };
96 
97 //#############################################################################
98 // Search return status
99 //#############################################################################
100 
112 };
113 
114 //#############################################################################
115 // Return code.
116 //#############################################################################
117 
121  AlpsReturnStatusErrNoInt, /* No integer variable.*/
123 };
124 
125 //#############################################################################
126 // Seach phase
127 //#############################################################################
128 
129 enum AlpsPhase {
133 };
134 
135 #define ALPS_NODE_PROCESS_TIME 0.0123
136 #define ALPS_NONE 0
137 #define ALPS_NOT_SET -1
138 
139 //#############################################################################
140 // Big number
141 //#############################################################################
142 
143 #define ALPS_DBL_MAX COIN_DBL_MAX
144 #define ALPS_INC_MAX 1.0e80
145 #define ALPS_OBJ_MAX 1.0e75
146 #define ALPS_OBJ_MAX_LESS 1.0e70
147 #define ALPS_BND_MAX 1.0e20
148 #define ALPS_INFINITY 1.0e20
149 
150 #define ALPS_INT_MAX COIN_INT_MAX
151 
152 //#############################################################################
153 // Small number
154 //#############################################################################
155 
156 #define ALPS_ZERO 1.0e-14
157 #define ALPS_GEN_TOL 1.0e-6
158 #define ALPS_QUALITY_TOL 1.0e-5
159 #define ALPS_SMALL_3 1.0e-3
160 #define ALPS_SMALL_4 1.0e-4
161 #define ALPS_SMALL_5 1.0e-5
162 
163 //#############################################################################
164 
165 #define ALPS_PRINTF printf
166 
167 #define ALPS_DMSG printf
168 
169 
170 //#############################################################################
171 
172 #define ALPS_MAX( x, y ) ( ( (x) > (y) ) ? (x) : (y) )
173 #define ALPS_MIN( x, y ) ( ( (x) < (y) ) ? (x) : (y) )
174 #define ALPS_FABS(x) ( (x < 0.0) ? -(x) : (x) )
175 #define ALPS_ABS(x) ( (x < 0) ? -(x) : (x) )
176 
177 //#############################################################################
178 
179 typedef struct ALPS_PS_STATS
180 {
191 } AlpsPsStats;
192 
193 //#############################################################################
194 
195 
196 #endif
KnowledgeType
int KnowledgeType
Type of knowledge like solution, node, cut...
Definition: Alps.h:86
AlpsExitStatusNodeLimit
@ AlpsExitStatusNodeLimit
Definition: Alps.h:105
AlpsPhaseSearch
@ AlpsPhaseSearch
Definition: Alps.h:131
AlpsSearchTypeBreadthFirst
@ AlpsSearchTypeBreadthFirst
Definition: Alps.h:76
AlpsClockTypeWallClock
@ AlpsClockTypeWallClock
Definition: Alps.h:45
AlpsSearchTypeBestFirst
@ AlpsSearchTypeBestFirst
Definition: Alps.h:75
AlpsRootInit
@ AlpsRootInit
Definition: Alps.h:53
AlpsStaticBalanceScheme
AlpsStaticBalanceScheme
The possible values for static load balancing scheme.
Definition: Alps.h:52
ALPS_PS_STATS::subtreeChange_
int subtreeChange_
Definition: Alps.h:190
AlpsExitStatusOptimal
@ AlpsExitStatusOptimal
Definition: Alps.h:103
AlpsNodeStatusPregnant
@ AlpsNodeStatusPregnant
Definition: Alps.h:64
AlpsReturnStatus
AlpsReturnStatus
Definition: Alps.h:118
ALPS_PS_STATS::intraBalance_
int intraBalance_
Definition: Alps.h:184
AlpsExitStatusSolLimit
@ AlpsExitStatusSolLimit
Definition: Alps.h:106
AlpsNodeStatusBranched
@ AlpsNodeStatusBranched
Definition: Alps.h:65
AlpsNodeStatus
AlpsNodeStatus
The possible stati for the search nodes.
Definition: Alps.h:61
AlpsClockType
AlpsClockType
The possible values for clock type.
Definition: Alps.h:43
ALPS_PS_STATS::donateFail_
int donateFail_
Definition: Alps.h:187
AlpsSearchType
AlpsSearchType
Search Strategies.
Definition: Alps.h:74
AlpsNodeStatusCandidate
@ AlpsNodeStatusCandidate
Definition: Alps.h:62
AlpsClockTypeCpu
@ AlpsClockTypeCpu
Definition: Alps.h:44
AlpsNodeStatusEvaluated
@ AlpsNodeStatusEvaluated
Definition: Alps.h:63
AlpsNodeStatusFathomed
@ AlpsNodeStatusFathomed
Definition: Alps.h:66
AlpsReturnStatusErrNoInt
@ AlpsReturnStatusErrNoInt
Definition: Alps.h:121
AlpsExitStatusUnbounded
@ AlpsExitStatusUnbounded
Definition: Alps.h:111
AlpsPhase
AlpsPhase
Definition: Alps.h:129
AlpsSearchTypeBestEstimate
@ AlpsSearchTypeBestEstimate
Definition: Alps.h:78
AlpsReturnStatusErrNoMem
@ AlpsReturnStatusErrNoMem
Definition: Alps.h:122
AlpsReturnStatusOk
@ AlpsReturnStatusOk
Definition: Alps.h:119
AlpsNodeStatusDiscarded
@ AlpsNodeStatusDiscarded
Definition: Alps.h:67
ALPS_PS_STATS::donateSuccess_
int donateSuccess_
Definition: Alps.h:186
AlpsPsStats
struct ALPS_PS_STATS AlpsPsStats
AlpsKnowledgeTypeUndefined
@ AlpsKnowledgeTypeUndefined
Definition: Alps.h:94
AlpsKnowledgeType
AlpsKnowledgeType
Definition: Alps.h:88
AlpsPhaseRampup
@ AlpsPhaseRampup
Definition: Alps.h:130
AlpsExitStatus
AlpsExitStatus
Definition: Alps.h:101
ALPS_PS_STATS::subtreeSplit_
int subtreeSplit_
Definition: Alps.h:188
AlpsConfig.h
AlpsKnowledgeTypeModelGen
@ AlpsKnowledgeTypeModelGen
Definition: Alps.h:90
AlpsKnowledgeTypeNode
@ AlpsKnowledgeTypeNode
Definition: Alps.h:91
ALPS_PS_STATS::subtreeWhole_
int subtreeWhole_
Definition: Alps.h:189
ALPS_PS_STATS::qualityBalance_
int qualityBalance_
Definition: Alps.h:181
ALPS_PS_STATS::quantityBalance_
int quantityBalance_
Definition: Alps.h:182
AlpsExitStatusNoMemory
@ AlpsExitStatusNoMemory
Definition: Alps.h:109
ALPS_PS_STATS::workerAsk_
int workerAsk_
Definition: Alps.h:185
AlpsExitStatusInfeasible
@ AlpsExitStatusInfeasible
Definition: Alps.h:108
ALPS_PS_STATS
Definition: Alps.h:179
AlpsKnowledgeTypeSubTree
@ AlpsKnowledgeTypeSubTree
Definition: Alps.h:93
AlpasPhaseRampdown
@ AlpasPhaseRampdown
Definition: Alps.h:132
AlpsKnowledgeTypeModel
@ AlpsKnowledgeTypeModel
Definition: Alps.h:89
AlpsReturnStatusErr
@ AlpsReturnStatusErr
Definition: Alps.h:120
ALPS_PS_STATS::interBalance_
int interBalance_
Definition: Alps.h:183
AlpsSpiral
@ AlpsSpiral
Definition: Alps.h:54
AlpsExitStatusFailed
@ AlpsExitStatusFailed
Definition: Alps.h:110
AlpsSearchTypeDepthFirst
@ AlpsSearchTypeDepthFirst
Definition: Alps.h:77
AlpsExitStatusUnknown
@ AlpsExitStatusUnknown
Definition: Alps.h:102
AlpsSearchTypeHybrid
@ AlpsSearchTypeHybrid
Definition: Alps.h:79
AlpsKnowledgeTypeSolution
@ AlpsKnowledgeTypeSolution
Definition: Alps.h:92
AlpsExitStatusFeasible
@ AlpsExitStatusFeasible
Definition: Alps.h:107
CoinFinite.hpp
AlpsExitStatusTimeLimit
@ AlpsExitStatusTimeLimit
Definition: Alps.h:104