Simulated F1 cars learn how to drive on randomly generated tracks using Neural Networks and Deep Reinforcement Learning, coupled with evolutionary algorithms for improvements over many generations.
Run main.py in the RL and NN folders to observe the simulation.
The Neural Network folder includes a more advanced Evolutionary Algorithms and the simulation there also displays lap time, which the NN agent optimizes for. We didn't get a chance to add this to the RL agent yet, since our primary focus is for it to learn how to drive around the track successfully.