Skip to content

cuberhaus/desastresIA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

211 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Desastres IA

Local search project for the Artificial Intelligence course (IA) at FIB-UPC. The problem models a disaster-relief scenario where helicopters must be assigned to rescue groups of injured people from multiple centers, optimizing rescue time.

Overview

The project uses the AIMA (Artificial Intelligence: A Modern Approach) framework to implement and compare local search algorithms:

  • Hill Climbing (HC) with multiple successor functions (swap, reassign, combined)
  • Simulated Annealing (SA)

Several heuristic functions are provided to evaluate solutions (weighted total time, priority-based rescue, etc.), along with different initial state generators (random, all-to-one, greedy).

Structure

Desastres/src/
β”œβ”€β”€ main.java                       # Entry point with algorithm/heuristic selectors
β”œβ”€β”€ Desastres/                      # Core domain classes
β”‚   β”œβ”€β”€ board.java                  # Board state representation
β”‚   β”œβ”€β”€ estado.java                 # State representation
β”‚   β”œβ”€β”€ Helicopter.java             # Helicopter model
β”‚   β”œβ”€β”€ PairDH.java                 # Auxiliary pair structure
β”‚   β”œβ”€β”€ DesastresGoalTest.java      # Goal test
β”‚   β”œβ”€β”€ DesastresHeuristicFunction[1-3].java
β”‚   └── DesastresSuccessorFunction[1-6].java
β”œβ”€β”€ AIMA.jar                        # AIMA library
└── Desastres.jar                   # Compiled project
Aima/                               # AIMA library source
python_scripts/
β”œβ”€β”€ plots.py                        # Boxplot generation from experiment data
β”œβ”€β”€ jarToCSV.py                     # Converts JAR experiment output to CSV
β”œβ”€β”€ csv/                            # Raw experiment results (TSV)
β”œβ”€β”€ experimento*/                   # Generated plots per experiment
└── requirements.txt                # Python dependencies
docs/
β”œβ”€β”€ PracticaBusqueda-local.pdf      # Assignment specification
└── javadoc/                        # Generated API documentation

Tech Stack

  • Java with the AIMA library for search algorithms
  • Python (matplotlib, pandas, numpy) for experiment visualization

About

1a PrΓ ctica de l'assignatura de Inteligencia Artificial πŸš€

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors