
-
209
Submissions444
Participants29.7 k
Views
LeoB hasn't authored any tutorials yet...
- Read the Source files and simplifies it
- Build the graph for each route
- Find the shortest path for each route (wrt the objective function)
- Output the problem as a Minizinc problem to a file (reduce some statements that can never be true along the way)
- Call Minizinc to compile the file to Flatzinc (for speed reasons without any optimization)
- Call the Google OR-Tools Flatzinc-Solver
- Read the result from the Flatzinc-Solver and create the JSON result file
Train Schedule Optimisation Challenge | Challenge Feedback | about 1 year ago
First let me thank the organizer for making this competition possible. I learned a lot!
Most points I see as critical where made before. I just want to emphasize a few points. First to the good points: I found it great how fast we got good feedback from the organizer. Also, the different problem instances made it easy to work on the problem. The description on github were very helpful.
On the other hand, the input format (as mentioned by others before) is really strange. And until today I’m not hundred percent sure if I understood everything correctly. Simplifying the “domain model” would make it easier to start in this competition.
Then I’m not sure if the competition format is at all suitable for this kind of problem. As one can easily calculate the score locally, there is in general no need to submit a solution early which makes the leaderboard quite boring. Also there is no possibility to ensure that solutions are not overfitted or take more resources than specified (at least not until the end of the competition).
Train Schedule Optimisation Challenge | What tools did you use? | about 1 year ago
Congratulations too all of you! I’m impressed (especially with the ones that solved the problem without a solver)!
I ended up with a pipeline controlled by a R program. Along the way the program did the following steps:
Step 2 and 3 where parallelized in R. In Step 6 I run the Solver in parallel. All in all, I ended with around 450 Lines of R code.
Train Schedule Optimisation Challenge | Solver time | about 1 year ago
It might bei worth to run your final computation in a machine similar to the one of the organizers. I guess a AWS ec2 r4.8xlarge instance might hit the characteristic of their machine pretty closely (as long as they die nothing stupid ;). It’s the Machine I ended using for my final submission.
If you need more power, a c5.9xlarge instance with 4 cores dectivated might give you someone mir Speed and is still within competition rules.
Train Schedule Optimisation Challenge | Validator calculating penalty for problem instance 7 wrong? | about 1 year ago
@jordiju but would it be possible to debug with my solution if I send it to you by mail. I just can not find an error in my code and therefor still think the validator might calculate the route penalty wrong. BTW my script agrees with the penalty on all other solution (which I have) except for solution 7.
Train Schedule Optimisation Challenge | Validator calculating penalty for problem instance 7 wrong? | about 1 year ago
Thank you for your fast answer!
So the route penalty is 46, so this sums nicely up. But if I check on my own validation script, I do not have a route with a penalty on it. Off course my script might also be buggy. But as I more or less just read in the penalties from the source file its hard to mess it up. It would be realy great to have some more output from the validator to check whats wrong.
Train Schedule Optimisation Challenge | Validator calculating penalty for problem instance 7 wrong? | about 1 year ago
What I get from the grader for my solution for problem instance 7 is:
There are 3 warnings and 0 errors
the solution has 3 warnings. It will be accepted as a feasible solution. However, it will incur 47.183334 penalty points in the grader.
Warnings: - Solution with VP-Label “07_V1.22_FWA” and problem_instance_hash “-1799980237” has a wrong Hash! Hash: 1539370788, expected: 1570521172 - Entry time 07:52:14 after einMax 07:52 for Train run sections with route_section_id “18225#302” and Section Marker “PF_Halt” in service_intention “18225” - Exit time 06:44:57 after exit_latest 06:44 for Train run sections with route_section_id “68333#30” and Section Marker “ZAU” in service_intention “68333”
Controlling the solution manually I do not see any weights for entry or exit delay other than one. I do not see any other penalties. So when I calculate the above delays I should get (14+57)/60 = 1.183. Why does the validator disagree with me on this one?
Train Schedule Optimisation Challenge | Reference Value Instance 5 | about 1 year ago
I guess I can give you a small hint: As the instance descriptions tell you, the problem instance 4 and 5 are very similar. With some tools you might find out what the difference is. This I guess, will also give you an upper bound of the problem.
Train Schedule Optimisation Challenge | Questions about the Competition Rules | about 1 year ago
I have some questions about the competition rules.
You write that the results must be reproducible. I think this is very good to make this competion fair and I try everything to make this possible. However given the wall-clock time limit it might be realy hard to make the result reproducable if you give the solver a timelimit after which he needs to stop.
In the rules it’s writen that “the solutions must be found by the participants’ solver in no more than 15 minutes per problem instance”. By the “participants’ solver” you mean the hole pipline including pre and post processing?
I guess “more exotic hardware” does not include a server with just a lot more (conventional) cores? (Just to be sure ;-)
The rules do not state anything about “overfitting”. By that I mean tunning certain parameters or even writing special code for certain instances. Is this practice allowed according to the rules?
Train Schedule Optimisation Challenge | What's up with route [77]877 in problem instance six | about 1 year ago
I found the problem by myself. I thought the validation script had an error displaying “[77]877” as “77]877”. But this is not the case, the route name is really “77]877”. Which then again is not working in my script (yet).
Train Schedule Optimisation Challenge | What's up with route [77]877 in problem instance six | about 1 year ago
When I commit a solution for problem instance 06_V1.20_FWA I get a lot of errors like (always for this route):
Minimum running time of 142 seconds + of 0 seconds for route_section “77]877#305” in service_intention “77]877” undercut Running time on Section: 0 seconds
When I search in the problem file I can not find any string like “[77]877”. What is my mistake?
Train Schedule Optimisation Challenge | validate_solution.py returns 404 | about 1 year ago
Hi,
I tried to check my solution of the problem instance 3, but all I get is a 404. The exact text:
upload finished with status 200
validation finished with status 404
WARNING: don’t know how to translate ‘timestamp’’. I will leave it as is.
WARNING: don’t know how to translate ‘status’’. I will leave it as is.
WARNING: don’t know how to translate ‘error’’. I will leave it as is.
WARNING: don’t know how to translate ‘exception’’. I will leave it as is.
WARNING: don’t know how to translate ‘path’’. I will leave it as is.
Traceback (most recent call last):
File “validate_solution.py”, line 50, in
Is this a problem with my solution or an error in the remote checker?
Train Schedule Optimisation Challenge | Problem Instance 2: What's up with BIL and BILW? | about 1 year ago
Hi @jordiju My solution bases on R and not on python. So the reference to a library will not help much. But for now I stopped working on this approach and started with a completely different approach (at least for now).
Train Schedule Optimisation Challenge | Problem Instance 2: What's up with BIL and BILW? | about 1 year ago
Hi @Raphael Thanks for fixing it. Off course it’s not relevant for the (optimal) solution, but for my algorithm to detect the direction of the train it is relevant. Off course I’m not yet sure if the detection of the direction is helpful at the end. But can I make the assumption that in correct example that the ending_point off one route section is the section_marker of the next route section in sequence?
Train Schedule Optimisation Challenge | No 'ende' section | about 1 year ago
This was also confusing for me. I started to implement my algorithm to the, very well explained, working example. And because it was based on the ‘start’ and ‘ende’ section assumption it did not work for the next example. Not a huge issue, but still.
Train Schedule Optimisation Challenge | Problem Instance 2: What's up with BIL and BILW? | over 1 year ago
In my observation I see that the Route/Line 18223 and 911 move on certain parts into the same direction. However if I use the same algorithm as route_graph.py to build the graph, in my understanding, the route from 911 (sequence number 380 and 385) moves from BIL to BILW and the route 18223 (sequence number 440 and 445) moves from BILW to BIL.
Could someone share this observation? Is the graph building algorithm in route_graph.py bugy?
Train Schedule Optimisation Challenge | A note on Solution Validation Results: Don't hesitate to ping us if you need help interpreting the validation feedback! | over 1 year ago
Will I only get feedback when using the REST-API? I submitted a failing solution over to GUI and got zero feedback (except that it is an “Error”).
Apparently LeoB prefers to keep an air of mystery about them...
Train Schedule Optimisation Challenge | What tools did you use? | about 1 year ago
My code is now published in my own repository: https://github.com/leobuettiker/sbb-challenge-2018