@@ -94,7 +94,7 @@ namespace dsf {
9494 // / @brief Evolve the agents.
9595 // / @details Puts all new agents on a street, if possible, decrements all delays
9696 // / and increments all travel times.
97- void m_evolveAgent (std::unique_ptr<Agent> const & pAgent);
97+ // void m_evolveAgent(std::unique_ptr<Agent> const& pAgent);
9898
9999 void m_trafficlightSingleTailOptimizer (double const & beta,
100100 std::optional<std::ofstream>& logStream);
@@ -614,8 +614,8 @@ namespace dsf {
614614 }
615615
616616 if (possibleMoves.empty ()) {
617- throw std::runtime_error (std::format (
618- " No possible moves for agent {} at node {}." , pAgent-> id () , nodeId));
617+ throw std::runtime_error (
618+ std::format ( " No possible moves for agent {} at node {}." , * pAgent, nodeId));
619619 }
620620
621621 if (possibleMoves.size () == 1 ) {
@@ -743,21 +743,15 @@ namespace dsf {
743743 auto const timeDiff{this ->time () - pAgentTemp->freeTime ()};
744744 if (timeDiff > 120 ) {
745745 overtimed = true ;
746- Logger::warning (std::format (
747- " Time {} - Agent ({} -> {}) currently on {} ({} -> {}), targetting {} "
748- " ({} turn - "
749- " Traffic "
750- " Light? {}), has been still for more than 120 seconds ({} seconds)" ,
751- this ->time (),
752- pAgentTemp->srcNodeId ().value_or (-1 ),
753- this ->m_itineraries .at (pAgentTemp->itineraryId ())->destination (),
754- pStreet->id (),
755- pStreet->source (),
756- pStreet->target (),
757- pAgentTemp->nextStreetId ().value_or (-1 ),
758- directionToString.at (pStreet->laneMapping ().at (queueIndex)),
759- this ->graph ().node (pStreet->target ())->isTrafficLight (),
760- timeDiff));
746+ Logger::warning (
747+ std::format (" Time {} - {} currently on {} ({} turn - Traffic Light? {}), "
748+ " has been still for more than 120 seconds ({} seconds)" ,
749+ this ->time (),
750+ *pAgentTemp,
751+ *pStreet,
752+ directionToString.at (pStreet->laneMapping ().at (queueIndex)),
753+ this ->graph ().node (pStreet->target ())->isTrafficLight (),
754+ timeDiff));
761755 }
762756 }
763757 pAgentTemp->setSpeed (0 .);
@@ -946,27 +940,24 @@ namespace dsf {
946940 continue ;
947941 }
948942 if (!pAgentTemp->streetId ().has_value ()) {
949- Logger::error (std::format (" Agent {} has no street id" , pAgentTemp-> id () ));
943+ Logger::error (std::format (" {} has no street id" , * pAgentTemp));
950944 }
951945 auto const & nextStreet{this ->graph ().edge (pAgentTemp->nextStreetId ().value ())};
952946 if (nextStreet->isFull ()) {
953947 if (overtimed) {
954- Logger::warning (std::format (
955- " Skipping agent emission from street {} -> {} due to full next street "
956- " {} - strId {} ({}/{})" ,
957- pStreet->source (),
958- pStreet->target (),
959- nextStreet->id (),
960- nextStreet->strId ().value_or (" None" ),
961- nextStreet->nAgents (),
962- nextStreet->capacity ()));
948+ Logger::warning (
949+ std::format (" Skipping agent emission from street {} -> {} due to full "
950+ " next street: {}" ,
951+ pStreet->source (),
952+ pStreet->target (),
953+ *nextStreet));
963954 } else {
964- Logger::debug (std::format (
965- " Skipping agent emission from street {} -> {} due to full next street "
966- " {}" ,
967- pStreet->source (),
968- pStreet->target (),
969- nextStreet-> id () ));
955+ Logger::debug (
956+ std::format ( " Skipping agent emission from street {} -> {} due to full "
957+ " next street: {}" ,
958+ pStreet->source (),
959+ pStreet->target (),
960+ * nextStreet));
970961 }
971962 continue ;
972963 }
@@ -1012,7 +1003,7 @@ namespace dsf {
10121003 auto & pAgent{it->second };
10131004 auto const & nextStreet{this ->graph ().edge (pAgent->nextStreetId ().value ())};
10141005 if (nextStreet->isFull ()) {
1015- Logger::debug (std::format (" Next street {} is full" , nextStreet-> id () ));
1006+ Logger::debug (std::format (" Next street is full: {} " , * nextStreet));
10161007 if (m_forcePriorities) {
10171008 Logger::debug (
10181009 std::format (" Forcing priority from intersection {} on street {}" ,
@@ -1029,12 +1020,11 @@ namespace dsf {
10291020 std::ceil (nextStreet->length () / pAgent->speed ()));
10301021 Logger::debug (std::format (
10311022 " An agent at time {} has been dequeued from intersection {} and "
1032- " enqueued on street {} with speed {} and free time {}" ,
1023+ " enqueued on street {}: {}" ,
10331024 this ->time (),
10341025 pNode->id (),
10351026 nextStreet->id (),
1036- pAgent->speed (),
1037- pAgent->freeTime ()));
1027+ *pAgent));
10381028 nextStreet->addAgent (std::move (pAgent));
10391029 it = intersection.agents ().erase (it);
10401030 break ;
@@ -1064,12 +1054,11 @@ namespace dsf {
10641054 std::ceil (nextStreet->length () / pAgent->speed ()));
10651055 Logger::debug (
10661056 std::format (" An agent at time {} has been dequeued from roundabout {} and "
1067- " enqueued on street {} with speed {} and free time {}" ,
1057+ " enqueued on street {}: {}" ,
10681058 this ->time (),
10691059 pNode->id (),
10701060 nextStreet->id (),
1071- pAgent->speed (),
1072- pAgent->freeTime ()));
1061+ *pAgent));
10731062 nextStreet->addAgent (std::move (pAgent));
10741063 } else {
10751064 return ;
@@ -1078,11 +1067,11 @@ namespace dsf {
10781067 }
10791068 }
10801069
1081- template <typename delay_t >
1082- requires (is_numeric_v<delay_t >)
1083- void RoadDynamics<delay_t >::m_evolveAgent(std::unique_ptr<Agent> const & pAgent) {
1084- // The "cost" of enqueuing is one time unit, so we consider it as passed
1085- }
1070+ // template <typename delay_t>
1071+ // requires(is_numeric_v<delay_t>)
1072+ // void RoadDynamics<delay_t>::m_evolveAgent(std::unique_ptr<Agent> const& pAgent) {
1073+ // // The "cost" of enqueuing is one time unit, so we consider it as passed
1074+ // }
10861075
10871076 template <typename delay_t >
10881077 requires (is_numeric_v<delay_t >)
@@ -1512,11 +1501,8 @@ namespace dsf {
15121501 this ->graph ().edge (pAgent->nextStreetId ().value ())}; // next street
15131502 if (nextStreet->isFull ()) {
15141503 ++itAgent;
1515- Logger::debug (
1516- std::format (" Skipping agent {} on node {} due to full initial street {}" ,
1517- pAgent->id (),
1518- srcNode->id (),
1519- nextStreet->id ()));
1504+ Logger::debug (std::format (
1505+ " Skipping agent {} due to full input street {}" , *pAgent, *nextStreet));
15201506 continue ;
15211507 }
15221508 assert (srcNode->id () == nextStreet->source ());
@@ -1872,12 +1858,11 @@ namespace dsf {
18721858 direction == Direction::RIGHTANDSTRAIGHT) {
18731859 auto const & pStreet{this ->graph ().edge (streetId)};
18741860 if (logStream.has_value ()) {
1875- *logStream << std::format (" \t Free cycle ({}) for {} -> {}: {} {}\n " ,
1876- directionToString[direction],
1861+ *logStream << std::format (" \t Free cycle for {} -> {}: dir {} - {}\n " ,
18771862 pStreet->source (),
18781863 pStreet->target (),
1879- freecycle. greenTime () ,
1880- freecycle. phase () );
1864+ directionToString[direction] ,
1865+ freecycle);
18811866 }
18821867 cycle = freecycle;
18831868 }
@@ -1908,21 +1893,7 @@ namespace dsf {
19081893
19091894 tl.setCycles (cycles);
19101895 if (logStream.has_value ()) {
1911- std::string logMsg =
1912- std::format (" \t New cycles for TL {} ({}):\n " , tl.id (), tl.cycleTime ());
1913- for (auto const & [streetId, pair] : tl.cycles ()) {
1914- auto const & pStreet{this ->graph ().edge (streetId)};
1915- logMsg +=
1916- std::format (" \t\t Street {} -> {}: " , pStreet->source (), pStreet->target ());
1917- for (auto const & [direction, cycle] : pair) {
1918- logMsg += std::format (" {}= ({} {}) " ,
1919- directionToString[direction],
1920- cycle.greenTime (),
1921- cycle.phase ());
1922- }
1923- logMsg += ' \n ' ;
1924- }
1925- *logStream << logMsg << ' \n ' ;
1896+ *logStream << std::format (" \n New cycles for {}" , tl);
19261897 }
19271898 }
19281899 if (logStream.has_value ()) {
@@ -1995,21 +1966,7 @@ namespace dsf {
19951966 (pStreet->maxSpeed () * (1 . - 0.6 * pStreet->density (true ))));
19961967 optimizedNodes.insert (sourceId);
19971968 if (logStream.has_value ()) {
1998- std::string logMsg =
1999- std::format (" \t New cycles for TL {} ({}):\n " , tl.id (), tl.cycleTime ());
2000- for (auto const & [streetId, pair] : tl.cycles ()) {
2001- auto const & pStreet{this ->graph ().edge (streetId)};
2002- logMsg += std::format (
2003- " \t\t Street {} -> {}: " , pStreet->source (), pStreet->target ());
2004- for (auto const & [direction, cycle] : pair) {
2005- logMsg += std::format (" {}= ({} {}) " ,
2006- directionToString[direction],
2007- cycle.greenTime (),
2008- cycle.phase ());
2009- }
2010- logMsg += ' \n ' ;
2011- }
2012- *logStream << logMsg << ' \n ' ;
1969+ *logStream << std::format (" \n New cycles for {}" , tl);
20131970 }
20141971 }
20151972 }
0 commit comments