Skip to content

DataScienceRetreat/IPaLot

 
 

Repository files navigation

IPaLot: an Intelligent Parking Lot

This project describes a control system for a parking lot, based on reinforcement learning, where an AI can take control of the customer's car and dispach/retrieve it to/from a designated parking spot.

Here you can find the training simulation, working on pygame. The training method used is a multi-agent version of the A3C model, based on the implementation by Jaromír Janisch avalaible here. A pretraining program, based on an A* search, is also included: it finds optimal paths to/from parking spots for a car, and uses the accumulated experience to train the same neural network used in the main program.

Check the linked images for a description of the threaded structure of the code and of the architecture of the neural network

Installing (conda virtual environment)

  • conda create --name myenv python=3.6.3
  • conda activate myenv
  • pip install -r requirements.txt

Running

  • python A_star_pretrain.py -- runs the pretraing based on A* search (takes long time)
  • python A_star_pretrain.py --test -- pretrains with the first parking only for testing (1 minute)
  • python main.py -- runs the A3C training simulation ( hyperparameters tuning can be performed changing the variables in cfg.py)

game_image

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%