Skip to content
This repository was archived by the owner on Jun 22, 2025. It is now read-only.

Process-ing/feup-iart1

Repository files navigation

Artificial Intelligence Project 1 - Router Placement

Curricular Unit: Artificial Intelligence
Faculty: FEUP
Professor: Pedro Mota
Authors: Bruno Oliveira, Henrique Fernandes, Rodrigo Silva
Final Grade: 20.0/20

Usage

  1. Setup local Python environment:
python3 -m venv .venv
source .venv/bin/activate
  1. Install the required packages:
pip install -r requirements.txt
  1. Run the main script:
./main.py  # or
python3 main.py

To enable persistent command history, preceed the command with rlwrap (you may need to install it first).

  1. Print the help message:
[router-solver]# help

Development Environment

  1. Perform static type checking:
mypy **/*.py
  1. Lint the code:
pylint **/*.py

Tips and Tricks (for anyone doing a similar project)

  • If you haven't already pick a theme, please really think before choosing an optimization problem. These have objectively harder algorithms than the solitary/adversarial games, and the base (the non-AI part) of the project is already quite tedious, so really think about it before choosing.
  • Even for optimization problems, using pygame can be really useful for visualization, and we really recommend it over other recommended frameworks like Qt. If you need to make charts (e.g. for plotting the score over time), pygame-chart is actually really good for that: since it is built on top of pygame, it integrates really well and seems to also be quite performant.
  • Most of the optimization problems have well documented solutions on papers online, which is great if you are unsure of your approach. Also, don't worry if your implementation is not very good, the professors only care that the algorithms are correct, following the respective meta-heuristics.

About

1st project for the IART course at FEUP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages