Skip to main content

Timeline for LPA* implementation keeps looping

Current License: CC BY-SA 4.0

7 events
when toggle format what by license comment
Jun 11, 2018 at 21:34 vote accept user149408
Jun 6, 2018 at 12:32 answer added user149408 timeline score: 1
Jun 2, 2018 at 1:47 comment added user149408 @D.W. Thanks, that did indeed reveal that, at least in some cases, the function to calculate edge costs still returns the old values, not the new ones. Apparently I overlooked that the route graph is built from all configured maps, and if the map changes (traffic conditions are also map items), this information needs to be updated. Though that may not be the whole story, I need to fix this first.
May 31, 2018 at 20:26 comment added D.W. In this case I'm talking about a minimal graph (a minimal input), not minimal subset of code.
May 31, 2018 at 20:04 comment added user149408 For concise pseudocode of generic LPA* see LPA* on Wikipedia. I authored the article, based on the paper cited, then based my implementation on it. Therefore, if I introduced any errors in the pseudocode, they would likely have propagated to the actual code. MCVE is difficult, as it is hard to separate the code in question from the rest of the application.
May 31, 2018 at 18:33 comment added D.W. I suggest using standard debugging techniques. Try to find a MCVE, specifically, a minimal-size graph that causes infinite looping. Once you've done that, look at the sequence of updates that get made to understand why a loop is happening. You can also try to write a proof that the algorithm should terminate. Then, if you're able to do that, check what invariants you found yourself using in that proof, and add asserts to your code to check that all of those invariants are true. Can you show concise pseudocode for LPA*?
May 31, 2018 at 17:03 history asked user149408 CC BY-SA 4.0