Closed rubenIng93 closed 5 years ago
Analizzando meglio i dataset, ho visto che non è possibile fare la parte relativa alla gestione degli infortuni in quanto non sono presenti dati sulle partite giocate da ogni giocatore.
L'argomento va bene ed il data-set è adeguato. Bisognerà fare attenzione ad introdurre opportuni elementi di aleatorietà durante la simulazione, altrimenti vinceranno sempre le squadre più forti "a tavolino" ed il risultato non sarebbe realistico. Anche la gestione degli infortuni potrebbe rientrare in questa aleatorietà (anche in assenza di dati). Non mi è molto chiaro come verrà formata la rosa dei giocatori in campo in ciascuna partita, partendo dall'elenco di tutti i giocatori della squadra. Con queste precisazioni, la proposta è approvata.
Studente proponente
s236819 Berteletti Ruben
Titolo della proposta
Simulatore playoff NBA
Descrizione del problema proposto
L'applicazione si propone di permettere all'utente di scoprire il vincitore della stagione NBA. Partendo dai playoff (esempio struttura: http://www.playitusa.com/nba/2019/04/96171/playoffs-nba-2019-i-pronostici-del-primo-turno/), verrà simulata partita per partita arrivando sino alla finale.
Descrizione della rilevanza gestionale del problema
L'utilità gestionale del problema è per i team nel avere una previsione sul risultato finale della propria squadra e quindi valutare in anticipo gli investimenti derivanti dalla posizione (ogni step in più raggiunto dal team porta nelle casse della società diversi milioni di dollari); invece per l'utente comune, è utile per il settore scommesse, in crescita forte anche in Italia.
Descrizione dei data-set per la valutazione
Farò uso del dataset: https://www.kaggle.com/schmadam97/nba-regular-season-stats-20182019 , in cui sono presenti tutte le statistiche di tutti i giocatori del circuito NBA nella stagione 2018/2019. Mi appoggerò anche ad una piccola tabella creata ad hoc: https://github.com/rubenIng93/nba_teams_sql/blob/master/teams.sql; per sapere a quale conference appartiene un determinato team (rimandando all'immagine linkata sopra, nelle fasi iniziali di playoff si possono sfidare solo team appartenenti alla stessa conference)
Descrizione preliminare degli algoritmi coinvolti
L'algoritmo principale sarà una simulazione: una volta individuati i team che hanno raggiunto i playoff, verranno inseriti dall'utente nell'interfaccia in maniera da individuare tutti gli scontri. Dato uno scontro verrà avviata la simulazione su questo; contribuiranno al punteggio finale tutte le statistiche presenti nel data-set, come la % di realizzazione canestri o le stoppate e gli assist. Avranno un ruolo determinante anche le partite giocate, in base alle quali verrà calcolato una probabilità di infortunio ed al verificarsi di questo evento, il giocatore non sarà più disponibile per le giornate successive. Sarà anche tenuto conto del cambio formazione durante una partita (nella realtà è praticamente improbabile che un giocatore sia in campo per tutti e 4 i quarti). L'output della simulazione sarà il vincitore della sfida, il quale passerà al turno successivo e sarà inserito nella simulazione successiva fino al raggiungimento della finale o dell'eliminazione. In particolare la simulazione di una partita terrà conto dei punti segnati giocatore per giocatore, in modo da arrivare ad un punteggio numerico realistico e non semplicemente "vittoria" o "sconfitta". Un esempio di evento potrebbe essere : (minutaggioPartita, giocatore, TipoEvento.TIRO_DA_TRE, assistman, stopper).
Descrizione preliminare delle funzionalità previste per l’applicazione software
L'applicazione per prima cosa permette all'utente di inserire nel sistema i team, l'idea è di avere un'intefaccia simile a quella linkata sopra. Delle query apposite al DB permeranno di dividere le conference, per non commettere errori in input. Sarà presente in prossimità di ogni scontro un bottone che avvierà la simulazione (saranno disattivati quelli della fase non ancora raggiunta). Verranno individuati i vincitori di Western e Eastern conference e il vincitore assoluto con l'ultima simulazione. L'idea è anche quella di avere in output l'MVP dei playoff.