Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Artificial Intelligence (IA) - NOVA FCT 🤖

Bachelor in Computer Science and Engineering (LEI) | 3rd Year - 1st Semester

This repository contains the practical assignments and projects developed for the Artificial Intelligence (Inteligência Artificial) course at the Faculty of Sciences and Technology of the NOVA University of Lisbon (NOVA FCT).

✍️ Authors

  • Tomás Alves (Student No. 68681)
  • Miguel Carmo (Student No. 65871)

📌 About the Course and Projects

The Artificial Intelligence course provides a comprehensive overview of fundamental AI paradigms. The curriculum is divided into five main practical modules, ranging from classical search algorithms and metaheuristics to modern deep learning techniques.

The repository is organized according to these five distinct projects:

1. Search in State Spaces (Java) 🗺️

  • Description: Implementation of a generic state space search problem solver. The project evaluates different algorithms finding the optimal route on a map of Romania.
  • Documentation:
  • Location:
  • Key Features:
    • Uninformed Search: Breadth-First Search (BFS), Depth-First Search (DFS), and Uniform Cost Search (UCS).
    • Informed Search: Greedy Search and A* Search.
    • Complex constraints: Calculating shortest paths with mandatory passage through specific provinces or a predetermined sequence of provinces.

2. Metaheuristics: Simulated Annealing (Python) 🌍

  • Description: Solving the classic Traveling Salesman Problem (TSP) using the Simulated Annealing optimization algorithm to find the shortest continuous circuit traversing multiple cities.
  • Documentation:
  • Location:
  • Key Features:
    • Algorithm Design: Custom implementation of the cooling schedule (temperature decay, iteration variance) and stopping criteria.
    • Differential Cost & 2-Opt: Efficient neighbor generation using the 2-opt swap method and calculating cost differences dynamically to save processing time.
    • Statistical Tracking: Comprehensive execution statistics including acceptance/rejection rates, initial vs. final costs, temperatures, and overall runtime.

3. Answer Set Programming (ASP / Clingo) 🧩

  • Description: Logic programming to model and solve complex constraint satisfaction problems using CLINGO.
  • Documentation:
  • Location:
  • Key Features:
    • Modeling mathematical problems such as Exact Hitting Sets and Vertex Cover.
    • Solving advanced logic puzzles, such as the classic "Who owns the cat?" (Einstein's Riddle) involving multiple variables (houses, colors, pets, drinks, etc.).
    • Tournament scheduling algorithms with specific constraints.

4. Probabilistic Reasoning (Bayesian Networks) 📊

  • Description: Modeling uncertainty and obtaining inferences using the Netica tool.
  • Documentation:
  • Location:
  • Key Features:
    • Medical diagnosis modeling (e.g., inferring lung cancer probabilities based on genetics, smoking habits, and radon gas exposure).
    • Sports predictions (calculating the probability of a team winning the Champions League based on squad quality and external factors).
    • Autonomous systems modeling (predicting a Martian Rover's energy, communication, and movement capabilities based on solar panels, dust storms, and battery life).

5. Machine Learning (Neural Networks / TensorFlow) 🧠

  • Description: Construction, training, and validation of deep learning models using Python, TensorFlow, and Keras inside Google Colab.
  • Documentation:
  • Location:
  • Key Features:
    • Regression: Curve fitting and predicting the progression of COVID-19 daily cases.
    • Classification: Predicting plant species using the Fisher's Iris dataset.
    • Image Recognition: Processing image matrices to classify an Explainable Abstract Trains Dataset and recognizing handwritten digits using the MNIST dataset.

🧠 Concepts and Acquired Skills

  • Search & Optimization: Designing heuristic functions, implementing local search algorithms (Simulated Annealing), and analyzing algorithm metrics (node expansions, generated nodes, state repetitions, runtime).
  • Logic Programming: Encoding uniform constraint rules and generating stable models/answer sets.
  • Probabilistic Inference: Structuring conditional probability tables (CPTs) and evaluating joint events.
  • Deep Learning: Data normalization, one-hot encoding, applying activation functions (ReLU, Sigmoid, Softmax), tracking loss/accuracy metrics, and preventing overfitting using validation splits.

📄 License

Copyright © 2026 Alvesss04. All Rights Reserved.

About

FCT NOVA - IA - Artificial Intelligence (Inteligência Artificial)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages