32 #include "../city/AGTime.h"
36 #define REBUILD_ITERATION_LIMIT 2
44 tripSet->push_back(t);
49 std::list<AGTrip>::iterator it;
50 for (it = t.begin(); it != t.end(); ++it) {
51 tripSet->push_back(*it);
62 std::list<AGBusLine>::iterator itBL;
69 std::cerr <<
"ERROR: " << numbErr <<
" bus lines couldn't been completely generated ( " << (float)numbErr * 100.0 / (
float)
myCity->
busLines.size() <<
"% )..." << std::endl;
71 std::cout <<
"no problem during bus line trip generation..." << std::endl;
74 std::cout <<
"after public transportation: " <<
trips.size() << std::endl;
80 std::list<AGHousehold>::iterator itHH;
87 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;
89 std::cout <<
"no problem during households' trips generation..." << std::endl;
92 std::cout <<
"after household activities: " <<
trips.size() << std::endl;
98 std::cerr <<
"ERROR while generating in/Out traffic..." << std::endl;
100 std::cout <<
"no problem during in/out traffic generation..." << std::endl;
103 std::cout <<
"after incoming/outgoing traffic: " <<
trips.size() << std::endl;
109 std::cerr <<
"ERROR while generating random traffic..." << std::endl;
111 std::cout <<
"no problem during random traffic generation..." << std::endl;
114 std::cout <<
"after random traffic: " <<
trips.size() << std::endl;
120 bool generated =
false;
121 std::list<AGTrip> temporaTrips;
123 if (!temporaTrips.empty()) {
124 temporaTrips.clear();
138 generated = ft.generateTrips();
144 addTrips(ft.getPartialActivityTrips(), &temporaTrips);
154 std::list<AGBus>::iterator itB;
155 std::list<AGPosition>::iterator itS;
159 for (itB = bl.
buses.begin(); itB != bl.
buses.end(); ++itB) {
165 if (*itS == t.getDep() || *itS == t.getArr()) {
185 if (*itS == t.getDep() || *itS == t.getArr()) {
209 std::list<AGAdult>::iterator itA;
214 AGTrip wayTrip(
myCity->
cityGates[posi], itA->getWorkPosition().getPosition(), nom, itA->getWorkPosition().getOpening());
217 AGTrip retTrip(itA->getWorkPosition().getPosition(),
myCity->
cityGates[posi], nom, itA->getWorkPosition().getClosing());
218 trips.push_back(wayTrip);
219 trips.push_back(retTrip);
227 std::ostringstream os;
229 return prefix + os.str();
235 int totalTrips = 0, ttOneDayTrips = 0, ttDailyTrips = 0;
236 std::list<AGTrip>::iterator it;
237 for (it =
trips.begin(); it !=
trips.end(); ++it) {
244 totalTrips = ttOneDayTrips + ttDailyTrips *
nbrDays;
246 std::cout <<
"Before Random traffic generation (days are still entire):" << std::endl;
247 std::cout <<
"- Total number of trips: " << totalTrips << std::endl;
248 std::cout <<
"- Total daily trips: " << ttDailyTrips << std::endl;
249 std::cout <<
"- Total one-day trips: " << ttOneDayTrips << std::endl;
255 std::cout <<
"added uniform random trips: " << nbrRandUni << std::endl;
257 for (
int i = 0; i < nbrRandUni; ++i) {
261 AGTrip rdtr(dep, arr,
generateName(i,
"randUni"), depTime.getTime() % 86400, depTime.getDay() + 1);
263 trips.push_back(rdtr);