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 /****************************************************************************/
16 // The class the low-level policy stimulus
17 /****************************************************************************/
18 
19 #ifndef MSSOTLPOLICY5DSTIMULUS_H_
20 #define MSSOTLPOLICY5DSTIMULUS_H_
21 
22 // ===========================================================================
23 // included modules
24 // ===========================================================================
25 #include <config.h>
26 
27 //#define SWARM_DEBUG
30 #include <sstream>
31 #include <cmath>
33 
42 
43 private:
44 
45  double stimCoxDVal,
49 
50 public:
51 
52  MSSOTLPolicy5DStimulus(std::string keyPrefix, const std::map<std::string, std::string>& parameters);
53 
54  double getStimCox() {
55  std::string key = getKeyPrefix() + "_STIM_COX";
56  return getDouble(key, stimCoxDVal);
57  }
58  void setStimCoxDefVal(double defVal) {
59  stimCoxDVal = defVal;
60  }
61  double getStimOffsetIn() {
62  std::string key = getKeyPrefix() + "_STIM_OFFSET_IN";
63  return getDouble(key, stimOffsetInDVal);
64  }
65  void setStimOffsetInDefVal(double defVal) {
66  stimOffsetInDVal = defVal;
67  }
68  double getStimOffsetOut() {
69  std::string key = getKeyPrefix() + "_STIM_OFFSET_OUT";
70  return getDouble(key, stimOffsetOutDVal);
71  }
72 
73  void setStimOffsetOutDefVal(double defVal) {
74  stimOffsetOutDVal = defVal;
75  }
76 
78  std::string key = getKeyPrefix() + "_STIM_OFFSET_DISPERSION_IN";
80  }
81  void setStimOffsetDispersionInDefVal(double defVal) {
83  }
85  std::string key = getKeyPrefix() + "_STIM_OFFSET_DISPERSION_OUT";
87  }
88  void setStimOffsetDispersionOutDefVal(double defVal) {
90  }
91  double getStimDivisorIn() {
92  std::string key = getKeyPrefix() + "_STIM_DIVISOR_IN";
93  return getDouble(key, stimDivInDVal);
94  }
95 
96  void setStimDivisorInDefVal(double defVal) {
97  stimDivInDVal = defVal;
98  }
99 
100  double getStimDivisorOut() {
101  std::string key = getKeyPrefix() + "_STIM_DIVISOR_OUT";
102  return getDouble(key, stimDivOutDVal);
103  }
104 
105  void setStimDivisorOutDefVal(double defVal) {
106  stimDivOutDVal = defVal;
107  }
108 
110  std::string key = getKeyPrefix() + "_STIM_DIVISOR_DISPERSION_IN";
111  return getDouble(key, stimDivDispersionInDVal);
112  }
113 
114  void setStimDivisorDispersionInDefVal(double defVal) {
115  stimDivDispersionInDVal = defVal;
116  }
118  std::string key = getKeyPrefix() + "_STIM_DIVISOR_DISPERSION_OUT";
119  return getDouble(key, stimDivDispersionOutDVal);
120  }
121 
122  void setStimDivisorDispersionOutDefVal(double defVal) {
123  stimDivDispersionOutDVal = defVal;
124  }
125  double getStimCoxExpIn() {
126  std::string key = getKeyPrefix() + "_STIM_COX_EXP_IN";
127  return getDouble(key, stimCoxExpInDVal);
128  }
129  void setStimCoxExpInDefVal(double defVal) {
130  stimCoxExpInDVal = defVal;
131  }
132  double getStimCoxExpOut() {
133  std::string key = getKeyPrefix() + "_STIM_COX_EXP_OUT";
134  return getDouble(key, stimCoxExpOutDVal);
135  }
136  void setStimCoxExpOutDefVal(double defVal) {
137  stimCoxExpOutDVal = defVal;
138  }
139 
141  std::string key = getKeyPrefix() + "_STIM_COX_EXP_DISPERSION_IN";
143  }
144  void setStimCoxExpDispersionInDefVal(double defVal) {
146  }
148  std::string key = getKeyPrefix() + "_STIM_COX_EXP_DISPERSION_OUT";
150  }
151  void setStimCoxExpDispersionOutDefVal(double defVal) {
153  }
154  std::string getMessage();
159  virtual double computeDesirability(double vehInMeasure,
160  double vehOutMeasure);
161 
162  virtual double computeDesirability(double vehInMeasure, double vehOutMeasure, double vehInDispersionMeasure, double vehOutDispersionMeasure);
163 };
164 
165 #endif /* MSSOTLPOLICYSTIMULUS_H_ */
MSSOTLPolicy5DStimulus::setStimCoxDefVal
void setStimCoxDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:58
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:78
MSSOTLPolicy5DStimulus::getStimDivisorIn
double getStimDivisorIn()
Definition: MSSOTLPolicy5DStimulus.h:91
MSSOTLPolicy5DStimulus::setStimOffsetOutDefVal
void setStimOffsetOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:73
MsgHandler.h
MSSOTLPolicy5DStimulus::getStimDivisorDispersionOut
double getStimDivisorDispersionOut()
Definition: MSSOTLPolicy5DStimulus.h:117
MSSOTLPolicy5DStimulus::setStimOffsetDispersionInDefVal
void setStimOffsetDispersionInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:81
MSSOTLPolicy5DStimulus::getStimDivisorOut
double getStimDivisorOut()
Definition: MSSOTLPolicy5DStimulus.h:100
MSSOTLPolicy5DStimulus::stimCoxExpDispersionOutDVal
double stimCoxExpDispersionOutDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::stimDivDispersionOutDVal
double stimDivDispersionOutDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::stimCoxDVal
double stimCoxDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::getStimOffsetIn
double getStimOffsetIn()
Definition: MSSOTLPolicy5DStimulus.h:61
MSSOTLPolicy5DStimulus::setStimCoxExpOutDefVal
void setStimCoxExpOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:136
MSSOTLPolicy5DStimulus::setStimCoxExpDispersionOutDefVal
void setStimCoxExpDispersionOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:151
MSSOTLPolicy5DStimulus::stimOffsetInDVal
double stimOffsetInDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::getStimCoxExpIn
double getStimCoxExpIn()
Definition: MSSOTLPolicy5DStimulus.h:125
MSSOTLPolicy5DStimulus
Definition: MSSOTLPolicy5DStimulus.h:41
MSSOTLPolicy5DStimulus::getStimOffsetDispersionIn
double getStimOffsetDispersionIn()
Definition: MSSOTLPolicy5DStimulus.h:77
MSSOTLPolicy5DStimulus::setStimCoxExpDispersionInDefVal
void setStimCoxExpDispersionInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:144
MSSOTLPolicy5DStimulus::setStimDivisorInDefVal
void setStimDivisorInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:96
MSSOTLPolicy5DStimulus::getStimCoxExpDispersionIn
double getStimCoxExpDispersionIn()
Definition: MSSOTLPolicy5DStimulus.h:140
MSSOTLPolicy5DStimulus::setStimOffsetDispersionOutDefVal
void setStimOffsetDispersionOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:88
MSSOTLPolicy5DStimulus::setStimDivisorDispersionInDefVal
void setStimDivisorDispersionInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:114
MSSOTLPolicy5DStimulus::setStimDivisorDispersionOutDefVal
void setStimDivisorDispersionOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:122
MSSOTLPolicy5DStimulus::stimOffsetOutDVal
double stimOffsetOutDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::setStimOffsetInDefVal
void setStimOffsetInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:65
MSSOTLPolicy5DStimulus::getMessage
std::string getMessage()
Definition: MSSOTLPolicy5DStimulus.cpp:82
MSSOTLPolicy5DStimulus::getStimCoxExpDispersionOut
double getStimCoxExpDispersionOut()
Definition: MSSOTLPolicy5DStimulus.h:147
MSSOTLPolicy5DStimulus::getStimOffsetDispersionOut
double getStimOffsetDispersionOut()
Definition: MSSOTLPolicy5DStimulus.h:84
MSSOTLPolicy5DStimulus::getStimOffsetOut
double getStimOffsetOut()
Definition: MSSOTLPolicy5DStimulus.h:68
MSSOTLPolicy5DStimulus::stimDivOutDVal
double stimDivOutDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicyDesirability::getKeyPrefix
std::string getKeyPrefix()
Definition: MSSOTLPolicyDesirability.h:62
MSSOTLPolicy5DStimulus::getStimCox
double getStimCox()
Definition: MSSOTLPolicy5DStimulus.h:54
MSSOTLPolicy5DStimulus::stimDivDispersionInDVal
double stimDivDispersionInDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::stimDivInDVal
double stimDivInDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::stimCoxExpDispersionInDVal
double stimCoxExpDispersionInDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::getStimDivisorDispersionIn
double getStimDivisorDispersionIn()
Definition: MSSOTLPolicy5DStimulus.h:109
MSSOTLPolicyDesirability.h
MSSOTLPolicy5DStimulus::getStimCoxExpOut
double getStimCoxExpOut()
Definition: MSSOTLPolicy5DStimulus.h:132
config.h
MSSOTLPolicy5DStimulus::stimCoxExpOutDVal
double stimCoxExpOutDVal
Definition: MSSOTLPolicy5DStimulus.h:45
SwarmDebug.h
MSSOTLPolicy5DStimulus::MSSOTLPolicy5DStimulus
MSSOTLPolicy5DStimulus(std::string keyPrefix, const std::map< std::string, std::string > &parameters)
Definition: MSSOTLPolicy5DStimulus.cpp:21
MSSOTLPolicy5DStimulus::stimCoxExpInDVal
double stimCoxExpInDVal
Definition: MSSOTLPolicy5DStimulus.h:45
MSSOTLPolicy5DStimulus::setStimDivisorOutDefVal
void setStimDivisorOutDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:105
MSSOTLPolicyDesirability
This class determines the desirability algorithm of a MSSOTLPolicy when used in combination with a hi...
Definition: MSSOTLPolicyDesirability.h:36
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:81
MSSOTLPolicy5DStimulus::setStimCoxExpInDefVal
void setStimCoxExpInDefVal(double defVal)
Definition: MSSOTLPolicy5DStimulus.h:129