Nell’ambito del procurement va motivato il bisogno di un estrattore certificato, che tiri a sorte bene, ma che soddisfi anche altri requisiti ritenuti indispensabili. Sembrerebbe una cosa facile, eppure non lo è. Prima di tutto dovremmo capire che significa “bene” e poi adoperarci per una soluzione idonea. Il tema è importante perché i sorteggi, o meglio le estrazioni, sono usati continuamente: per nominare commissioni, per i bandi, per il gaming, per gli arbitri, per i controlli a campione, per risolvere gli stalli e così via.
Non è rara l’azione di ricorso contro l’esito di un sorteggio avverso, incolpandolo di essere stato pilotato o condizionato, o comunque di iniquità. E a giudicare da questa premessa tale questione sembra essere alla base di costi diretti (ricorsi al TAR e al Consiglio di Stato) e indiretti (lungaggini, appalti bloccati, procedimenti sotto lente di ingrandimento).
Appare dunque più che lecito domandarsi cos’è che rende “buono” un sorteggio. Ragionandoci sopra, emergono alcuni requisiti, ai quali il concetto di equità non basta. L’italiano ha imparato a respirare la cultura del sospetto, quindi cerchiamo di ricorrere a un sorteggio al di sopra di ogni sospetto. Detto in altre parole, siamo tutti colpevoli fino a dimostrazione dell’innocenza; questo perché gli abusi esistono davvero.
Algoritmi e intelligenza artificiale: conoscerli bene per metterli al servizio dell’umanità
Appalti e sorteggi, i requisiti
Un primo requisito ha a che vedere con l’estrazione casuale di esiti che finirà poi per condizionare lo svolgimento delle procedure in corso, che siano gare, selezioni, preselezioni, modi di rompere gli stalli (persino nello sport). L’estrazione casuale di esiti è apparentemente un’operazione piuttosto semplice e serve a garantire equità. Occorre selezionare in un insieme di possibili risultati uno o più esiti, avendo ben chiaro che tutti i possibili risultati avranno la medesima probabilità di essere estratti. Non è in realtà semplice garantire ciò: infatti esistono molte soluzioni, tutte parziali.
Primo modello
Possiamo modellare il problema stabilendo che ci riferiamo a un insieme {1, 2, 3, …, n} e che si vuole estrarre un valore da questo insieme, avendo tutti i valori contenuti la medesima probabilità, cioè 1/n; più in generale invece di estrarre un valore, potrebbe interessare l’estrazione di una k-upla (ovvero k valori), sempre rispettando l’equiprobabilità di tutte le k-uple. Certo, possiamo immaginare molte varianti del problema: ad esempio le k-uple possono essere ordinate o non; inoltre possono essere ammesse ripetizioni oppure no. La cosa ovviamente dipende dal dominio applicativo. Ma per quanto riguarda il modello, esso rimane universalmente valido e si può ragionare su di esso per analizzare/progettare soluzioni, anche considerando solo il caso k = 1 per iniziare.
Per estrarre un singolo numero dall’insieme detto, uso ⎡n/6⎤ dadi che mi permetteranno di generare tutti i possibili valori. Ma a parte i sospetti sui dadi, che potrebbero essere truccati e dovrebbero essere esaminati da qualcuno al di sopra delle parti e degno di fiducia, vedo due grossi problemi: primo, non tutti i valori a cui si perviene sommando i risultati ottenuti da ogni singolo dado hanno la stessa probabilità[1]; inoltre potrebbero essere possibili risultati non nell’insieme, come nel caso di numeri da 1 a 20, per i quali necessitiamo di quattro dadi; ma da questi potrebbero uscire risultati fino a 24… E i problemi non finiscono qui, ma fermiamoci, per ora.
Secondo modello
Un altro approccio potrebbe consistere nell’usare un buon algoritmo di generazione di numeri casuali: i tecnici parlano addirittura di algoritmi di generazione di numeri pseudo-casuali crittograficamente sicuri. Che vuol dire? Facile, questi algoritmi sono progettati in modo da avere output casuali, con probabilità uniforme; siccome non forniscono la vera casualità, ma soltanto una sua simulazione (in genere la casualità la osserviamo in alcune grandezze fisiche, come la temperatura, il moto browniano, la pressione atmosferica, ecc.), parliamo di “pseudo-casualità”, anche se poi in pratica molti usano semplicemente il termine casualità. Crittograficamente sicuri? Bene, semplicissimo. L’osservazione del valore attualmente generato non dà informazioni sui valori precedenti, né su quelli futuri.
Problema risolto? Affatto. Questi generatori, sebbene possano essere usati per estrarre risultati, sono degli algoritmi, che per loro natura, sono deterministici: a parità di input, parità di output. Questo significa che un avversario potrebbe eseguire questi algoritmi (sono normalmente pubblici!) e, avendo informazioni sull’input, ma non necessariamente, cercare di predire quale sia l’output. In sostanza, usare algoritmi porta normalmente a risultati predicibili, e questo può essere sfruttato dalla cultura del sospetto.[3] In definitiva l’uniformità, o equiprobabilità, è necessaria per garantire l’equità. Ma ciò non basta.
Il valore dell’impredicibilità
Potremmo modificare uno di questi generatori e collegarlo a una sorgente di veri dati casuali (ad esempio, un barometro o un termometro). Supponiamo di avere uno strumento che misura la grandezza casuale con grande precisione, diciamo fino alla sesta cifra decimale. Questi dati casuali potrebbero variare dunque in un milione di modi diversi e solo per quanto riguarda le cifre decimali. Quanto alla parte intera, anche questa sarà casuale ma non potrà variare in maniera esagerata: diciamo poche decine di unità. Ciò comporta che la sorgente di casualità può fornire decine di milioni di risultati diversi, probabilmente equiprobabili (anche se non è detto). “Decine di milioni” è ridicolmente piccolo rispetto alla capacità computazionale di un PC, capace di eseguire, anche solo con un singolo thread, miliardi di micro-operazioni al secondo.[2] L’avversario quindi, anche in presenza di sorgenti naturali di casualità, impredicibili, potrà esaminare tutti gli input ammissibili tramite l’uso di un computer, riconoscendo facilmente i possibili esiti. Un buon sorteggio ha un risultato assolutamente impredicibile, benché sia prodotto da un algoritmo e quindi, per definizione, deterministico.
La ripetibilità
C’è un altro problema. Oltre alla impredicibilità, abbiamo bisogno della ripetibilità, ovvero di quella proprietà che, in caso di contestazione, consente di riproporre l’algoritmo con lo stesso input, ottenendo gli stessi risultati. Sarebbe il termine dei sospetti sull’estrazione. Tuttavia, nell’approccio descritto, la sorgente di casualità avrebbe la possibilità di riproporre gli stessi input con probabilità infinitesimale, anche se non nulla. In altre parole, l’impredicibilità cozza con la ripetibilità. Eppure, quest’ultima avrebbe valore addirittura forense e metterebbe fine a molti litigi. Anzi, non li farebbe proprio nascere.
La combinazione di equiprobabilità, impredicibilità e ripetibilità definisce in effetti le caratteristiche dell’estrattore ideale, al di sopra di ogni sospetto, definendo dunque cos’è un “buon” sorteggio, anche se impredicibilità e ripetibilità sembrano essere in contrasto.
Un esempio concreto
Supponiamo ora che l’estrattore ideale venga creato e gestito da un’organizzazione che potrebbe essere a scopo di lucro o non, quali modelli di business potremmo immaginare?[3] Per esempio, ciascun soggetto che ha bisogno di un’estrazione si rivolge all’organizzazione, che deve in qualche modo essere riconosciuta, ad esempio dallo Stato, e paga una quota per l’estrazione (che magari avviene facendo girare un’applicazione che non necessita di grandi investimenti, né infrastrutture).
Forse tale modello è interessante e sostenibile, ma non è detto che ben si concili con altri modelli in uso presso l’organizzazione. In altre parole, non sono sicuro che questa capacità porti a realizzare guadagni. Un’altra possibilità è che sia lo Stato a gestire direttamente tale estrattore, per ragioni di credibilità ed autorevolezza, certificando la qualità dell’estrattore, garantendo il rispetto dei requisiti individuati. Sì, potrebbe farsi dare una quota per ogni estrazione, ma questi introiti sarebbero irrilevanti rispetto al guadagno indiretto ottenuto da una autorevolezza/correttezza, che avrebbe pochi pari in questa giungla digitale. Per non parlare del tempo guadagnato e delle somme risparmiate rispetto a ciò che è oggi necessario per superare i possibili litigi legali. Sì, questo mi convince. È compito dello Stato assicurare un servizio del genere.
La soluzione per una corretta estrazione
Ecco, ora sappiamo di cosa parlavamo usando il termine “soluzione”: algoritmo di estrazione con proprietà di equiprobabilità, impredicibilità e ripetibilità. Esiste davvero? E veniamo all’ultimo dettaglio. Abbiamo detto prima che supponevamo che questo estrattore esistesse. In effetti, esiste davvero; l’ho potuto vedere in funzione. Bene, non lo sapevamo, né avevamo letto alcunché al riguardo. Possibile? Se ne sarebbe parlato. Ma non è successo.
L’estrattore ideale esiste davvero ed è una applicazione che appunto garantisce tutti i requisiti posti. In più garantisce anche la perfect forward secrecy, ovvero quella proprietà che, anche ammettendo che i risultati dell’estrazione siano pubblici, essi non forniscono informazione alcuna sui risultati passati, né su quelli futuri. Crittograficamente sicuri, dunque. Come faccia un algoritmo ad avere le proprietà descritte è un’altra questione, ma debbo ammettere che ho visto personalmente lo strumento in funzione, così come ho assistito a misurazioni sia teoriche che sperimentali dalla presenza di tali proprietà. È stato realizzato da due accademici italiani, ed è pronto all’utilizzo in grande scala, sotto la gestione dello Stato. Si tratta di un software di dimensioni contenute, che può girare anche su dispositivi a basso potere di calcolo.
Conclusione
Avete mai provato a cercare su Google le due parole “bando” ed “estrazione”? Bene, ci sono oltre due milioni e mezzo di risultati; questo serve solo a valutare quante procedure, solo in Italia, sarebbero impattate dall’estrattore descritto. Se cerchiamo le stesse parole in inglese – tender e extraction – otteniamo 24 milioni di risultati. E i bandi costituiscono solo uno dei domini applicativi impattati.
__
Note
- Ad esempio, con due dadi avremmo esiti da due a dodici, cioè undici possibili esiti differenti. Ma l’esito più probabile è sette, essendo ottenuto in più modi: la probabilità del sette non è 1/11 ma è 1/6, ovvero quasi il doppio, mentre la probabilità del dodici è 1/36. ↑
- L’avversario, usando tanti possibili input, predice i corrispondenti risultati. Ancora peggio, l’avversario può conoscere a priori l’input, per cui la predizione diviene certezza. Oppure potrebbe cercare di condizionare l’input, in modo che venga generato un output a lui favorevole. ↑
- Anche un’organizzazione non-profit è interessata al modello di business, perché essa deve per lo meno sostentarsi da sola. ↑