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

Tool per le simulazioni di mercato di una rosa calcistica #82

Closed AlessandroMaturo closed 2 years ago

AlessandroMaturo commented 2 years ago

Studente proponente

s270451 Maturo Alessandro Giovanni

Titolo della proposta

Tool per le simulazioni di mercato di una rosa calcistica

Descrizione del problema proposto

Con il seguente software si vuole permettere all’utente finale di ottimizzare una rosa calcistica con determinate cessioni sul mercato valutando oppure imponendo vari parametri, alcuni economici come il valore di mercato del giocatore oppure il suo stipendio e altri legati alle performance con vari indicatori tratti da un data-set. Il problema è molto frequente all’interno dei club calcistici che devono effettuare operazioni di mercato in modo da trarre profitto sulle vendite e allo stesso tempo cercare sostituti evitando ridurre la forza della propria rosa.

Descrizione della rilevanza gestionale del problema

Questo tool sarebbe usato da un manager per provare a rinforzare la propria rosa negli indici in cui risulta carente. La grossa rilevanza gestionale del problema è che le valutazioni terranno conto delle risorse disponibili non simulando quindi operazioni di mercato irrealizzabili. Il software permetterà non solo di migliorare la propria rosa, ma permetterà anche, se voluto dall’utente, di limitare gli stipendi senza andare a ottenere un grosso decremento degli indici di performance legati alla squadra. Tutto ciò è possibile perché si potranno vedere come variano i parametri della propria squadra una volta che verranno prima simulate e poi nel caso effettuate le operazioni di mercato.

Descrizione dei data-set per la valutazione

Il data-set è stato tratto dal sito di Kaggle in cui sono presenti molti database che spaziano in diversi ambiti. Nel nostro caso, è tratto da un’applicazione chiamata Football Manager 2020 ed è presente al seguente link (https://www.kaggle.com/datasets/ktyptorio/football-manager-2020?resource=download) dove non vi è nessun vincolo di copyright. All’interno del nostro database oltre che ai valori economici, quali valutazione sul mercato e stipendio percepito, troviamo diversi indici legati alle performance dei singoli giocatori, di questi ne utilizzeremo solo alcuni se non il programma non sarebbe facilmente comprensibile da un utente non esperto nel settore.

Descrizione preliminare degli algoritmi coinvolti

Questo software sarà realizzato in linguaggio Java con l’ausilio delle interfacce grafiche in JavaFX, inoltre saranno usati i pattern MVC e il pattern DAO. Tra gli algoritmi coinvolti troviamo quelli basilari di ricerca di vari record che vengono effettuati tramite semplici interrogazioni SQL sul nostro database. Oltre a questi, troveremo algoritmi di ottimizzazione ricorsivi per trovare soluzioni ottimali che rispettano i vincoli imposti dall’utente. Inoltre, ci saranno anche algoritmi di simulazione, che con semplici operazioni matematiche, mostreranno come varierebbero i parametri dei diversi club con determinate operazioni di mercato. Per concludere saranno presenti diversi controlli per evitare problemi e aiutare l’utente nel caso si fosse dimenticato di inserire dei campi o effettuare operazioni.

Descrizione preliminare delle funzionalità previste per l’applicazione software

L’applicazione permetterà all’utente di immedesimarsi in un vero e proprio manager di una società calcistica. Dopo aver selezionato il club di cui si vorrà migliorare o semplicemente modificare la rosa (con un semplice utilizzo di una coppia di combo box), l’utente potrà simulare operazioni di mercato. A partire dalle varie informazioni sulla società che verranno mostrate, l’utente avrà due possibilità: la prima consiste nel ricercare alcuni giocatori che rispettano determinati parametri e osservare il caso di loro acquisto come varierebbero gli indicatori della rosa, la seconda invece prevederà la simulazione di una vendita di un proprio giocatore e, in base al valore ottenuto da questa cessione, l’algoritmo cercherà dei sostituti in modo da ottimizzare i parametri richiesti dal manager che eventualmente potrebbero non essere i punti di forza del giocatore di cui si cerca la cessione, ma parametri economici per abbassare per esempio lo stipendio medio della rosa.

fulcorno commented 2 years ago

L'argomento scelto è adeguato e rilevante dal punto di vista gestionale. Dal punto di vista algoritmico, se non ho capito male, mi sembra un po' troppo banale. A partire dai valori presenti nel data-set, si calcolerebbero dei valori complessivi per la squadra. Poi, per ogni operazione (es. vendita), si andrebbero a ricalcolare tali valori. Da quanto ho capito, si tratterebbe di una sommatoria (o una somma pesata), direi un po' troppo semplice per potere essere chiamata "simulazione". L'unica operazione interessante potrebbe essere "l'algoritmo cercherà dei sostituti in modo da ottimizzare i parametri richiesti dal manager", ma su questo non ci sono abbastanza dettagli per comprendere l'effettivo algoritmo che hai in mente. Ti chiederei di chiarire e focalizzare la proposta da questi punti di vista.

AlessandroMaturo commented 2 years ago

Sarà previsto un primo algoritmo di simulazione dove l’utente potrà scegliere degli indici di performance nei quali la squadra risulta carente, e trovare, con questo, delle soluzioni che rispettino un budget inserito per gli acquisti oltre che a un vincolo salariale, imposto anche questo dall'utente. L’algoritmo proporrà una soluzione per migliorare la rosa e, nell’eventuale ipotesi in cui non sia possibile, si occuperà di comunicare che con quei parametri non sono presenti combinazioni per migliorare gli indici della squadra. Inoltre, nel secondo algoritmo, quello principale, l’utente potrà selezionare dalla lista dei giocatori presenti in rosa un certo numero di calciatori appetibili per la vendita. Una volta selezionati e premuto un apposito bottone l’algoritmo calcolerà la migliore soluzione presente sul mercato che permetterà di ottimizzare gli indici della squadra non sforando il budget, in questo caso sarà il totale degli introiti ricavati dalla vendita (per semplicità si userà che il valore ricavato dalle cessioni è uguale alla somma dei valori attuali dei giocatori) e lo stipendio, ovvero la somma delle retribuzioni della possibile soluzione sarà minore o uguale della somma degli stipendi dei giocatori reputati ‘cedibili’ dall’utente. In questa parte sto valutando di inserire la possibilità di scelta se andare a cercare una soluzione che migliora la somma del valore complessivo degli indici oppure solo determinati indici selezionati proprio a partire dall’utente. Vorrei anche provare a inserire, una volta calcolate le possibili soluzioni degli algoritmi, dei diagrammi a barre per indicare come varierebbero gli indici delle prestazioni, il valore della rosa e il monte ingaggi delle soluzioni ottime proposte, in modo che l’utente possa visualizzare con più facilità i cambiamenti per vedere se effettivamente apportare le modifiche alla propria squadra.

fulcorno commented 2 years ago

ok, va bene