Новые пассажиропотоки
Материал из TTDRussiaWiki
http://www.tt-forums.net/viewtopic.php?f=33&t=33501
Содержание |
How to Use
- Patch Settings > Economy > Activate passenger destinations: on
You should use shared order because passenger considers the waiting time for transferring. If the number of vehicle of shared order group is large, waiting time for transferring becomes small.
If you want to avoid getting trouble in route generation, you should set the following settings:
- Difficulty Settings > Vehicle breakdowns: None
- Patch Settings > Vehicle > Disable servicing when breakdowns set to none: on
- You do not need to turn on 'Enable timetabling for vehicles'
- You do not need to add all stations that you want your train to stop in train order.
- Passenger's destination depends on pop of city, destination and cargo acceptance.
- Passenger can walk to near station, when 'passenger walking' is set.
GUI
Station Window
- Ctrl + resize maybe useful
- Ctrl + click has some functionality on some strings.
Next Stn.
the next station: the vehicle of the shared order group will go icon: vehicle type number: the number of vechiles of loading/unloading
Ca: the number of cargos: want to board the vehicle of the shared order group (This value is also printed in "Passengers" tab) Wa: the waiting time for transffer Dr: the driving time: the number of days the vehicle takes to get to the next station Di: distance Va: vacancy: if it is 0, the vehicles starting to the next station are always full
Routes
- upper panel: display reachable destinations
- lower panel: display routes with driving time, waiting time and fare
if 'Use route preference' is on, three types of routes are shown, time, fare and balance.
Cargos
display the number of cargos for each destination.
Dests
- upper panel: display adjacent staions
- lower panel: display reachable destinations, where highlighted string means cargo will board the vechile of the selected in upper panel.
Smallmap Window
show cargo network
Patch settings
- Activate passenger destinations: self explaining
- Activate mail destinations (EXPERIMENTAL): self explaining
- Use route preference (EXPERIMENTAL): cargo' route is followed by cargo's preference, time, fare or balance.
If this setting is on, route generation will take triple times of the normal.
- The maximum cost for additional route:
Although we have the best route for some station, we should consider 2nd or 3rd best route because the costs of these may equal to that of the best.
We, therefore, consider other routes as better routes that passengers can taken, if costs of routes are not larger than that of the best by {STRING1}%.
(the higher value would make more additional routes)
- Routing cost modifier for aircrafts: the modifier to change how likely pax will choose an aircraft route (100%=normal; higher means more unlikely)
- Routing cost modifier for transferring: the modifier to change how likely pax will choose a route with a transfer (100%=normal; higher means more unlikely)
- Reduce cargo numbers by [x]:
The number of passengers generating is divided by 2^x. This option has been originated from Prissi's patch.
- Allow generating passenger for unreachable station: if not set, only the pax with destinations you've already connected will wait at your stations
- Reduce unreachable passenger number by [x]: pax with destinations not connected will be generated less (by 2^x) than to destinations you have connected
- Use order based adjacent information temporarily:
If the option is on, temporary station information, which is based on destinations in orders, is added to stations. It is useful, if vehicle takes a very long time to update in all stations of line.
- Faster gradual loading:
If the option is on, gradual loading time make shorter according to the number of loading/unloading cargos.
- Allow passenger paying partial fare: at every stop inbetween where passengers change trains, they pay for the part they were already transported, instead of paying all at the final destination
- Allow passenger walking in [x] tiles (EXPERIMENTAL): passengers can interchange between stations if they are at most [x] tiles away.
- More realistic passenger/mail behavior (EXPERIMENTAL):
Each cargopacket has its home. If it reaches its destination, then it's destination set the home (IMO, round trip is important for commuter). But this setting requires huge cpu-time and memory. In my patch, if passengers reaches thier destination, thier source is set to the destination and new destination is set to thier home or another random station (if destination_count is not zero). destination_count = RandomRange(2) + RandomRange(2) + RandomRange(2) + 1, so destination_count is initially set to 1 to 4 (average 2.5).
Tips
- The following settings would avoid the lags:
** The maximum cost for additional route = 100% ** Use order based adjacent information temporarily = false ** Update routing information when adjacent information is updated = false ** Allow passenger walking in # tiles = 0
How This Patch Works
How to Generate Route
- Station's adjacent information is memorized in each shared order group.
** When vehicle stops station, information of the station the vehicle currently visiting is updated.
*** This information includes the previous station, the current station, order ID, driving time.
** Imagine a graph whose nodes are stations and edges are vehicles for each group of a shared order.
- Passenger's route is updated from the list with dijkstra's algorithm.
** For each station, the algorithm starts on the station as destination and traces adjacent-links backwardly by using adjacent information.
*** We should consider waiting time for transferring
** And then, we register board/keep/walk information, which is tuple (src, dest, order_id) in each station.
How Passenger Wants to Go to Station
First, we select a target town for passenger destination, and then select a station of this town. Station selection is according to town's acceptance rates.
Town selection has 4 ways as follows:
- RandomTownPopWeight (10%)
selects a town according to town's populations.
- RandomTownMixedWeight (30%)
selects a town according to town's populations (p) and distances from the town of the source station (d).
weight = pop_factor * dis_factor pop_factor = 100 + p / 64 dis_factor = (D^2 - 0.9 * d^2) / D^2
D = {max distance between two stations of reachable}
- RandomTownMixedWeightMiddle (40%)
pop_factor = 100 + p / 256 dis_factor = (D^2 - 0.9 * 4 * d^2) / D^2 (weight = 1, if dis_factor < 0)
- RandomTownDistanceWeightShort (20%)
pop_factor = 1 dis_factor = (D^2 - 0.9 * 16 * d^2) / D^2 (weight = 1, if dis_factor < 0)
