CS 431 Project Ideas

Here are some ideas for your term project.

Remember, this is intended to be a self-direction, free-form project. Find something that has interested you, and implement it. The highest marks will be given to projects that are not only functional and interesting, but that appear to have the most amount of time invested.

Rubik’s Cube Solver

Implement a search algorithm that receives the state of a Rubik’s Cube, and determines the twists that must be made in order to bring the cube to a solved state. Note that this problem has many more orbits than the sliding puzzle, and so you will have to check if the given state is even solvable.

Minimax Game AI

Write a minimax algorithm that plays a mid-level game well (e.g. Othello, Mancala). If multiple people choose this option, and want to do the same game, they can work together on a common base so that the AIs may compete.

For example, if multiple people want to make Othello players, they may work together on the board object, and an abstract AIPlayer object that would take a function that possible looks like this:

choose_move(board)

and return a tuple indicating where to play.

Neural Network Game AI

Some games with hidden information (e.g. poker, backgammon) cannot be easily solved with minimax. However, a neural network can be used to create a passable player. You will have to find training information online for thousands (at least!) of scenarios, and define the proper input and resulting output for each scenario.

Iterated Prisoner’s Dilemma AI

Create an iterated prisoner’s dilemma environment, and then create an agent to play the game and succeed. You may use a neural network, or you may explore genetic algorithms in order to “evolve” a good player over time.

Another Algorithm

Implement an algorithm that we talked about, but didn't do as a homework assignment.

Your Choice!

Find something cool and AI-related, and implement it.