33 #include "../city/AGTime.h"
37 #define REBUILD_ITERATION_LIMIT 2
45 tripSet->push_back(t);
50 std::list<AGTrip>::iterator it;
51 for (it = t.begin(); it != t.end(); ++it) {
52 tripSet->push_back(*it);
63 std::list<AGBusLine>::iterator itBL;
70 std::cerr <<
"ERROR: " << numbErr <<
" bus lines couldn't been completely generated ( " << (float)numbErr * 100.0 / (
float)
myCity->
busLines.size() <<
"% )..." << std::endl;
72 std::cout <<
"no problem during bus line trip generation..." << std::endl;
75 std::cout <<
"after public transportation: " <<
trips.size() << std::endl;
81 std::list<AGHousehold>::iterator itHH;
88 std::cout <<
"WARNING: " << numbErr <<
" ( " << (float)numbErr * 100.0 / (
float)
myCity->
households.size() <<
"% ) households' trips haven't been generated: would probably need more iterations for rebuilding..." << std::endl;
90 std::cout <<
"no problem during households' trips generation..." << std::endl;
93 std::cout <<
"after household activities: " <<
trips.size() << std::endl;
99 std::cerr <<
"ERROR while generating in/Out traffic..." << std::endl;
101 std::cout <<
"no problem during in/out traffic generation..." << std::endl;
104 std::cout <<
"after incoming/outgoing traffic: " <<
trips.size() << std::endl;
110 std::cerr <<
"ERROR while generating random traffic..." << std::endl;
112 std::cout <<
"no problem during random traffic generation..." << std::endl;
115 std::cout <<
"after random traffic: " <<
trips.size() << std::endl;
121 bool generated =
false;
122 std::list<AGTrip> temporaTrips;
124 if (!temporaTrips.empty()) {
125 temporaTrips.clear();
139 generated = ft.generateTrips();
145 addTrips(ft.getPartialActivityTrips(), &temporaTrips);
155 std::list<AGBus>::iterator itB;
156 std::list<AGPosition>::iterator itS;
160 for (itB = bl.
buses.begin(); itB != bl.
buses.end(); ++itB) {
166 if (*itS == t.getDep() || *itS == t.getArr()) {
186 if (*itS == t.getDep() || *itS == t.getArr()) {
210 std::list<AGAdult>::iterator itA;
215 AGTrip wayTrip(
myCity->
cityGates[posi], itA->getWorkPosition().getPosition(), nom, itA->getWorkPosition().getOpening());
218 AGTrip retTrip(itA->getWorkPosition().getPosition(),
myCity->
cityGates[posi], nom, itA->getWorkPosition().getClosing());
219 trips.push_back(wayTrip);
220 trips.push_back(retTrip);
228 std::ostringstream os;
230 return prefix + os.str();
236 int totalTrips = 0, ttOneDayTrips = 0, ttDailyTrips = 0;
237 std::list<AGTrip>::iterator it;
238 for (it =
trips.begin(); it !=
trips.end(); ++it) {
245 totalTrips = ttOneDayTrips + ttDailyTrips *
nbrDays;
247 std::cout <<
"Before Random traffic generation (days are still entire):" << std::endl;
248 std::cout <<
"- Total number of trips: " << totalTrips << std::endl;
249 std::cout <<
"- Total daily trips: " << ttDailyTrips << std::endl;
250 std::cout <<
"- Total one-day trips: " << ttOneDayTrips << std::endl;
256 std::cout <<
"added uniform random trips: " << nbrRandUni << std::endl;
258 for (
int i = 0; i < nbrRandUni; ++i) {
262 AGTrip rdtr(dep, arr,
generateName(i,
"randUni"), depTime.getTime() % 86400, depTime.getDay() + 1);
264 trips.push_back(rdtr);