While running simulations of the revised operating scheme whereby we have no dedicated switcher at Grand Forks, but simply let the way freights switch the industries and exchange cars between the railroads, once again there is a pile up of cars that get “stuck” in the yard at Grand Forks. This is fundamentally no different than when we had the dedicated switcher, just to a different degree. It occurs on fewer tracks, and involves less cars, but it is still an undesirable outcome that will lead to unsatisfactory operations.
One thought was that we should try to minimize the shipments that are selected during restaging to ones that have a more clear path from staging to the first delivery point. This is called “congestion” and is a measure of how full the tracks are along the car’s route to its first destination. The restaging logic now considers only those shipments where the path congestion is below a certain level, with the idea that this will help the overall car flow by not overloading the paths that already have lots of cars along them.
Test were run with various levels of congestion threshold, and while the number of cars getting stuck in the interchange tracks was generally less, the effect was far less than hoped for. For example, on a 30 day simulation with 40 cars and a congestion threshold of 0.5, the number of times a car had to be skipped because it there was no room ahead for it dropped from 187 to 147. With 60 cars and the same 0.5 threshold, the number of skipped cars actually rose from 787 to 948! Not a lot of help there.
An examination of the tracks involved showed that the vast majority of the skipped cars were in fact at industries waiting to be picked up and needed to be exchanged with the other railroad, but there was no space on the interchange track. Clearly the issue is not just with picking shipments for cars being restaged, as that only addresses the first leg of their journey. With shipments able to go in all directions, many cars will get delivered to their first stop without passing through a congested area, but that says nothing about the car’s second leg, which has a high probability of needing to be interchanged, hence the problem.
One simple and obvious solution is to tinker with the shipment mix so that most shipments do not require interchange, but that is an artificial solution that is not appealing. Some way needs to be found to minimize the number of shipments needing interchange for a typical layout, without introducing artificial un-prototypical assumptions.
The next thing tried was to segregate shipments by the number of railroads involved, using some form of weighted random selection. The idea is that most of the shipments selected when restaging cars probably should be for the home railroad, so that only some will need to be interchanged. To test this idea, a stricter simplified version was implemented which only selects a home railroad shipment. This works well, but can result in a fair number of cars with no candidate shipments which must be moved to storage. A better way is to only enforce this when there are in fact shipments that meet the criteria, and revert to an “anywhere” model when there are no same railroad shipments available.
The return track selection for inbound shipments was also constrained to be the originating staging track, otherwise these moves can involve interchange tracks as well.
The results of these changes did not produce the kind of improvements that were expected, and there were still far too many interchange moves, so more investigation was needed. Confining shipment selection to only one railroad was clearly not working, and a detailed look at the data showed why. In my haste to convert to the newer two railroad operational model, I had neglected to update which tracks were owned by which railroads, as it really did not matter up to that point. Now with a shipment selection based on owner, it did matter greatly and was very wrong, hence the large number of interchange moves still happening. It was all essentially still one big happy railroad, with shipments going everywhere and plugging up the interchange tracks. Despite the name, the so-called interchange tracks know nothing about which railroad they belong to or even that they are an interchange between railroads. They are simply part of the car routes from one place to another. By having almost everything owned by one railroad, it meant that all of the shipments were candidates, just as before, so naturally many of the ones selected just happened to be between points on the layout that needed to pass through an interchange track.
By correcting the track ownership problem, shipments that are all on one railroad will in fact be moved only by trains of that railroad, thereby minimizing cars passing through the interchange tracks. There are still a few, because sometimes there are no single railroad shipments available during restaging, so the criteria is relaxed to consider any candidate shipment which includes interchanges. Tests bear out a big reduction in the number of cars passing through the interchange tracks, and they are no longer filling up. The total number of cars picked up has increased about 20% and the number of cars that can’t be moved because there is no space ahead has dropped to about 60%.
This little exercise has shown that various techniques can be used to influence the shipments selection process during car restaging on ways that can improve the overall traffic flow on the layout. More research will probably reveal even better ways to do this without having to resort to un-prototypical assumptions or approximations.
The mechanism to influence restaging shipment selection could be brought out as a user configurable feature. So layouts might want to have lots of interchange traffic and can handle it, so this should not be a fixed feature.