In (INFOB2CI), I explored two core pillars of Artificial Intelligence: solving problems with search algorithms and reasoning under uncertainty. This course approached AI from an algorithmic and probabilistic perspective, distinct from logic-based methods:
Uninformed Search: Studied blind search strategies like breadth-first and depth-first search to solve problems without prior knowledge.
Heuristic Search: Learned informed search techniques, including A* and greedy best-first search, incorporating heuristics and path costs to optimize efficiency.
Local Search: Explored hill climbing and simulated annealing for optimization problems where global solutions are impractical.
Evolutionary Algorithms: Investigated bio-inspired methods like genetic algorithms, applying selection, crossover, and mutation to evolve solutions.
Constraint Satisfaction: Mastered constraint satisfaction problems (CSPs), using backtracking and constraint propagation to solve structured tasks like Sudoku.
Adversarial Search: MiniMax: Implemented MiniMax for two-player games, optimizing decision-making against an opponent.
Monte Carlo Tree Search: Applied MCTS for probabilistic game scenarios, balancing exploration and exploitation.
Uncertainty: Learned to model uncertainty with probability theory.
Bayesian Networks: Constructed and analyzed Bayesian networks to represent dependencies and compute probabilities.
Inference: Performed exact inference in Bayesian networks using variable elimination and junction trees.
Decision Theory: Explored decision-making under uncertainty, integrating utility theory and expected outcomes.
The course included two practical assignments implemented in C#:
Practicum 1: Search Algorithms: Developed and analyzed greedy versus local search algorithms to solve Sudoku puzzles, comparing their performance.
Practicum 2: Constraint Satisfaction: Built a CSP-based solver for Sudoku, leveraging backtracking/constraint propagation, and evaluated it against search-based methods.
The outcome was my Sudoku Solver, developed in C#. Using constraint satisfaction, backtracking and/or forward checking, it efficiently solves 9x9 Sudoku puzzles. I integrated the interactive program written for the second assignment into a separate page. The button redirecting you to the solver can be found at the top of the page.