Inspiration:

So, my dad is currently working on his Master's in Artificial Intelligence and a year ago, he was ecstatic to show me one of his homework assignments, which was an reinforcement learning AI model that could navigate a maze. Granted, he probably used Python and some nice AI libraries, but back then, I figured I could probably make the thing in Java, which as anyone who remembers their American high school experience or here, at UW Bothell, when pursuing a BSCSSE knows, they try to drill it into us, a bit because it's the easiest programming language to show object-oriented programming through and teach computer science. So, when this came up, I was like, "yeah, everyone's probably going to be working on something super high-end" and when the number of participants showed up, I was like, "yep, definitely not going to win anything." So, I thought I'd debut my competitive coding experience with an all-code solution; an entire reinforcement learning model; purely just for the enjoyment factor.

I mean, you could argue it's connecting with the overall theme of “AI”; it's essentially a matchbox computer, and for my entertainment.

What it does:

It randomly generates a maze and attempts to solve it.

How we built it:

I built it in Visual Studio Code, running Java support, and taking the basis of the maze mechanics from a high school project I made a good while ago that included DrawingPanel, a defined object that utilizes Java Swing but is meant more for art, and then applying some math to make it an actual model.

Challenges we ran into:

Really, it was getting off the ground and running with the ideas and putting the concepts in my head on the screen. This includes things such as interpreting the conceptual algorithm needed to understand the chances of movement; honestly, I'd say the greatest challenge was debugging it.

Accomplishments that we're proud of:

Well, coding and completing it on time, for one thing. The others being writing the algorithm, debugging, and general coding, but I'm also proud I was able to put in the effort to understand and finish this.

What we learned:

I learned that an AI model consumes a lot of data based on the level of confidence it operates at. I wasn't honestly sure how it would hold up running or what levels of confidence I should be using to conclude any parts, because that scales on the size. I don't have a good explanation as to why I use what they currently are, functions that are scaled off the size and the number of possible moves, other than it seemed that it was a good starting point. Also, the accuracy of this model is somewhat off, and I felt like it might be a little less than 75%, but since these are random mazes, I can't say for sure.

What's next for MazeNavigatorAI:

I may continue to improve it for myself and fill out formal documentation for it in my free time, because I really neglected that during the development process. Specifically, I'd like to improve the UI by constantly showing descriptive statistics of moves that the AI is making to learn and document its current accuracy properly using the respective metrics.

Ultimately, this is a representation of and an exercise in navigational applications of reinforcement learning AI, which would make the general public think of Tesla navigation systems or other instances of when those applications are paired with computer vision, such as innovations Boston Dynamics is currently working on. I am strongly considering building my AI experience in those applications, but I first have to build them and have that experience, which I will do.

Built With

Share this project:

Updates