CS50 AI Projects
Here are some of the projects I have completed for Harvard's CS50 Introduction to Artificial Intelligence with Python:
Search Algorithms
![CS50 AI Degrees Image](assets/Projects/cs50ai/degrees.png)
Degrees
Implementation of a Breadth-First Search Algorithm to find the degrees of separation between two selected actors, by films they have starred in.
![CS50 AI TicTacToe Image](assets/Projects/cs50ai/tictactoe.png)
Tic Tac Toe
Implementation of a Tic Tac Toe AI using a Minimax Algorithm with Alpha-Beta pruning. Randomisation varies the AI's moves where several have equal utility.
Knowledge
![CS50 AI Knights Image](assets/Projects/cs50ai/knights.png)
Knights
Solutions to 'Knights and Knaves' style logic puzzles using Propositional Logic and Model Checking.
![CS50 AI Minesweeper Image](assets/Projects/cs50ai/minesweeper.png)
Minesweeper
An AI that plays the classic Windows 'Minesweeper' game, using a knowledge base and inference to generate new knowledge about the game state.
Uncertainty
![CS50 AI PageRank Image](assets/Projects/cs50ai/pagerank.png)
Pagerank
An AI that ranks web pages by importance - similar to the Google PageRank AI - using both a Random Surfer Model and an Iterative Algorithm.
![CS50 AI Heredity Image](assets/Projects/cs50ai/heredity.png)
Heredity
An AI that predicts the likelihood of members of a family having a 0, 1, or 2 copies of a gene, and a trait caused by that gene, using a Bayesian Network and Inference by Enumeration.
Optimisation
![CS50 AI Crossword Image](assets/Projects/cs50ai/crossword.png)
Crossword
An AI that generates crossword puzzles, by treating the crossword generation as a constraint satisfaction problem and using a backtracking search algorithm.
Learning
![CS50 AI Shopping Image](assets/Projects/cs50ai/shopping.png)
Shopping
An AI that predicts whether online shopping customers will complete a purchase, using the Scikit-Learn k-Nearest Neighbour classifier on a customer dataset.
![CS50 AI Nim Image](assets/Projects/cs50ai/nim.png)
Nim
An AI that teaches itself to play the game 'Nim' using Reinforcement Learning. A Q-Learning algorithm with ε-Greedy Decision Making is used to estimate the value of actions for game states.
Neural Networks
![CS50 AI Traffic Image](assets/Projects/cs50ai/traffic.png)
Traffic
An AI that identifies which traffic sign appears in a photograph, using a TensorFlow convolutional neural network.
Language
![CS50 AI Parser Image](assets/Projects/cs50ai/parser.png)
Parser
An AI that can parse sentences and extract noun phrases, using the context-free grammar formalism and the Python nltk library.
![CS50 AI Parser Image](assets/Projects/cs50ai/questions.png)
Questions
An AI that answers questions, by determining the most relevant document(s) using tf-idf ranking and then extracting the most relevant sentence(s) using idf and a query term density measure.