Eclipse SUMO - Simulation of Urban MObility
MSSOTLPolicy5DStimulus.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2013-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
15 // The class the low-level policy stimulus
16 /****************************************************************************/
17 
18 #ifndef MSSOTLPOLICY5DSTIMULUS_H_
19 #define MSSOTLPOLICY5DSTIMULUS_H_
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 //#define SWARM_DEBUG
29 #include <sstream>
30 #include <cmath>
32 
41 
42 private:
43 
44  double stimCoxDVal,
48 
49 public:
50 
51  MSSOTLPolicy5DStimulus(std::string keyPrefix, const std::map<std::string, std::string>& parameters);
52 
53  double getStimCox() {
54  std::string key = getKeyPrefix() + "_STIM_COX";
55  return getDouble(key, stimCoxDVal);
56  }
57  void setStimCoxDefVal(double defVal) {
58  stimCoxDVal = defVal;
59  }
60  double getStimOffsetIn() {
61  std::string key = getKeyPrefix() + "_STIM_OFFSET_IN";
62  return getDouble(key, stimOffsetInDVal);
63  }
64  void setStimOffsetInDefVal(double defVal) {
65  stimOffsetInDVal = defVal;
66  }
67  double getStimOffsetOut() {
68  std::string key = getKeyPrefix() + "_STIM_OFFSET_OUT";
69  return getDouble(key, stimOffsetOutDVal);
70  }
71 
72  void setStimOffsetOutDefVal(double defVal) {
73  stimOffsetOutDVal = defVal;
74  }
75 
77  std::string key = getKeyPrefix() + "_STIM_OFFSET_DISPERSION_IN";
79  }
80  void setStimOffsetDispersionInDefVal(double defVal) {
82  }
84  std::string key = getKeyPrefix() + "_STIM_OFFSET_DISPERSION_OUT";
86  }
87  void setStimOffsetDispersionOutDefVal(double defVal) {
89  }
90  double getStimDivisorIn() {
91  std::string key = getKeyPrefix() + "_STIM_DIVISOR_IN";
92  return getDouble(key, stimDivInDVal);
93  }
94 
95  void setStimDivisorInDefVal(double defVal) {
96  stimDivInDVal = defVal;
97  }
98 
99  double getStimDivisorOut() {
100  std::string key = getKeyPrefix() + "_STIM_DIVISOR_OUT";
101  return getDouble(key, stimDivOutDVal);
102  }
103 
104  void setStimDivisorOutDefVal(double defVal) {
105  stimDivOutDVal = defVal;
106  }
107 
109  std::string key = getKeyPrefix() + "_STIM_DIVISOR_DISPERSION_IN";
110  return getDouble(key, stimDivDispersionInDVal);
111  }
112 
113  void setStimDivisorDispersionInDefVal(double defVal) {
114  stimDivDispersionInDVal = defVal;
115  }
117  std::string key = getKeyPrefix() + "_STIM_DIVISOR_DISPERSION_OUT";
118  return getDouble(key, stimDivDispersionOutDVal);
119  }
120 
121  void setStimDivisorDispersionOutDefVal(double defVal) {
122  stimDivDispersionOutDVal = defVal;
123  }
124  double getStimCoxExpIn() {
125  std::string key = getKeyPrefix() + "_STIM_COX_EXP_IN";
126  return getDouble(key, stimCoxExpInDVal);
127  }
128  void setStimCoxExpInDefVal(double defVal) {
129  stimCoxExpInDVal = defVal;
130  }
131  double getStimCoxExpOut() {
132  std::string key = getKeyPrefix() + "_STIM_COX_EXP_OUT";
133  return getDouble(key, stimCoxExpOutDVal);
134  }
135  void setStimCoxExpOutDefVal(double defVal) {
136  stimCoxExpOutDVal = defVal;
137  }
138 
140  std::string key = getKeyPrefix() + "_STIM_COX_EXP_DISPERSION_IN";
142  }
143  void setStimCoxExpDispersionInDefVal(double defVal) {
145  }
147  std::string key = getKeyPrefix() + "_STIM_COX_EXP_DISPERSION_OUT";
149  }
150  void setStimCoxExpDispersionOutDefVal(double defVal) {
152  }
153  std::string getMessage();
158  virtual double computeDesirability(double vehInMeasure,
159  double vehOutMeasure);
160 
161  virtual double computeDesirability(double vehInMeasure, double vehOutMeasure, double vehInDispersionMeasure, double vehOutDispersionMeasure);
162 };
163 
164 #endif /* MSSOTLPOLICYSTIMULUS_H_ */
MSSOTLPolicy5DStimulus::setStimCoxDefVal
void setStimCoxDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:57
MSSOTLPolicy5DStimulus::computeDesirability
virtual double computeDesirability(double vehInMeasure, double vehOutMeasure)
Computes stimulus function stimulus = cox * exp(-pow(pheroIn - offsetIn, 2)/divisor -pow(pheroOut - o...
Definition: MSSOTLPolicy5DStimulus.cpp:77
MSSOTLPolicy5DStimulus::getStimDivisorIn
double getStimDivisorIn()
Definition: MSSOTLPolicy5DStimulus.h:90
MSSOTLPolicy5DStimulus::setStimOffsetOutDefVal
void setStimOffsetOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:72
MsgHandler.h
MSSOTLPolicy5DStimulus::getStimDivisorDispersionOut
double getStimDivisorDispersionOut()
Definition: MSSOTLPolicy5DStimulus.h:116
MSSOTLPolicy5DStimulus::setStimOffsetDispersionInDefVal
void setStimOffsetDispersionInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:80
MSSOTLPolicy5DStimulus::getStimDivisorOut
double getStimDivisorOut()
Definition: MSSOTLPolicy5DStimulus.h:99
MSSOTLPolicy5DStimulus::stimCoxExpDispersionOutDVal
double stimCoxExpDispersionOutDVal
Definition: MSSOTLPolicy5DStimulus.h:47
MSSOTLPolicy5DStimulus::stimDivDispersionOutDVal
double stimDivDispersionOutDVal
Definition: MSSOTLPolicy5DStimulus.h:46
MSSOTLPolicy5DStimulus::stimCoxDVal
double stimCoxDVal
Definition: MSSOTLPolicy5DStimulus.h:44
MSSOTLPolicy5DStimulus::getStimOffsetIn
double getStimOffsetIn()
Definition: MSSOTLPolicy5DStimulus.h:60
MSSOTLPolicy5DStimulus::setStimCoxExpOutDefVal
void setStimCoxExpOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:135
MSSOTLPolicy5DStimulus::setStimCoxExpDispersionOutDefVal
void setStimCoxExpDispersionOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:150
MSSOTLPolicy5DStimulus::stimOffsetInDVal
double stimOffsetInDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::getStimCoxExpIn
double getStimCoxExpIn()
Definition: MSSOTLPolicy5DStimulus.h:124
MSSOTLPolicy5DStimulus
Definition: MSSOTLPolicy5DStimulus.h:40
MSSOTLPolicy5DStimulus::getStimOffsetDispersionIn
double getStimOffsetDispersionIn()
Definition: MSSOTLPolicy5DStimulus.h:76
MSSOTLPolicy5DStimulus::setStimCoxExpDispersionInDefVal
void setStimCoxExpDispersionInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:143
MSSOTLPolicy5DStimulus::setStimDivisorInDefVal
void setStimDivisorInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:95
MSSOTLPolicy5DStimulus::getStimCoxExpDispersionIn
double getStimCoxExpDispersionIn()
Definition: MSSOTLPolicy5DStimulus.h:139
MSSOTLPolicy5DStimulus::setStimOffsetDispersionOutDefVal
void setStimOffsetDispersionOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:87
MSSOTLPolicy5DStimulus::setStimDivisorDispersionInDefVal
void setStimDivisorDispersionInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:113
MSSOTLPolicy5DStimulus::setStimDivisorDispersionOutDefVal
void setStimDivisorDispersionOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:121
MSSOTLPolicy5DStimulus::stimOffsetOutDVal
double stimOffsetOutDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::setStimOffsetInDefVal
void setStimOffsetInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:64
MSSOTLPolicy5DStimulus::getMessage
std::string getMessage()
Definition: MSSOTLPolicy5DStimulus.cpp:81
MSSOTLPolicy5DStimulus::getStimCoxExpDispersionOut
double getStimCoxExpDispersionOut()
Definition: MSSOTLPolicy5DStimulus.h:146
MSSOTLPolicy5DStimulus::getStimOffsetDispersionOut
double getStimOffsetDispersionOut()
Definition: MSSOTLPolicy5DStimulus.h:83
MSSOTLPolicy5DStimulus::getStimOffsetOut
double getStimOffsetOut()
Definition: MSSOTLPolicy5DStimulus.h:67
MSSOTLPolicy5DStimulus::stimDivOutDVal
double stimDivOutDVal
Definition: MSSOTLPolicy5DStimulus.h:46
MSSOTLPolicyDesirability::getKeyPrefix
std::string getKeyPrefix()
Definition: MSSOTLPolicyDesirability.h:61
MSSOTLPolicy5DStimulus::getStimCox
double getStimCox()
Definition: MSSOTLPolicy5DStimulus.h:53
MSSOTLPolicy5DStimulus::stimDivDispersionInDVal
double stimDivDispersionInDVal
Definition: MSSOTLPolicy5DStimulus.h:46
MSSOTLPolicy5DStimulus::stimDivInDVal
double stimDivInDVal
Definition: MSSOTLPolicy5DStimulus.h:46
MSSOTLPolicy5DStimulus::stimCoxExpDispersionInDVal
double stimCoxExpDispersionInDVal
Definition: MSSOTLPolicy5DStimulus.h:47
MSSOTLPolicy5DStimulus::getStimDivisorDispersionIn
double getStimDivisorDispersionIn()
Definition: MSSOTLPolicy5DStimulus.h:108
MSSOTLPolicyDesirability.h
MSSOTLPolicy5DStimulus::getStimCoxExpOut
double getStimCoxExpOut()
Definition: MSSOTLPolicy5DStimulus.h:131
config.h
MSSOTLPolicy5DStimulus::stimCoxExpOutDVal
double stimCoxExpOutDVal
Definition: MSSOTLPolicy5DStimulus.h:47
SwarmDebug.h
MSSOTLPolicy5DStimulus::MSSOTLPolicy5DStimulus
MSSOTLPolicy5DStimulus(std::string keyPrefix, const std::map< std::string, std::string > &parameters)
Definition: MSSOTLPolicy5DStimulus.cpp:20
MSSOTLPolicy5DStimulus::stimCoxExpInDVal
double stimCoxExpInDVal
Definition: MSSOTLPolicy5DStimulus.h:47
MSSOTLPolicy5DStimulus::setStimDivisorOutDefVal
void setStimDivisorOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:104
MSSOTLPolicyDesirability
This class determines the desirability algorithm of a MSSOTLPolicy when used in combination with a hi...
Definition: MSSOTLPolicyDesirability.h:35
MSSOTLPolicy5DStimulus::stimOffsetDispersionInDVal
double stimOffsetDispersionInDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::stimOffsetDispersionOutDVal
double stimOffsetDispersionOutDVal
Definition: MSSOTLPolicy5DStimulus.h:45
Parameterised::getDouble
double getDouble(const std::string &key, const double defaultValue) const
Returns the value for a given key converted to a double.
Definition: Parameterised.cpp:82
MSSOTLPolicy5DStimulus::setStimCoxExpInDefVal
void setStimCoxExpInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:128