Artificial Intelligence Fundamentals Suggested problems for the project
The project tasks are dedicated to teams. Suggested number of team members is given in brackets. I have decided to make the project different than explained in last lecture, but I hope it will be more interesting.
You will be divided into groups, and each group will have a “solver team” (guys who will implement fundamental search methods) and a few “application teams” (guys who will apply the solver to a particular game or puzzle). Teams must coordinate their code.
Each application team will have to define the problemspecific heuristics, and the interface allowing for playing.
The development language, at least in the solver part, will be C++ (it is still more widely used), and there will be an interface part, but limited to the necessary minimum.
Any other games or puzzles are welcome.
There are also few projects for PROLOG lovers, and the above rules do not apply for them.
1. Playing games against human or machine:
1.1. Application of minmax, expectiminmax, alphabeta pruning (2) 1.2 Five or more (2)
1.3 Four in a row (2) 1.4 Reversi (2)
1.5 Tictac toe – put 5 aligned elements on large board (2)
1.6 “kropki” (the game you play when you attend boring lectures) (2) 1.7 Dominoes (1)
2. Solving puzzles
2.1 Application of deterministic heuristic search: A*, iterative deepening A*, breadth/depth search (1)
2.2 Application of stochastic search: random walk, stochastic hillclimber, simulated annealing (1)
2.3 Minesweeper (2) 2.4 SameGame (2) 2.5 “15” (2)
2.6 solitaire? (do not know exact name, will explain) (2) 3. For PROLOG lovers:
3.1 Drawing selfsimilar fractals (use Postscript, gnuplot, xfig or any other external tool for drawing) (2)
3.2 Application of Constrained Logic Programming for the optimization (3)