- Use examples and templates of standard problems: Vacuum world, sliding puzzle, queens puzzle, Knuth conjecture, graph search, motion planning. Or formalize your own problem.
- Apply powerful search algorithms to find the solution: Depth-first search, breadth-first search, uniform-cost search (Dijkstra's algorithm), greedy search, and best-first (A*) search.
- Visualize the search state space as a scatter plot, tree, tree map, or network graph; live while searching.
- Use a low-code dashboard to get started.
Introductory example on Ellie.
- [Live] [Code] Creating a powerful dashboard by just enumerating what you would like to include.
- [Live] [Code] Live-searching for a problem solution, a minimal example.
- [Live] [Code] Visualizing the searched state space as a tree, tree map, or scatter plot.
- [Live] [Code] Visualizing the searched state space as a network graph.
- [Live] [Code] Adding a tooltip with information about the individual states to the visuals.
- [Live] [Code] Combining all the techniques to create the same dashboard as in 1., but with much more code.
(The examples can be found in the docs
folder.)
- Problem
- Problem.Example
- Problem.Search
- Problem.Search.Visual
- Problem.Search.Dashboard
- This module roughly follows the standard textbook Artificial Intelligence - A Modern Approach (AIMA) by Stuart Russell and Peter Norvig. Their aimacode/aima-javascript project also contains some visualizations.
- the-sett/ai-search: Search algorithms in Elm, also including bounded search and iterative deepening. I found this when I had already written my algorithms, so it's independent.
- Guided implementations of A* search for Python, C++, and C#.