/home/coin/SVN-release/OS-2.3.2/OS/v2.0/OSInstance.h

Go to the documentation of this file.
00001 
00033 #ifndef OSINSTANCE_H
00034 #define OSINSTANCE_H
00035 #include "OSParameters.h"
00036 #include "OSDataStructures.h"
00037 #include "OSnLNode.h"
00038 #include "OSExpressionTree.h"
00039 #include <string>
00040 #include <map>
00041 
00042 
00047 class InstanceHeader{
00048 public:
00049 
00051         InstanceHeader();
00052         
00054         ~InstanceHeader();
00055         
00057         std::string description;
00058         
00060         std::string name;
00061         
00063         std::string source;             
00064 };//class InstanceHeader
00065 
00066 
00067 
00071 class Variable{
00072 public:
00074         Variable();
00075         
00077         ~Variable();
00078 
00082         double lb;
00083 
00087         double ub;
00088         
00092         //double init;
00093         
00097         char type;
00098         
00102         std::string name;
00103         
00107         //std::string initString;
00108 }; // class Variable
00109 
00110 
00114 class Variables{
00115 public:
00116 
00118         Variables();
00119         
00121         ~Variables();
00122         
00124         int numberOfVariables;
00125         
00127         Variable **var;
00128 }; // class Variables
00129 
00130 
00135 class ObjCoef{
00136 public:
00137 
00139         ObjCoef();
00140         
00142         ~ObjCoef();
00143         
00147         int idx;
00148         
00152         double value;
00153 };//class Coef
00154 
00159 class Constraint{
00160 public:
00161 
00163         Constraint();
00164         
00166         ~Constraint();
00167         
00169         std::string name;
00170         
00172         double constant;
00173         
00175         double lb;
00176         
00178         double ub;
00179 };//class Constraint
00180 
00181 
00186 class Constraints{
00187 public:
00188 
00190         Constraints();
00191         
00193         ~Constraints();
00194         
00198         int numberOfConstraints;
00199         
00202         Constraint **con;
00203 };//class Constraints
00204 
00205 
00206 
00211 class Objective{
00212 public:
00213 
00215         Objective();
00216         
00218         ~Objective();
00219         
00221         std::string name;
00222         
00226         std::string maxOrMin;
00227         
00231         double constant;
00232         
00236         double weight;
00237         
00241         int numberOfObjCoef;
00242         
00245         ObjCoef **coef;
00246 };//class Objective
00247 
00252 class Objectives{
00253 public:
00254 
00256         Objectives();
00257         
00259         ~Objectives();
00260         
00264         int numberOfObjectives;
00265         
00268         Objective **obj;
00269 };//class Objectives
00270 
00282 class LinearConstraintCoefficients{
00283 public:
00284 
00286         LinearConstraintCoefficients();
00287         
00289         ~LinearConstraintCoefficients();
00290         
00294         int numberOfValues;
00295         
00299         IntVector *start;
00300         
00302         IntVector *rowIdx;
00303         
00305         IntVector *colIdx;
00306         
00308         DoubleVector *value;
00315         int iNumberOfStartElements;
00316 };//class LinearConstraintCoefficients
00317 
00318 
00328 class QuadraticTerm{
00329 public:
00330     
00332         QuadraticTerm();
00333         
00335         ~QuadraticTerm();
00336         
00340         int idx;
00341         
00345     int idxOne;
00346     
00350     int idxTwo;
00351     
00353     double coef;
00354 }; // QuadraticTerm
00355 
00356 
00357 
00358 
00364 class QuadraticCoefficients {
00365 public:
00366     
00368         QuadraticCoefficients();
00369         
00371         ~QuadraticCoefficients();
00372         
00376         int numberOfQuadraticTerms;
00377         
00380     QuadraticTerm** qTerm;
00381 }; // QuadraticCoefficients
00382 
00383 
00388 class Nl{  
00389 public: 
00391         int idx;
00392 
00398         bool m_bDeleteExpressionTree;
00399         
00401         OSExpressionTree *osExpressionTree;
00402         
00406         Nl();
00407 
00411         ~Nl();
00412 };//end Nl
00413 
00418 class NonlinearExpressions {
00419 public:
00420     
00422         NonlinearExpressions();
00423         
00425         ~NonlinearExpressions();
00426         
00431         int numberOfNonlinearExpressions;
00432         
00435     Nl **nl;
00436 }; // NonlinearExpression
00437 
00438 
00439 
00444 class TimeDomainStageVar {
00445 public:
00446     
00448         TimeDomainStageVar();
00449         
00451         ~TimeDomainStageVar();
00452         
00454         int idx;
00455 }; // TimeDomainStageVar
00456 
00461 class TimeDomainStageVariables {
00462 public:
00463     
00465         TimeDomainStageVariables();
00466         
00468         ~TimeDomainStageVariables();
00469         
00471         int numberOfVariables;
00472 
00474         int startIdx;
00475 
00477         TimeDomainStageVar** var;
00478 }; // TimeDomainStageVariables
00479 
00480 
00485 class TimeDomainStageCon {
00486 public:
00487     
00489         TimeDomainStageCon();
00490         
00492         ~TimeDomainStageCon();
00493         
00495         int idx;
00496 }; // TimeDomainStageCon
00497 
00502 class TimeDomainStageConstraints {
00503 public:
00504     
00506         TimeDomainStageConstraints();
00507         
00509         ~TimeDomainStageConstraints();
00510         
00512         int numberOfConstraints;
00513 
00515         int startIdx;
00516 
00518         TimeDomainStageCon** con;
00519 }; // TimeDomainStageConstraints
00520 
00521 
00526 class TimeDomainStageObj {
00527 public:
00528     
00530         TimeDomainStageObj();
00531         
00533         ~TimeDomainStageObj();
00534         
00536         int idx;
00537 }; // TimeDomainStageObj
00538 
00543 class TimeDomainStageObjectives {
00544 public:
00545     
00547         TimeDomainStageObjectives();
00548         
00550         ~TimeDomainStageObjectives();
00551         
00553         int numberOfObjectives;
00554 
00556         int startIdx;
00557 
00559         TimeDomainStageObj** obj;
00560 }; // TimeDomainStageObjectives
00561 
00562 
00567 class TimeDomainStage {
00568 public:
00569     
00571         TimeDomainStage();
00572         
00574         ~TimeDomainStage();
00575         
00579         std::string name;
00580         
00582         TimeDomainStageVariables *variables;
00583 
00585         TimeDomainStageConstraints *constraints;
00586 
00588         TimeDomainStageObjectives *objectives;
00589 }; // TimeDomainStage
00590  
00595 class TimeDomainStages {
00596 public:
00597     
00599         TimeDomainStages();
00600         
00602         ~TimeDomainStages();
00603         
00607         int numberOfStages;
00608         
00610     TimeDomainStage **stage;
00611 }; // Stages
00612  
00617 class TimeDomainInterval {
00618 public:
00619     
00621         TimeDomainInterval();
00622         
00624         ~TimeDomainInterval();
00625         
00629         double start;
00630         
00634         double horizon;
00635 }; // Interval
00636  
00641 class TimeDomain {
00642 public:
00643     
00645         TimeDomain();
00646         
00648         ~TimeDomain();
00649 
00652         TimeDomainStages *stages;
00653 
00656         TimeDomainInterval *interval;
00657 }; // TimeDomain
00658 
00675 class InstanceData{
00676 public:
00677 
00679         InstanceData();
00680         
00682         ~InstanceData();
00683         
00685         Variables *variables;
00686         
00688         Objectives *objectives;
00689         
00691         Constraints *constraints;
00692         
00696         LinearConstraintCoefficients *linearConstraintCoefficients;
00697         
00701         QuadraticCoefficients* quadraticCoefficients;
00702         
00706         NonlinearExpressions* nonlinearExpressions;
00707         
00711         TimeDomain* timeDomain;
00712 }; // class InstanceData
00713 
00714 
00741 class OSInstance {
00742 public:
00743 
00745         OSInstance(); 
00746         
00748         ~OSInstance();
00749         
00751         InstanceHeader *instanceHeader;
00752         
00754         InstanceData *instanceData;
00755 
00756 private:
00760         std::string m_sInstanceName;
00764         std::string m_sInstanceSource;  
00768         std::string m_sInstanceDescription;
00769         
00773         bool m_bProcessVariables ;
00774         
00778         int m_iVariableNumber;
00779         
00783         int m_iNumberOfIntegerVariables;
00784         
00788         int m_iNumberOfBinaryVariables;
00789         
00793         int m_iNumberOfQuadraticRowIndexes;
00794         
00798         bool m_bQuadraticRowIndexesProcessed;
00799 
00803         int *m_miQuadRowIndexes;
00804         
00808         int m_iNumberOfNonlinearExpressionTreeIndexes;
00809         
00813         bool m_bNonlinearExpressionTreeIndexesProcessed;
00814 
00819         int *m_miNonlinearExpressionTreeIndexes;
00820         
00825         int m_iNumberOfNonlinearExpressionTreeModIndexes;
00826         
00830         bool m_bNonlinearExpressionTreeModIndexesProcessed;
00831 
00836         int *m_miNonlinearExpressionTreeModIndexes;
00837         
00841         std::string* m_msVariableNames;
00842         
00847         //double* m_mdVariableInitialValues ;
00848 
00853         //std::string* m_msVariableInitialStringValues;
00854 
00859         char* m_mcVariableTypes;
00860 
00864         double* m_mdVariableLowerBounds;
00865 
00869         double* m_mdVariableUpperBounds;
00870 
00874         bool m_bProcessObjectives;
00875 
00879         int m_iObjectiveNumber;
00880         
00884         int m_iObjectiveNumberNonlinear;
00885         
00889         std::string* m_msObjectiveNames;
00890         
00894         std::string* m_msMaxOrMins;
00895         
00899         int* m_miNumberOfObjCoef;
00900         
00904         double* m_mdObjectiveConstants;
00905         
00909         double* m_mdObjectiveWeights;
00910         
00915         SparseVector** m_mObjectiveCoefficients;
00916         
00920         bool m_bGetDenseObjectives;
00921         
00926         double** m_mmdDenseObjectiveCoefficients;
00927 
00931         bool m_bProcessConstraints;
00932         
00936         int m_iConstraintNumber;
00937         
00941         int m_iConstraintNumberNonlinear;
00942 
00946         std::string* m_msConstraintNames;
00947         
00951         double* m_mdConstraintLowerBounds;
00952 
00956         double* m_mdConstraintUpperBounds;
00957         
00962         double* m_mdConstraintConstants;
00963 
00968         char* m_mcConstraintTypes;
00969         
00973         bool m_bProcessLinearConstraintCoefficients;
00974         
00979         int m_iLinearConstraintCoefficientNumber;
00980 
00984         bool m_bColumnMajor;
00985         
00989         bool m_binitForAlgDiff;
00990 
00991 
00996         SparseMatrix* m_linearConstraintCoefficientsInColumnMajor ;
00997 
01002         SparseMatrix* m_linearConstraintCoefficientsInRowMajor ;
01003 
01004         
01008         bool m_bProcessQuadraticTerms ;
01009 
01014         int m_iQuadraticTermNumber ;
01015 
01019     double *m_mdConstraintFunctionValues;
01020     
01024     double *m_mdObjectiveFunctionValues;
01025 
01029         int m_iJacValueSize;
01030     
01034         int *m_miJacStart;
01035         
01039         int *m_miJacIndex;
01040         
01044         double *m_mdJacValue;
01045         
01046         
01051         int *m_miJacNumConTerms;
01052  
01056         SparseJacobianMatrix *m_sparseJacMatrix;
01057         
01062          int m_iHighestTaylorCoeffOrder;
01063         
01068          QuadraticTerms* m_quadraticTerms;
01069          
01072          bool m_bQTermsAdded;
01073          
01078         unsigned int m_iNumberOfNonlinearVariables ;
01079          
01083         bool m_bProcessNonlinearExpressions ;
01084         
01088         int m_iNonlinearExpressionNumber;
01089 
01094         int* m_miNonlinearExpressionIndexes ;
01095         
01099         bool m_bProcessExpressionTrees;
01100         
01104         bool m_bProcessExpressionTreesMod;
01105         
01110         std::map<int, OSExpressionTree*> m_mapExpressionTrees ;
01111         
01112         
01113         
01114         std::map<int, int> m_mapOSADFunRangeIndex ;
01115         
01120         OSExpressionTree *m_LagrangianExpTree ;
01121         
01125         bool m_bLagrangianExpTreeCreated ;
01126         
01130         SparseHessianMatrix* m_LagrangianSparseHessian;
01131         
01136         bool m_bLagrangianSparseHessianCreated;
01137         
01141          std::map<int, int> m_mapAllNonlinearVariablesIndex;
01142 
01146         int *m_miNonLinearVarsReverseMap;
01147          
01152          bool m_bAllNonlinearVariablesIndex;
01153         
01160         std::map<int, OSExpressionTree*> m_mapExpressionTreesMod ;
01161         
01166          bool m_bOSADFunIsCreated;
01167         
01172         bool m_bCppADTapesBuilt;
01173         
01178         bool m_bCppADMustReTape;
01179         
01183         bool m_bDuplicateExpressionTreesMap;
01184         
01188         bool m_bNonLinearStructuresInitialized;
01189 
01193         bool m_bSparseJacobianCalculated;
01194         
01199         std::map<int, std::vector<OSnLNode*> > m_mapExpressionTreesInPostfix ;
01200          
01201         
01206          int m_iHighestOrderEvaluated;
01207          
01212         double **m_mmdObjGradient;
01213         
01214         //define the vectors    
01215 
01220         std::vector<double> m_vdX;
01221         
01226         std::vector<double> m_vdYval;
01227         
01233         std::vector<bool> m_vbLagHessNonz;
01234         
01239         std::vector<double> m_vdYjacval;
01240 
01245         std::vector<double> m_vdw;
01246         
01251         std::vector<double> m_vdLambda;
01252         
01253         
01258         std::vector<double> m_vdDomainUnitVec;
01259         
01264         std::vector<double> m_vdRangeUnitVec;
01265         
01266 
01270         bool m_bProcessTimeDomain;
01271 
01275         bool m_bProcessTimeStages;
01276 
01280         bool m_bProcessTimeInterval;
01281 
01285         bool m_bFiniteTimeStages;
01286 
01290         int m_iNumberOfTimeStages;
01291 
01295         std::string m_sTimeDomainFormat;
01296 
01301         std::string* m_msTimeDomainStageNames;
01302 
01307         int* m_miTimeDomainStageVariableNumber;
01308 
01313         int** m_mmiTimeDomainStageVarList;
01314 
01319         int* m_miTimeDomainStageConstraintNumber;
01320 
01325         int** m_mmiTimeDomainStageConList;
01326 
01331         int* m_miTimeDomainStageObjectiveNumber;
01332 
01337         int** m_mmiTimeDomainStageObjList;
01338 
01339 
01346         bool processVariables() ;
01347         
01354         bool processObjectives();
01355         
01356         
01363         bool processConstraints();
01364         
01365         
01372         bool processLinearConstraintCoefficients();
01373         
01374         
01375 public:
01376 
01381         std::string getInstanceName();
01382                 
01383 
01388         std::string getInstanceSource();
01389         
01390         
01396         std::string getInstanceDescription();
01397         
01403         int getVariableNumber();
01404         
01411         std::string* getVariableNames();
01412         
01420         //double* getVariableInitialValues();
01421         
01429         //std::string* getVariableInitialStringValues();
01430         
01442         char* getVariableTypes();
01443         
01448         int getNumberOfIntegerVariables();
01449         
01454         int getNumberOfBinaryVariables();
01455         
01462         double* getVariableLowerBounds();
01463         
01470         double* getVariableUpperBounds();
01471         
01477         int getObjectiveNumber();
01478         
01479         
01486         std::string* getObjectiveNames();
01487 
01494         std::string* getObjectiveMaxOrMins();
01495         
01504         int* getObjectiveCoefficientNumbers();
01505         
01512         double* getObjectiveConstants();
01513         
01520         double* getObjectiveWeights();
01521         
01532         SparseVector** getObjectiveCoefficients();
01533         
01540         double** getDenseObjectiveCoefficients();
01541         
01547         int getConstraintNumber();
01548         
01555         std::string* getConstraintNames();
01556         
01563         double* getConstraintLowerBounds();
01564         
01571         double *getConstraintUpperBounds();
01572         
01585         char* getConstraintTypes();
01586         
01592         int getLinearConstraintCoefficientNumber();
01593         
01594 
01601         bool getLinearConstraintCoefficientMajor();
01602         
01603         
01610         SparseMatrix* getLinearConstraintCoefficientsInColumnMajor();
01611         
01618         SparseMatrix* getLinearConstraintCoefficientsInRowMajor();
01619         
01625         int getNumberOfQuadraticTerms();
01626         
01635         QuadraticTerms* getQuadraticTerms();
01636         
01644         int* getQuadraticRowIndexes();
01645         
01651         int getNumberOfQuadraticRowIndexes();
01652         
01658         int getNumberOfNonlinearExpressions();
01659         
01660         
01666         OSExpressionTree* getNonlinearExpressionTree(int rowIdx);
01667         
01674         OSExpressionTree* getNonlinearExpressionTreeMod(int rowIdx);
01675         
01682         std::vector<OSnLNode*> getNonlinearExpressionTreeInPostfix( int rowIdx); 
01683         
01691         std::vector<OSnLNode*> getNonlinearExpressionTreeModInPostfix( int rowIdx);  
01692         
01699         std::vector<OSnLNode*> getNonlinearExpressionTreeInPrefix( int rowIdx);  
01700         
01708         std::vector<OSnLNode*> getNonlinearExpressionTreeModInPrefix( int rowIdx);      
01709 
01710         
01714         int getNumberOfNonlinearObjectives();
01715 
01719         int getNumberOfNonlinearConstraints();
01720         
01724         std::map<int, OSExpressionTree* > getAllNonlinearExpressionTrees();
01725         
01726         
01730         std::map<int, OSExpressionTree* > getAllNonlinearExpressionTreesMod();
01731         
01737         int* getNonlinearExpressionTreeIndexes(); 
01738         
01739         
01745         int getNumberOfNonlinearExpressionTreeIndexes(); 
01746         
01747         
01754         int* getNonlinearExpressionTreeModIndexes(); 
01755         
01756         
01763         int getNumberOfNonlinearExpressionTreeModIndexes(); 
01764         
01765         
01771         std::string getTimeDomainFormat(); 
01772         
01778         int getTimeDomainStageNumber(); 
01779         
01785         std::string* getTimeDomainStageNames(); 
01786         
01792         int* getTimeDomainStageNumberOfVariables(); 
01793         
01799         int* getTimeDomainStageNumberOfConstraints(); 
01800         
01806         int* getTimeDomainStageNumberOfObjectives(); 
01807         
01813         int** getTimeDomainStageVarList(); 
01814         
01820         int** getTimeDomainStageConList(); 
01821         
01827         int** getTimeDomainStageObjList(); 
01828 
01834         double getTimeDomainIntervalStart(); 
01835 
01841         double getTimeDomainIntervalHorizon(); 
01842         
01843         
01844         
01845         // the set() methods
01846         
01847         
01854         bool setInstanceSource(std::string source);
01855         
01862         bool setInstanceDescription(std::string description);
01863         
01864                                         
01871         bool setInstanceName(std::string name);
01872         
01879         bool setVariableNumber(int number);
01880         
01898         bool addVariable(int index, std::string name, double lowerBound, double upperBound, char type);
01899         
01918         bool setVariables(int number, std::string* names, double* lowerBounds, 
01919                 double* upperBounds, char* types);
01920 
01927         bool setObjectiveNumber(int number);
01928         
01946         bool addObjective(int index, std::string name, std::string maxOrMin, double constant, double weight, SparseVector* objectiveCoefficients);
01947 
01963         bool setObjectives(int number, std::string *names, std::string *maxOrMins, double *constants, double *weights, SparseVector **objectitiveCoefficients);
01964                                         
01971         bool setConstraintNumber(int number);
01972 
01986 bool addConstraint(int index, std::string name, double lowerBound, double upperBound, double constant);
01987 
01999 bool setConstraints(int number, std::string* names, double* lowerBounds, double* upperBounds, double* constants);
02000 
02019 bool setLinearConstraintCoefficients(int numberOfValues, bool isColumnMajor, 
02020         double* values, int valuesBegin, int valuesEnd, 
02021         int* indexes, int indexesBegin, int indexesEnd,                         
02022         int* starts, int startsBegin, int startsEnd);
02023         
02039         bool setQuadraticTerms(int number, 
02040                 int* rowIndexes, int* varOneIndexes, int* varTwoIndexes, double* coefficients,
02041                 int begin, int end);
02042                 
02056         bool setQuadraticTermsInNonlinearExpressions(int number, 
02057                 int* rowIndexes, int* varOneIndexes, int* varTwoIndexes, double* coefficients);
02058                 
02059                 
02060                 
02061         // nonlinear API methods
02062         
02063         
02069         bool initializeNonLinearStructures( );
02070         
02084         double calculateFunctionValue(int idx, double* x, bool new_x);
02085         
02100         double *calculateAllConstraintFunctionValues(double* x, double *objLambda, double *conLambda,
02101                 bool new_x, int highestOrder);
02102                 
02116         double *calculateAllConstraintFunctionValues(double* x, bool new_x);
02117         
02133         double *calculateAllObjectiveFunctionValues(double* x, double *objLambda, double *conLambda,
02134                 bool new_x, int highestOrder);
02135         
02149         double *calculateAllObjectiveFunctionValues(double* x, bool new_x);     
02150                 
02151         
02166         SparseJacobianMatrix *calculateAllConstraintFunctionGradients(double* x, double *objLambda, 
02167                 double *conLambda, bool new_x, int highestOrder);               
02168                 
02169 
02185         SparseVector *calculateConstraintFunctionGradient(double* x, double *objLambda, double *conLambda,
02186                 int idx, bool new_x, int highestOrder);
02187                 
02201         SparseVector *calculateConstraintFunctionGradient(double* x, int idx, bool new_x );
02202         
02217         double **calculateAllObjectiveFunctionGradients(double* x, double *objLambda, double *conLambda,
02218                 bool new_x, int highestOrder);          
02219 
02235         double *calculateObjectiveFunctionGradient(double* x, double *objLambda, double *conLambda,
02236                 int objIdx, bool new_x, int highestOrder);
02237                 
02250         double *calculateObjectiveFunctionGradient(double* x, int objIdx, bool new_x );
02251 
02269         SparseHessianMatrix *calculateLagrangianHessian( double* x, double *objLambda, double *conLambda,
02270                 bool new_x, int highestOrder);
02271                 
02284         SparseHessianMatrix *calculateHessian( double* x, int idx, bool new_x);
02285         
02286                                 
02291         bool getSparseJacobianFromColumnMajor();
02292         
02297         bool getSparseJacobianFromRowMajor();
02298         
02303         OSExpressionTree* getLagrangianExpTree( );
02304 
02309         std::map<int, int> getAllNonlinearVariablesIndexMap( ); 
02310         
02315         SparseHessianMatrix* getLagrangianHessianSparsityPattern();
02316         
02321         bool addQTermsToExressionTree();
02322         
02327         SparseJacobianMatrix *getJacobianSparsityPattern();
02328         
02333         void duplicateExpressionTreesMap();
02334         
02335 #ifdef COIN_HAS_CPPAD    
02336 
02340         CppAD::ADFun<double> *Fad;
02341 #endif
02342 
02353         bool createOSADFun(std::vector<double> vdX );
02354         
02365         std::vector<double> forwardAD(int p, std::vector<double> vdX);
02366 
02377         std::vector<double> reverseAD(int p, std::vector<double> vdlambda);
02378          
02391         int  getADSparsityHessian();
02392          
02412         bool getIterateResults(double *x, double *objLambda, double *conLambda,  
02413                         bool new_x, int highestOrder);
02414                         
02415                         
02416                         
02429         bool getZeroOrderResults(double *x, double *objLambda, double *conLambda);
02430                         
02443         bool getFirstOrderResults(double *x, double *objLambda, double *conLambda );
02444                         
02457         bool getSecondOrderResults(double *x, double *objLambda, double *conLambda );
02458                         
02459 
02469         bool initForAlgDiff();
02470         
02480         bool initObjGradients();
02481 
02482 
02487         bool bUseExpTreeForFunEval;
02488         
02489         
02493         bool setTimeDomain(std::string format);
02494         
02498         bool setTimeDomainStages(int number, std::string *names);
02499 
02505         bool setTimeDomainStageVariablesOrdered(int numberOfStages, int *numberOfVariables, int *startIdx);
02506 
02512         bool setTimeDomainStageVariablesUnordered(int numberOfStages, int *numberOfVariables, int **varIndex);
02513 
02519         bool setTimeDomainStageConstraintsOrdered(int numberOfStages, int *numberOfConstraints, int *startIdx);
02520 
02526         bool setTimeDomainStageConstraintsUnordered(int numberOfStages, int *numberOfConstraints, int **conIndex);
02527 
02533         bool setTimeDomainStageObjectivesOrdered(int numberOfStages, int *numberOfObjectives, int *startIdx);
02534 
02540         bool setTimeDomainStageObjectivesUnordered(int numberOfStages, int *numberOfObjectives, int **varIndex);
02541 
02545         bool setTimeDomainInterval(double start, double horizon);
02546 
02547 
02548 }; //class OSInstance
02549 
02550 #endif
02551 

Generated on Fri Jan 7 03:24:39 2011 by  doxygen 1.4.7