39 #include "../city/AGTime.h"
43 #define REBUILD_ITERATION_LIMIT 2
51 tripSet->push_back(t);
56 std::list<AGTrip>::iterator it;
57 for (it = t.begin() ; it != t.end() ; ++it) {
58 tripSet->push_back(*it);
69 std::list<AGBusLine>::iterator itBL;
76 std::cerr <<
"ERROR: " << numbErr <<
" bus lines couldn't been completely generated ( " << (
float)numbErr * 100.0 / (
float)
myCity->
busLines.size() <<
"% )..." << std::endl;
78 std::cout <<
"no problem during bus line trip generation..." << std::endl;
81 std::cout <<
"after public transportation: " <<
trips.size() << std::endl;
87 std::list<AGHousehold>::iterator itHH;
94 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;
96 std::cout <<
"no problem during households' trips generation..." << std::endl;
99 std::cout <<
"after household activities: " <<
trips.size() << std::endl;
105 std::cerr <<
"ERROR while generating in/Out traffic..." << std::endl;
107 std::cout <<
"no problem during in/out traffic generation..." << std::endl;
110 std::cout <<
"after incoming/outgoing traffic: " <<
trips.size() << std::endl;
116 std::cerr <<
"ERROR while generating random traffic..." << std::endl;
118 std::cout <<
"no problem during random traffic generation..." << std::endl;
121 std::cout <<
"after random traffic: " <<
trips.size() << std::endl;
127 bool generated =
false;
128 std::list<AGTrip> temporaTrips;
130 if (!temporaTrips.empty()) {
131 temporaTrips.clear();
161 std::list<AGBus>::iterator itB;
162 std::list<AGPosition>::iterator itS;
166 for (itB = bl.
buses.begin() ; itB != bl.
buses.end() ; ++itB) {
172 if (*itS == t.getDep() || *itS == t.getArr()) {
192 if (*itS == t.getDep() || *itS == t.getArr()) {
216 std::list<AGAdult>::iterator itA;
221 AGTrip wayTrip(
myCity->
cityGates[posi], itA->getWorkPosition().getPosition(), nom, itA->getWorkPosition().getOpening());
224 AGTrip retTrip(itA->getWorkPosition().getPosition(),
myCity->
cityGates[posi], nom, itA->getWorkPosition().getClosing());
225 trips.push_back(wayTrip);
226 trips.push_back(retTrip);
234 std::ostringstream os;
236 return prefix + os.str();
242 int totalTrips = 0, ttOneDayTrips = 0, ttDailyTrips = 0;
243 std::list<AGTrip>::iterator it;
244 for (it =
trips.begin() ; it !=
trips.end() ; ++it) {
251 totalTrips = ttOneDayTrips + ttDailyTrips *
nbrDays;
253 std::cout <<
"Before Random traffic generation (days are still entire):" << std::endl;
254 std::cout <<
"- Total number of trips: " << totalTrips << std::endl;
255 std::cout <<
"- Total daily trips: " << ttDailyTrips << std::endl;
256 std::cout <<
"- Total one-day trips: " << ttOneDayTrips << std::endl;
262 std::cout <<
"added uniform random trips: " << nbrRandUni << std::endl;
264 for (
int i = 0 ; i < nbrRandUni ; ++i) {
268 AGTrip rdtr(dep, arr,
generateName(i,
"randUni"), depTime.getTime() % 86400, depTime.getDay() + 1);
270 trips.push_back(rdtr);
274 float proportionalPercentage = 0.05f;