Mi sa che mi sono spiegato a pirichitta (equivalente sardo del cazzum latino).
I turni in 118 che deve svolgere l'associazione sono mostrati tramite un pannello e sono presenti tutti i turni di tutti i giorni delle successive 6 settimane. Ogni turno è composto per convenzione 118 da almeno 3 componenti (autista; caposervizio; soccorritore), da noi in realtà si esce in 4 e si include anche un allievo (o superiore). Una volta che l'utente ha accesso al sistema può scegliere (in base alle qualifiche che ha, tipo autista o soccorritore ecc.) di prendere parte all'equipaggio che svolgerà il turno in un (o più) giorni ad una certa ora. Può succedere ad esempio che un socio autista decida di fare il turno dalle 8 alle 14 del 09/05/2020, quindi se il posto da autista è disponibile può cliccare e segnarsi come autista. E può anche capitare che ci sia già ad esempio l'allievo oppure il soccorritore. Detto questo il ruolo del socio finisce qua, perlomeno informaticamente parlando. Quando arriverà il 9 maggio farà il turno e chiaramente rimarrà traccia di tutto ciò. Ma può anche capitare che il socio non possa più fare il turno in cui si è segnato, questo ovviamente prima del turno... quindi può inizialmente andare nel pannello e richiedere un cambio, in questo caso viene in automatico inviata una mail a tutti gli autisti (visto che il cambio è per un autista), ma al 90% la mail viene ignorata... quindi in base a quanto tempo manca prima del turno si può attendere che qualcuno che visita il pannello vede il turno libero e si segna, oppure sperare che qualcuno risponda alla mail, oppure si diventa più invasivi chiedendo letteralmente per telefono a tutti gli autisti uno per uno seguendo i suoi tempi (chi è a lavoro, chi studia, chi si allena ecc.) e cercando di convincerlo a fare il turno. Da qui il bisogno di ridurre i "candidati" da chiamare. Ovviamente vale lo stesso anche per quei turni che arrivati vicini alla data ancora non sono stati completati come equipaggio, quindi bisogna che qualcuno ricerchi dei soci disponibili.
Ora sulla base di quell'unica scelta che ha fatto l'utente, il sistema che ho creato, ovvero una rete neurale artificiale casalinga non dipendente da nulla e quindi i dati non vanno a terzi, ricava il gradimento dei soci rispetto a determinati orari e giorni dei turni (ma non solo) e in base al gradimento del resto del team che è già iscritto nel turno, oltre a periodo più o meno "proficuo" come presenze ecc. Per cui nel momento che serve un autista per il 9/5/2020, il socio interroga la rete neurale artificiale, questa analizzerà per ogni autista disponibile i dati in regressione e farà anche un analisi delle anomalie (picchi e cambi di passo) che confronterà con il resto del team, dando così un giudizio globale sul gradimento presunto del socio riguardo a quel turno con quello specifico equipaggio (o parte di esso se manca più di una persona ancora nel team). Una volta analizzati tutti i potenziali candidati li ordina in modo che il primo sia il più propenso e quindi il primo da chiamare.
Quindi come vedi alla fine l'utente l'unica scelta che fa sono i turni in cui decide di iscriversi. Ma il sistema rende facilmente intuibile le preferenze riguardo ad eventuali altre persone nel team. Come dire: se cicco autista fa sempre il martedì sera e io sto facendo una ricerca per un autista il martedi sera, allora il sistema mi spara subito ciccio, ma subito dopo metto nel team pippo e riprovo, se non ci sono intoppi mi dovrebbe dare sempre ciccio, ma invece magari ora me lo mette all'ultimo posto. Beh tu che dici? pippo e ciccio vanno d'accordo? ecco che chiunque viola la privacy di ciccio... ma anche di pippo e di chiunque...