The projects realised for the course VE593:Problem Solving with AI Techniques at the UM-SJTU Joint Institute.
Prerequisites:
- Python3.6
- numpy
The work includes 3 Parts. Along the code the supplementing project report is provided and the project-specific Readme file. Furthermore, I have provided the original problem statement, so that anyone who wants to practice can first try to solve them by themselfes.
On high level the projects include:
- Search Algorithms
1.1. Implementation of the following algorithms:
- Breadth-First Search
- Uniform-Cost Search
- Depth-First Search
- Depth-Limited Search
- Iterative-Deepening Search
- A*
- Monte-Carlo Tree Search
1.2.
- implementation of the game Clickomania
- application of two search algorithms to solve the game
- Bayesian Networks
2.1. Structure and Parameter Learning
- implementation of K2 Algorithm with two scoring functions (original score and Bayesian Information Criterion)
- experiments performed with two datasets
2.2. Inference (partially unstable solution)
- implementation of Variable Elimination to get a probability for an occurence of a query
- application to the two datasets
- ANN
3.1. ANN Implementation
- training allowed with L1 and L2 regularization, and different activation functions for each layer
- Feed-forward (returns all results from applying the linear function and the corresponding activation function for every layer)
- Inference (returns the final activation result)
- Back-Propagation
3.2. Application to MNIST
- includes hyper-parameters tuning, experimental results can be found in the report