Conscience Core
CscSequence.h
Go to the documentation of this file.
1 /*
2  * CscSequence.h
3  *
4  * Created on: 31 mai 2014
5  * Author: ilieszaoui
6  */
7 
8 #ifndef CSCSEQUENCE_H_
9 #define CSCSEQUENCE_H_
10 
11 #include "CoreObjects/CscState.h"
12 #include <string>
13 #include <vector>
14 
15 using std::vector, std::string, std::to_string, std::endl, std::ios;
16 
18 
22  OUTPUTS = 0,
23 
27  POSITIONS = 1,
28 
33 
37  TARGET = 3,
38 
43 };
44 
49 };
50 
51 class CscSequence {
52 protected:
54 
55 private:
56  float getObjectiveValueAvg();
57  float getObjectiveValueMax();
58 
59 public:
61  CscSequence(optional<vector<CscState *>> states = {});
62 
67  virtual void append(const CscSequence &other);
68 
72  virtual void clear(bool deletePointers = true);
73 
74  void addState(CscState *state, float stateDelay, float stateDuration);
75  void addStates(vector<CscState *> *states);
76  CscState *getState(int index) const;
77  vector<CscState *> *getStates() const;
78  void addExtrapolation(CscState *state, float duration, float delay);
80  int countExtrapolation() const;
81  int countStates() const;
82  virtual string toString() const;
83  virtual string toStringWithQuotes() const;
84  void cutSequenceAt(int begin, int end);
85 
86  virtual CscSequence *getDuplicate();
87 
88  virtual ~CscSequence();
89 
90  virtual CscSequence *clone();
91 
92  int startingIndex = 0;
93  bool solved = false;
94  float objectiveValue = 0.0;
95  void updateStateByStateId(int stateId, CscState *state);
96  vector<float> *stateDelays;
97  vector<float> *stateDurations;
99 
100 private:
101  std::vector<CscState *> *states;
102  std::vector<CscState *> *extrapolation;
103 
104  vector<CscState *> *getStatesCopy();
105 };
106 #endif /* CSCSEQUENCE_H_ */
CscSequence::clear
virtual void clear(bool deletePointers=true)
Definition: CscSequence.cpp:33
nlohmann::to_string
NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string(const NLOHMANN_BASIC_JSON_TPL &j)
user-defined to_string function for JSON values
Definition: json.hpp:26470
CscSequence::startingIndex
int startingIndex
Definition: CscSequence.h:92
CscSequence::clone
virtual CscSequence * clone()
Definition: CscSequence.cpp:151
CscSequence::cutSequenceAt
void cutSequenceAt(int begin, int end)
Definition: CscSequence.cpp:108
CscSequence::getSequenceType
CscSequenceType getSequenceType() const
Definition: CscSequence.cpp:165
TARGET
@ TARGET
Definition: CscSequence.h:37
OUTPUTS
@ OUTPUTS
Definition: CscSequence.h:22
CscSequence::getStates
vector< CscState * > * getStates() const
Definition: CscSequence.cpp:76
CscSequence::append
virtual void append(const CscSequence &other)
Definition: CscSequence.cpp:26
CscSequence::addExtrapolation
void addExtrapolation(CscState *state, float duration, float delay)
Definition: CscSequence.cpp:59
CscSequence::addState
void addState(CscState *state, float stateDelay, float stateDuration)
Definition: CscSequence.cpp:44
CscSequence::updateStateByStateId
void updateStateByStateId(int stateId, CscState *state)
Definition: CscSequence.cpp:159
SEQUENCE_BREAK
@ SEQUENCE_BREAK
Definition: CscSequence.h:46
CscState
Definition: CscState.h:24
jwt::alphabet::index
uint32_t index(const std::array< char, 64 > &alphabet, char symbol)
Definition: base.h:91
CscSequence::toString
virtual string toString() const
Definition: CscSequence.cpp:84
CscSequenceAction
CscSequenceAction
Definition: CscSequence.h:45
POSITIONS
@ POSITIONS
Definition: CscSequence.h:27
CscState.h
CscSequence::sequenceType
CscSequenceType sequenceType
Definition: CscSequence.h:53
SEQUENCE_STOP
@ SEQUENCE_STOP
Definition: CscSequence.h:48
CscSequence::toStringWithQuotes
virtual string toStringWithQuotes() const
Definition: CscSequence.cpp:92
CscSequence::countStates
int countStates() const
Definition: CscSequence.cpp:80
CscSequence::stateDelays
vector< float > * stateDelays
Definition: CscSequence.h:96
CscSequence::getDuplicate
virtual CscSequence * getDuplicate()
Definition: CscSequence.cpp:132
CscSequence::solved
bool solved
Definition: CscSequence.h:93
CscSequence::stateDurations
vector< float > * stateDurations
Definition: CscSequence.h:97
CscSequenceType
CscSequenceType
Definition: CscSequence.h:17
CscSequence::addStates
void addStates(vector< CscState * > *states)
Definition: CscSequence.cpp:53
SEQUENCE_RESUME
@ SEQUENCE_RESUME
Definition: CscSequence.h:47
CscSequence::sequenceId
int sequenceId
Definition: CscSequence.h:60
CscSequence::countExtrapolation
int countExtrapolation() const
Definition: CscSequence.cpp:69
CscSequence::objectiveValue
float objectiveValue
Definition: CscSequence.h:94
CscSequence::CscSequence
CscSequence(optional< vector< CscState * >> states={})
Definition: CscSequence.cpp:14
POSITIONS_WITH_OUTPUTS
@ POSITIONS_WITH_OUTPUTS
Definition: CscSequence.h:32
CscSequence::getExtrapolation
CscState * getExtrapolation(int index)
Definition: CscSequence.cpp:65
CscSequence::~CscSequence
virtual ~CscSequence()
Definition: CscSequence.cpp:144
CscSequence
Definition: CscSequence.h:51
MOVEMENT
@ MOVEMENT
Definition: CscSequence.h:42
CscSequence::getState
CscState * getState(int index) const
Definition: CscSequence.cpp:73