Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/davidpomerenke/elm-problem-solving
Solving problems, and visualizing it.
https://github.com/davidpomerenke/elm-problem-solving
artificial-intelligence elm problem-solving search-algorithm visualization
Last synced: about 2 months ago
JSON representation
Solving problems, and visualizing it.
- Host: GitHub
- URL: https://github.com/davidpomerenke/elm-problem-solving
- Owner: davidpomerenke
- License: mit
- Created: 2020-11-08T22:26:06.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-03-05T02:46:07.000Z (almost 4 years ago)
- Last Synced: 2024-05-01T17:10:02.361Z (8 months ago)
- Topics: artificial-intelligence, elm, problem-solving, search-algorithm, visualization
- Language: Elm
- Homepage: https://package.elm-lang.org/packages/davidpomerenke/elm-problem-solving/latest/Problem
- Size: 1.24 MB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ![elm-problem-solving](https://github.com/davidpomerenke/elm-problem-solving/raw/main/elm-problem-solving-600.png)
- __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.__## [Documentation](https://package.elm-lang.org/packages/davidpomerenke/elm-problem-solving/latest/Problem)
## Examples
[Introductory example on Ellie.](https://ellie-app.com/bv2YzcWHG7ha1)
1. [[Live]](https://davidpomerenke.github.io/elm-problem-solving/1-dashboard/index.html)
[[Code]](docs/1-dashboard/src/Main.elm)
Creating a powerful dashboard by just enumerating what you would like to include.
2. [[Live]](https://davidpomerenke.github.io/elm-problem-solving/2-minimal/index.html)
[[Code]](docs/2-minimal/src/Main.elm)
Live-searching for a problem solution, a minimal example.
3. [[Live]](https://davidpomerenke.github.io/elm-problem-solving/3-visual/index.html)
[[Code]](docs/3-visual/src/Main.elm)
Visualizing the searched state space as a tree, tree map, or scatter plot.
4. [[Live]](https://davidpomerenke.github.io/elm-problem-solving/4-graph/index.html)
[[Code]](docs/4-graph/src/Main.elm)
Visualizing the searched state space as a network graph.
5. [[Live]](https://davidpomerenke.github.io/elm-problem-solving/5-tooltip/index.html)
[[Code]](docs/5-tooltip/src/Main.elm)
Adding a tooltip with information about the individual states to the visuals.
6. [[Live]](https://davidpomerenke.github.io/elm-problem-solving/4-graph/index.html)
[[Code]](docs/4-graph/src/Main.elm)
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.)
## Structure
- Problem
- Problem.Example
- Problem.Search
- Problem.Search.Visual
- Problem.Search.Dashboard## Screenshots
![Screenshots of 2 search visual dashboards.](https://github.com/davidpomerenke/elm-problem-solving/raw/main/dashboards-600.png)
## Related work
- This module roughly follows the standard textbook [*Artificial Intelligence - A Modern Approach*](http://aima.cs.berkeley.edu/) (*AIMA*) by Stuart Russell and Peter Norvig. Their [aimacode/aima-javascript](https://github.com/aimacode/aima-javascript) project also contains some visualizations.
- [the-sett/ai-search](https://github.com/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](https://www.redblobgames.com/pathfinding/a-star/implementation.html) of A\* search for Python, C++, and C#.[![Github actions elm-test status](https://github.com/davidpomerenke/elm-problem-solving/workflows/elm-test/badge.svg)](https://github.com/davidpomerenke/elm-problem-solving/actions?query=workflow%3Aelm-test)