You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Greetings,
Following the closing of #7965 which dealt with IDA* implementation, I wonder whether there is a necessity for such algorithm in NetworkX. Generally, combinatorial problems that are solved with heuristic search represent the state space as start state and a successor function which allows the algorithm to explore the graph. Since A* saves all nodes discovered, its memory usage is linear in the state space. This can be a problem with graphs that do not fit into memory, hence IDA* which is linear in solution length. But since NetowrkX assumes the entire state space fits into memory, I doubt IDA* will provide any benefit over A*. I would also like to point out there quite a few issues (in my opinion) with the suggested stack based approach which makes the algorithm not exactly IDA* while also being less efficient. But, since the PR was closed, I did not write a comment there.
There exists an algorithm called BAE*12 which is a bidirectional heuristic algorithm which assumes heuristic consistency (unlike A*, where this assumption was fixed in #3508). It does require two heuristics, the regular one from node to goal, and the other is from start to node. Would there be interest for such algorithm? It's mostly a question of how often NetworkX is used as a heuristic search framework, since BAE* is significantly better than A*, but mostly on exponential state spaces.
Footnotes
Sadhukhan, S. K. 2013. Bidirectional heuristic search using error estimate. CSI Journal of Computing 2(1-2):S1:57–S1:64. ↩
Alcazar, V.; Riddle, P. J.; and Barley, M. 2020. A Unifying View on Individual Bounds and Heuristic Inaccuracies in Bidirectional Search. In AAAI, 2327–2334. ↩
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Greetings,
Following the closing of #7965 which dealt with IDA* implementation, I wonder whether there is a necessity for such algorithm in NetworkX. Generally, combinatorial problems that are solved with heuristic search represent the state space as start state and a successor function which allows the algorithm to explore the graph. Since A* saves all nodes discovered, its memory usage is linear in the state space. This can be a problem with graphs that do not fit into memory, hence IDA* which is linear in solution length. But since NetowrkX assumes the entire state space fits into memory, I doubt IDA* will provide any benefit over A*. I would also like to point out there quite a few issues (in my opinion) with the suggested stack based approach which makes the algorithm not exactly IDA* while also being less efficient. But, since the PR was closed, I did not write a comment there.
There exists an algorithm called BAE*12 which is a bidirectional heuristic algorithm which assumes heuristic consistency (unlike A*, where this assumption was fixed in #3508). It does require two heuristics, the regular one from node to goal, and the other is from start to node. Would there be interest for such algorithm? It's mostly a question of how often NetworkX is used as a heuristic search framework, since BAE* is significantly better than A*, but mostly on exponential state spaces.
Footnotes
Sadhukhan, S. K. 2013. Bidirectional heuristic search using error estimate. CSI Journal of Computing 2(1-2):S1:57–S1:64. ↩
Alcazar, V.; Riddle, P. J.; and Barley, M. 2020. A Unifying View on Individual Bounds and Heuristic Inaccuracies in Bidirectional Search. In AAAI, 2327–2334. ↩
Beta Was this translation helpful? Give feedback.
All reactions