99 std::shared_ptr<StopPathNode>
prev =
nullptr;
101 std::shared_ptr<StopPathNode>
getSuccessor(
const std::vector<StopEdgeInfo>& stops,
double minSkipped);
106 const std::shared_ptr<StopPathNode>& b)
const {
107 if (a->skippedPrio == b->skippedPrio) {
108 if (a->trackChanges == b->trackChanges) {
109 return a->cost > b->cost;
111 return a->trackChanges > b->trackChanges;
113 return a->skippedPrio > b->skippedPrio;
118 const MSEdge* to,
double toPos,
std::vector< const MSEdge * > ConstMSEdgeVector
MSBaseVehicle::StopEdgeInfo StopEdgeInfo
The base class for microscopic and mesoscopic vehicles.
A road/street connecting two junctions.
Finds a sequence of skips and stop alternatives to maximize priority of reached stops.
MSStopOptimizer(MSBaseVehicle *veh, SUMOAbstractRouter< MSEdge, SUMOVehicle > &router, SUMOTime t, SUMOTime maxDelay)
Constructor.
SUMOAbstractRouter< MSEdge, SUMOVehicle > & myRouter
ConstMSEdgeVector optimizeSkipped(const MSEdge *source, double sourcePos, std::vector< StopEdgeInfo > &stops, ConstMSEdgeVector edges) const
bool reachableInTime(const MSEdge *from, double fromPos, const MSEdge *to, double toPos, SUMOTime arrival, ConstMSEdgeVector &into) const
virtual ~MSStopOptimizer()
Destructor.
MSBaseVehicle * myVehicle
std::pair< std::string, SumoXMLTag > nameTag
optional info about stopping place
information used during skip/alternative optimization
const MSStopOptimizer & so
std::shared_ptr< StopPathNode > prev
std::shared_ptr< StopPathNode > getSuccessor(const std::vector< StopEdgeInfo > &stops, double minSkipped)
StopPathNode(const MSStopOptimizer &_so, const StopEdgeInfo &o)
bool operator()(const std::shared_ptr< StopPathNode > &a, const std::shared_ptr< StopPathNode > &b) const