The full statement for the project is available through the slides on Moodle.
- Instance: custom0
- Threshold 1: 7000
- Threshold 2: 5500
Grading:
- 7/20 if you find any valid solution.
- 12/20 if you reach the first threshold.
- 15/20 if you reach the second threshold. 20/20 if you find the best solution among all groups. Linear (depending on your rank in the scoreboard, per instance) in between.
The grade given by INGInious is not your final grade, as it will only give you either 0 (which is final), 7 (which is final), 12 (which is final) and 15 (which is the minimum you will obtain in this case).
Your solver will be started with the command
mvn -q exec:exec -Dexec.executable=java -Dexec.args="-Xss16m -classpath %classpath minicp.examples.AircraftLanding path/to/instance"
Test it on your computer before testing on INGInious. Note that the filename given as input is not the same as the filename found in your repository (i.e. "path/to/instance"
will never be "data/alp/custom0"
).
The last nLanes+1 lines of your output will be read, as they should contain your best found solution.
Use the AirplaneLandingSolution class to build the solution, and print only your last solution. It should be something like this:
Cost: 12 - 0(t=0), 1(t=5), 2(t=10) - 3(t=0), 4(t=7), 5(t=9)
cost is of course the sum of the absolute difference between the wanted time and the given time of all planes. The next lines are the lanes. 1(t=5) means that the plane 1 lands on time 5 (planes are numbered from 0 to nPlanes-1).
Don't print anything else than your last solution, as it considerably slows down your submission.
You have 3 minutes in CPU (!!) time for each instance. Make sure your solver stops before being killed. You can measure the CPU time of your solver by using the following code snippet:
import java.lang.management.ManagementFactory; ManagementFactory.getThreadMXBean().getCurrentThreadCpuTime();
Be sure to RTFM to understand what this function does.