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

Applicazione per simulazione campionato F1 #60

Closed EnricoCiuffreda closed 4 years ago

EnricoCiuffreda commented 4 years ago

Studente proponente

s247083 Ciuffreda Enrico

Titolo della proposta

Applicazione per simulazione campionato F1

Descrizione del problema proposto

L'applicazione ha come obiettivo quello di simulare un campionato di Formula 1 per assegnare il titolo iridato al pilota che ha guadagnato più punti all'interno delle gare previste e per assegnare il cosiddetto campionato costruttori, ovvero il premio alla scuderia che ha guadagnato più punti. La simulazione sarà basata sui dati reali dei vari anni e quindi sulle capacità dei vari piloti e dalle performance delle macchine delle varie scuderie. La simulazione verrà effettuata gara per gara.

Descrizione della rilevanza gestionale del problema

L’applicazione può avere diversi scopi in base al ruolo dell’utente. Nel caso in cui l’utente faccia parte di una scuderia allora l’applicazione servirebbe per simulare il campionato sostituendo un pilota con uno nuovo o scambiando due piloti di due scuderie diverse o per simulare il campionato dopo aver investito un extra nella scuderia e quindi vedendo la propria macchina migliorata. Nel caso in cui l’utente sia un semplice fruitore allora potrebbe usare l’applicazione per raccogliere dati per quanto concerne il settore delle scommesse.

Descrizione dei data-set per la valutazione

L’applicazione fa uso di un solo dataset disponibile all’indirizzo http://ergast.com/mrd/db, in cui sono presenti i dati di tutti i circuiti, di tutti i piloti e di tutti i risultati delle varie qualifiche e gare. Il database è rilasciato con licenza “Attribution-NonCommercial-ShareAlike 3.0 Unported Licence”. Al dataset viene aggiunto una tabella contenente la valutazione di ogni pilota. Questi ultimi dati vengono presi direttamente dal gioco “F12020” licenziato dalla FIA e prodotto da Codemaster e una tabella contenente i vari importi degli investimenti fatti da ciascuna scuderia nel corso del 2019 ricavati dai budget pubblici rilasciati dalle diverse scuderie.

Descrizione preliminare degli algoritmi coinvolti

Il principale algoritmo coinvolto è un algoritmo simulativo a eventi discreti. Le tipologie di eventi sono: Qualifica, Gara, Incidente, Sorpasso. I tempi della qualifica si baseranno sui dati degli anni precedenti sullo stesso circuito. Poiché sono presenti solo le valutazioni dei piloti dell’anno in corso viene preso il giro più veloce e vengono aggiunti o sottratti secondi in base alla differenza di valutazione del pilota, alla valutazione della macchina e ad un fattore casuale così da poter formare la griglia di partenza per la gara. L’evento gara permetterà di simulare l’intera gara e quindi i diversi giri, nei quali i piloti potranno sorpassare le vetture che li precedono attraverso l’evento sorpasso che si attiverà quando i due piloti sono ad una distanza prefissata. L’evento sorpasso avrà una probabilità di riuscita che dipende dall’abilità del pilota, alla valutazione della macchina, ad un fattore casuale e alla presenza della scia. Al termine della gara verranno assegnati i punti ai piloti in base al loro posizionamento e una volta finite le gare verrà assegnato il premio per il pilota con più punti e la scuderia con più punti.

Descrizione preliminare delle funzionalità previste per l’applicazione software

L’applicazione sarà divisa in due parti. La prima parte presenterà un menù a tendina dal quale è possibile scegliere se scambiare un pilota di una scuderia con un altro pilota di un’altra scuderia, scambiare un pilota di una scuderia con un pilota esterno al circus e in questo caso il nome potrà essere impostato direttamente dall’utente così come la valutazione del pilota che potrà essere generata in maniera casuale o inserita dall’utente. Una terza opzione del menù permetterà di inserire l’importo (in milioni di euro) da investire per aumentare la qualità della macchina. L’utente potrà inoltre impostare il livello di severità delle penalità inflitte dai giudici di gara durante l’anno. L’ultima impostazione che l’utente può inserire la possibilità di pioggia durante le qualifiche e durante le gara. Un bottone “SIMULA” permetterà all’utente di iniziare la simulazione. La seconda parte invece presenterà i risultati relativi alla simulazione. I risultati saranno visualizzati in tabella e con un menù a tendina sarà possibile passare dalla classifica piloti alla classifica costruttori. Sarà inoltre possibile visualizzare i risultati di ogni gara. Un bottone “NUOVA SIMULAZIONE” permetterà all’utente di tornare alla prima sezione e ripristinare le varie classifiche.

fulcorno commented 4 years ago

La proposta è accettabile, ma la simulazione mi pare forse un po' troppo semplificata. Dal data-set di partenza è possibile estrarre molte altre informazioni relative ai piloti (tempo di giro, gare non terminate, qualificazioni, ....). Sarebbe quindi interessante utilizzare anche queste informazioni storiche per "simulare meglio" il comportamento di ciascun pilota. Questo forse rende impossibile inserire un pilota esterno, ma dovrebbe rendere più realistica la simulazione delle gare.

Con queste precisazioni, la proposta è accettata.