News:

Do you need help?
Simutrans Wiki Manual can help you to play and extend Simutrans. In 9 languages.

Helping passengers find the express trains

Started by Borgoth, July 23, 2009, 09:48:39 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Borgoth

One more suggestion, since I've had plenty of time to think these through. This is last one, I promise. For today.

Case 1: route A-B-C-D with two connections: local that stops on all four stations and express straight from A to D.

Problem: Travelers from A to D can't really choose which train to go for and use both. Not exactly what player is hoping for, nor particularly realistic.

Case 2: route A-B-C-D-E-F-G-H with two large cities at each end, bunch of factories in between where they go for work. Bus or small train is set to cover all stops for commuter traffic. Meanwhile, main transportation network covers the massive influx of passengers arriving at A by taking them from A->X->H and further down that way.

Problem: With current routing, the commuter bus with direct connection to A->H is preferred over the much faster (and in terms of distance, shorter too) A->X->H route.



It would be really nice if the passengers were just smart enough to pick the really best route at each possible scenario we simutrans players come up with, but I pity the developers and think that instead we could just use some common sense and perhaps, you know, tell the passengers what train to take?

Solution 1: Convoy types. Express/Standard/couple more good names. By default all convoys/lines are Standard but can be given higher/lower priority to get people guided right way. Routing algorithm weighs with reasonable values to get good results even on complex routes. Depending on how exactly the route finding algorithm is done, this is either a very nice way or just too much work. I'm guessing the latter. So, here's another solution to same problem that may be less elegant, but lot easier to make.

Solution 2: Stop selling tickets to destination X even though the convoy is going to stop there. Basically in given two scenarios you'd mark the final destinations for local lines as "no tickets" and ta-dah, all the passengers heading that way would be routed with express routes while the local lines would use these stops solely to pick up more passengers. UI wise this would need some method of marking some of the stops (e.g. ctrl-click -> turns red), data structure would have to store this new flag and cargo routing algorithm should basically consider these destinations as non-existent.

Edit: while Solution 2 is simple, it'd be much more powerful if it had tri-state flag: normal, no TO tickets and no VIA tickets.

Case 3:
Sawmill - long network - Paper Mill - Tree Plantation
The plantation has deals with both mills, but I desperately need all the production it can provide at Paper Mill. Now unfortunately rest of my transportation network happens to connect the Paper Mill with Sawmill and the guys at Tree Plantation see this. And you guess the rest, half(?) of my precious wood is shipped past the Paper Mill whether I want it or not. So, I'd need a "No via traffic" flag.

Case 4:
Major city with two internal traffic loops. There are couple really crowded stops near the middle and I'd like to relieve the traffic by having both loops stop there. If I do that, routing will immediately consider that stop as the new transportation hub and all the traffic between the two loops will be routed via that poor bus stop. I'd need a "No via traffic" flag on it.

jamespetts

Ahh, I've already addressed this problem in Simutrans-Experimental, but using a different approach. In Simutrans-Experimental, the average speed of convoys is measured, and passengers calculate the optimum route based on the shortest overall journey time.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Borgoth

Yeah that's the smart way to do it. I'm not aware of all the details, but does it actually calculate the estimated length of travel or does it measure how things really go (including waiting times, traffic jams etc)? After all, on first trip you have no record of speed and people still have to find their way somehow.

How does the smart routing handle situation where waiting times get higher? Do the passengers then pick a slower route over fast just to get somewhere? Because that'd very easily end up in a situation where I again don't want them into my specific trains and would rather just 'not sell the tickets'. Solution 2 does need some more tweaking though to cover more problems with it, let me edit some...

jamespetts

In Simutrans-Experimental, the average speed of each line (or convoy, if it has no line) is calculated based on the convoy's past movements. It is the average speed of the previous month that is used, or, if there is no average speed recorded for the previous month, an estimate of average speed, being half the convoy's maximum speed. The journey time is calculated by dividing the average speed by the distance between each of the stops between the origin and destination. The journey time plus the waiting time of each leg is added together, and the shortest overall beginning to end journey time is selected. If the waiting times increase, these increased waiting times will be taken into account the next time that the routes are re-calculated, and, if it makes a material difference, a different route might be found.

I do not understand the reasoning behind the "stop selling tickets" solution in this case. That certainly does not reflect real practice, for railways in the UK, at least.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

mwoodburn81

#4
Re: not selling tickets.   There are stops on Amtrak lines, and even NYC's Metro North's lines where on the schedule passengers can only board or disembark from the train. 

The main example that comes to mind is on the main line for the Metro North, at the Herlm -125th street station. 

The metro north is a commuter service for passengers to and from New York City, serving upstate new york, and Connecticut.  Herlm-125th street station is the first stop north of Grand Central Terminal,  and for the most part, south bond trains only let passengers off  and north bond trains only let passengers on the train.   

I think the main reason for this is to encourage passengers to take the parallel Lexington ave subway line just a block east of the commuter line, which frees up seats for much more profitable passengers who are traveling to/from points further north in more expensive fare-zones. 

As far as Sumatrans is concern,  I guess if you have a similar set up  where you have a commuter/intercity line that runs to stations A-B-n,  where A is a really big terminal station, with lots of passengers,  and B is a smaller station, but also has local service connecting back to A, and n is a whole bunch of stations far far away, then it might be beneficial not to allow passengers to use the commuter/long distance line to and from A and B. 

While, this might be more realistic in certain cases,  of course their is UI clutter and coding issues, etc. 

Borgoth

The "stop selling tickets" is mainly a cargo problem. And most commonly related to producer dividing up his production among multiple consumers against my will. There might be some other way of solving that particular problem though. Smart routing takes care of most of the local/express issues, but that means smart routing has to be fast enough for ST.

AP

QuoteI do not understand the reasoning behind the "stop selling tickets" solution in this case. That certainly does not reflect real practice, for railways in the UK, at least.
Not entirely true. There are now stations in the UK which are "set down only". Wrexham& Shropshire Railway services from London to Wrexham are set-down only when Southbound at Banbury and Wolverhampton, and pick-up-only when Northbound. This was done quite specifically to keep passengers on certain pre-established (and faster) routes to London which already serve those stations.

And yes it is enforced - they have  a member of staff at every carriage door.

jamespetts

The concept of set down or pick up only is different to what I understood Borgoth to be suggesting. Certainly, a feature to allow "pick up only" or "set down only" on any stop in a schedule would be worthwhile and realistic.

As to producers dividing cargoes amongst multiple consumers against your will - that is the idea of a transport simulator. You have to transport people and things to where they and their owners want (them) to go. It is not for you to decide that it would be more convenient or profitable for you if they all wanted to go to the same place. You must adapt your networks to meet the demand, not the other way around.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Borgoth

Well as a transporter I also should have a choice what I want to transport, since some transporting is profitable and some isn't. Just because my train happens to have a bulk car, or wood/planks car available on this particular station doesn't mean I want it filled with anything. And in worse case, this station might have coal I want loaded, but also iron that I don't want. Anyway, for cargo there's probably better way to solve the issue. Really, the 'no ticket' was meant as a fix to express trains, and it would fix some cargo issues that even smarter routing doesn't.

jamespetts

Borogoth,

would that not be solved by a simple "pick up only" and "set down only" option in a schedule?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Borgoth

Yes, that would do exactly the same thing. "Pick up only" is actually same as "no tickets" if you think about it. Neither of those things solves the unwanted production splitting but that's much more complicated to begin with and probably too minor issue to ever bother.

Another way to solve the problem is to have a "Final stop" flag where everyone gets kicked out (and thus you can't get routed past that point). At least it'd fix express routes.

Btw, found a cheap exploit on making money on a desperate moment. Disposable single-use trains/trucks. Buy at producer, load full, send away and withdraw. As long as they get scrapped before month changes you don't lose a penny. Just send more trains from the producer side's depot. Easy fix for that would be "aging" the convoy immediately when it leaves the depot.

jamespetts

Borgoth,

ahh, yes: "pick up only" and "set down only", "final stop" and instant ageing of vehicles would all be worthwhile, and not too hard to code, nor would they clash with existing gameplay structures. Did you want to have a go at coding them...? :-)
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Borgoth

If I can find the time I'll take a look at the code. Vacation is sadly over now. Those do affect routing a bit though, I don't want to break that. We'll see.

prissi

Pick up and set down only stops happens rarely in real life. Such stops could be added fairly easily, but simutrans is about transportation. You seldomly tell people that this stop you must only get out. Actually, your example was the first I every heard from.

Simutrans core challenge is about providing the transportation where needed and not putting stuff where you like. THis I would like to preserve. Any control over vehicles is ok, but the ggods flow must be kept to the engine, imho.

Fabio

#14
many overnight long distance trains have pick up only stations in the first leg and drop down only in the second one. e.g. in Italy there are north-south routes picking up in the main north cities at night and dropping down in the main south destinations in the next morning.

this could allow an express train to pick up from a few stations in the origin city and haul the passengers to a few stations in the destination city without being used by commuters. also, these settings should be route-wise more than station-wise.


P==P==P=====================/===============D==D====D

P Pick up only station
D Drop only station


the same stations could be also served by a suburban commuter connection.

prissi

On these trains I was never forbidden to get off before (even if it does not make much sense) before the long haul.

Borgoth

Even with pick up only / drop off only express lines wouldn't work.

A-B-C-D local route where D was marked pick up only would certainly prevent people traveling from A->D, but it'd also prevent B->D and C->D which certainly isn't good. Exactly same problem with Final Stop flag.

In the end, it seems the only solution is smarter routing. Even the Express flag on a line is likely just as slow to route through than the time based routing in ST-Exp.

z9999

Instead of 2 lines, ( A-B-C-D and A-D )
You can use 3 lines. ( A-B-C, B-C-D and A-D )

I often hear this workaround from other simutrans players.

[off-topic]
But I will ride on A-B-C-D line, if ther is my seat.

AP

Just a post to express my support for the idea of Pick Up Only, Set Down Only, and "Everybody off" variables for schedules. Would be rather handy.

TPIBAW

Disallowing people from getting off a bus seems unrealistic. Set down only and everybody off are normal though.

jamespetts

Pick up only tends to be enforced at the point of entry: people bound for the stop in question are not allowed to board (or, even simpler, the train/bus is not advertised as stopping at the pick up only stop, so people do not think to board it in the first place). Pick up only and set down only are fairly common: for example, the express trains from London to Glasgow sometimes stop at Watford, but are pick up only on the way out and set down only on the way back to prevent people from using the express trains to get from London to Watford when they should (according to the railway) be using the semi-fast services.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

prissi

I do not see how you could enforce this in central europe, as there are no station gates. Also I found it strange that railway comapanies do not want people to board their trains; I would just charge more ...

Of course terminals (all drop off) are commen, but not enforced in simutrans. But since then in the next steps everybody who wants to travel on is loaded again (as in reality) I see no use in implementing it.

jamespetts

In the UK, automatic ticket barriers are increasingly common. Although there was a period between the 1980s and 1990s where open stations were common in the UK, previously, manned ticket barriers were the norm for railway stations.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.