Conscience Core
CscKnowledgeItemTargetMemberToStateFromMember.h
Go to the documentation of this file.
1 //
2 // CscKnowledgeItemTargetMemberToStateFromMember.hpp
3 // ConscienceRobotManager
4 //
5 // Created by Iliès Zaoui on 09/02/2019.
6 // Copyright © 2019 IliesZaoui. All rights reserved.
7 //
8 
9 #ifndef CscKnowledgeItemTargetMemberToStateFromMember_h
10 #define CscKnowledgeItemTargetMemberToStateFromMember_h
11 
13 
15 
17  public:
19  string itemName,
20  string memberBaseNameIn,
21  string memberTargetNameIn,
22  const vector<const TargetMemberValues *> *inputsTargetValuesIn,
23  const vector<const TargetMemberPonderation *> *inputsTargetPercentsIn,
24  CscUnitType unitTypeIn,
25  bool symemtrySearch,
26  int nbStateMax, int deltaPerStateMax,
27  bool optionCutLastestIfTheSameAndWorst,
28  bool optionCutBeginingIfTheSame,
29  bool optionDeltaPerStateMaxDegressive,
30  float percentAvg,
31  float percentMax,
32  int stateDuration,
33  int stateDelay,
34  float solvedAt,
35  bool outputTypes[],
37  bool playEvenNotSolved);
38 
42  bool isStatesSupportOf(CscState *state1, CscState *state2) override;
43  bool isObjectiveSupportOf(CscKnowledgeItem *knowledgeItem) override;
44  float evaluateState(CscState *stateIn, const CscWorldEntity *entity, CscState *initialState) override;
45 
46  CscPerson *generatePerson(CscEnvironmentSimulator *environment, const CscWorldEntity *entity, CscState *initialState, int personId, int generationId, CscGeneration *currentGeneration, CscGeneration *previousGeneration) override;
47  CscPerson *generatePersonGenetic(CscEnvironmentSimulator *environment, const CscWorldEntity *entity, CscState *initialState, int personId, int generationId, CscGeneration *currentGeneration, CscGeneration *previousGeneration);
48  CscPerson *generatePersonKinematic(CscEnvironmentSimulator *environment, const CscWorldEntity *entity, CscState *initialState, int personId, int generationId, CscGeneration *currentGeneration, CscGeneration *previousGeneration);
49 
50  map<CscStrategyType, float> strategyElitism;
51  map<CscStrategyType, float> strategyProbability;
52 
53  static CscKnowledgeItemTargetMemberToStateFromMember *create(int targetId, string targetName,
54  string baseMemberName, string targetMemberName,
55  float posX, float posY, float posZ,
56  float posPondX, float posPondY, float posPondZ,
57  float pitch, float yaw, float roll,
58  float pitchPond, float yawPond, float rollPond,
59  float accX, float accY, float accZ,
60  float accPondX, float accPondY, float accPondZ,
61  CscUnitType unitType,
62  bool symemtrySearch,
63  int nbStateMax, int deltaPerStateMax,
64  bool optionCutLastestIfTheSameAndWorst,
65  bool optionCutBeginingIfTheSame,
66  bool optionDeltaPerStateMaxDegressive,
67  float percentAvg,
68  float percentMax,
69  int stateDuration,
70  int stateDelay,
71  float solvedAt,
72  bool outputTypes[4],
74  float processAt) {
75  auto inputsTargetValues = new vector<const TargetMemberValues *>();
76  auto inputsTargetPercents = new vector<const TargetMemberPonderation *>();
77 
78  // State objective
79  CscMemberInputStatus *inputsFinalCore = new CscMemberInputStatus(targetMemberName);
80  TargetMemberValues *targetMemberValues = new TargetMemberValues();
81  map<CscInputType, float> inputsTargetValuesCore;
82  inputsTargetValuesCore[POS_X] = posX;
83  inputsTargetValuesCore[POS_Y] = posY;
84  inputsTargetValuesCore[POS_Z] = posZ;
85  inputsTargetValuesCore[PITCH] = pitch;
86  inputsTargetValuesCore[YAW] = yaw;
87  inputsTargetValuesCore[ROLL] = roll;
88  inputsTargetValuesCore[ACC_X] = accX;
89  inputsTargetValuesCore[ACC_Y] = accY;
90  inputsTargetValuesCore[ACC_Z] = accZ;
91  inputsFinalCore->values = inputsTargetValuesCore;
92  targetMemberValues->memberValues = inputsFinalCore;
93  inputsTargetValues->push_back(targetMemberValues);
94 
95  // State Percents
96  CscMemberInputPonderation *percentsFInalCore = new CscMemberInputPonderation(targetMemberName);
97  TargetMemberPonderation *targetMemberPonderation = new TargetMemberPonderation();
98  map<CscInputType, float> inputsTargetPercentsCore;
99  inputsTargetPercentsCore[POS_X] = posPondX;
100  inputsTargetPercentsCore[POS_Y] = posPondY;
101  inputsTargetPercentsCore[POS_Z] = posPondZ;
102  inputsTargetPercentsCore[PITCH] = pitchPond;
103  inputsTargetPercentsCore[YAW] = yawPond;
104  inputsTargetPercentsCore[ROLL] = rollPond;
105  inputsTargetPercentsCore[ACC_X] = accPondX;
106  inputsTargetPercentsCore[ACC_Y] = accPondY;
107  inputsTargetPercentsCore[ACC_Z] = accPondZ;
108  percentsFInalCore->values = inputsTargetPercentsCore;
109  targetMemberPonderation->memberValues = percentsFInalCore;
110  inputsTargetPercents->push_back(targetMemberPonderation);
111 
112  return new CscKnowledgeItemTargetMemberToStateFromMember(targetId, targetName,
113  baseMemberName, targetMemberName,
114  inputsTargetValues, inputsTargetPercents,
115  unitType, symemtrySearch,
116  nbStateMax, deltaPerStateMax,
117  optionCutLastestIfTheSameAndWorst,
118  optionCutBeginingIfTheSame,
119  optionDeltaPerStateMaxDegressive,
120  percentAvg,
121  percentMax,
122  stateDuration,
123  stateDelay,
124  solvedAt,
125  outputTypes,
126  aiTypes,
127  processAt);
128  }
129  };
130 
131 }
132 
133 #endif /* CscKnowledgeItemTargetMemberToStateFromMember_h */
conscience_core::knowledge::CscKnowledgeItemTargetMemberToStateFromMember::strategyProbability
map< CscStrategyType, float > strategyProbability
Definition: CscKnowledgeItemTargetMemberToStateFromMember.h:51
POS_Y
@ POS_Y
Definition: CscMemberInputStatus.h:15
CscWorldEntity
Definition: CscWorldEntity.h:19
conscience_core::knowledge::CscKnowledgeItemTarget
Definition: CscKnowledgeItemTarget.h:22
conscience_core::knowledge::CscKnowledgeItemTargetMemberToStateFromMember
Definition: CscKnowledgeItemTargetMemberToStateFromMember.h:16
CSC_DLL_IMPORTEXPORT
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:31
conscience_core::knowledge::CscKnowledgeItem::TargetMemberValues::memberValues
CscMemberInputStatus * memberValues
Definition: CscKnowledgeItem.h:79
CscUnitType
CscUnitType
Definition: CscUnitType.h:14
ACC_Y
@ ACC_Y
Definition: CscMemberInputStatus.h:14
conscience_core::knowledge::CscKnowledgeItemTargetMemberToStateFromMember::memberTargetName
string memberTargetName
Definition: CscKnowledgeItemTargetMemberToStateFromMember.h:40
CscMemberInputStatus::values
map< CscInputType, float > values
Definition: CscMemberInputStatus.h:56
ROLL
@ ROLL
Definition: CscMemberInputStatus.h:16
conscience_core::knowledge::CscKnowledgeItemTargetMemberToStateFromMember::playEvenNotSolved
bool playEvenNotSolved
Definition: CscKnowledgeItemTargetMemberToStateFromMember.h:41
ACC_Z
@ ACC_Z
Definition: CscMemberInputStatus.h:14
conscience_core::knowledge::CscArtificialIntelligenceTypes
uint64_t CscArtificialIntelligenceTypes
Definition: CommandParser.h:21
conscience_core::knowledge
Definition: CscEntityReflexion.h:35
PITCH
@ PITCH
Definition: CscMemberInputStatus.h:16
CscPerson
Definition: CscPerson.h:19
CscKnowledgeItemTarget.h
CscState
Definition: CscState.h:24
conscience_core::knowledge::CscKnowledgeItem::TargetMemberValues
Definition: CscKnowledgeItem.h:78
CscGeneration
Definition: CscGeneration.h:20
POS_Z
@ POS_Z
Definition: CscMemberInputStatus.h:15
CscMemberInputPonderation
Definition: CscMemberInputPonderation.h:19
YAW
@ YAW
Definition: CscMemberInputStatus.h:16
POS_X
@ POS_X
Definition: CscMemberInputStatus.h:15
conscience_core::knowledge::CscKnowledgeItemTargetMemberToStateFromMember::strategyElitism
map< CscStrategyType, float > strategyElitism
Definition: CscKnowledgeItemTargetMemberToStateFromMember.h:50
CscEnvironmentSimulator
Definition: CscEnvironmentSimulator.h:35
CscMemberInputPonderation::values
map< CscInputType, float > values
Definition: CscMemberInputPonderation.h:22
conscience_core::knowledge::CscKnowledgeItemTargetMemberToStateFromMember::create
static CscKnowledgeItemTargetMemberToStateFromMember * create(int targetId, string targetName, string baseMemberName, string targetMemberName, float posX, float posY, float posZ, float posPondX, float posPondY, float posPondZ, float pitch, float yaw, float roll, float pitchPond, float yawPond, float rollPond, float accX, float accY, float accZ, float accPondX, float accPondY, float accPondZ, CscUnitType unitType, bool symemtrySearch, int nbStateMax, int deltaPerStateMax, bool optionCutLastestIfTheSameAndWorst, bool optionCutBeginingIfTheSame, bool optionDeltaPerStateMaxDegressive, float percentAvg, float percentMax, int stateDuration, int stateDelay, float solvedAt, bool outputTypes[4], CscArtificialIntelligenceTypes aiTypes, float processAt)
Definition: CscKnowledgeItemTargetMemberToStateFromMember.h:53
conscience_core::knowledge::CscKnowledgeItemTargetMemberToStateFromMember::memberBaseName
string memberBaseName
Definition: CscKnowledgeItemTargetMemberToStateFromMember.h:39
CscMemberInputStatus
Definition: CscMemberInputStatus.h:26
conscience_core::knowledge::CscKnowledgeItem::TargetMemberPonderation::memberValues
CscMemberInputPonderation * memberValues
Definition: CscKnowledgeItem.h:84
conscience_core::knowledge::CscKnowledgeItem::TargetMemberPonderation
Definition: CscKnowledgeItem.h:83
conscience_core::knowledge::CscKnowledgeItem
Definition: CscKnowledgeItem.h:43
ACC_X
@ ACC_X
Definition: CscMemberInputStatus.h:14