Progetto finale per il corso ICON2223 Uniba
Creazione di un sistema di ricerca treni per la pianificazione automatica di itinerari, inoltre incorpora un modello di intelligenza artificiale per offrire predizioni del probabile ritardo di un determinato treno.
Documentazione completa: Report
- Prolog, per la gestione e l'interrogazione nella knowledge base dei treni;
- Python, per eseguire l'applicazione.
Avendo python installato sulla propria macchina:
-
Installazione Prolog:
- Windows: swi-prolog
- Linux:
sudo add-apt-repository ppa:swi-prolog/stable sudo apt install swi-prolog
-
Clona il repository:
git clone https://github.com/Giut0/TrainDelay-project.git cd TrainDelay-project/
-
Creazione ambiente virtuale (opzionale):
python -m venv .my_env # Attiva l'ambiente virtuale (su Windows) .my_env\Scripts\activate # Attiva l'ambiente virtuale (su macOS e Linux) source .my_env/bin/activate
-
Installazione dipendenze:
pip install -r requirements.txt
-
Esecuzione applicazione:
python3 app.py
Eseguendo app.py
apparirà l'interfaccia utente a riga di comando:
[?] Scegli una opzione:
> 🚄 Cerca treno tra due stazioni
📍 Cerca itinerario
🚪 Uscire
Cerca treno tra due stazioni
: Inserendo il nome di due stazioni e l'orario di partenza il sistema troverà tutti i treni disponibili tra le stazioni scelte e dopo l'orario selezionato;Cerca itinerario
: Inserendo la stazione di partenza e la stazione di arrivo il sistema troverà l'itinerario migliore in base al minor numero di stazioni del percorso;Uscire
: Termine del programma.
I dati necessari per la realizzazione di questo sistema, in particolare per la costruzione della knowledge base, sono stati recuperati attraverso l'interrogazione alle API fornite da viaggiatreno.it per la schedule dei treni e sabas per i dati relativi alle stazioni.
TrainDelay-project/
|
├── data_preparation/
│ └── data_pre-processing.ipynb
|
├── data_retrive/
│ └── scrape_train_data.py
│
├── dataset/
│ ├── stations.csv
│ ├── trains.csv
│ ├── trains_refined_classification.csv
│ ├── trains_refined_regression.csv
│ └── new_test_dataset.csv
│
├── docs/
│ ├── Report.tex
│ ├── Report.pdf
│ └── ...
│
├── graphs/
│ ├── generate_station_graph.py
│ └── station_graph.gexf
│
├── knowledge_base/
│ ├── trenitalia_schedule.pl
│ ├── stations.pl
│ ├── rules.pl
│ ├── generate_station_kb.py
│ ├── generate_train_kb.py
│ └── knowledge_engine.py
|
├── machine_learning/
│ ├── classification.ipynb
│ ├── regression.ipynb
│ └── train_delay_clf_v2.pkl
│
├── app.py
├── options.py
├── utils.py
├── README.md
├── LICENSE
└── requirements.txt