Timetable Analyser...

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

Page 2 of 2

Timetable Analyser... 12/12/2020 at 13:29 #134638
Edgemaster
Avatar
332 posts
I'd noticed previously that you get different sets (or orders) of results for different sort options in the timetable window, but had put it down to the analyser performing the analysis in different orders. But to have it give some warnings and omit them entirely in other instances is somewhat worrying?
Twitter
Log in to reply
Timetable Analyser... 14/12/2020 at 09:30 #134707
clive
Avatar
2736 posts
Edgemaster in post 134638 said:
I'd noticed previously that you get different sets (or orders) of results for different sort options in the timetable window, but had put it down to the analyser performing the analysis in different orders. But to have it give some warnings and omit them entirely in other instances is somewhat worrying?
That is the reason for differences and, yes, I agree that it's slightly worrying. Though if the timetable has rules that affect things then it could be that the analyser is getting confused.

I will try to find a moment to see if I can work out what is happening.

Something I'd forgotten to mention is that there is a "Debugging Reports" tick box for the analyser. If you select that when running the analyser then the log file will contain a complete report of every step the analyser took to reach its conclusions. You can then use the timetable unique ID and instance number to track how it processed an individual train.

Last edited: 14/12/2020 at 09:32 by clive
Reason: None given

Log in to reply
Timetable Analyser... 14/12/2020 at 10:19 #134712
postal
Avatar
5189 posts
Online
Found something else that I don't understand.

The current 2006 Edinburgh TT has a couple of reports of incorrect length. The reports regarding 1S25 are due to a typo in the length of the train type for 5Y11-2 (a short-lived portion forming part of 1Y11 which shows as the correct length). This will be corrected for the next TT release. However there is also:

1B01/$1B01[60.2]{[seedgroup]=04:45}: Associated train 1B16/$1B16 not defined at Edinburgh Waverley
1B01/$1B01[60.2]{[seedgroup]=04:45}: Length 45m not the same as next working 5M16/$5M16[700.2]{[seedgroup]=04:45} at Edinburgh Waverley (45m vs 176m)

1B01 is the Up Fort William sleeper that enters from Polmont Jn at 00:27 and after the various shunts and joins runs forward as 1M16 to Carstairs going off sim at 01:41. There is neither 1B01 nor 5M16 in the 04:45 seed group.

What could be causing that report?

Edit: 5M16 is an unpowered set of sleepers dropped at the platform which is then joined by an incoming loco and more sleepers to form a new train. As such it is an untimed single location TT. Insert any times and the warnings disappear. While it is untimed, further down the analysis there is:

5M16/$5M16: Final location should not have a departure time specified
5M16/$5M16: Origin location should not have an arrival time specified

“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
Last edited: 15/12/2020 at 00:14 by postal
Reason: None given

Log in to reply
Timetable Analyser... 16/12/2020 at 07:36 #134772
clive
Avatar
2736 posts
bill_gensheet in post 134637 said:
Back to the analyser (although Liverpool St - Shenfield or beyond 1949 is definitely interesting !). I am getting different analyser outputs depending on sort order of the trains.



Timetable attached,
That was, um, interesting. When I analysed it with the detailed reports added, I found a FRI train was waiting for a WED train! Which immediately pointed at the area of the code to be suspicious of.

It turns out there are *two* bugs in different parts of the code that makes sure instances of associated trains have the same decisions made. In all my testing, these two bugs had cancelled each other out and so I never spotted it. But your example tickled one but not the other! (As you might guess, the different order of analysis means that the bug wasn't triggered when sorted differently.) Fixing both means the problem goes away and that timetable doesn't produce any warnings.

The fix is now in the core code and so will appear in the next release. It's quite possible that it will improve things for others as well (<cough> VInce <cough>).

Thanks for taking the time to create this minimal timetable.

Last edited: 16/12/2020 at 09:09 by clive
Reason: Fix committed earlier than planned.

Log in to reply
The following user said thank you: bill_gensheet
Timetable Analyser... 16/12/2020 at 10:59 #134773
clive
Avatar
2736 posts
postal in post 134712 said:
Found something else that I don't understand.

1B01/$1B01[60.2]{[seedgroup]=04:45}: Associated train 1B16/$1B16 not defined at Edinburgh Waverley
1B01/$1B01[60.2]{[seedgroup]=04:45}: Length 45m not the same as next working 5M16/$5M16[700.2]{[seedgroup]=04:45} at Edinburgh Waverley (45m vs 176m)

1B01 is the Up Fort William sleeper that enters from Polmont Jn at 00:27 and after the various shunts and joins runs forward as 1M16 to Carstairs going off sim at 01:41. There is neither 1B01 nor 5M16 in the 04:45 seed group.

What could be causing that report?

The message doesn't mean that train is in the seed group. It means that the analyser has concluded that it matters which seed group was chosen when analysing that train (e.g. because it joins with something that eventually derives from a train in the seed group) and is now looking at the situation when the 04:45 group was chosen.

It's possible this is being caused by the same bug that I've just fixed. If you can send me or point me at the timetable, I'll run it through the fixed analyser. But, as I've said, you can work out what is happening by looking at the detailed analysis if you select that.

Log in to reply
Timetable Analyser... 16/12/2020 at 12:31 #134774
postal
Avatar
5189 posts
Online
TT is the Edinburgh 2006 TT bundled with the sim (copy attached). The only link to anything post 04:45 in the TT is that part of the stock from 1B01 after various splits and joins goes forward as the Down Fort William sleeper that departs Waverley at 04:50ish. Following through that convoluted chain may be enough to explain it!
Post has attachments. Log in to view them.
“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
Timetable Analyser... 16/12/2020 at 20:33 #134786
clive
Avatar
2736 posts
postal in post 134712 said:
Found something else that I don't understand.

1B01/$1B01[60.2]{[seedgroup]=04:45}: Associated train 1B16/$1B16 not defined at Edinburgh Waverley
1B01/$1B01[60.2]{[seedgroup]=04:45}: Length 45m not the same as next working 5M16/$5M16[700.2]{[seedgroup]=04:45} at Edinburgh Waverley (45m vs 176m)

1B01 is the Up Fort William sleeper that enters from Polmont Jn at 00:27 and after the various shunts and joins runs forward as 1M16 to Carstairs going off sim at 01:41. There is neither 1B01 nor 5M16 in the 04:45 seed group.

What could be causing that report?

Okay, it's a genuine error in the timetable. 1B01 runs irrespective of which seed group you start with, but 1B16 only starts if you select the "TT start" seed group. So if you start the 04:45 seed group, 1B01 runs but 1B16 doesn't, so the timetable goes wrong.

Log in to reply
Timetable Analyser... 16/12/2020 at 22:13 #134788
postal
Avatar
5189 posts
Online
clive in post 134786 said:
Okay, it's a genuine error in the timetable. 1B01 runs irrespective of which seed group you start with, but 1B16 only starts if you select the "TT start" seed group. So if you start the 04:45 seed group, 1B01 runs but 1B16 doesn't, so the timetable goes wrong.
Sorry, you've lost me. In actual practice the TT does not go wrong - or at least it never did when I was testing and there have been no reports on the Forum or Mantis recording any TT errors.

If you start the 04:45 seed group, 1B01 does not run because the 04:45 seed group starts the session at 04:45 which means that 1B01 cannot enter as it was due to enter before 04:45 - or is there some semantic nuance between run and enter. The various links downstream of 1B01 are carried forward in the 04:45 start group by the seeding of $5Y11-S

Edit: If you select the 04:45 start with seeding the sim opens with the clock at 04:45:00 and 1B01 is greyed out in the TT so the code thinks that the train has entered pre-start. Run/enter nuance again?

“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
Last edited: 16/12/2020 at 22:26 by postal
Reason: None given

Log in to reply
Timetable Analyser... 16/12/2020 at 22:49 #134789
clive
Avatar
2736 posts
postal in post 134788 said:
clive in post 134786 said:
Okay, it's a genuine error in the timetable. 1B01 runs irrespective of which seed group you start with, but 1B16 only starts if you select the "TT start" seed group. So if you start the 04:45 seed group, 1B01 runs but 1B16 doesn't, so the timetable goes wrong.
Sorry, you've lost me. In actual practice the TT does not go wrong - or at least it never did when I was testing and there have been no reports on the Forum or Mantis recording any TT errors.

If you start the 04:45 seed group, 1B01 does not run because the 04:45 seed group starts the session at 04:45 which means that 1B01 cannot enter as it was due to enter before 04:45
Argh. If I ever knew that, I'd forgotten it and it's not mentioned in the wiki page about seeding groups. That's right (I've just found the code that does it) and that means another bug in the analyser.

Mantis 32532 raised.

Log in to reply
Timetable Analyser... 17/12/2020 at 12:55 #134797
Dionysusnu
Avatar
575 posts
Online
I may be misremembering, but I recall I once had a train enter from before the seed time, because it had a full hour of delay. So I believe in the wrong circumstances, the Edinburgh TT may well be wrong.
Log in to reply
Timetable Analyser... 17/12/2020 at 14:39 #134806
postal
Avatar
5189 posts
Online
Dionysusnu in post 134797 said:
I may be misremembering, but I recall I once had a train enter from before the seed time, because it had a full hour of delay. So I believe in the wrong circumstances, the Edinburgh TT may well be wrong.
I'm afraid we will have to differ there. No matter when the train actually enters, it is always timetabled to enter at a specific time. If you have a train enter at the wrong time, that is a function of the core code and not the timetable. The timetable is not wrong even if the core code is applying it in a way that you think is wrong.

“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
Last edited: 17/12/2020 at 14:40 by postal
Reason: None given

Log in to reply
Timetable Analyser... 17/12/2020 at 14:50 #134808
Dionysusnu
Avatar
575 posts
Online
postal in post 134806 said:
Dionysusnu in post 134797 said:
I may be misremembering, but I recall I once had a train enter from before the seed time, because it had a full hour of delay. So I believe in the wrong circumstances, the Edinburgh TT may well be wrong.
I'm afraid we will have to differ there. No matter when the train actually enters, it is always timetabled to enter at a specific time. If you have a train enter at the wrong time, that is a function of the core code and not the timetable. The timetable is not wrong even if the core code is applying it in a way that you think is wrong.
If the core code enters that train because it is delayed, it will infinitely wait for a train that isn't seeded. You could put blame on either of the two parts.

Log in to reply
Timetable Analyser... 17/12/2020 at 14:56 #134809
postal
Avatar
5189 posts
Online
Dionysusnu in post 134808 said:
postal in post 134806 said:
Dionysusnu in post 134797 said:
I may be misremembering, but I recall I once had a train enter from before the seed time, because it had a full hour of delay. So I believe in the wrong circumstances, the Edinburgh TT may well be wrong.
I'm afraid we will have to differ there. No matter when the train actually enters, it is always timetabled to enter at a specific time. If you have a train enter at the wrong time, that is a function of the core code and not the timetable. The timetable is not wrong even if the core code is applying it in a way that you think is wrong.
If the core code enters that train because it is delayed, it will infinitely wait for a train that isn't seeded. You could put blame on either of the two parts.
I'm sorry but the TT is not wrong. The application of it may be but that does not make the TT wrong. Following your logic every TT with seed groups is wrong as any train which is due to enter before any seed group time bar the default is liable to enter incorrectly so a lot of trains in most seed-group TTs are wrong. I think you may be in a minority with that view.

However, Clive may be able to comment on whether the core code should allow a train from pre-seed group time to enter after the sim has opened with the seed group. This would clearly have consequences if the train is in sim at the seed time as the TT writer should then have already seeded the train part way through its transit.

“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
Last edited: 17/12/2020 at 18:18 by postal
Reason: None given

Log in to reply
Timetable Analyser... 17/12/2020 at 19:53 #134813
GeoffM
Avatar
6274 posts
The part of the code that assigns a delay checks its entry time first, and if it's before the current time (ie seed time) then it is cancelled. Otherwise, and only then, does it consider assigning a delay.
SimSig Boss
Log in to reply
The following user said thank you: postal
Timetable Analyser... 31/12/2020 at 14:02 #135702
bill_gensheet
Avatar
1309 posts
clive in post 134772 said:
bill_gensheet in post 134637 said:
Back to the analyser (although Liverpool St - Shenfield or beyond 1949 is definitely interesting !). I am getting different analyser outputs depending on sort order of the trains.



Timetable attached,
That was, um, interesting. When I analysed it with the detailed reports added, I found a FRI train was waiting for a WED train! Which immediately pointed at the area of the code to be suspicious of.

It turns out there are *two* bugs in different parts of the code that makes sure instances of associated trains have the same decisions made. In all my testing, these two bugs had cancelled each other out and so I never spotted it. But your example tickled one but not the other! (As you might guess, the different order of analysis means that the bug wasn't triggered when sorted differently.) Fixing both means the problem goes away and that timetable doesn't produce any warnings.
The fix is now in the core code and so will appear in the next release. It's quite possible that it will improve things for others as well (<cough> VInce <cough>).
Thanks for taking the time to create this minimal timetable.
Confirmed as OK with Loader 5.13

Thanks
Bill

Log in to reply
Timetable Analyser... 22/01/2021 at 22:05 #136692
clive
Avatar
2736 posts
clive in post 134789 said:
postal in post 134788 said:

If you start the 04:45 seed group, 1B01 does not run because the 04:45 seed group starts the session at 04:45 which means that 1B01 cannot enter as it was due to enter before 04:45
Argh. If I ever knew that, I'd forgotten it and it's not mentioned in the wiki page about seeding groups. That's right (I've just found the code that does it) and that means another bug in the analyser.

Mantis 32532 raised.
And fixed. It'll appear in the next release.

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