Upcoming Games

(UTC times)


Full list
Add a game

Upcoming Events

No events to display

Timetable Analyser

You are here: Home > Forum > General > General questions, comments, and issues > Timetable Analyser

Page 1 of 1

Timetable Analyser 27/07/2020 at 18:52 #130007
VInce
Avatar
579 posts
Hi all,

On a previously released and error-free timetable I've just noticed that, when I run the timetable analyser, I get a huge number (120) of warnings, where there were no warnings before.

I presume that this behaviour started with the new loader, although I couldn't be certain.

On closer examination, most, if not all are meaningless.

Take the first instance.

1B37 has a decision on arrival - the loco either runs round or goes to shed. 0C18/ZBE116 is the loco that runs round, yet the alleged associated train 1B37/ZHD901 is the train that has a loco detached to shed.

0C18/ZBE116 does not terminate at Platform 5 with no onward working, it attached to 1B37/ZHD901 to work 1C18/ZEC192.

All other warnings are similar. Warnings for 5S30FO/ZFE581 is repeated many times allegedly for different days on which it doesn't run.

I'm aware that these are just warnings and shouldn't affect the actual timetable, but is it really necessary to have all of these erroneous warnings?

Vince

See attachments


Post has attachments. Log in to view them.
I walk around inside the questions of my day, I navigate the inner reaches of my disarray, I pass the altars where fools and thieves hold sway, I wait for night to come and lift this dread away : Jackson Browne - The Night Inside Me
Log in to reply
Timetable Analyser 27/07/2020 at 19:57 #130014
bill_gensheet
Avatar
1413 posts
Analyser has not been able to keep up with things when it comes to dealing with decisions and running of rule-connected trains *AFTER* the decision point.
The typical one that you have noted is multiple trains selected by 'DayOfTheWeek' for the days/trains rejected by an earlier decision.

So you get 'on a Monday your FO train does not have a next working' simply because the next working is also only on a Friday.
I think the main problem is when the FO trains' running on Friday is set by a rule from another train that has had the decision applied directly. Hence the warning shows against the earlier train in the sequence.

Adding the decision to all prior and consequential trains set up by rules does help a bit until the core code fix is ready and tested.

Log in to reply
The following user said thank you: VInce
Timetable Analyser 27/07/2020 at 21:28 #130018
clive
Avatar
2789 posts
This reply is a placeholder for me to write a long explanation when I have enough free time.
Log in to reply
The following user said thank you: VInce
Timetable Analyser 27/07/2020 at 21:38 #130019
58050
Avatar
2659 posts
I've found the same problem as Vince. I've just finished updating the West Hampstead 1991 timetable (& after testing it will be re-released). Following this I'm going to start updating both my King's Cross 1985 & Peterborough 1985 timetables. I look forward to reading whatever you intend to write about this cos with regards to West Hampstead prior to the new loader & analyser being released the number of warnings have somewhat exploded into a higher number than before & as Vince says most if not all are meaningless such as varistions in train lengths when a train stops at a station & either detaches or attaches vans. Despite this the timetable operates fine without any problems.
Log in to reply
The following user said thank you: VInce
Timetable Analyser 28/07/2020 at 11:19 #130052
clive
Avatar
2789 posts
Okay, here is the story.

Many many years ago I wrote the original timetable analyser. Its purpose was to check that relationships between trains were consistent: if train A had Next:B, then B should start at the same place and have the same length. If trains split or join, they should all do so at the same place. Trains should all exit or turn into other trains or (when that was added) berth. A train shouldn't be the next working of or be split from more than one train. That sort of thing.

Many years ago I came up with the idea of decisions and implemented them. There were cries of welcome as soon as people realized the things you could do with them.

About 3 days later, people started complaining that the analyser couldn't cope with decisions, meaning they got lots of spurious warnings from it. I knew that would be a big job to resolve and so put it on my list of things to do.

Around the beginning of the year, I had a sudden burst of available time and put a lot of it into modifying the analyser to cope with decisions. To put it simply, every time a train schedule that's being analysed hits a decision, it's "forked" into multiple copies, one for each possible choice of that decision. So if a train is affected by a "day of the week" decision, there's a separate analysis for each day of the week and it correctly handles trains with different joins on different days.

In testing this, I discovered to my horror that people had started using rules to allow the old analyser to deal with things I expected decisions to be used for. So if you have a ThO train, I expected the timetable for that train to have a decision DOTW/Th and the new analyser would cope. Instead people have been putting in a single dummy train that runs on Thursdays and having the train being controlled by a rule "1A23 does not enter until DUMMYTHU has entered".

Now, I know how to update the analyser to cope with this. At the same time, the same logic would make it cope with rules like "doesn't leave X until Y arrives at Z" and would spot circular rule sets that mean a train can never move. But it's another chunk of work.

The new analyser went into Loader v5. I don't remember who made the decision to do so, but I think it's still an improvement on what was around before.

Since the start of March my available free time has gone into seriously negative numbers, so I haven't started that yet. But it's not forgotten and it has a reasonably high priority. But, until then, I'm sorry but you'll have to live with it.

Now for a quick look at Vince's original example. Look at the first warning. After the train ID you'll see "[110.2]". This means it is train number 110 in the timetable and this is the second version after a fork. If you look a bit further down, you'll see that 5S30FO is train 885 and forks 2 to 6 correspond to various days of the week (fork 1 will be Friday). Returning to 0C18EWD, you'll then see "(1B37=RR)". This means that this warning only applies when decision "1B37" has chosen "RR". So the warning is saying that *if* the decision picked the choice "RR". train 1B37EWD is not at Peterborough to join on to and (on the next line) 0C18EWD will sit down at Peterborough P5 and block it for the rest of the day.

Now, I don't know what that doesn't go wrong with your actual timetable; I'd have to look at it in more detail to see. But hopefully this explains what is going on.

Some of these are easy to work round. I'm assuming that 5S30FO is a train that enters the simulation from somewhere (Hitchin or Nene CS, say). In that case, just put the decision DOTW=FRI into its timetable next to the entry point and the warnings will all go away. Note that you can do an "SX" by having "[not] SAT" in the choice; the loader (including analyser) understands that. If it's the next working of another train, you might want to work back and see whether that train has an actual problem or can be fixed in that way, in which case it should fix this one as well.

I'm sorry for the inconvenience this is causing people, but it will be fixed one day. In the meantime, please live with it or look for workarounds like the one I suggested in the previous paragraph.

Log in to reply
The following users said thank you: 58050, bill_gensheet, Steamer, VInce, postal, jc92, leigh
Timetable Analyser 28/07/2020 at 11:57 #130057
58050
Avatar
2659 posts
OK Clive thanks for your enigmatic explanation of the analyser. Hopefully it won't stop the test session when we start next week. I try & resolve as many as I can when I go through the analyser for West Hampstead & I have amended the timetable which has removed a few warnings like instead of seeding a loco at St. Pancras I've actually used a loco which has terminated & instead of going off sim to Churchyard Sdgs I've added a Next working to it to pick up the loco that was 'seeded' in Engine Sdg No.2 & shunted that other loco into Engine Sdg No.2 to pick up what the seeded loco was originally tt'd to do. That removed some warnings. The main thing I've found & it's not an issue with the analyser is you get a different number of warnings subject to what Day of the Week the sim picks when it first loads up. Obviously not every week day is the same in regards to traffic patterns so that I can live with. Look dorward to your modifications to the analyser as & when you get round to doing it as I tend to check the analyser after every train I've added into a new timetable or updating an existing timetable. So thanks to your hard work on this piece of kit as I use it all the time.
Log in to reply
Timetable Analyser 28/07/2020 at 13:28 #130070
jc92
Avatar
3685 posts
Clive,

The only issue outstanding (to an extent anyway!) is where multiple decisions may be required, which then forces rule usage.

Example. Say we have train 6T00, which runs WFO and goes either to point B or to point C dependent on traffic requirements etc. I create two trains with UID 6T00BWFO and 6T00CWFO. In an ideal world I'd have DOTW [any] Wed | Fri, and a second Decision 6T00 - B and 6T00 - C so that two decisions combine. Currently not possible. In this case to be fair I'd set them as alternatives via rules, but if they then have to come back as well, a single decision is more powerful than multiple rules to force it to run correctly.

Another example is where I wanted to use a decision to trigger a possession (or not) which gave an announcement of the Won number and location and triggered the relevant trains to seed. Not possible to do that AND set teh trains to only do it on certain days.

Hope that makes sense.

Short post - can we have multiple decisions as and when you have some spare time?

"We don't stop camborne wednesdays"
Log in to reply
Timetable Analyser 28/07/2020 at 17:03 #130078
VInce
Avatar
579 posts
jc92 in post 130070 said:
Clive,

The only issue outstanding (to an extent anyway!) is where multiple decisions may be required, which then forces rule usage.

Example. Say we have train 6T00, which runs WFO and goes either to point B or to point C dependent on traffic requirements etc. I create two trains with UID 6T00BWFO and 6T00CWFO. In an ideal world I'd have DOTW [any] Wed | Fri, and a second Decision 6T00 - B and 6T00 - C so that two decisions combine. Currently not possible. In this case to be fair I'd set them as alternatives via rules, but if they then have to come back as well, a single decision is more powerful than multiple rules to force it to run correctly.

Another example is where I wanted to use a decision to trigger a possession (or not) which gave an announcement of the Won number and location and triggered the relevant trains to seed. Not possible to do that AND set teh trains to only do it on certain days.

Hope that makes sense.

Short post - can we have multiple decisions as and when you have some spare time?
Clive,

Thank you for the detailed explanation.

The only reason I haven't used DOTW from the decisions module are in those cases similar to jc92. That is, when I have two decisions to make about a train.

I use the "seed train" trick to determine the day of the week and the decisions module to make the other choice, whatever that might be.

Thanks again, most enlightening...

Vince

I walk around inside the questions of my day, I navigate the inner reaches of my disarray, I pass the altars where fools and thieves hold sway, I wait for night to come and lift this dread away : Jackson Browne - The Night Inside Me
Last edited: 28/07/2020 at 17:29 by VInce
Reason: None given

Log in to reply
Timetable Analyser 28/07/2020 at 18:25 #130082
postal
Avatar
5264 posts
Online
jc92 in post 130070 said:
Short post - can we have multiple decisions as and when you have some spare time?
And as another job for Clive to give a further enhancement to the decisions module, it would be great if decisions could be applied to rules as well (to cover the sort of case where 6A00 is required to enter x minutes after 6A99WFO has left the area and y minutes after 6A99TTHO has left the area). Can't be done with two rules referring to one train currently so there are either two x 6A99 with identical TTs and different UIDs or the bodge of 6A00-1 and 6A00-2 being ruled to enter then both terminating and both having a N working 6A00.

The decisions module has made a real difference to TT writing by helping to avoid a multitude of interlinked rules and much thanks to Clive for the work so far. Anything extra would be a WIBNI but I am very grateful for what we already have,

“In life, there is always someone out there, who won’t like you, for whatever reason, don’t let the insecurities in their lives affect yours.” – Rashida Rowe
Log in to reply
The following users said thank you: VInce, jc92
Timetable Analyser 29/07/2020 at 08:18 #130092
clive
Avatar
2789 posts
jc92 in post 130070 said:
Short post - can we have multiple decisions as and when you have some spare time?
Mantis 31241.

postal in post 130082 said:

And as another job for Clive to give a further enhancement to the decisions module, it would be great if decisions could be applied to rules as well
Mantis 14038 (sic).

Log in to reply
The following users said thank you: postal, jc92