Inspiration

Pathfinding problems are everywhere and many businesses rely on efficient solutions to maximise user experience. How does your Uber Eats delivery get to your house? How are boxes best moved around a warehouse? We decided to use machine learning techniques to solve this problem and to evaluate them in comparison to existing solutions.

What it does

Our project utilises aspects of reinforcement learning and evolutionary algorithms to teach an agent to perform a task. Our task is to collect a set of items in any order by walking over them and then reaching the exit.

How we built it

We built our project using Python. PyGame visualised our program and Tensorflow created the neural networks for our agent to learn.

Challenges we ran into

  1. Designing the ideas for how the evolution would occur was a complicated process. We had to adapt documentation online to our specific situation which was tricky.
  2. As always, Tensorflow inputs and outputs are very fiddly and the errors that are raised are often not very helpful. We spent a good amount of time trying to sort these issues out.
  3. Designing a good model is normally quite tricky. This is especially true in reinforcement learning scenarios. Unfortunately there is not a tried and true approach to making a good model, so typically it relies on trial and error which is time consuming (not what you want in a hackathon).

Accomplishments that we're proud of

This is our first Hackathon so we are proud to have something that works and that we enjoyed making. Our biggest accomplishment was getting the neural network starting to learn and get a little bit better at performing the task incrementally.

What we learned

  1. We demystified evolutionary algorithms and now have a good understanding of how they work.
  2. We improved our understanding of how to evaluate the priority of tasks.
  3. We learned the importance of version control and will definitely use GitHub next time.

What's next for Pathfinder

We need to rethink how the model works since it does not perform as well as expected. Some ideas of what we could change are: the agent's senses, the evolution process and our neural network itself.

Built With

Share this project:

Updates