This repository demonstrates work completed as part of the CS5011 AI Practice module. Specifically, four different AI practice domains were considered: search, logic, learning, and uncertainty.
Several pathfinding/search algorithms have been implemented to find solutions for a Coastguard Rescue Simulation. In this simulation, a robot is required to search for a path from a person who requires rescuing to a position of safety amongst the "Giant’s Causeway".
Uninformed (depth-first and breadth-first) and informed (best-first and A*) search algorithms have been implemented to find solutions to various configurations of this problem. Additionally, the bidirectional search (BDS) algorithm has been implemented for comparison. An alternate/extension heuristic has also been implemented for heuristic comparisons with the informed search algorithms. In all cases, experiments have been performed to evaluate and compare these search algorithms.
Logical (procedural and declarative) techniques have been used to implement a solver and hint system for the "Easy As ABC" puzzle using constraint programming. A rudimentary hint system for this puzzle has also been developed, which follows a similar chain of logic a person would usually follow when completing the puzzle. A brief evaluation comparing the procedural and declarative techniques is performed, as well as a critical discussion of the developed hint system.
Artificial neural networks (NNs) have been constructed and used to solve a water-pump classification problem with real-world data. The problem and data presents various challenges, which have been addressed individually through incremental tasks.
The real-world dataset is about the operating conditions of water pumps collected at several waterpoints across Tanzania. The data was provided by Taarifa and the Tanzanian Ministry of Water, and is downloadable from the DrivenData’s competition “Pump it Up: Data Mining the Water Table”. Each example in the competition dataset represents various pieces of information about a water pump (input features) and the pump’s status (output label). There are three possible statuses: functional, functional needs repair, and non functional. The task is to predict the status of a pump. This dataset comes with a number of challenging characteristics of real-world data. The input features are of mixed types (numerical, categorical, datetime, etc.). Some parts of the data is missing. The dataset is also imbalanced (i.e., the amounts of data among output classes are uneven).
Bayesian Networks (BNs) have been modelled and used to reason with uncertainty. First, a given problem scenario has been modelled and queried using BNs. This scenario relates to risk predictions concerning ships travelling through the Mycenian canal (a direct parallel to the events at the time of the Suez canal being blocked by the Evergreen). Next, an algorithm to merge BNs has been implemented. Finally, extensions to the basic specification have been added: an additional problem is specified and modelled concerning the identification of fraudulent transactions by a credit card company.