My Project
OSInstance.h
Go to the documentation of this file.
1
33#ifndef OSINSTANCE_H
34#define OSINSTANCE_H
35#include "OSParameters.h"
36#include "OSDataStructures.h"
37#include "OSnLNode.h"
38#include "OSExpressionTree.h"
39#include <string>
40#include <map>
41
42
48public:
49
52
55
57 std::string description;
58
60 std::string name;
61
63 std::string source;
64};//class InstanceHeader
65
66
67
71class Variable{
72public:
75
78
82 double lb;
83
87 double ub;
88
92 //double init;
93
97 char type;
98
102 std::string name;
103
107 //std::string initString;
108}; // class Variable
109
110
114class Variables{
115public:
116
119
122
125
127 Variable **var;
128}; // class Variables
129
130
135class ObjCoef{
136public:
137
140
143
147 int idx;
148
152 double value;
153};//class Coef
154
159class Constraint{
160public:
161
164
167
169 std::string name;
170
172 double constant;
173
175 double lb;
176
178 double ub;
179};//class Constraint
180
181
186class Constraints{
187public:
188
191
194
199
202 Constraint **con;
203};//class Constraints
204
205
206
211class Objective{
212public:
213
216
219
221 std::string name;
222
226 std::string maxOrMin;
227
231 double constant;
232
236 double weight;
237
241 int numberOfObjCoef;
242
245 ObjCoef **coef;
246};//class Objective
247
252class Objectives{
253public:
254
257
260
265
268 Objective **obj;
269};//class Objectives
270
283public:
284
287
290
294 int numberOfValues;
295
300
303
306
316};//class LinearConstraintCoefficients
317
318
328class QuadraticTerm{
329public:
330
333
336
340 int idx;
341
345 int idxOne;
346
350 int idxTwo;
351
353 double coef;
354}; // QuadraticTerm
355
356
357
358
365public:
366
369
372
377
381}; // QuadraticCoefficients
382
383
388class Nl{
389public:
391 int idx;
392
399
402
406 Nl();
407
412};//end Nl
413
419public:
420
423
426
432
435 Nl **nl;
436}; // NonlinearExpression
437
438
439
444class TimeDomainStageVar {
445public:
446
449
452
454 int idx;
455}; // TimeDomainStageVar
456
462public:
463
466
469
472
474 int startIdx;
475
478}; // TimeDomainStageVariables
479
480
485class TimeDomainStageCon {
486public:
487
490
493
495 int idx;
496}; // TimeDomainStageCon
497
503public:
504
507
510
513
515 int startIdx;
516
519}; // TimeDomainStageConstraints
520
521
526class TimeDomainStageObj {
527public:
528
531
534
536 int idx;
537}; // TimeDomainStageObj
538
544public:
545
548
551
554
556 int startIdx;
557
560}; // TimeDomainStageObjectives
561
562
567class TimeDomainStage {
568public:
569
572
575
579 std::string name;
580
583
586
589}; // TimeDomainStage
590
595class TimeDomainStages {
596public:
597
600
603
607 int numberOfStages;
608
611}; // Stages
612
617class TimeDomainInterval {
618public:
619
622
625
629 double start;
630
634 double horizon;
635}; // Interval
636
641class TimeDomain {
642public:
643
646
649
653
657}; // TimeDomain
658
675class InstanceData{
676public:
677
680
683
686
689
692
697
702
707
712}; // class InstanceData
713
714
741class OSInstance {
742public:
743
746
749
752
755
756private:
760 std::string m_sInstanceName;
764 std::string m_sInstanceSource;
768 std::string m_sInstanceDescription;
769
774
779
784
789
794
799
804
809
814
820
826
831
837
841 std::string* m_msVariableNames;
842
847 //double* m_mdVariableInitialValues ;
848
853 //std::string* m_msVariableInitialStringValues;
854
859 char* m_mcVariableTypes;
860
865
870
875
880
885
889 std::string* m_msObjectiveNames;
890
894 std::string* m_msMaxOrMins;
895
900
905
909 double* m_mdObjectiveWeights;
910
916
921
927
932
937
942
946 std::string* m_msConstraintNames;
947
952
957
963
969
974
980
984 bool m_bColumnMajor;
985
990
991
997
1003
1004
1009
1015
1020
1025
1029 int m_iJacValueSize;
1030
1034 int *m_miJacStart;
1035
1039 int *m_miJacIndex;
1040
1044 double *m_mdJacValue;
1045
1046
1051 int *m_miJacNumConTerms;
1052
1057
1063
1069
1072 bool m_bQTermsAdded;
1073
1078 unsigned int m_iNumberOfNonlinearVariables ;
1079
1084
1089
1095
1100
1105
1110 std::map<int, OSExpressionTree*> m_mapExpressionTrees ;
1111
1112
1113
1114 std::map<int, int> m_mapOSADFunRangeIndex ;
1115
1121
1126
1131
1137
1141 std::map<int, int> m_mapAllNonlinearVariablesIndex;
1142
1147
1153
1160 std::map<int, OSExpressionTree*> m_mapExpressionTreesMod ;
1161
1167
1172 bool m_bCppADTapesBuilt;
1173
1178 bool m_bCppADMustReTape;
1179
1184
1189
1194
1199 std::map<int, std::vector<OSnLNode*> > m_mapExpressionTreesInPostfix ;
1200
1201
1207
1212 double **m_mmdObjGradient;
1213
1214 //define the vectors
1215
1220 std::vector<double> m_vdX;
1221
1226 std::vector<double> m_vdYval;
1227
1233 std::vector<bool> m_vbLagHessNonz;
1234
1239 std::vector<double> m_vdYjacval;
1240
1245 std::vector<double> m_vdw;
1246
1251 std::vector<double> m_vdLambda;
1252
1253
1258 std::vector<double> m_vdDomainUnitVec;
1259
1264 std::vector<double> m_vdRangeUnitVec;
1265
1266
1271
1276
1281
1286
1291
1295 std::string m_sTimeDomainFormat;
1296
1301 std::string* m_msTimeDomainStageNames;
1302
1308
1314
1320
1326
1332
1338
1339
1347
1355
1356
1364
1365
1373
1374
1375public:
1376
1381 std::string getInstanceName();
1382
1383
1388 std::string getInstanceSource();
1389
1390
1397
1404
1411 std::string* getVariableNames();
1412
1420 //double* getVariableInitialValues();
1421
1429 //std::string* getVariableInitialStringValues();
1430
1443
1449
1455
1463
1471
1478
1479
1486 std::string* getObjectiveNames();
1487
1495
1505
1513
1521
1533
1541
1548
1555 std::string* getConstraintNames();
1556
1564
1572
1586
1593
1594
1602
1603
1611
1619
1626
1636
1645
1652
1659
1660
1667
1675
1682 std::vector<OSnLNode*> getNonlinearExpressionTreeInPostfix( int rowIdx);
1683
1691 std::vector<OSnLNode*> getNonlinearExpressionTreeModInPostfix( int rowIdx);
1692
1699 std::vector<OSnLNode*> getNonlinearExpressionTreeInPrefix( int rowIdx);
1700
1708 std::vector<OSnLNode*> getNonlinearExpressionTreeModInPrefix( int rowIdx);
1709
1710
1715
1720
1724 std::map<int, OSExpressionTree* > getAllNonlinearExpressionTrees();
1725
1726
1730 std::map<int, OSExpressionTree* > getAllNonlinearExpressionTreesMod();
1731
1738
1739
1746
1747
1755
1756
1764
1765
1771 std::string getTimeDomainFormat();
1772
1779
1786
1793
1800
1807
1814
1821
1828
1835
1842
1843
1844
1845 // the set() methods
1846
1847
1854 bool setInstanceSource(std::string source);
1855
1862 bool setInstanceDescription(std::string description);
1863
1864
1871 bool setInstanceName(std::string name);
1872
1879 bool setVariableNumber(int number);
1880
1898 bool addVariable(int index, std::string name, double lowerBound, double upperBound, char type);
1899
1918 bool setVariables(int number, std::string* names, double* lowerBounds,
1919 double* upperBounds, char* types);
1920
1927 bool setObjectiveNumber(int number);
1928
1946 bool addObjective(int index, std::string name, std::string maxOrMin, double constant, double weight, SparseVector* objectiveCoefficients);
1947
1963 bool setObjectives(int number, std::string *names, std::string *maxOrMins, double *constants, double *weights, SparseVector **objectitiveCoefficients);
1964
1971 bool setConstraintNumber(int number);
1972
1986bool addConstraint(int index, std::string name, double lowerBound, double upperBound, double constant);
1987
1999bool setConstraints(int number, std::string* names, double* lowerBounds, double* upperBounds, double* constants);
2000
2019bool setLinearConstraintCoefficients(int numberOfValues, bool isColumnMajor,
2020 double* values, int valuesBegin, int valuesEnd,
2021 int* indexes, int indexesBegin, int indexesEnd,
2022 int* starts, int startsBegin, int startsEnd);
2023
2039 bool setQuadraticTerms(int number,
2040 int* rowIndexes, int* varOneIndexes, int* varTwoIndexes, double* coefficients,
2041 int begin, int end);
2042
2057 int* rowIndexes, int* varOneIndexes, int* varTwoIndexes, double* coefficients);
2058
2059
2060
2061 // nonlinear API methods
2062
2063
2070
2084 double calculateFunctionValue(int idx, double* x, bool new_x);
2085
2100 double *calculateAllConstraintFunctionValues(double* x, double *objLambda, double *conLambda,
2101 bool new_x, int highestOrder);
2102
2116 double *calculateAllConstraintFunctionValues(double* x, bool new_x);
2117
2133 double *calculateAllObjectiveFunctionValues(double* x, double *objLambda, double *conLambda,
2134 bool new_x, int highestOrder);
2135
2149 double *calculateAllObjectiveFunctionValues(double* x, bool new_x);
2150
2151
2167 double *conLambda, bool new_x, int highestOrder);
2168
2169
2185 SparseVector *calculateConstraintFunctionGradient(double* x, double *objLambda, double *conLambda,
2186 int idx, bool new_x, int highestOrder);
2187
2201 SparseVector *calculateConstraintFunctionGradient(double* x, int idx, bool new_x );
2202
2217 double **calculateAllObjectiveFunctionGradients(double* x, double *objLambda, double *conLambda,
2218 bool new_x, int highestOrder);
2219
2235 double *calculateObjectiveFunctionGradient(double* x, double *objLambda, double *conLambda,
2236 int objIdx, bool new_x, int highestOrder);
2237
2250 double *calculateObjectiveFunctionGradient(double* x, int objIdx, bool new_x );
2251
2269 SparseHessianMatrix *calculateLagrangianHessian( double* x, double *objLambda, double *conLambda,
2270 bool new_x, int highestOrder);
2271
2284 SparseHessianMatrix *calculateHessian( double* x, int idx, bool new_x);
2285
2286
2292
2298
2304
2309 std::map<int, int> getAllNonlinearVariablesIndexMap( );
2310
2316
2322
2328
2334
2335#ifdef COIN_HAS_CPPAD
2340 CppAD::ADFun<double> *Fad;
2341#endif
2353 bool createOSADFun(std::vector<double> vdX );
2354
2365 std::vector<double> forwardAD(int p, std::vector<double> vdX);
2366
2377 std::vector<double> reverseAD(int p, std::vector<double> vdlambda);
2378
2392
2412 bool getIterateResults(double *x, double *objLambda, double *conLambda,
2413 bool new_x, int highestOrder);
2414
2415
2416
2429 bool getZeroOrderResults(double *x, double *objLambda, double *conLambda);
2430
2443 bool getFirstOrderResults(double *x, double *objLambda, double *conLambda );
2444
2457 bool getSecondOrderResults(double *x, double *objLambda, double *conLambda );
2458
2459
2470
2481
2482
2488
2489
2493 bool setTimeDomain(std::string format);
2494
2498 bool setTimeDomainStages(int number, std::string *names);
2499
2505 bool setTimeDomainStageVariablesOrdered(int numberOfStages, int *numberOfVariables, int *startIdx);
2506
2512 bool setTimeDomainStageVariablesUnordered(int numberOfStages, int *numberOfVariables, int **varIndex);
2513
2519 bool setTimeDomainStageConstraintsOrdered(int numberOfStages, int *numberOfConstraints, int *startIdx);
2520
2526 bool setTimeDomainStageConstraintsUnordered(int numberOfStages, int *numberOfConstraints, int **conIndex);
2527
2533 bool setTimeDomainStageObjectivesOrdered(int numberOfStages, int *numberOfObjectives, int *startIdx);
2534
2540 bool setTimeDomainStageObjectivesUnordered(int numberOfStages, int *numberOfObjectives, int **varIndex);
2541
2545 bool setTimeDomainInterval(double start, double horizon);
2546
2547
2548}; //class OSInstance
2549
2550#endif
2551
This file defines the OSnLNode class along with its derived classes.
The in-memory representation of the <con> element.
Definition: OSInstance.h:219
double constant
constant is a value that is added to the constraint
Definition: OSInstance.h:232
double ub
ub is the upper bound on the constraint
Definition: OSInstance.h:238
double lb
lb is the lower bound on the constraint
Definition: OSInstance.h:235
Constraint()
The Constraint class constructor.
~Constraint()
The Constraint class destructor.
std::string name
name is the name of the constraint
Definition: OSInstance.h:229
The in-memory representation of the <constraints> element.
Definition: OSInstance.h:252
int numberOfConstraints
numberOfConstraints is the number of constraints in the instance
Definition: OSInstance.h:264
Constraint ** con
con is pointer to an array of Constraint object pointers
Definition: OSInstance.h:268
~Constraints()
The Constraints class destructor.
Constraints()
The Constraints class constructor.
a double vector data structure
Definition: OSGeneral.h:610
The in-memory representation of the <instanceData> element.
Definition: OSInstance.h:2175
Variables * variables
variables is a pointer to a Variables object
Definition: OSInstance.h:2185
QuadraticCoefficients * quadraticCoefficients
quadraticCoefficients is a pointer to a QuadraticCoefficients object
Definition: OSInstance.h:2201
Constraints * constraints
constraints is a pointer to a Constraints object
Definition: OSInstance.h:2191
NonlinearExpressions * nonlinearExpressions
nonlinearExpressions is a pointer to a NonlinearExpressions object
Definition: OSInstance.h:2206
TimeDomain * timeDomain
timeDomain is a pointer to a TimeDomain object
Definition: OSInstance.h:2226
InstanceData()
The InstanceData class constructor.
~InstanceData()
The InstanceData class destructor.
Objectives * objectives
objectives is a pointer to a Objectives object
Definition: OSInstance.h:2188
LinearConstraintCoefficients * linearConstraintCoefficients
linearConstraintCoefficients is a pointer to a LinearConstraintCoefficients object
Definition: OSInstance.h:2196
The in-memory representation of the <instanceHeader> element.
Definition: OSInstance.h:47
std::string name
the name of the problem instance
Definition: OSInstance.h:60
std::string source
the source of the problem instance
Definition: OSInstance.h:63
InstanceHeader()
The InstanceHeader class constructor.
std::string description
the problem instance description
Definition: OSInstance.h:57
~InstanceHeader()
The InstanceHeader class destructor.
an integer Vector data structure
Definition: OSGeneral.h:470
The in-memory representation of the <linearConstraintCoefficients> element.
Definition: OSInstance.h:289
DoubleVector * value
a pointer to the array of nonzero values being stored
Definition: OSInstance.h:315
int iNumberOfStartElements
iNumberOfStartElements counts the number of elements in the <start> section of <linearConstraintCoeff...
Definition: OSInstance.h:322
int numberOfValues
numberOfValues is the number of nonzero elements stored in the <linearConstraintCoefficients> element
Definition: OSInstance.h:301
IntVector * start
a pointer to the start of each row or column stored in sparse format
Definition: OSInstance.h:306
~LinearConstraintCoefficients()
The LinearConstraintCoefficients class destructor.
IntVector * rowIdx
a pointer of row indices if the problem is stored by column
Definition: OSInstance.h:309
LinearConstraintCoefficients()
The LinearConstraintCoefficients class constructor.
IntVector * colIdx
a pointer of column indices if the problem is stored by row
Definition: OSInstance.h:312
The in-memory representation of the <nl> element.
Definition: OSInstance.h:411
int idx
idx holds the row index of the nonlinear expression
Definition: OSInstance.h:414
~Nl()
default destructor.
Nl()
default constructor.
bool m_bDeleteExpressionTree
m_bDeleteExpressionTree is true, if in garbage collection, we should delete the osExpression tree obj...
Definition: OSInstance.h:427
OSExpressionTree * osExpressionTree
osExpressionTree contains the root of the OSExpressionTree
Definition: OSInstance.h:401
The in-memory representation of the <nonlinearExpressions> element.
Definition: OSInstance.h:453
~NonlinearExpressions()
The NonlinearExpressions class destructor.
int numberOfNonlinearExpressions
numberOfNonlinearExpressions is the number of <nl> elements in the <nonlinearExpressions> element.
Definition: OSInstance.h:466
Nl ** nl
nl is pointer to an array of Nl object pointers
Definition: OSInstance.h:469
NonlinearExpressions()
The NonlinearExpressions class constructor.
Used to hold the instance in memory.
The in-memory representation of an OSiL instance..
Definition: OSInstance.h:2263
bool m_bProcessLinearConstraintCoefficients
----— data items for linear constraint coefficients ----—
Definition: OSInstance.h:2495
bool m_bAllNonlinearVariablesIndex
m_bAllNonlinearVariablesIndexMap is true if the map of the variables in the Lagrangian function has b...
Definition: OSInstance.h:2752
SparseJacobianMatrix * calculateAllConstraintFunctionGradients(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
Calculate the gradient of all constraint functions
int * m_miQuadRowIndexes
m_miQuadRowIndexes is an integer pointer to the distinct row indexes with a quadratic term.
Definition: OSInstance.h:2538
bool getIterateResults(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
end revised AD code
bool m_bSparseJacobianCalculated
m_bSparseJacobianCalculated is true if getJacobianSparsityPattern() has been called.
Definition: OSInstance.h:2795
bool m_bQTermsAdded
m_bQTermsAdded is true if we added the quadratic terms to the expression tree
Definition: OSInstance.h:2559
double * getObjectiveWeights()
Get objective weights.
bool m_bProcessExpressionTrees
m_bProcessExpressionTrees is true if the expression trees have been processed.
Definition: OSInstance.h:2633
std::vector< double > m_vdYjacval
m_vdYval is a vector equal to a column or row of the Jacobian
Definition: OSInstance.h:2837
bool setTimeDomain(std::string format)
This sets the format of the time domain ("stages"/"interval"/"none")
int m_iNumberOfBinaryVariables
m_iNumberOfBinaryVariables holds the number of binary variables.
Definition: OSInstance.h:2348
bool m_bProcessExpressionTreesMod
m_bProcessExpressionTreesMod is true if the modified expression trees have been processed.
Definition: OSInstance.h:2638
std::string getTimeDomainFormat()
Get the format of the time domain ("stages"/"interval")
int ** getTimeDomainStageVarList()
Get the list of variables in each stage.
SparseVector ** m_mObjectiveCoefficients
m_mObjectiveCoefficients holds an array of objective coefficients, one set of objective coefficients ...
Definition: OSInstance.h:2432
std::vector< double > m_vdYval
m_vdYval is a vector of function values
Definition: OSInstance.h:2826
bool m_bProcessObjectives
----— data items for Objectives ----—
Definition: OSInstance.h:2391
std::string * getConstraintNames()
Get constraint names.
bool m_bProcessNonlinearExpressions
m_bProcessNonlinearExpressions holds whether the nonlinear expressions are processed.
Definition: OSInstance.h:2617
std::vector< OSnLNode * > getNonlinearExpressionTreeInPostfix(int rowIdx)
Get the postfix tokens for a given row index.
double * getConstraintLowerBounds()
Get constraint lower bounds.
SparseVector * calculateConstraintFunctionGradient(double *x, int idx, bool new_x)
Calculate the gradient of the constraint function indexed by idx this function is overloaded.
int getNumberOfQuadraticTerms()
Get the number of specified (usually nonzero) qTerms in the quadratic coefficients.
bool m_bFiniteTimeStages
m_bFiniteTimeStages holds whether the time domain has the form of finite (discrete) stages.
Definition: OSInstance.h:2993
std::vector< OSnLNode * > getNonlinearExpressionTreeModInPrefix(int rowIdx)
Get the prefix tokens for a given row index for the modified Expression Tree (quadratic terms added).
bool m_bProcessTimeInterval
m_bProcessTimeInterval holds whether a time interval has been processed.
Definition: OSInstance.h:2988
double * getVariableUpperBounds()
Get variable upper bounds.
bool setConstraintNumber(int number)
set the constraint number.
int ** m_mmiTimeDomainStageObjList
m_mmiTimeDomainStageObjList holds the list of objectives in each stage.
Definition: OSInstance.h:3041
double * m_mdObjectiveConstants
m_mdObjectiveConstants holds an array of objective constants (default = 0.0).
Definition: OSInstance.h:2421
bool setTimeDomainStages(int number, std::string *names)
This sets the number (and optionally names) of the time stages.
std::vector< double > m_vdDomainUnitVec
m_vdDomainUnitVec is a unit vector in the domain space
Definition: OSInstance.h:2852
std::string m_sTimeDomainFormat
m_sTimeDomainFormat holds the format ("stages"/"interval") of the time domain.
Definition: OSInstance.h:3003
int m_iVariableNumber
m_iVariableNumber holds the variable number.
Definition: OSInstance.h:2338
int m_iHighestTaylorCoeffOrder
m_iHighestTaylorCoeffOrder is the order of highest calculated Taylor coefficient
Definition: OSInstance.h:2687
std::vector< bool > m_vbLagHessNonz
m_vbLagHessNonz is a boolean vector holding the nonzero pattern of the Lagrangian of the Hessian
Definition: OSInstance.h:2832
std::map< int, std::vector< OSnLNode * > > m_mapExpressionTreesInPostfix
m_mapExpressionTreesInPostfix holds a hash map of expression trees in postfix format,...
Definition: OSInstance.h:2802
int * m_miNonlinearExpressionTreeIndexes
m_miNonlinearExpressionTreeIndexes is an integer pointer to the distinct rows indexes in the nonlinea...
Definition: OSInstance.h:2580
SparseJacobianMatrix * getJacobianSparsityPattern()
std::vector< double > forwardAD(int p, std::vector< double > vdX)
Perform an AD forward sweep
double * m_mdObjectiveWeights
m_mdObjectiveWeights holds an array of objective weights (default = 1.0).
Definition: OSInstance.h:2426
double * m_mdConstraintFunctionValues
m_mdConstraintFunctionValues holds a double array of constraint function values – the size of the arr...
Definition: OSInstance.h:2644
int m_iConstraintNumberNonlinear
m_iConstraintNumberNonlinear is the number of constraints that have a nonlinear term.
Definition: OSInstance.h:2460
int * m_miJacStart
m_miJacStart holds a int array of starts for the Jacobian matrix in sparse form (row major).
Definition: OSInstance.h:2660
std::vector< OSnLNode * > getNonlinearExpressionTreeModInPostfix(int rowIdx)
Get the postfix tokens for a given row index for the modified Expression Tree (quadratic terms added)...
int getADSparsityHessian()
end revised AD code
unsigned int m_iNumberOfNonlinearVariables
m_iNumberOfNonlinearVariables is the number of variables that appear in a nonlinear expression.
Definition: OSInstance.h:2612
std::vector< double > m_vdRangeUnitVec
m_vdRangeUnitVec is a unit vector in the range space
Definition: OSInstance.h:2857
bool addQTermsToExressionTree()
bool m_bNonlinearExpressionTreeIndexesProcessed
m_bNonlinearExpressionTreeIndexesProcessed is true if getNonlinearExpressionTreeIndexes() has been ca...
Definition: OSInstance.h:2573
bool addVariable(int index, std::string name, double lowerBound, double upperBound, char type)
add a variable.
bool setTimeDomainStageConstraintsUnordered(int numberOfStages, int *numberOfConstraints, int **conIndex)
This sets the constraints associated with each time domain stage in srbitrary order.
int getNumberOfNonlinearExpressionTreeIndexes()
Get the number of unique Nonlinear expression tree indexes.
int m_iQuadraticTermNumber
m_iQuadraticTermNumber holds the number of specified (usually nonzero) qTerms in the quadratic coeffi...
Definition: OSInstance.h:2549
int ** m_mmiTimeDomainStageConList
m_mmiTimeDomainStageConList holds the list of constraints in each stage.
Definition: OSInstance.h:3031
std::vector< double > m_vdw
m_vdYval is a vector of derivatives – output from a reverse sweep
Definition: OSInstance.h:2842
int getNumberOfNonlinearExpressionTreeModIndexes()
Get the number of unique Nonlinear expression tree indexes after modifying the expression tree to con...
bool getZeroOrderResults(double *x, double *objLambda, double *conLambda)
Calculate function values.
bool m_bProcessQuadraticTerms
m_bProcessQuadraticTerms holds whether the quadratic terms are processed.
Definition: OSInstance.h:2543
OSExpressionTree * getNonlinearExpressionTreeMod(int rowIdx)
Get the expression tree for a given row index for the modified expression trees (quadratic terms adde...
std::string * m_msVariableNames
m_msVariableNames holds an array of variable names.
Definition: OSInstance.h:2368
int getTimeDomainStageNumber()
Get the number of stages that make up the time domain.
int getNumberOfIntegerVariables()
getNumberOfIntegerVariables
bool getSparseJacobianFromColumnMajor()
std::string getInstanceName()
Get instance name.
bool processConstraints()
process constraints.
bool bUseExpTreeForFunEval
bUseExpTreeForFunEval is set to true if you wish to use the OS Expression Tree for function evaluatio...
Definition: OSInstance.h:4899
int * m_miTimeDomainStageVariableNumber
m_miTimeDomainStageVariableNumber holds the number of variables in each stage.
Definition: OSInstance.h:3016
bool m_bNonlinearExpressionTreeModIndexesProcessed
m_bNonlinearExpressionTreeModIndexesProcessed is true if getNonlinearExpressionTreeModIndexes has bee...
Definition: OSInstance.h:2593
int * getTimeDomainStageNumberOfObjectives()
Get the number of objectives contained in each time stage.
bool m_bQuadraticRowIndexesProcessed
m_bQuadraticRowIndexesProcessed is true if getQuadraticRowIndexes() has been called.
Definition: OSInstance.h:2533
bool getFirstOrderResults(double *x, double *objLambda, double *conLambda)
Calculate first derivatives.
bool addConstraint(int index, std::string name, double lowerBound, double upperBound, double constant)
add a constraint.
double getTimeDomainIntervalHorizon()
Get the horizon for the time domain interval.
int getNumberOfBinaryVariables()
getNumberOfBinaryVariables
std::string * getObjectiveNames()
Get objective names.
int * m_miNonlinearExpressionTreeModIndexes
m_miNonlinearExpressionTreeModIndexes is an integer pointer to the distinct rows indexes in the modif...
Definition: OSInstance.h:2599
int getNumberOfNonlinearObjectives()
bool setQuadraticTermsInNonlinearExpressions(int number, int *rowIndexes, int *varOneIndexes, int *varTwoIndexes, double *coefficients)
set quadratic terms in nonlinearExpressions
int * m_miTimeDomainStageObjectiveNumber
m_miTimeDomainStageObjectiveNumber holds the number of objectives in each stage.
Definition: OSInstance.h:3036
bool getLinearConstraintCoefficientMajor()
Get whether the constraint coefficients is in column major (true) or row major (false).
int m_iObjectiveNumberNonlinear
m_iObjectiveNumber is the number of objective functions with a nonlinear term.
Definition: OSInstance.h:2401
int m_iNumberOfTimeStages
m_iNumberOfTimeStages holds the number of discrete stages
Definition: OSInstance.h:2998
int * m_miNumberOfObjCoef
m_miNumberOfObjCoef holds an integer array of number of objective coefficients (default = 0).
Definition: OSInstance.h:2416
std::vector< OSnLNode * > getNonlinearExpressionTreeInPrefix(int rowIdx)
Get the prefix tokens for a given row index.
std::map< int, OSExpressionTree * > getAllNonlinearExpressionTreesMod()
bool m_bNonLinearStructuresInitialized
m_bNonLinearStructuresInitialized is true if initializeNonLinearStructures() has been called.
Definition: OSInstance.h:2790
bool m_bLagrangianExpTreeCreated
m_bLagrangianHessionCreated is true if a Lagrangian function for the Hessian has been created
Definition: OSInstance.h:2724
bool initObjGradients()
This should be called by initForAlgDiff()
double * m_mdObjectiveFunctionValues
m_mdObjectiveFunctionValues holds a double array of objective function values – the size of the array...
Definition: OSInstance.h:2650
double * m_mdConstraintUpperBounds
m_mdConstraintUpperBounds holds an array of constraint upper bounds (default = INF).
Definition: OSInstance.h:2475
std::string getInstanceDescription()
Get instance description.
std::string * m_msObjectiveNames
m_msObjectiveNames holds an array of objective names.
Definition: OSInstance.h:2406
int * m_miJacNumConTerms
m_miJacNumConTerms holds a int array of the number of constant terms (gradient does not change) for t...
Definition: OSInstance.h:2676
bool setQuadraticTerms(int number, int *rowIndexes, int *varOneIndexes, int *varTwoIndexes, double *coefficients, int begin, int end)
set quadratic terms
int m_iNonlinearExpressionNumber
m_iNonlinearExpressionNumber holds the number of nonlinear expressions.
Definition: OSInstance.h:2622
int getConstraintNumber()
Get constraint number.
int m_iLinearConstraintCoefficientNumber
m_iLinearConstraintCoefficientNumber holds the number of specified (usually nonzero) linear constrain...
Definition: OSInstance.h:2501
std::map< int, OSExpressionTree * > m_mapExpressionTreesMod
m_mapExpressionTreesMod holds a map of expression trees, with the key being the row index and value b...
Definition: OSInstance.h:1160
int * getObjectiveCoefficientNumbers()
Get objective coefficient number.
double * calculateAllConstraintFunctionValues(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
Calculate all of the constraint function values.
int * getTimeDomainStageNumberOfVariables()
Get the number of variables contained in each time stage.
std::string * m_msMaxOrMins
m_msMaxOrMins holds a std::string array of objective maxOrMins ("max" or "min").
Definition: OSInstance.h:2411
char * m_mcConstraintTypes
m_mcConstraintTypes holds a char array of constraint types (R for range; L for <=; G for >=; E for =;...
Definition: OSInstance.h:2487
double * m_mdVariableUpperBounds
m_mdVariableUpperBounds holds a double array of variable upper bounds (default = INF).
Definition: OSInstance.h:2384
int m_iNumberOfQuadraticRowIndexes
----— data items for quadratic coefficients ----—
Definition: OSInstance.h:2528
std::map< int, int > m_mapOSADFunRangeIndex
m_mapOSADFunRangeIndex is an inverse of the previous map.
Definition: OSInstance.h:2703
double * calculateObjectiveFunctionGradient(double *x, int objIdx, bool new_x)
Calculate the gradient of the objective function indexed by objIdx this function is overloaded.
int getLinearConstraintCoefficientNumber()
Get number of specified (usually nonzero) linear constraint coefficient values.
OSExpressionTree * m_LagrangianExpTree
m_LagrangianExpTree is an OSExpressionTree object that is the expression tree for the Lagrangian func...
Definition: OSInstance.h:1120
double * m_mdVariableLowerBounds
m_mdVariableLowerBounds holds a double array of variable lower bounds (default = 0....
Definition: OSInstance.h:2379
int ** getTimeDomainStageObjList()
Get the list of objectives in each stage.
double * m_mdConstraintLowerBounds
m_mdConstraintLowerBounds holds an array of constraint lower bounds (default = -INF).
Definition: OSInstance.h:2470
int ** m_mmiTimeDomainStageVarList
m_mmiTimeDomainStageVarList holds the list of variables in each stage.
Definition: OSInstance.h:3021
SparseMatrix * getLinearConstraintCoefficientsInRowMajor()
Get linear constraint coefficients in row major.
double calculateFunctionValue(int idx, double *x, bool new_x)
Calculate the function value for function (constraint or objective) indexed by idx.
double ** m_mmdDenseObjectiveCoefficients
m_mmdDenseObjectiveCoefficients holds an array of pointers, each pointer points to a vector of dense ...
Definition: OSInstance.h:2443
int * getTimeDomainStageNumberOfConstraints()
Get the number of constraints contained in each time stage.
std::map< int, OSExpressionTree * > getAllNonlinearExpressionTrees()
double getTimeDomainIntervalStart()
Get the start for the time domain interval.
SparseMatrix * m_linearConstraintCoefficientsInColumnMajor
m_linearConstraintCoefficientsInColumnMajor holds the standard three-array data structure for linear ...
Definition: OSInstance.h:2514
double * calculateAllObjectiveFunctionValues(double *x, bool new_x)
Calculate all of the objective function values, we are overloading this function and this version of ...
int * m_miNonLinearVarsReverseMap
m_miNonLinearVarsReverseMap maps the nonlinear variable number back into the original variable space
Definition: OSInstance.h:2746
int * getNonlinearExpressionTreeIndexes()
Get all the nonlinear expression tree indexes, i.e.
std::string * getTimeDomainStageNames()
Get the names of the stages (NULL or empty string ("") if a stage has not been given a name.
bool m_bProcessTimeDomain
----— data items for time domain ----—
Definition: OSInstance.h:2978
char * getVariableTypes()
Get variable initial values.
std::string m_sInstanceName
----— data items for InstanceHeader ----—
Definition: OSInstance.h:2310
char * m_mcVariableTypes
m_mcVariableTypes holds a char array of variable types (default = 'C').
Definition: OSInstance.h:2374
int getNumberOfQuadraticRowIndexes()
Get the number of rows which have a quadratic term.
double * calculateAllObjectiveFunctionValues(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
Calculate all of the objective function values.
double * m_mdJacValue
m_mdJacValue holds a double array of partial derivatives for the Jacobian matrix in sparse form (row ...
Definition: OSInstance.h:2670
SparseVector * calculateConstraintFunctionGradient(double *x, double *objLambda, double *conLambda, int idx, bool new_x, int highestOrder)
Calculate the gradient of the constraint function indexed by idx.
bool getSparseJacobianFromRowMajor()
SparseMatrix * getLinearConstraintCoefficientsInColumnMajor()
Get linear constraint coefficients in column major.
int * getQuadraticRowIndexes()
Get the indexes of rows which have a quadratic term.
bool processObjectives()
process objectives.
int * m_miTimeDomainStageConstraintNumber
m_miTimeDomainStageConstraintNumber holds the number of constraints in each stage.
Definition: OSInstance.h:3026
std::string * getVariableNames()
Get variable names.
double * calculateObjectiveFunctionGradient(double *x, double *objLambda, double *conLambda, int objIdx, bool new_x, int highestOrder)
Calculate the gradient of the objective function indexed by objIdx.
bool m_bProcessTimeStages
m_bProcessTimeStages holds whether the time stages have been processed.
Definition: OSInstance.h:2983
int * getNonlinearExpressionTreeModIndexes()
Get all the nonlinear expression tree indexes, i.e.
bool m_bDuplicateExpressionTreesMap
m_bDuplicateExpressionTreeMap is true if m_mapExpressionTrees was duplicated.
Definition: OSInstance.h:2785
bool setTimeDomainStageConstraintsOrdered(int numberOfStages, int *numberOfConstraints, int *startIdx)
This sets the constraints associated with each time domain stage in temporal order.
bool setVariables(int number, std::string *names, double *lowerBounds, double *upperBounds, char *types)
set all the variable related elements.
bool createOSADFun(std::vector< double > vdX)
Create the a CppAD Function object: this is a function where the domain is the set of variables for t...
bool setTimeDomainStageVariablesOrdered(int numberOfStages, int *numberOfVariables, int *startIdx)
This sets the variables associated with each time domain stage in temporal order.
bool setInstanceSource(std::string source)
set the instance source.
bool m_bColumnMajor
m_bColumnMajor holds whether the linear constraint coefficients are stored in column major (if m_bCol...
Definition: OSInstance.h:2507
QuadraticTerms * m_quadraticTerms
m_quadraticTerms holds the data structure for all the quadratic terms in the instance.
Definition: OSInstance.h:2555
std::map< int, OSExpressionTree * > m_mapExpressionTrees
m_mapExpressionTrees holds a hash map of expression tree pointers, with the key being the row index a...
Definition: OSInstance.h:1110
double ** getDenseObjectiveCoefficients()
getDenseObjectiveCoefficients.
bool setTimeDomainStageVariablesUnordered(int numberOfStages, int *numberOfVariables, int **varIndex)
This sets the variables associated with each time domain stage in srbitrary order.
bool initForAlgDiff()
This should be called by nonlinear solvers using callback functions
std::string getInstanceSource()
Get instance source.
std::string * m_msConstraintNames
m_msConstraintNames holds an array of constraint names.
Definition: OSInstance.h:2465
int m_iObjectiveNumber
m_iObjectiveNumber is the number of objective functions.
Definition: OSInstance.h:2396
bool m_bCppADMustReTape
is true if a CppAD Expresion Tree has an expression that can change depending on the value of the inp...
Definition: OSInstance.h:2780
bool setLinearConstraintCoefficients(int numberOfValues, bool isColumnMajor, double *values, int valuesBegin, int valuesEnd, int *indexes, int indexesBegin, int indexesEnd, int *starts, int startsBegin, int startsEnd)
set linear constraint coefficients
InstanceData * instanceData
A pointer to an InstanceData object.
Definition: OSInstance.h:2278
int m_iHighestOrderEvaluated
m_iHighestOrderEvaluated is the highest order derivative of the current iterate
Definition: OSInstance.h:2808
OSInstance()
The OSInstance class constructor.
std::map< int, int > m_mapAllNonlinearVariablesIndex
m_mapAllNonlinearVariablesIndexMap is a map of the variables in the Lagrangian function
Definition: OSInstance.h:2740
int getNumberOfNonlinearExpressions()
Get number of nonlinear expressions.
SparseHessianMatrix * getLagrangianHessianSparsityPattern()
SparseVector ** getObjectiveCoefficients()
Get objective coefficients.
int m_iNumberOfIntegerVariables
m_iNumberOfIntegerVariables holds the number of integer variables.
Definition: OSInstance.h:2343
std::map< int, int > getAllNonlinearVariablesIndexMap()
SparseHessianMatrix * calculateHessian(double *x, int idx, bool new_x)
Calculate the Hessian of a constraint or objective function.
OSExpressionTree * getLagrangianExpTree()
QuadraticTerms * getQuadraticTerms()
Get all the quadratic terms in the instance.
int ** getTimeDomainStageConList()
Get the list of constraints in each stage.
std::vector< double > reverseAD(int p, std::vector< double > vdlambda)
Perform an AD reverse sweep
SparseMatrix * m_linearConstraintCoefficientsInRowMajor
m_linearConstraintCoefficientsInRowMajor holds the standard three-array data structure for linear con...
Definition: OSInstance.h:2521
double * getObjectiveConstants()
Get objective constants.
bool processLinearConstraintCoefficients()
process linear constraint coefficients.
double * getVariableLowerBounds()
Get variable lower bounds.
int m_iConstraintNumber
m_iConstraintNumber is the number of constraints.
Definition: OSInstance.h:2455
bool m_bLagrangianSparseHessianCreated
m_bLagrangianSparseHessianCreated is true if the sparse Hessian Matrix for the Lagrangian was created
Definition: OSInstance.h:2735
int getVariableNumber()
Get variable number.
bool m_bGetDenseObjectives
m_bGetDenseObjectives holds whether the dense objective functions are processed.
Definition: OSInstance.h:2437
bool m_bOSADFunIsCreated
m_bOSADFunIsCreated is true if we have created the OSInstanc OSAD Function
Definition: OSInstance.h:2768
std::string * m_msTimeDomainStageNames
m_msTimeDomainStageNames holds the names of the time stages.
Definition: OSInstance.h:3008
std::string * getObjectiveMaxOrMins()
Get objective maxOrMins.
bool m_bCppADTapesBuilt
is true if a CppAD Expresion Tree has been built for each row and objective with a nonlinear expressi...
Definition: OSInstance.h:2774
bool m_binitForAlgDiff
----— data items for automatic differentiation ----—
Definition: OSInstance.h:2606
~OSInstance()
The OSInstance class destructor.
bool setTimeDomainStageObjectivesOrdered(int numberOfStages, int *numberOfObjectives, int *startIdx)
This sets the objectives associated with each time domain stage in temporal order.
OSExpressionTree * getNonlinearExpressionTree(int rowIdx)
Get the expression tree for a given row index
bool setInstanceDescription(std::string description)
set the instance description.
bool setTimeDomainInterval(double start, double horizon)
This sets the start and end of the time interval.
bool m_bProcessVariables
----— data items for Variables ----—
Definition: OSInstance.h:2333
bool setObjectives(int number, std::string *names, std::string *maxOrMins, double *constants, double *weights, SparseVector **objectitiveCoefficients)
bool setTimeDomainStageObjectivesUnordered(int numberOfStages, int *numberOfObjectives, int **varIndex)
This sets the objectives associated with each time domain stage in arbitrary order.
double * calculateAllConstraintFunctionValues(double *x, bool new_x)
Calculate all of the constraint function values, we are overloading this function and this version of...
std::string m_sInstanceSource
m_sInstanceSource holds the instance source.
Definition: OSInstance.h:2314
char * getConstraintTypes()
Get constraint types.
bool processVariables()
process variables.
bool setInstanceName(std::string name)
set the instance name.
SparseHessianMatrix * m_LagrangianSparseHessian
m_LagrangianSparseHessian is the Hessian Matrix of the Lagrangian function in sparse format
Definition: OSInstance.h:2729
int m_iNumberOfNonlinearExpressionTreeModIndexes
m_iNumberOfNonlinearExpressionTreeModIndexes holds the number of distinct rows and objectives with no...
Definition: OSInstance.h:2587
bool addObjective(int index, std::string name, std::string maxOrMin, double constant, double weight, SparseVector *objectiveCoefficients)
add an objective.
bool m_bProcessConstraints
----— data items for Constraints ----—
Definition: OSInstance.h:2450
InstanceHeader * instanceHeader
A pointer to an InstanceHeader object.
Definition: OSInstance.h:751
SparseHessianMatrix * calculateLagrangianHessian(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
Calculate the Hessian of the Lagrangian Expression Tree This method will build the CppAD expression t...
bool setConstraints(int number, std::string *names, double *lowerBounds, double *upperBounds, double *constants)
set all the constraint related elements.
std::vector< double > m_vdLambda
m_vdYval is a vector of Lagrange multipliers
Definition: OSInstance.h:2847
bool setObjectiveNumber(int number)
set the objective number.
std::vector< double > m_vdX
----— data vectors for nonlinear optimization ----—
Definition: OSInstance.h:2821
double ** m_mmdObjGradient
m_mdObjGradient holds an array of pointers, each pointer points to gradient of one objective function...
Definition: OSInstance.h:2814
int * m_miNonlinearExpressionIndexes
m_miNonlinearExpressionIndexes holds an integer array of nonlinear expression indexes,...
Definition: OSInstance.h:2628
int * m_miJacIndex
m_miJacIndex holds a int array of variable indices for the Jacobian matrix in sparse form (row major)...
Definition: OSInstance.h:2665
bool setVariableNumber(int number)
set the variable number.
std::string m_sInstanceDescription
m_sInstanceDescription holds the instance description.
Definition: OSInstance.h:2318
bool initializeNonLinearStructures()
Initialize the data structures for the nonlinear API.
double ** calculateAllObjectiveFunctionGradients(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
Calculate the gradient of all objective functions.
double * getConstraintUpperBounds()
Get constraint upper bounds.
int getObjectiveNumber()
Get objective number.
SparseJacobianMatrix * m_sparseJacMatrix
m_sparseJacMatrix is the Jacobian matrix stored in sparse matrix format
Definition: OSInstance.h:2681
int m_iNumberOfNonlinearExpressionTreeIndexes
----— data items for nonlinear expressions ----—
Definition: OSInstance.h:2567
bool getSecondOrderResults(double *x, double *objLambda, double *conLambda)
Calculate second derivatives.
int m_iJacValueSize
m_iJacValueSize is the number of nonzero partial derivates in the Jacobian.
Definition: OSInstance.h:2655
int getNumberOfNonlinearConstraints()
double * m_mdConstraintConstants
m_mdConstraintConstants holds an array of constraint constants (default = 0.0).
Definition: OSInstance.h:2481
void duplicateExpressionTreesMap()
duplicate the map of expression trees.
The in-memory representation of the objective function <coef> element.
Definition: OSInstance.h:111
double value
value is the value of the objective function coefficient corresponding to the variable with index idx
Definition: OSInstance.h:128
ObjCoef()
The ObjCoef class constructor.
int idx
idx is the index of the variable corresponding to the coefficient
Definition: OSInstance.h:123
~ObjCoef()
The ObjCoef class destructor.
The in-memory representation of the <obj> element.
Definition: OSInstance.h:142
ObjCoef ** coef
coef is pointer to an array of ObjCoef object pointers
Definition: OSInstance.h:176
double constant
constant is the constant term added to the objective function, 0 by default
Definition: OSInstance.h:162
double weight
weight is the weight applied to the given objective function, 1.0 by default
Definition: OSInstance.h:167
int numberOfObjCoef
numberOfObjCoef is the number of variables with a nonzero objective function coefficient
Definition: OSInstance.h:172
~Objective()
The Objective class destructor.
Objective()
The Objective class constructor.
std::string name
the name of the objective function
Definition: OSInstance.h:152
std::string maxOrMin
declare the objective function to be a max or a min
Definition: OSInstance.h:157
The in-memory representation of the <objectives> element.
Definition: OSInstance.h:189
int numberOfObjectives
numberOfObjectives is the number of objective functions in the instance
Definition: OSInstance.h:201
Objective ** obj
coef is pointer to an array of ObjCoef object pointers
Definition: OSInstance.h:205
Objectives()
The Objectives class constructor.
~Objectives()
The Objectives class destructor.
The in-memory representation of the <quadraticCoefficients> element.
Definition: OSInstance.h:381
QuadraticTerm ** qTerm
qTerm is a pointer to an array of QuadraticTerm object pointers
Definition: OSInstance.h:397
QuadraticCoefficients()
The QuadraticCoefficients class constructor.
int numberOfQuadraticTerms
numberOfQuadraticTerms is the number of quadratic terms in the <quadraticCoefficients> element.
Definition: OSInstance.h:393
~QuadraticCoefficients()
The QuadraticCoefficients class destructor.
The in-memory representation of the <qTerm> element.
Definition: OSInstance.h:341
double coef
coef is the coefficient of the quadratic term
Definition: OSInstance.h:366
int idxOne
idxOne is the index of the first variable in the quadratic term
Definition: OSInstance.h:358
~QuadraticTerm()
The QuadraticTerm class destructor.
QuadraticTerm()
The QuadraticTerm class constructor.
int idx
idx is the index of the row in which the quadratic term appears
Definition: OSInstance.h:353
int idxTwo
idxTwo is the index of the second variable in the quadratic term
Definition: OSInstance.h:363
a data structure for holding quadratic terms
Definition: OSGeneral.h:432
The in-memory representation of a SparseHessianMatrix..
Definition: OSGeneral.h:377
a sparse Jacobian matrix data structure
Definition: OSGeneral.h:301
a sparse matrix data structure
Definition: OSGeneral.h:224
a sparse vector data structure
Definition: OSGeneral.h:123
The in-memory representation of the <timeDomain> element.
Definition: OSInstance.h:2140
TimeDomainStages * stages
stages is a pointer to a Stages object
Definition: OSInstance.h:2151
TimeDomain()
The TimeDomain class constructor.
TimeDomainInterval * interval
interval is a pointer to an Interval object
Definition: OSInstance.h:2155
~TimeDomain()
The TimeDomain class destructor.
~TimeDomainInterval()
The Interval class destructor.
double start
start is the start of the planning period in the <interval> element.
Definition: OSInstance.h:2127
double horizon
horizon is the end of the planning period in the <interval> element.
Definition: OSInstance.h:2132
TimeDomainInterval()
The Interval class constructor.
The in-memory representation of the <con> element.
Definition: OSInstance.h:1977
int idx
idx gives the index of this constraint
Definition: OSInstance.h:1987
~TimeDomainStageCon()
The TimeDomainStageCon class destructor.
TimeDomainStageCon()
The TimeDomainStageCon class constructor.
The in-memory representation of the <constraints> child of the <stage> element.
Definition: OSInstance.h:1995
int numberOfConstraints
numberOfConstraints gives the number of constraints contained in this stage
Definition: OSInstance.h:2005
~TimeDomainStageConstraints()
The TimeDomainStageConstraints class destructor.
TimeDomainStageConstraints()
The TimeDomainStageConstraints class constructor.
TimeDomainStageCon ** con
con is a pointer to an array of TimeDomainStageCon object pointers
Definition: OSInstance.h:2011
int startIdx
startdIdx gives the number of the first constraint contained in this stage
Definition: OSInstance.h:2008
The in-memory representation of the <stage> element.
Definition: OSInstance.h:2063
TimeDomainStageVariables * variables
variables is a pointer to a TimeDomainVariables object
Definition: OSInstance.h:2078
std::string name
name corresponds to the optional attribute that holds the name of the stage; the default value is emp...
Definition: OSInstance.h:2075
~TimeDomainStage()
The TimeDomainStage class destructor.
TimeDomainStageObjectives * objectives
objectives is a pointer to a TimeDomainObjectives object
Definition: OSInstance.h:2084
TimeDomainStageConstraints * constraints
constraints is a pointer to a TimeDomainConstraints object
Definition: OSInstance.h:2081
TimeDomainStage()
The TimeDomainStage class constructor.
The in-memory representation of the <obj> element.
Definition: OSInstance.h:2020
int idx
idx gives the index of this variable
Definition: OSInstance.h:2030
~TimeDomainStageObj()
The TimeDomainStageObj class destructor.
TimeDomainStageObj()
The TimeDomainStageObj class constructor.
The in-memory representation of the <objectives> child of the <stage> element.
Definition: OSInstance.h:2038
TimeDomainStageObj ** obj
obj is a pointer to an array of TimeDomainStageObj object pointers
Definition: OSInstance.h:2054
int startIdx
startdIdx gives the number of the first objective contained in this stage
Definition: OSInstance.h:2051
TimeDomainStageObjectives()
The TimeDomainStageObjectives class constructor.
int numberOfObjectives
numberOfObjectives gives the number of objectives contained in this stage
Definition: OSInstance.h:2048
~TimeDomainStageObjectives()
The TimeDomainStageObjectives class destructor.
The in-memory representation of the element.
Definition: OSInstance.h:1934
TimeDomainStageVar()
The TimeDomainStageVar class constructor.
int idx
idx gives the index of this variable
Definition: OSInstance.h:1944
~TimeDomainStageVar()
The TimeDomainStageVar class destructor.
The in-memory representation of the <variables> child of the <stage> element.
Definition: OSInstance.h:1952
TimeDomainStageVar ** var
var is a pointer to an array of TimeDomainStageVar object pointers
Definition: OSInstance.h:1968
TimeDomainStageVariables()
The TimeDomainStageVariables class constructor.
int numberOfVariables
numberOfVariables gives the number of variables contained in this stage
Definition: OSInstance.h:1962
int startIdx
startdIdx gives the number of the first variable contained in this stage
Definition: OSInstance.h:1965
~TimeDomainStageVariables()
The TimeDomainStageVariables class destructor.
The in-memory representation of the <stages> element.
Definition: OSInstance.h:2092
TimeDomainStage ** stage
stage is pointer to an array of stage object pointers
Definition: OSInstance.h:2107
TimeDomainStages()
The Stages class constructor.
int numberOfStages
numberOfStages is the number of stages in the <stages> element.
Definition: OSInstance.h:2104
~TimeDomainStages()
The Stages class destructor.
The in-memory representation of the variable element.
Definition: OSInstance.h:45
Variable()
The Variable class constructor.
double ub
ub corresponds to the optional attribute that holds the variable upper bound.
Definition: OSInstance.h:61
std::string name
name corresponds to the optional attribute that holds the variable name, the default value is empty
Definition: OSInstance.h:71
~Variable()
The Variable class destructor.
double lb
lb corresponds to the optional attribute that holds the variable lower bound.
Definition: OSInstance.h:56
char type
type corresponds to the attribute that holds the variable type: C (Continuous), B (binary),...
Definition: OSInstance.h:66
The in-memory representation of the variables element.
Definition: OSInstance.h:84
Variables()
The Variables class constructor.
~Variables()
The Variables class destructor.
int numberOfVariables
numberOfVariables is the number of variables in the instance
Definition: OSInstance.h:94
Variable ** var
Here we define a pointer to an array of var pointers.
Definition: OSInstance.h:97