Dynamical system model
|
A stochastic street is a street with a flow rate parameter. More...
#include <Street.hpp>
Public Member Functions | |
StochasticStreet (Id id, const Street &street, double flowRate) | |
StochasticStreet (Id id, std::pair< Id, Id > nodePair, double length=Road::meanVehicleLength(), double maxSpeed=13.8888888889, int nLanes=1, std::string name=std::string(), double flowRate=1., std::optional< int > capacity=std::nullopt, int transportCapacity=1) | |
void | setFlowRate (double const flowRate) |
double | flowRate () const |
bool | isStochastic () const final |
Public Member Functions inherited from dsm::Street | |
Street (Id id, const Street &) | |
Construct a new Street object starting from an existing street. | |
Street (Id id, std::pair< Id, Id > nodePair, double length=Road::meanVehicleLength(), double maxSpeed=13.8888888889, int nLanes=1, std::string name=std::string(), std::optional< int > capacity=std::nullopt, int transportCapacity=1) | |
Construct a new Street object. | |
void | setQueue (dsm::queue< Size > queue, size_t index) |
Set the street's queue. | |
std::vector< Id > const & | movingAgents () const |
Get the street's waiting agents. | |
const dsm::queue< Size > & | queue (size_t index) const |
Get the street's queue. | |
const std::vector< dsm::queue< Size > > & | exitQueues () const |
Get the street's queues. | |
int | nAgents () const final |
Get the number of agents on the street. | |
double | density (bool normalized=false) const final |
Get the street's density in or in , if normalized. | |
bool | isFull () const final |
Check if the street is full. | |
int | nMovingAgents () const override |
int | nExitingAgents () const final |
Get the number of agents on all queues. | |
std::vector< Direction > const & | laneMapping () const |
void | addAgent (Id agentId) override |
void | enqueue (Id agentId, size_t index) |
Add an agent to the street's queue. | |
virtual std::optional< Id > | dequeue (size_t index) |
Remove an agent from the street's queue. | |
virtual bool | isSpire () const |
Check if the street is a spire. | |
Public Member Functions inherited from dsm::Road | |
Road (Id id, const Road &) | |
Construct a new Road object starting from an existing road. | |
Road (Id id, std::pair< Id, Id > nodePair, double length=m_meanVehicleLength, double maxSpeed=13.8888888889, int nLanes=1, std::string name=std::string(), std::optional< int > capacity=std::nullopt, int transportCapacity=1) | |
Construct a new Road object. | |
void | setMaxSpeed (double speed) |
Set the maximum speed, in meters per second (default is 50 km/h) | |
double | length () const |
Get the length, in meters. | |
double | maxSpeed () const |
Get the maximum speed, in meters per second. | |
int | nLanes () const |
Get the number of lanes. | |
std::string | name () const |
Get the name. | |
Public Member Functions inherited from dsm::Edge | |
Edge (Id id, std::pair< Id, Id > nodePair, int capacity=1, int transportCapacity=1, double angle=0.0) | |
Construct a new Edge object. | |
void | setCapacity (int capacity) |
void | setTransportCapacity (int capacity) |
void | setAngle (std::pair< double, double > srcNodeCoordinates, std::pair< double, double > dstNodeCoordinates) |
Id | id () const |
Get the edge's id. | |
Id | u () const |
Get the edge's source node id. | |
Id | v () const |
Get the edge's destination node id. | |
std::pair< Id, Id > const & | nodePair () const |
Get the edge's node pair. | |
int | capacity () const |
Get the edge's capacity, in number of agents. | |
int | transportCapacity () const |
Get the edge's transport capacity, in number of agents. | |
double | angle () const |
Get the edge's angle, in radians, between the source and destination nodes. | |
double | deltaAngle (double const previousEdgeAngle) const |
Additional Inherited Members | |
Static Public Member Functions inherited from dsm::Street | |
static void | setMeanVehicleLength (double meanVehicleLength) |
Set the mean vehicle length. | |
Static Public Member Functions inherited from dsm::Road | |
static void | setMeanVehicleLength (double meanVehicleLength) |
Set the mean vehicle length, in meters (default is 5) | |
static double | meanVehicleLength () |
Get the mean vehicle length. | |
Protected Attributes inherited from dsm::Road | |
double | m_length |
double | m_maxSpeed |
int | m_nLanes |
std::string | m_name |
Protected Attributes inherited from dsm::Edge | |
Id | m_id |
std::pair< Id, Id > | m_nodePair |
int | m_capacity |
int | m_transportCapacity |
double | m_angle |
Static Protected Attributes inherited from dsm::Road | |
static double | m_meanVehicleLength |
A stochastic street is a street with a flow rate parameter.
The Stochastic Street is used to replace traffic lights with a lower level of detail. The idea is to model the flow of agents in a street as a stochastic process, limiting the number of agents that can exit using a parameter in [0, 1]. Thus, the flow rate parameter represents the ratio between the green time of the traffic light and the total time of the traffic light cycle.
|
finalvirtual |
Reimplemented from dsm::Street.