Description
Over the course of our university module in Artificial Intelligence and Machine Learning, we completed a sequence of six progressively challenging programming assignments designed to illustrate core concepts in the field:
Heuristic Search
We had to extend an existing checkers-playing engine, implementing various heuristic search strategies. Upon completion, our instructor organized a round-robin tournament to benchmark and rank each algorithm’s performance.
Logical Reasoning
Using Prolog, we developed an agent for the classic Wumpus World environment. This exercise emphasized knowledge representation and deductive inference in a stochastic setting.
Bayesian Networks
We constructed a learning system capable of inferring both structure and parameters from a chosen data set, thereby automating the creation of a Bayesian network model.
Markov Decision Processes & Reinforcement Learning
I implemented a Q-learning agent in C++ to navigate a grid-world environment. Through iterative exploration and reward feedback, the agent learned optimal paths to a designated goal while avoiding obstacles.
Supervised Classification
Leveraging Python and scikit-learn, our task was to build and evaluate a text-genre classifier. We experimented with feature extraction, model selection, and performance metrics.
Unsupervised Learning
Finally, we tackled an image-clustering challenge. Using Python, scikit-image, and scikit-learn, we applied the k-means algorithm to group visually similar images without supervision.
All source code, along with detailed reports documenting design decisions, implementation details, and experimental results, is publicly accessible in my Gitlab repository.
This project was made for my university course called “Artificial Intelligence and Machine Learning” at Wrocław University of Science and Technology.