This repository contains the implementation and evaluation of various Artificial Intelligence (AI) algorithms to solve four distinct classes of real-world problems. The project emphasizes Object-Oriented Programming (OOP) principles and modular code structure using Python.
- Problem: Finding the global maximum of a complex mathematical function on a 3D surface within a defined range.
- Algorithm: Simulated Annealing.
- Key Implementation: Applied probabilistic acceptance of worse states to avoid local optima and successfully converge toward the global maximum.
- Problem: Developing an intelligent agent to play a 9x9 variant of Tic-Tac-Toe (Caro).
- Algorithm: Alpha-Beta Pruning integrated with H-minimax strategy.
- Key Implementation: Designed a custom Heuristic evaluation function to assess board states when the search tree depth is limited, ensuring strategic and efficient decision-making.
- Problem: Resolving map coloring and logic puzzles based on a set of given constraints.
- Algorithm: Propositional Logic transformation to Conjunctive Normal Form (CNF).
- Key Implementation: Utilized the PySAT library and SAT Solvers to model logical constraints and identify satisfiable solutions for complex combinatorial problems.
- Problem: Predicting student academic performance based on historical datasets.
- Algorithm: Naïve Bayes Classifier.
- Key Implementation: Performed Data Discretization to handle continuous variables and utilized conditional probability to categorize academic outcomes with high accuracy.
- Language: Python
- Core Libraries: *
SymPy: For symbolic mathematics and function processing. PySAT: For solving SAT-based logic problems.Matplotlib/NumPy: For data visualization and numerical computations.Pygame: For interactive game interface and visualization.
- Successfully implemented all algorithms with experimental results matching theoretical expectations.
- Developed a modular architecture that allows for easy maintenance and scalability of AI modules.
- Conducted detailed performance analysis regarding computational complexity and classification accuracy.