Replies: 4 comments 4 replies
-
Some questions :
|
Beta Was this translation helpful? Give feedback.
-
One more consideration about reducing the space of search. What about finding the already existing path solutions for such request (source / destination) so that we can build a really smaller graph?
The question would be "how do we search this existing space of solution" ? |
Beta Was this translation helpful? Give feedback.
-
Another difficulty is how to compute the final speed and position curves, the solution we have implemented is lacking and fails in some cases. This is more difficult than what we originally thought. We have the following problems:
|
Beta Was this translation helpful? Give feedback.
-
The details, discussions and meeting notes will now be written in the issue #1960. The algorithm we will likely implement is not like the one I have described above: as it turns out, the assumptions were wrong and even approximations wouldn't work. |
Beta Was this translation helpful? Give feedback.
-
We need to discuss and find a better algorithm to compute STDCMs, as the one we currently use has a very poor complexity.
I have a draft of a new algorithm that we can use as a place to start, but there are still some areas where I don't exactly know if and how they can be computed.
General idea
I think the way to go about it is to represent the problem as a graph so that we can run conventional pathfinding algorithms (and possibly reuse the pathfinding code we already have). This also makes it easier to use an algorithm with a heuristic such as A*, which we may need because evaluating the neighbors would be a costly operation.
To do this, we need to define a node, an edge, and how the neighbors are computed. Ideally we would do this with no backtracking.
I assume we have access to a route graph, with
RouteEdge
andRouteNode
.Classes
Examples
In this example : occupied sections are filled in red, fastest run time is plotted in blue, slowest run time is plotted in green. Each orange line is one pathfinding node. The orange area represents what the train has access to.
This assumes 0 length rolling stock and sight distance for easier plotting, but it can easily be accounted for.
This second example shows why we need both the time and speed for the slowest run time curve : it handles cases where we don't have enough time to slow down
Grey areas, doubts, things to discuss
This makes several assumptions that may not be true or easy to do.
Beta Was this translation helpful? Give feedback.
All reactions