40 #include "../city/AGTime.h"
44 #define REBUILD_ITERATION_LIMIT 2
52 tripSet->push_back(t);
57 std::list<AGTrip>::iterator it;
58 for (it = t.begin(); it != t.end(); ++it) {
59 tripSet->push_back(*it);
70 std::list<AGBusLine>::iterator itBL;
77 std::cerr <<
"ERROR: " << numbErr <<
" bus lines couldn't been completely generated ( " << (float)numbErr * 100.0 / (
float)
myCity->
busLines.size() <<
"% )..." << std::endl;
79 std::cout <<
"no problem during bus line trip generation..." << std::endl;
82 std::cout <<
"after public transportation: " <<
trips.size() << std::endl;
88 std::list<AGHousehold>::iterator itHH;
95 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;
97 std::cout <<
"no problem during households' trips generation..." << std::endl;
100 std::cout <<
"after household activities: " <<
trips.size() << std::endl;
106 std::cerr <<
"ERROR while generating in/Out traffic..." << std::endl;
108 std::cout <<
"no problem during in/out traffic generation..." << std::endl;
111 std::cout <<
"after incoming/outgoing traffic: " <<
trips.size() << std::endl;
117 std::cerr <<
"ERROR while generating random traffic..." << std::endl;
119 std::cout <<
"no problem during random traffic generation..." << std::endl;
122 std::cout <<
"after random traffic: " <<
trips.size() << std::endl;
128 bool generated =
false;
129 std::list<AGTrip> temporaTrips;
131 if (!temporaTrips.empty()) {
132 temporaTrips.clear();
146 generated = ft.generateTrips();
152 addTrips(ft.getPartialActivityTrips(), &temporaTrips);
162 std::list<AGBus>::iterator itB;
163 std::list<AGPosition>::iterator itS;
167 for (itB = bl.
buses.begin(); itB != bl.
buses.end(); ++itB) {
173 if (*itS == t.getDep() || *itS == t.getArr()) {
193 if (*itS == t.getDep() || *itS == t.getArr()) {
217 std::list<AGAdult>::iterator itA;
222 AGTrip wayTrip(
myCity->
cityGates[posi], itA->getWorkPosition().getPosition(), nom, itA->getWorkPosition().getOpening());
225 AGTrip retTrip(itA->getWorkPosition().getPosition(),
myCity->
cityGates[posi], nom, itA->getWorkPosition().getClosing());
226 trips.push_back(wayTrip);
227 trips.push_back(retTrip);
235 std::ostringstream os;
237 return prefix + os.str();
243 int totalTrips = 0, ttOneDayTrips = 0, ttDailyTrips = 0;
244 std::list<AGTrip>::iterator it;
245 for (it =
trips.begin(); it !=
trips.end(); ++it) {
252 totalTrips = ttOneDayTrips + ttDailyTrips *
nbrDays;
254 std::cout <<
"Before Random traffic generation (days are still entire):" << std::endl;
255 std::cout <<
"- Total number of trips: " << totalTrips << std::endl;
256 std::cout <<
"- Total daily trips: " << ttDailyTrips << std::endl;
257 std::cout <<
"- Total one-day trips: " << ttOneDayTrips << std::endl;
263 std::cout <<
"added uniform random trips: " << nbrRandUni << std::endl;
265 for (
int i = 0; i < nbrRandUni; ++i) {
269 AGTrip rdtr(dep, arr,
generateName(i,
"randUni"), depTime.getTime() % 86400, depTime.getDay() + 1);
271 trips.push_back(rdtr);
bool generateTrips(AGHousehold &hh)
void addLayOver(AGPosition by)
void generateActivityTrips()
std::string generateName(int i, std::string prefix)
std::list< AGPosition > stations
A location in the 2D plane freely positioned on a street.
static SUMOReal rand()
Returns a random real number in [0, 1)
AGDataAndStatistics & statData
void setType(std::string type)
std::list< AGPosition > revStations
#define REBUILD_ITERATION_LIMIT
std::list< AGBusLine > busLines
void setDepTime(int time)
const AGStreet & getRandomStreet()
bool generateInOutTraffic()
std::list< AGBus > revBuses
std::list< AGTrip > trips
std::list< AGTrip > & getPartialActivityTrips()
std::list< AGHousehold > households
void addTrip(AGTrip t, std::list< AGTrip > *tripSet)
std::list< AGAdult > peopleIncoming
SUMOReal uniformRandomTrafficRate
int getRandomCityGateByIncoming()
std::vector< AGPosition > cityGates
void addTrips(std::list< AGTrip > t, std::list< AGTrip > *tripSet)
bool generateRandomTraffic()
bool generateBusTraffic(AGBusLine bl)