Robotaxi Zoox implements two families of search to solve the same multi-passenger pickup problem: uninformed algorithms that explore the grid with no knowledge of how far away the goal is, and informed algorithms that use a heuristic to estimate remaining distance. Every algorithm must collect all passengers and then reach the destination, but each makes different trade-offs between completeness, optimality, memory use, and speed.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Juan-Carlos-Cruz/robotaxi-zoox/llms.txt
Use this file to discover all available pages before exploring further.
Algorithm families
Uninformed algorithms treat every unexplored state equally — they differ only in the order they pull nodes from the frontier. Informed algorithms attach a heuristic estimateh to each node, so the frontier is always sorted toward the most promising state.
The ALGORITHM_CONFIG dictionary in application/config.py maps the UI key for each algorithm to its family and internal mode string:
| UI Key | Algorithm | Family |
|---|---|---|
amplitud | Breadth-First Search (BFS) | Uninformed |
costo | Uniform-Cost Search (UCS) | Uninformed |
profundidad | Depth-First Search (DFS) | Uninformed |
avara | Greedy Best-First Search | Informed |
a_estrella | A* | Informed |
Algorithm comparison
| Algorithm | Key | Complete | Optimal | Frontier | Notes |
|---|---|---|---|---|---|
| BFS | amplitud | Yes | Yes (uniform cost) | Queue (FIFO) | Guaranteed shortest path in steps |
| UCS | costo | Yes | Yes | Priority queue by g | Optimal for weighted graphs |
| DFS | profundidad | Yes (cycle-avoidance) | No | Stack (LIFO) | Low memory, no cost guarantee |
| Greedy | avara | No | No | Priority queue by h | Fast but may miss optimal routes |
| A* | a_estrella | Yes | Yes (admissible h) | Priority queue by f = g + h | Best overall cost-optimality balance |
“Complete” means the algorithm will always find a solution if one exists. “Optimal” means it always finds the lowest-cost solution. DFS is complete here because the implementation tracks a visited set to prevent cycles.
The heuristic
Informed algorithms compute a Manhattan distance estimateh at every node:
h depends on the current state:
- Passengers remain uncollected —
his the Manhattan distance to the nearest uncollected passenger. - All passengers collected —
his the Manhattan distance to the destination.
Result metrics
Bothbusqueda_no_informada and busqueda_informada return a dictionary when a solution is found, or None when the goal is unreachable:
| Key | Type | Description |
|---|---|---|
camino | list[tuple[int, int]] | Ordered sequence of grid positions from start to destination |
nodos_expandidos | int | Total nodes popped from the frontier during the search |
profundidad | int | Depth of the solution node in the search tree |
costo | int | Accumulated movement cost along the solution path |
heuristica | int | Final h value at the goal node — informed algorithms only |
FLUJO_ALTO (high-traffic) cells carry a movement cost of 7, while all other traversable cells cost 1. This cost difference makes UCS and A* more meaningful than BFS or DFS on maps with traffic zones.Explore each family
Uninformed Search
BFS, UCS, and DFS via the
busqueda_no_informada function — frontier strategies, cycle avoidance, and when to use each.Informed Search
Greedy Best-First and A* via the
busqueda_informada function — the Manhattan heuristic, admissibility, and best_g optimisation.