CB.

Computationele intelligentie (INFOB2CI)

Completed: 29-01-2025 | 7.5 EC | Universiteit Utrecht

Projects

What I Learned

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:

Search Algorithms and Problem Solving

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.

 

Reasoning Under Uncertainty

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.

 

Practical Application

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.

 

Project: Sudoku Solver

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.