TdP-prove-finali / Introduzione

Istruzioni e documentazione per la proposta e lo svolgimento delle prove finali relative al corso di Tecniche di Programmazione.
http://bit.ly/tecn-progr
Apache License 2.0
4 stars 13 forks source link

Simulatore di trasporto merci #75

Closed manny9797 closed 2 years ago

manny9797 commented 2 years ago

Studente proponente

S247969 De Leo Emanuele

Titolo della proposta

Simulatore di trasporto merci

Descrizione del problema proposto

Si vuole affrontare il problema di gestione di trasporto merce per un'azienda di trasporto. Il software permette di minimizzare i costi e i tempi relativi alla spedizione della merce con uno sfruttamento ottimo delle risorse a disposizione attraverso uno store intelligente degli ordini ricevuti; gli ordini vengono simulati (teoricamente accolti da fonti esterne nel caso in questione) in diverse città presenti nel database, salvati sul database e, da questo, vengono letti per generare un grafo utile per la creazione di un certo numero di flotte (consistenti in aerei, treni o camion a seconda degli input) con associati vincoli che seguiranno un percorso specifico a seconda delle diverse merci che accoglieranno. Il percorso che le flotte seguiranno avverrà su di un grafo avente come nodi delle città italiane. L’applicazione permette di effettuare una simulazione dell’intero sistema di trasporto merci a partire da determinati requisiti in input, infine di salvare sul database le statistiche della giornata; è possibile, inoltre, creare uno storico giornaliero in modo da confrontare i giorni della settimana in diverse settimane o, ad esempio, considerare il confronto tra i mesi.

Descrizione della rilevanza gestionale del problema

Il problema che si vuole affrontare è un tipico problema gestionale di ottimizzazione di costi e tempi nell’attraversamento di una rete di nodi, oltre che puramente previsionale; creando delle flotte sulla base di determinati input e degli ordini ricevuti è possibile avere un utilizzo migliore dello spazio, del peso e del costo delle tratte a disposizione in ogni flotta con rispetto dei vincoli associati ed un percorso specifico ottimo per ognuna di esse che minimizzi il tempo impiegato e il percorso effettuato nel trasporto di tutte le merci. Infine, scopo dell’applicazione è quello di permettere di confrontare i risultati ottenuti dalla simulazione in diversi periodi di tempo preimpostati in modo da poter prendere decisioni per il futuro.

Descrizione dei data-set per la valutazione

Il data-set utilizzato è composto da:

1) Città di partenza 2) Città di arrivo 3) Distanza in km (Nel caso di mezzo stradale, in base al valore di questa distanza, l'arco del grafo potrà essere una autostrada o no, quindi si terrà conto della velocità più alta) 4) Mezzo di trasporto (autobus, treno, aereo) 5) Emissioni (g)

Descrizione preliminare degli algoritmi coinvolti

Gli algoritmi coinvolti sono quelli relativi ai problemi sui grafi sul calcolo di costi e cammini tipici della ricerca operativa:

Descrizione preliminare delle funzionalità previste per l’applicazione software

All’apertura dell’applicazione viene richiesto all’utente di scegliere tra 4 campi un'opzione (giorni, settimane, mesi, anni) con associato ad ognuno un campo di input che permette di inserire il numero esatto di giorni o settimane o mesi o anni per la simulazione, dopodiché viene abilitato il tasto "SIMULA ORDINI" che permette di simulare degli ordini (con uno schema da città a città) nelle città presenti nel database con un certo peso ed un certo volume negli istanti temporali compresi nel periodo scelto. Il risultato della simulazione di ordini è visibile nel primo campo di output immediatamente sottostante. A questo punto si abilita una tendina in cui l'utente può scorrere su diversi tipi di mezzi di trasporto (tir, treno, aereo) e, ad ognuno di essi, sono associati 4 campi di input (numero, peso massimo trasportabile, velocità media, costo orario del carburante) ed un campo a tendina in cui si può scegliere la città da cui parte (o partono) il mezzo (o i mezzi); inseriti tutti i parametri per un tipo di mezzo, è possibile premere un bottone "AGGIUNGI" che permette di aggiungere i mezzi scelti alla simulazione per la generazione delle varie flotte (con questo metodo è possibile aggiungere anche più mezzi dello stesso tipo ma con diverse specifiche, oppure con diverse città sorgenti); un campo di output permette di visionare riga per riga i mezzi creati. Una volta creati i mezzi viene abilitato il tasto "GENERA GRAFO E FLOTTE" che permette di creare un grafo pesato non orientato avente come nodi le città presenti nel database e come archi le distanze in km tra ogni città collegata (sempre presenti nel database) e, inoltre, di organizzare i mezzi in flotte sulla base degli ordini; nello stesso campo di output di prima è possibile avere conferma della corretta creazione del grafo e delle flotte. Infine viene abilitato il tasto "AVVIA SIMULAZIONE" con cui è possibile lanciare la simulazione delle consegne ed avere in output i risultati di tutte le consegne. Un ultimo tasto "CONFRONTA" permette di organizzare i risultati sulla base dei primi input temporali (se si è scelto "giorni", per ogni giorno sono presenti informazioni del tipo: numero ordini ricevuti, numero di consegne avvenute, costo totale, tempo medio impiegato, emissioni totali; se si è scelto mesi si farà la stessa cosa sulla base dei mesi, e così ancora per quanto riguarda gli anni); i risultati del confronto sono visibili in un campo di output.

manny9797 commented 2 years ago

Ho pensato di modificare la proposta cambiando il data-set citato con un altro reperibile al link https://data.world/sapomnia/calcolatore-co2/workspace/file?filename=Calcolatore+emissioni+CO2.xls perchè più esteso per la creazione del grafo e per associare un costo agli archi

fulcorno commented 2 years ago

La proposta mi pare adeguata. Se ho ben capito, proponi di applicarla al territorio italiano (con il secondo data-set). Però non capisco se continuerai a lavorare solo con i trasporti aerei, oppure se valuterai anche altri mezzi. Mi pare che un dato importante sia il tempo (o la velocità) di trasporto sulle varie tratte, non mi pare che questo dato sia presente. O pensi che non ti possa servire?

manny9797 commented 2 years ago

Si ho ritenuto più corposo il secondo data-set per lo svolgimento del lavoro. Per quanto riguarda i mezzi avevo in mente di "tagliare" solo le righe riguardanti il trasporto aereo che mi sembrano abbastanza numerose, però non sono contro a fare un'eventuale modifica per poter lavorare anche con tutti gli altri mezzi (contemporaneamente oppure impostando il tipo di veicolo in input oltre al resto), questo se ritiene che tutto ciò arricchisca l'applicazione, a me piacerebbe comunque l'idea. La mia idea iniziale era associare alle tratte degli aerei (da una città ad un altra) un orario o direttamente nel data-set (forse dispendioso e macchinoso) oppure di generare casualmente gli orari delle tratte col vincolo che una tratta percorsa da una specifica flotta non possa essere ripetuta uguale per il resto di una giornata.

manny9797 commented 2 years ago

Ho attuato qualche modifica e questa è la mia proposta finale.

fulcorno commented 2 years ago

ok, va bene