Comments (1)
Hi Josh,
I'm not sure the current API can readily support a bidirectional search. In addition to the points you've already mentioned (the successors
API not being inherently reversible in the general case, and the heuristic for A*/IDA* not being suited for the reverse direction), two other considerations come to mind:
- When attempting this, you must maintain two sets of visited nodes to detect an intersection.
- Bidirectional search might often be accomplished with two threads working in parallel, unlike unidirectional searches.
Incorporating advanced pathfinding techniques is something I'd love to see added to this crate. Bidirectional search and graph compression (with initial offline processing) are among those techniques. I would welcome such contributions, as I currently lack the resources to undertake them myself.
I'll leave the issue open as a feature request to keep track of this.
from pathfinding.
Related Issues (20)
- minimize staircasing in pathfinding algos HOT 1
- Dependency Dashboard
- Searching (BFS/Dijkstra/A*) with multiple starting nodes HOT 3
- Yen's Algorithm - root path comparison off by one HOT 1
- Question: Finding the right algorithm for exploring nearest successors in a weighted graph without heuristics HOT 3
- Potential shortcut for Dijkstra implementation? HOT 1
- Second argument to dijkstra raises an type error HOT 4
- feat: ColIterator HOT 7
- Add in-place matrix transposition for non-square matrix
- `yen()`'s result is not always ordered HOT 3
- Profile-Guided Optimization (PGO) results
- `dfs_reach` does not visit nodes in `successors` order HOT 2
- Yen's Algorithm cannot handle multiple edges HOT 1
- All the links in Algorithms in Readme are broken HOT 2
- Inconsistency between documentation and code implementation
- Add more example HOT 4
- Add support for computing an early abort for Astar based on cost HOT 3
- Add Implementation for Prim's algorithm
- A* sometimes doesn't find any path HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pathfinding.