iquadrat / sbb-train-scheduler

Solver that schedules train time tables according for SBB according to given constraints

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

understanding your algorithm

DanielLSM opened this issue · comments

as i've understood, you create an occupancy map and then resolve greedily this conflicts, but what were the heuristics used? when do you backtrack? could you tell me what theoretical background you used?

Well, there is a heuristic for choosing which conflict to address next. See the code for details. And then, the conflict resolution that (locally) causes the least conflicts is chosen. Backtracking is done if I see that no solution is possible anymore (e.g., when there is a resource with a time range where two trains each need 2 minutes occupation but the time range is only 3 minutes).