Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mossr/trashmdp.jl
Automated trash collection using Markov decision processes
https://github.com/mossr/trashmdp.jl
Last synced: about 1 month ago
JSON representation
Automated trash collection using Markov decision processes
- Host: GitHub
- URL: https://github.com/mossr/trashmdp.jl
- Owner: mossr
- Created: 2019-12-14T07:00:50.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-10-23T04:19:40.000Z (about 1 year ago)
- Last Synced: 2023-10-23T05:23:36.676Z (about 1 year ago)
- Language: Julia
- Homepage:
- Size: 837 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Automated Trash Collection using Markov Decision Processes
_Robert Moss, Stanford University, Autumn 2019 (Final Project)_This repository is for my final project in CS221: Artificial Intelligence: Principles and Techniques at Stanford University.
If you're interested, you can read the research report here: [`trashmdp.pdf`](https://github.com/mossr/TrashMDP.jl/blob/master/trashmdp.pdf)
> **Requirements:** Julia v1.2
## Installation
**Install Julia v1.2** from https://julialang.org/downloads/ (follow their installation steps)## Files
- **TrashMDP.jl.ipynb**: Jupyter notebook with simulation visualizations
- **src**: Julia source code directory
- **TrashWorld.jl**: High-level formulation of the grid world
- **Allocation.jl**: Allocation algorithm for determining shortest path (A*)
- **Planning.jl**: Markov decision process (MDP) formulation of the trash collection problem
- **simulation.jl**: Primary code entry point to run simulations and collect data for analysis
- **dependencies.jl**: Julia package dependencies (running this will tell you what to install via `Pkg.add("...")`)
- **visualization.jl**: Visualization and animation code
- **plotting.jl**: Plotting for the metrics collected during simulation
- **multiagent_plotting.jl**: Plotting for multi-agent analysis
- **emissions_analysis.jl**: Analysis code for emissions results
- **basic_visualization.jl**: Basic visualization of the world
- **utils.jl**: Utility functions (linear indexing and Manhattan distance)
- **plots**: Saved visualizations## Running
- Either open `TrashMDP.jl.ipynb` and run the cells, or cd to `src` and open a [Jupyter notebook](https://github.com/JuliaLang/IJulia.jl), then run the following:```julia
include("simulation.jl")
```## Visualizations
### Small grid
![Small Grid](plots/small_grid.png?raw=true "Title")### Large grid
![Large Grid](plots/large_grid.png?raw=true "Title")