FAQ2012Competition
FAQ2012Competition
1) Could you please provide clarification on how train types are defined? There seems to be a two-level hierarchy with schedule adherence (SA) and non-schedule adherence (NSA) trains on the upper level; heavy, long, and inhalation hazard trains are on the lower level. So a train type could be defined as Train (SA, Heavy). Is this correct? Also, can a train be both long and heavy, long and inhalation hazard, etc.?
Being SA or NSA train is a totally different attribute than requiring special handling, namely, being Long, Heavy or IH. In reality, a train can be a SA train (or a NSA train), and at the same time it can be heavy, long and IH, or it can belong to any combination of those three special handling types (or no special handling at all). In the data files, however, you won’t see any trains requiring more than 1 special handling type. But, trains are definitely classified under the SA type or NSA type for sure.
2) What exactly is the difference between the input details of SA and NSA types of trains?
NSA trains are lower priority and they do not incur penalties when they are not on time. They do not lose their hotness if they are delayed more than 2 hours. They have schedules like all trains in real life have, but they are not strictly enforced. This is the only difference.
3) Is the problem horizon for all three problem sets fixed at 12 hours?
Regardless of where all the trains end up, the planning horizon is 12 hours for all 3 data sets.
4) Regarding input/output format, is the encoding convention subject to change, or will it remain steady through August? I noticed that at present, input is in plain ASCII while output is in XML.
The input/output format will not change, we ask everyone to submit in same format
5) Will any kind of "checker script" be provided that verifies feasibility /solution quality? Although I don't observe any ambiguity in the PDF instructions, it's possible that different interpretations could cause teams to evaluate solutions differently. (if "no", could one participating team volunteer to create & share an official checker?)
We expect participants to make sure that their solution is feasible. Once the solution is submitted, we create our own checker script to check if the solution is feasible. Infeasible solutions get fewer points depending on how many and how much. If you want, you can provide a checker script and publish it via LinkedIn group. There may be a possibility to use that officially as well.
We are working on providing a graphical tool soon to review the solution on a graph.
6) Will a list of participating teams be posted to the site?
We do not post participating teams on the website, in the end we do post the top 3 teams which comes to present at INFORMS.
7) When a train only arrives at the destination after the end of planning horizon (due to a delay), what should be the want time difference?
a) The train's delay at the end of planning horizon?
b) The difference between want time and the actual arrival, even
though it is outside of the planning horizon?
c) Something else?
There is no want time penalty incurred if the train does not arrive at the end terminals within the 12 hour planning horizon. Delay on the main and on a siding are both more expensive than the want time penalty at the terminals, therefore, don’t worry, the model should not be delaying trains inside the territory just to avoid terminal want time penalties (provided that your model is working correctly).
8) The same question as above, only replace "want time" with "schedule adherence".
No SA penalty beyond 12 hours. We do not want any reporting/movements beyond the planning horizon.
9) Are sidings/switches/crossovers always unpreferred? Or is their
preference dependent on the preference of the main track they are
connected to?
The sidings and switch tracks directly connected to unpreferred main track are also unpreferred for this train to occupy. Crossovers are also unpreferred, but they are very short, therefore, it should not make a huge impact on the objective function. If the train is dispatched to the parallel (unpreferred) track, the crossover must be used, so it is almost like a sunk cost.
10) The most important judging criteria is solution quality. Does it mean that if my algorithm runs for 2 days and produces an excellent solution, it will win? If not, could you provide a reference time-frame in which you expect the solutions to provide reasonable solutions? (My algorithm is able to produce feasible solutions in seconds and the quality of those solutions will depend on whether I optimize it for long run time or short run time.)
The judgment will be based on the combination of algorithm speed, algorithm novelty and quality of the solution (along with some other criteria). Since this tool is supposedly to be used by a dispatcher in real-time, it should not take more than 10-15 minutes to produce a very high quality solution. 3 minutes would be ideal. The solution quality will be assessed by using the best lowerbound that you or another contestant comes up with (or the actual optimal solution if we can retrieve regardless of the solution runtime).
11) Are there any limits when it comes to the memory consumption of
the solution?
No limits for memory.
12) Are you going to provide "reference" solutions? Even ballpark
figures like "$5000 cost is very good, $10000 cost is very bad" would
be extremely useful.
We do not plan to provide such guidance for ballpark figures.
13) My solution will be tested just with the 3 inputs available in the supporting files?
There are 3 data sets with increasing complexity. Your code will be tested on all 3. There is a separate data set for the toy problem if you look in the zip file.
14) I'm free to use any solver like Cplex or Gurobi?
Yes, you can use any solver.
15) The Computer program/model that I need to send is just the executable file or its needed send the code too?
Yes, you are required to send the codes as well.
16) On page 7, MOW Windows description, is written that the holding places could be the terminals at both ends of the territory, the sidings and the main tracks previous to the closed track. So, a train can stop at a track that not is a siding or its true just in case of a MOW?
Yes, the train can stop anywhere in the system including main tracks, irregradless of there is MOW or not.
17) Could you please provide clarification about the Total Delay Computation? Could you please provide a description of how the Total Delays in Column 2 of Table 3 are computed?
A train is considered “delayed”, whenever it is NOT moving, this can happen anywhere on the network. Therefore, whenever you have a train moving on an arc but spending more time than its unimpeded traversal time based on its speed on that arc, which means this time goes toward the total delay calculation. Even if the network is broken because of MOW and hence entailing a train to wait, that time must be accounted for in the total delay amount. Please see the Toy example output.txt file in the supporting files, which will help you understand how we calculated those numbers.
18) In the toy example output, the exit times consider the time when the tail of a train leaves each arc, isn’t it?
For the time being, the output file shows the exit time of the tail end of the train, but in a few days we may be asking everyone to provide entry/exit times based on the lead engine of the train. Please check the RAS website for updates.
19) The trains that exit the network outside the planning time horizon are not used to calculate the objective function of the problem. Is that what you want me to model?
We do not want you to account for any movement or delay based penalties in the objective function if that event is happening beyond the 12 hour planning horizon.
20) I wish to bring to your notice an apparent error in the given TOY EXAMPLE solution. The start and end times of the train between two consecutive pairs of nodes show inconsistency.
Basically, the entire train can have only a single speed at any instant. Hence the leading and trailing edge need to have the same speed and a point in time. But the solution given, suggests otherwise.
Thank you for noticing the error. We are working on finding a resolution for this issue. Please check the website in a couple of days and you will have your answer.
21) I also had a clarification question to ask. It is given that the arc length of the siding has to be greater than the train length. Does this mean that the train has to exclusively wait on the siding arc during a meet-pass event? Or can it wait partly on the switch track and partly on the siding to save time once it starts later on (given the siding length >= train length). For example in the TOY EXAMPLE, can the train B1 wait with its leading edge touching node 7 and the train being partly on the arcs (10,9) and (9,7). If this is not permitted, can the train wait entirely on the siding arc (10,9) with its leading edge at node 9 so as to save time for later on when it starts again?
The waiting MUST be exclusively happening on the siding arc, not on the switch arc. Otherwise, the oncoming train from the other direction would collide/scrape the side of the first train even if its last car is still on the switch arc. If you look at the toy example track chart, if train 1 is on arc (11,10), that puts (8,11) out of commission until train1’s last car clears (11,10).
22) The text says that long trains cannot use the sidings which are shorter than the train’s length and Inhalation Hazard trains are forbidden to occupy the sidings. But can they only pass by the siding without stop there, right?
The long trains and the IH trains are strictly forbidden to even “MOVE” on the siding arc, which means they cannot even take the switch tracks that connect to the siding arcs.
23) As you mentioned in “2012 RAS Problem Competition Corrections” file, train is moving like a dot. But in RAS DATA SET file trains have length. Please clarify this problem.
The train lengths are important to determine whether you can fit that train in a siding during a meet-pass event or not. Other than that, you do not have to worry about it in your model or in your output reporting. The 5-minute separation rule will leave a good enough distance between trains and thus the model will implicitly take care of the train lengths (so that they do not collide into each other).
24) As you mentioned in the problem description, same type Schedule Adherence trains are assumed to have the same velocity.(8 page, Schedule Adherence) However, even if both trains are same type such as A1 and A2, the velocity of train is not equal in data files. Please clarify this assumption.
Sorry for the confusion. On page 8, we meant to say that there is a clear distinction between the velocities of different types of trains, we did not want to mean that all trains in the same group have the exact same velocities. Please use the velocities given in the data files for each train separately, don’t take them as equals for the ones in the same SA or NSA group.
25) Can the problem have more than three (0, 1, 2) main tracks? If yes, would that be mentioned in the TRACKTYPE description? i.e. if a problem has 4 main tracks, will the TRACKTYPE description say : "(Main 0, 1, 2, 3, Switch (SW), Siding (S), Crossover (C)):"?
Yes, in reality, there can be 3, 4, 5 parallel main tracks between 2 stations. But in none of the data sets we provided, there are more than 2 parallel tracks. To answer your question, if there were 3 mains in between 2 stations, then it would have looked like Main 0, 1, 2, 3, Switch (SW), Siding (S), Crossover (C).
26) In the case of above question, what would be the preferred direction of those additional tracks? Because the RAS problem statement pdf only says that main track 1 would be preferred westbound and main track 2 preferred eastbound.
Since we do not have more than 2 tracks between any 2 stations in any of the data files for the RAS competition, we did not provide such information. Generally, when it is more than 2 tracks, depending on the traffic pattern, the other tracks are assigned to either westbound or eastbound trains irrespective of preference. It is all about how and what tracks are the fleets scheduled to move at that point.
27) In some cases the length of arcs in the main track is less than the length of trains (for example in DATA SET I, the length of arc (0,1) is .03 mile while all trains have greater length). As trains occupy two or more arcs simultaneously, how the trains are assumed as dots.
For graphing and tracking the trains whereabouts, you can assume it is a dot; but, for reassigning the same track to another train, you have to use the 5-minute rule.
28) Is there any time limitation for waiting trains on each siding (for example 3 minutes is the maximum waiting time on the siding).
It is assumed that there are no grade crossings where the sidings are, therefore, there is no time limit for waiting at the siding.
29) can I descritize time into 0.5-minute interval?
You can discretize your time-space network in the smallest interval possible, the only problem is, the size of your problem will get out of control as you go smaller.
30) The number of trains that arrive at their destination node within the planning horizon doesn't affect the objective function value. So, my question is: what is the "importance" of a train arriving in its destination node within the planning horizon? I mean, suppose there are two possibilities: 2 trains arrive at their destination within the planning horizon without delays or twt penalty and a third train arrive outside the planning horizon. The second possibility is to delay the two trains and put the arrive event of the third train inside the planning horizon. If the objective function value is the same on both options, there is some preferred solution?
It is not the number of trains arriving at their destinations within the planning horizon that matter for our purposes of this competition; but, the system-wide velocity along with Schedule adherence, terminal want time and non-preferred track utilization that matter. However, if you think about it, when you assign too much delay/dwell to a train, of course it will impede that train to arrive before the planning horizon ends; moreover, you will hurt the other objective function components as well. To conclude, we are INDIFFERENT if you come up with a solution which makes 10 trains arriving before the planning horizon vs. 15 trains arriving before the planning horizon PROVIDED THAT both objective functions are the same in magnitude. Remember that the cost for delaying trains are significantly higher than SA, TWT and non-preferred track assignment penalties.
31) Even after the corrections, the provided solution to the Toy Problem it's still not necessarily the optimal solution, right?
The solution to the toy problem is not necessarily optimal, it is just a solution for demonstrating how to produce the output file and calculate costs.
32) The text says:
"The solution must not show any delay (waiting) on a siding when there are no meet-pass events occurring. In order to relieve an impending congestion ahead, the solution cannot assign trains to sidings. A better solution would be slowing down the train prior to the congestion. This can be effectively done by letting the train traverse that arc in its normal pace, and then instantaneously stop and get delayed by the amount of time the solution suggests."
Please, clarify it. I understood that no one train can stopor ever passby a siding without a meet-pass event occurring. Am I right?
Your understanding is right, if there is no trains passing or meeting this train which YOU had assigned to a siding, and then if this train just moves on towards its destination, then this is a very bad dispatching practice. This train should have been slowed down (meaning delayed at the main track of this station or somewhere else on the main track) if the aim was to relieve the congestion downstream.
33) Some trains start from points that's not west end or east end, like node 17 or 34, for example, but the text says:
"Terminals exist at both the west and the east ends of the territory, and there are no other terminals inside the territory, all nodes along the route of the trains are pass-through, where no work events occur."
So, when this trains starts effectively to occupy their initial track, from his Entry Time or just from the time that he starts to move?
In the snapshots we gave as data sets, there are trains already inside the territory; this means they may have left either the west or the east terminal a couple of hours ago. This suggests that at time 0, wherever you see these trains as their origination node, the arc that has the head node as that node is already occupied by this train and no other train in the same direction can move on this arc until the lead engine of the first train clears from this arc and then there is a headway constraint of 5 minutes.
34) Do I need to worry about collisions or deadlocks that may occur after the planning horizon?
You do not have to worry about events/costs/restrictions after the planning horizon.
35) Can any kind of the trains wait at the main track if necessary?
There are no restrictions regarding the type of trains which can be delayed on the main track
36) Which is the primary unit of measure when we calculate the objective function values, the seconds or the minutes?
It is up to you to choose the level of discretization in your optimization model; for instance, it can be from 1 second (which may blow your model) to 5 minutes (which will be too coarse)). However, for objective function calculations, please use the guideline provided in the problem document for the toy problem. Using seconds or minutes in your model won’t matter as long as you use the cost coefficients correctly in accordance to the time unit in the definition for that cost expression.
37) The third part of the submission should be the computer program/model. According to the FAQ, this includes the source and an executable. Must the algorithm run on your system? If that is the case: Do you need some kind of installation instructions? What kind of operational system do you using? Linux/Window/Mac). It is maybe hard to provide a proper executable file.
We need to verify that the code/program you have written is actually producing the output you claim in your report. Therefore, please provide us with all the necessary instructions to replicate your solutions on our computers. I and most of the other judges have Windows 7 operating systems, but I have access to an AIX and a Linux server as well.
38) This is a follow-up to the latest FAQ published. Are you providing any graphical tools, apart from own feasibility checking? My outputs are generated in tables (CSV, ODT, XLS). I am unable to convert the outputs exactly as the given XML formats. Are there any schemas or XSD files available for proper conversions?
The output format we are asking is in standard XML format. There are many libraries out there in C++, java and python languages, which will easily convert your timetable into the format we would be using for checking violations and graphical display. Therefore, please do a google search and I am sure you will find the package for whichever language you are using. Use keywords as "xml parser", "xml format data converter" + your language.
We are not ready to reveal whether the visualization tool we are testing can be used by the contestants or not. We will keep you updated.
39) I think there is another minor mistake in the RAS TOY EXAMPLE input file. For train B1, the Terminal Want Time has been specified for the the EAST (Node 12) terminal whereas the train is actually WESTBOUND with destination as node 0.
Because the READ ME For INPUT file suggests that a train can be assumed to disappear from the territory once it has reached its Destination Node.
So I just wanted to verify if this is a typo and the actual Terminal Want Time is for the WEST terminal. In other words, can an EASTBOUND train safely be assumed to have the EAST terminal as its TWT terminal and the WESTBOUND having the WEST terminal as its TWT terminal; and that the destination for any train will always be one of the two terminals?
Unfortunately, you caught another typo from us. Yes, the data for train B1 should have looked like below:
HEADER: B1
ENTRY TIME (from current time in minutes): 0
ORIGIN NODE: 12
DESTINATION NODE: 0
DIRECTION: WESTBOUND
SPEED MULTIPLIER: 0.85
TRAIN LENGTH (miles): 1
TOB: 75
HAZMAT (IH: YES or NO): NO
SA STATUS AT ORIGIN: -120
SCHEDULED ARRIVAL (NODE: minutes from current time): 6: -50 , 0: 90
TERMINAL WANT TIME (WEST or EAST Terminal: minutes from current time): WEST: 80
You can safely assume that each train in all of the data files have only 1 origin and 1 destination, and the terminal want time always applies to the destination terminal.