SolverResearch Corebfs
Breadth-First Search (BFS)
Expands in layers and guarantees shortest path in unweighted mazes.
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Push start cell into a queue.
- Pop in FIFO order and visit neighbors.
- Record each neighbor's parent when first discovered.
- When goal is reached, reconstruct path via parents.
Pros
- Optimal path for unit weights
- Simple and robust
Cons
- Can explore many irrelevant nodes
- Large frontier on wide-open maps
Best use: Reliable shortest path on unweighted grids.
Interesting fact: BFS is equivalent to Dijkstra when every edge has identical weight.
SolverResearch Coredfs
Depth-First Search (DFS)
Follows one branch deeply before backing up.
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Push start cell onto a stack.
- Pop and explore a neighbor branch deeply.
- Track discovery parents for reconstruction.
- Backtrack naturally when stack unwinds.
Pros
- Very low overhead
- Strong step-by-step visual clarity
Cons
- No shortest-path guarantee
- Can take long detours
Best use: Showing exploratory behavior rather than shortest paths.
Interesting fact: On tree mazes (perfect mazes), DFS still finds the unique path but may explore much more first.
SolverResearch Coreastar
A* Search
Combines actual cost and heuristic distance to guide exploration.
Compatible with: Perfect, Loopy, Weave
Time: O(E) to O(E log V), depending on priority structureSpace: O(V)
How It Works
- Maintain open set prioritized by f(n)=g(n)+h(n).
- Expand the cell with lowest estimated total cost.
- Relax neighbors if a better g-cost is found.
- Stop at goal and reconstruct via parents.
Pros
- Usually much faster than BFS
- Optimal with admissible heuristic
Cons
- Needs heuristic tuning
- Bookkeeping heavier than BFS/DFS
Best use: Fast near-optimal routing on grid mazes.
Interesting fact: Manhattan distance is a natural heuristic for 4-directional grids.
SolverAliasastar-euclidean
A* (Euclidean Heuristic)
A* variant using straight-line distance heuristic.
Alias of: A* Search (same runtime behavior).
Compatible with: Perfect, Loopy, Weave
Time: O(E) to O(E log V), depending on queueSpace: O(V)
How It Works
- Score candidates with f(n)=g(n)+h(n), where h is Euclidean distance.
- Expand the lowest f-score node.
- Relax neighbors with improved g-cost and update parents.
- Stop and reconstruct when reaching goal.
Pros
- Admissible and consistent on grid movement
- Often smooth directional guidance
Cons
- Can expand more than Manhattan A* on 4-neighbor grids
- Still more bookkeeping than BFS
Best use: Comparing heuristic behavior and exploring geometric distance cues.
Interesting fact: Euclidean is tighter for continuous geometry, while Manhattan better matches axis-only moves.
SolverAliasweighted-astar
Weighted A* (Greedy-Biased)
Biases A* harder toward the heuristic for more aggressive search on unit-cost maze edges.
Alias of: A* Search (same runtime behavior).
Compatible with: Perfect, Loopy, Weave
Time: Often faster than A* in practiceSpace: O(V)
How It Works
- Use f(n)=g(n)+w*h(n) with w>1.
- Expand the node with smallest weighted estimate.
- Continue relaxing neighbors and updating parents.
- Return reconstructed path when goal is dequeued.
Pros
- Lower exploration count
- Good speed at high grid sizes
Cons
- Can lose optimality
- Quality depends on weight
Best use: When responsiveness matters more than guaranteed shortest path, without changing maze edge weights.
Interesting fact: Weighted A* is common in games and robotics where near-optimal is acceptable for speed.
SolverResearch Coredijkstra
Dijkstra
Uniform-cost expansion from the source, optimal for nonnegative weights.
Compatible with: Perfect, Loopy, Weave
Time: O(E) to O(E log V), depending on queueSpace: O(V)
How It Works
- Initialize start with distance 0 and others with infinity.
- Expand the currently known minimum-distance node.
- Relax each outgoing neighbor distance.
- Stop when goal is finalized.
Pros
- Optimal
- Generalizes to weighted edges
Cons
- More work than BFS on unit weights
- No heuristic acceleration
Best use: Reference optimal solver and weighted-path baselines.
Interesting fact: Dijkstra published his algorithm in 1956 and reportedly designed it in about twenty minutes.
SolverResearch Corebellman-ford
Bellman-Ford
Relaxes all open edges in repeated passes until no shorter distances remain.
Compatible with: Perfect, Loopy, Weave
Time: O(VE)Space: O(V)
How It Works
- Initialize start distance to 0 and all others to infinity.
- Run full relaxation passes over every open edge using previous-pass distances.
- Update parent links whenever a shorter path to a node is found.
- Stop when a pass makes no improvements and reconstruct the path.
Pros
- Provably optimal with nonnegative weights
- Simple global convergence criterion
Cons
- More work than BFS/Dijkstra on unweighted mazes
- Global pass updates are still heavier than frontier-only methods
Best use: Reference correctness checks and shortest-path algorithm comparisons.
Interesting fact: This visualizer uses pass-snapshot relaxation so Bellman-Ford progression remains visible instead of collapsing in one cascaded pass.
SolverAdvancediterative-deepening-dfs
Iterative Deepening DFS (IDDFS)
Runs depth-limited DFS repeatedly with increasing depth limits.
Compatible with: Perfect, Loopy, Weave
Time: O(b^d) node expansions in the worst caseSpace: O(d)
How It Works
- Start with depth limit 0.
- Perform DFS constrained to the current limit.
- If goal is not found, increase limit and restart from the start node.
- Reconstruct the path as soon as a depth-limited run reaches the goal.
Pros
- Low memory usage
- Finds shallow solutions early like BFS depth ordering
Cons
- Repeats work across limits
- Can be slower than BFS on broad mazes
Best use: Memory-constrained search demonstrations and DFS/BFS tradeoff education.
Interesting fact: IDDFS combines DFS memory behavior with increasing-depth completeness, making it a classic AI search baseline.
SolverAdvancedgreedy-best-first
Greedy Best-First
Chooses nodes closest to goal by heuristic only.
Compatible with: Perfect, Loopy, Weave
Time: Highly input-dependentSpace: O(V)
How It Works
- Keep frontier ordered by heuristic h(n).
- Expand the most goal-looking node.
- Add newly discovered neighbors.
- Reconstruct once goal is found.
Pros
- Very fast in easy layouts
- Small control overhead
Cons
- Not optimal
- Can be misled by local geometry
Best use: Quick approximate solving and heuristic demonstrations.
Interesting fact: Greedy best-first can outperform optimal methods on easy maps but degrade sharply on deceptive ones.
SolverResearch Corebidirectional-bfs
Bidirectional BFS
Runs two BFS waves from start and goal until they meet.
Compatible with: Perfect, Loopy, Weave
Time: Often far less than single-source BFSSpace: O(V)
How It Works
- Initialize one queue at start and another at goal.
- Alternate expanding the smaller frontier.
- Detect when a node is seen by both searches.
- Stitch both parent chains into one path.
Pros
- Big practical speedups on long corridors
- Still optimal on unweighted graphs
Cons
- More bookkeeping
- Path merge logic is trickier
Best use: Large mazes with distant start/goal pairs.
Interesting fact: Meeting in the middle can reduce explored states exponentially in branching factor terms.
SolverResearch Coredead-end-filling
Dead-End Filling
Prunes leaves iteratively until only solution corridor remains.
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Compute each cell degree in the maze graph.
- Queue non-start/non-goal dead ends (degree <= 1).
- Remove dead ends and update neighbor degrees.
- Remaining cells form the final path corridor.
Pros
- Very different visual style
- No heuristic needed
Cons
- Less intuitive to users expecting search waves
- Best suited to perfect mazes
Best use: Teaching maze topology and pruning-based solving.
Interesting fact: This method solves by elimination, not by explicitly chasing the goal first.
SolverResearch Corelee-wavefront
Lee Wavefront
Distance-wave flood fill from goal, then gradient backtrace from start.
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Run BFS-like wavefront from the goal and assign distance labels.
- Stop once start is labeled (or all reachable nodes are processed).
- Trace from start by repeatedly moving to a neighbor with smaller distance.
- Mark traced cells as the final path.
Pros
- Optimal in unweighted mazes
- Path extraction is simple and deterministic
Cons
- Needs full distance map storage
- Can explore broad regions like BFS
Best use: Wave-propagation visualizations and shortest-path extraction via gradients.
Interesting fact: Lee's algorithm is a classic in PCB routing and grid-based shortest-path problems.
SolverResearch Corewall-follower
Wall Follower (Right-Hand)
Follows one wall consistently to eventually find the goal in simply connected mazes.
Compatible with: Perfect
Time: Input-dependent, typically O(E) in tree mazesSpace: O(V) with parent tracking
How It Works
- Keep a heading and prefer right turn, then straight, then left, then back.
- Move through open passages while maintaining wall contact.
- Record discovery parents for path reconstruction.
- When goal is reached, reconstruct and display the route.
Pros
- Very intuitive
- Great for demonstrating local decision rules
Cons
- Not generally optimal
- Can fail in non-simply-connected wall topologies
Best use: Educational demos of local navigation strategies.
Interesting fact: In perfect mazes (tree mazes), wall following always reaches the goal because there are no isolated loops.
SolverResearch Coreleft-wall-follower
Wall Follower (Left-Hand)
Left-hand counterpart of wall following with mirrored turn preference.
Compatible with: Perfect
Time: Input-dependent, typically O(E) in tree mazesSpace: O(V) with parent tracking
How It Works
- Keep one hand on the left wall while moving.
- Prefer left turn, then straight, then right, then back.
- Track visited/discovered cells and parent links.
- Reconstruct path after goal is reached.
Pros
- Simple local rule
- Useful for comparing handedness behavior
Cons
- Not generally optimal
- Same topology limits as right-hand variant
Best use: Educational side-by-side comparison with right-hand wall following.
Interesting fact: In simply connected mazes, left-hand and right-hand rules both solve, but can produce very different traversal traces.
SolverResearch Corerandom-mouse
Random Mouse
Chooses random moves at junctions with no directional strategy.
Compatible with: Perfect, Weave
Time: Highly variable; can be very largeSpace: O(V) with parent/discovery tracking
How It Works
- Start at entrance and pick random open move each step.
- Record first-discovery parents for optional reconstruction.
- Continue wandering until the goal is reached.
Pros
- Extremely simple
- Great baseline for comparison
Cons
- Unreliable performance
- No optimality guarantees
Best use: Baseline and educational contrast against informed solvers.
Interesting fact: Random Mouse is often used as the lower-bound benchmark in maze-solver studies.
SolverAliasflood-fill
Flood Fill (Lee Wavefront)
Alias of Lee Wavefront under an alternative name.
Alias of: Lee Wavefront (same runtime behavior).
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Delegate solving to Lee Wavefront.
- Expand wavefront distances from the goal.
- Trace a descending distance gradient back to reconstruct a shortest path.
Pros
- Familiar flood-fill naming
- Identical correctness to Lee Wavefront
Cons
- Not a separate implementation
- Behavior tracks Lee Wavefront updates
Best use: Users expecting flood-fill terminology for wavefront shortest-path solving.
Interesting fact: In this codebase, flood-fill is a direct alias of lee-wavefront.
SolverAliaspledge
Pledge Algorithm (Wall Follower Extension)
Wall-following with turn accounting to escape loops/islands.
Alias of: Wall Follower (Right-Hand) (same runtime behavior).
Compatible with: Perfect
Time: Input-dependentSpace: Low local memory (higher in visualizer for tracing)
How It Works
- Pick preferred heading.
- Move straight when possible; otherwise follow wall.
- Track net turn count while wall-following.
- Leave wall when heading and turn count reset conditions are met.
Pros
- More robust than naive wall following
- Good local-navigation concept
Cons
- Still not shortest-path optimal
- More state than hand-on-wall rule
Best use: Comparing local heuristics in non-trivial topologies.
Interesting fact: Pledge specifically addresses wall-follower failures around detached wall islands.
SolverAliastremaux
Tremaux (DFS Path-Marking)
Mark-based exploration that avoids repeatedly traversing passages.
Alias of: Depth-First Search (DFS) (same runtime behavior).
Compatible with: Perfect, Loopy, Weave
Time: O(V + E) typicalSpace: O(V + E) for marks
How It Works
- Mark edges/passages as they are traversed.
- Prefer unmarked exits; backtrack on marked branches.
- Avoid over-marked branches unless forced.
- Eventually reaches exit if reachable.
Pros
- Guaranteed for finite mazes
- Human-doable with marks
Cons
- Not shortest-path optimal
- Needs marking memory
Best use: Historical human-solvable guaranteed strategy demos.
Interesting fact: Tremaux's algorithm predates modern graph-search terminology but maps well to DFS ideas.
SolverAliaschain
Chain (Bidirectional BFS)
Alias of Bidirectional BFS with legacy naming.
Alias of: Bidirectional BFS (same runtime behavior).
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Delegate solving to Bidirectional BFS.
- Expand search waves from start and goal.
- Stop when both waves meet and stitch the path.
- Return the same result as canonical Bidirectional BFS.
Pros
- Compatibility with chain naming
- Same shortest-path guarantees as Bidirectional BFS
Cons
- Not a distinct algorithm
- No behavior difference from canonical implementation
Best use: Users who prefer chain terminology for bidirectional search.
Interesting fact: In this codebase, chain is a direct alias of bidirectional-bfs.
SolverResearch Corecul-de-sac-filler
Cul-de-sac Filler (Dead-End Filling)
Extends dead-end elimination to prune cul-de-sac style branches.
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Identify dead-end-like and cul-de-sac candidates.
- Iteratively remove non-solution side branches.
- Repeat until only core route structure remains.
Pros
- Topology-first solving
- Useful structural visualization
Cons
- Less intuitive than path search
- Best with full maze map
Best use: Map-analysis style solving workflows.
Interesting fact: Cul-de-sac pruning can be seen as generalized leaf stripping on maze graphs.
SolverAliasblind-alley-sealer
Blind Alley Sealer (Dead-End Filling)
Alias of Dead-End Filling with alternate terminology.
Alias of: Dead-End Filling (same runtime behavior).
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Delegate solving to Dead-End Filling.
- Iteratively prune dead-end branches that cannot belong to a solution path.
- Leave only the viable corridor structure.
Pros
- Keeps sealer naming for discoverability
- Matches Dead-End Filling correctness
Cons
- Not a distinct implementation
- Behavior follows Dead-End Filling changes
Best use: Users expecting blind-alley sealer naming in elimination-based solvers.
Interesting fact: In this codebase, blind-alley-sealer is a direct alias of dead-end-filling.
SolverAliasblind-alley-filler
Blind Alley Filler (Dead-End Filling)
Alias of Dead-End Filling with alternate terminology.
Alias of: Dead-End Filling (same runtime behavior).
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Delegate solving to Dead-End Filling.
- Iteratively remove dead-end branches from the maze graph.
- Finish when only viable route corridors remain.
Pros
- Keeps filler naming for discoverability
- Matches Dead-End Filling correctness
Cons
- Not a distinct implementation
- Behavior follows Dead-End Filling changes
Best use: Users expecting blind-alley filler naming in elimination-based solvers.
Interesting fact: In this codebase, blind-alley-filler is a direct alias of dead-end-filling.
SolverAliascollision-solver
Collision Solver (Bidirectional BFS)
Alias of Bidirectional BFS with collision-focused naming.
Alias of: Bidirectional BFS (same runtime behavior).
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Delegate solving to Bidirectional BFS.
- Expand start and goal frontiers toward each other.
- Detect wave collision and stitch parent chains.
- Return the same shortest path as canonical Bidirectional BFS.
Pros
- Collision-oriented naming
- Same shortest-path guarantees as Bidirectional BFS
Cons
- Not a distinct implementation
- No behavior difference from canonical implementation
Best use: Users who prefer collision wording for bidirectional search.
Interesting fact: In this codebase, collision-solver is a direct alias of bidirectional-bfs.
SolverResearch Coreshortest-paths-finder
Shortest Paths Finder (All)
Identifies the full set of cells that belong to shortest routes.
Compatible with: Perfect, Loopy, Weave
Time: O(V + E)Space: O(V)
How It Works
- Compute distances from start.
- Compute distances from goal.
- Keep cells where dStart + dGoal equals shortest distance.
- Mark resulting shortest-path manifold.
Pros
- Shows all shortest alternatives
- Great for route multiplicity analysis
Cons
- More data than single-path methods
- Can look dense in open areas
Best use: Analyzing alternative optimal routes.
Interesting fact: A single shortest path is just one sample from this full shortest-path set.
SolverAliasshortest-path-finder
Shortest Path Finder (BFS)
Alias of BFS for single shortest-path extraction.
Alias of: Breadth-First Search (BFS) (same runtime behavior).
Compatible with: Perfect, Loopy, Weave
Time: O(V + E) on unweighted mazesSpace: O(V)
How It Works
- Delegate solving to Breadth-First Search (BFS).
- Expand in layers from start over open neighbors.
- Reconstruct one shortest path from parent links when goal is reached.
Pros
- Clear, search-friendly naming
- Exactly matches BFS shortest-path behavior
Cons
- Not a distinct implementation
- Behavior follows BFS changes
Best use: Users who want BFS behavior under a shortest-path-centric label.
Interesting fact: In this codebase, shortest-path-finder is a direct alias of bfs.
SolverAdvancedq-learning
Q-Learning (RL)
Learns action values through repeated episodes, then follows the learned greedy policy.
Compatible with: Perfect, Loopy, Weave
Time: Training-dependent; typically much higher than graph searchSpace: O(V * A)
How It Works
- Initialize a Q-table for state-action values.
- Run episodes with epsilon-greedy exploration.
- Update Q-values from rewards and bootstrapped future estimates.
- After training, follow highest-valued actions from start to goal.
Pros
- Shows reinforcement-learning behavior
- Adapts through experience instead of hardcoded heuristic
Cons
- Needs many episodes
- No strict shortest-path guarantee without careful tuning
Best use: Educational RL comparisons against classical graph-search solvers.
Interesting fact: Unlike BFS/A*, Q-learning can improve policy quality over repeated runs on the same maze distribution.
SolverAdvancedant-colony
Ant Colony Optimization
Uses pheromone-guided stochastic exploration where strong routes reinforce over time.
Compatible with: Perfect, Loopy, Weave
Time: Generation/ant-count dependent; typically highSpace: O(E) pheromone storage
How It Works
- Spawn ants that probabilistically follow local pheromone signals.
- Let ants explore, backtrack from dead ends, and record successful paths.
- Evaporate pheromones globally and reinforce successful trails.
- Extract the strongest discovered route as the final path.
Pros
- Strong emergent behavior visualization
- Good metaheuristic comparison baseline
Cons
- Heuristic/stochastic tuning sensitive
- No strict optimality guarantee
Best use: Metaheuristic solver demonstrations and exploration/exploitation tradeoff analysis.
Interesting fact: ACO was inspired by real ant foraging behavior where pheromone reinforcement biases collective path selection.
SolverAdvancedgenetic
Genetic Algorithm
Evolves path-encoding chromosomes and keeps fittest candidates across generations.
Compatible with: Perfect, Loopy, Weave
Time: O(G * P * L), generations * population * chromosome lengthSpace: O(P * L)
How It Works
- Generate an initial random population of move chromosomes.
- Simulate each chromosome and score fitness by goal reachability and path quality.
- Keep elite candidates and produce offspring with crossover/mutation.
- Repeat until convergence or generation budget, then trace best path.
Pros
- Handles large noisy search spaces
- Shows exploration vs exploitation behavior
Cons
- No strict optimality guarantee
- Performance depends on hyperparameters
Best use: Metaheuristic comparisons and stochastic solver experiments.
Interesting fact: Genetic solvers trade deterministic guarantees for adaptive search pressure shaped by a fitness function.
SolverAdvancedrrt-star
RRT* (Grid Approximation)
Builds a sampled tree from start and locally rewires for lower-cost parent chains.
Compatible with: Perfect, Loopy, Weave
Time: Sampling-dependent; often near O(K * d) for K expansionsSpace: O(V) tree state
How It Works
- Initialize a search tree rooted at start.
- Repeatedly sample targets and expand the tree toward promising frontier nodes.
- Rewire nearby nodes when the new node yields lower path cost.
- Once goal is connected (or budget is exhausted), trace tree path to goal.
Pros
- Anytime-style sampled exploration
- Natural bridge toward robotics planning concepts
Cons
- Approximation on discrete grids
- Requires iteration budget / fallback policy
Best use: Bringing continuous-space planning ideas into grid maze comparisons.
Interesting fact: RRT* is asymptotically optimal in continuous settings; grid adaptations mimic that behavior with discrete rewiring.
SolverAdvancedphysarum
Physarum (Slime Mold)
Adapts edge conductivities from pressure-driven flow until a dominant route emerges.
Compatible with: Perfect, Loopy, Weave
Time: O(I * (V + E)) for I flow iterationsSpace: O(V + E)
How It Works
- Initialize traversable edges with equal conductivity and terminal pressures.
- Relax node pressures with conductivity-weighted averaging.
- Compute edge flow and update conductivity via growth/decay dynamics.
- Repeat until values stabilize.
- Extract the path by following strongest conductivities (with fallback pathfinding).
Pros
- Biologically inspired dynamics
- Rich iterative visualization
- Handles all topologies
Cons
- Iteration-heavy
- Path extraction is heuristic without fallback
Best use: Visualizing adaptive network optimization on maze graphs.
Interesting fact: Real Physarum organisms can approximate shortest paths by reallocating protoplasmic tube thickness.
SolverAdvancedelectric-circuit
Electric Circuit (Resistor Network)
Solves maze voltages by Laplace relaxation and traces a descending-voltage route to the goal.
Compatible with: Perfect, Loopy, Weave
Time: O(I * (V + E))Space: O(V)
How It Works
- Set V(start)=1 and V(goal)=0 with neutral initialization elsewhere.
- Run Gauss-Seidel voltage sweeps over non-terminal nodes.
- Stop when maximum change is below epsilon or iteration cap is hit.
- Interpret voltage gradient as flow potential.
- Trace path by steepest local voltage drop (with fallback pathfinding).
Pros
- Smooth gradient visualization
- Deterministic relaxation process
Cons
- Needs many sweeps on larger mazes
- Greedy extraction is heuristic
Best use: Potential-field style solver comparisons against discrete graph search.
Interesting fact: Voltage solutions on resistor networks are tightly linked to random walk probabilities.
SolverResearch Coreida-star
IDA* (Iterative Deepening A*)
Runs depth-first f-bound searches with increasing thresholds using an explicit stack.
Compatible with: Perfect, Loopy, Weave
Time: Exponential worst-case; practical depends on heuristic qualitySpace: O(depth)
How It Works
- Initialize threshold with start heuristic to goal.
- Perform DFS limited by f=g+h threshold.
- Record the minimum exceeded f as next iteration threshold.
- Restart with increased bound while reusing lightweight stack state.
- Reconstruct path once goal enters the admissible bound.
Pros
- Optimal with admissible heuristic
- Memory-light compared to A*
Cons
- May re-expand nodes across iterations
- Can be slower than A* on broad graphs
Best use: Optimal solving when memory pressure matters more than re-expansion cost.
Interesting fact: IDA* keeps A*-style optimality guarantees while using DFS-like memory.
SolverAdvancedpotential-field
Artificial Potential Field
Moves greedily along local potential minima with random escape from local minima traps.
Compatible with: Perfect, Loopy, Weave
Time: O(K * d) for K steps and local degree dSpace: O(V)
How It Works
- Score candidate neighbors by attraction to goal plus repulsion penalties.
- Move toward lowest potential neighbor.
- Track revisit frequency to detect stagnation.
- Inject short random escapes when trapped.
- Build and mark discovered path when goal is reached.
Pros
- Fast local decisions
- Simple to animate
- Demonstrates local-minimum behavior
Cons
- Heuristic only
- Can fail without escape strategy
Best use: Comparing local-gradient heuristics versus global graph search.
Interesting fact: Potential-field planning originated in robotics for real-time obstacle avoidance.
SolverResearch Corefrontier-explorer
Frontier-Based Exploration
Simulates incremental map discovery: explore frontier boundaries, then navigate once goal is known.
Compatible with: Perfect, Loopy, Weave
Time: O(K * (V + E)) in repeated BFS replansSpace: O(V)
How It Works
- Start with partial knowledge around the initial position.
- Identify frontier cells bordering unknown space.
- Plan to nearest frontier over known traversable graph.
- Move one step, reveal neighbors, and update frontier.
- When goal becomes known, switch to direct navigation and trace final path.
Pros
- Strong exploration narrative
- Deterministic and complete on connected mazes
Cons
- Repeated replanning overhead
- More state than simple shortest-path solvers
Best use: Fog-of-war style discovery visuals and robotics-inspired exploration behavior.
Interesting fact: Frontier exploration is widely used in autonomous mapping systems for unknown environments.
SolverResearch Corefringe-search
Fringe Search
Processes nodes in threshold layers using now/later lists instead of a priority queue.
Compatible with: Perfect, Loopy, Weave
Time: Comparable to A* in many grids; worst-case exponentialSpace: O(V)
How It Works
- Initialize now list with start and threshold from heuristic.
- Expand one now-node per step.
- Defer nodes with f above threshold into later list.
- Relax neighbor costs and parent pointers for admissible nodes.
- When now empties, raise threshold to min deferred f and swap lists.
Pros
- Layered expansion visualization
- Often lower overhead than strict priority queues
Cons
- Implementation complexity vs BFS/A*
- Performance still heuristic-dependent
Best use: Comparing threshold-bucket search against A*/IDA* families.
Interesting fact: Fringe Search was introduced in game pathfinding to reduce priority-queue churn.