Consider basic framework for AlphaGo using OpenSpiel and experiment with learning and play strength
*Ultimate* Tic-Tac-Toe (or "super Tic-Tac-Toe"), 3D Tic-Tac-Toe, or HEX (board game).
Image recognition using Deep Neural Nets. Generative Adversarial Networks (GANS). (But go beyond what is already studied widely.)
Implementing Virtual Predators-Prey in a Virtual Environment (Genetic Algorithms)
Learning to Play Checkers
Apply a genetic algorithm to the problem of automatic generation of computer programs.
Apply a genetic algorithm to the problem of learning natural language grammars.
Build a system that uses heuristic search (with minimax and alpha-beta pruning) to play Connect-4. Evaluate it through self-play against versions with different heuristics and search effort. Add learning to tune heuristics. Determine how close to optimal the learned system plays. Optimal strategy is known for Connect-4.
Build (and train) a system that plays Connect-4 using a deep neural network. Train using minimax player. Evaluate performance.
A chess endgame player. An interesting variant is to design a method that learns end-game rules from examples and compare it with hand-generated chess endgame players.
Build a suite of neural network algorithms; test them on selected datasets from the machine learning dataset archive; determine why they did or did not work.
A theorem-proving system for some (small) subset of mathematics.
A program that generates automatic crossword puzzles, starting from a dictionary and an empty board.
Recreate from its specifications the reinforcement learning (neural net) system (Tesauro, 1992) that learns to play backgammon by playing games against itself.
A reactive, rule-based system that plays tetris.
Re-implement Samuel's checkers playing program.
I also have several more research-oriented projects. If interested, email me at selman@cs.cornell.edu. Use CS-4701 in Subject.
For these projects, I will provide more direct guidance on research questions that can feasibly be explored for a course project. We will build on previous project work. So, you don't need to start from scratch.
Two example topics:
(1) AlphaGo and AlphaZero are amazing at selecting the best or near-best possible moves from a set of legal moves. However, what about learning what a legal more is? Can deep Reinforcement Learning be used to feasibly learn the rules of a game? For us, learning to play chess is definitely easier than becoming the world champion chess player. But is this also true for a deep learning system? The question is related to DeepMind's work on MuZero. Core question: Did MuZero really learn the legal moves for chess from just observing games?
(2) Mathematical discovery. Can an AI system discover some interesting mathematical facts from the basic axioms of number theory? Can AI display mathematical creativity?