ALGORITMI CHE DECIDONO

Ci sono decisioni che vengono affidate ad algoritmi (cioè ai programmi che li codificano). Un programma del sistema informativo del MIUR decide, poniamo, che un insegnante di Catania per entrare in ruolo deve prendere servizio a Udine. Un tecnico spaziale ha detto recentemente che Schiaparelli si è schiantato su Marte perché il programma di controllo del modulo spaziale “ha deciso” di spegnere i motori un minuto prima del previsto. Nei Sistemi di Supporto alle Decisioni, aziendali o economico-sociali, sono le persone a decidere mentre i programmi presentano dati in modo ben strutturato, offrono alternative e calcolano le conseguenze delle decisioni. Anche alcuni servizi di uso corrente, per esempio la prenotazione di alberghi o viaggi, sono sistemi molto semplici di supporto alle decisioni. Altri ancora producono una decisione, ma danno all’operatore umano gli strumenti per cambiarla: funzionano così, per esempio, molti programmi per la confezione di orari scolastici.

Abbiamo imparato ad accettare una grande quantità di decisioni algoritmiche. Le abbiamo metabolizzate senza quasi più percepirle quando ci aiutano nella vita e nel lavoro: la scelta di un posto in treno, l’algoritmo che ci corregge una parola mentre scriviamo un messaggio ecc. Ma diventiamo subito critici per quelle che ci rendono la vita scomoda. Esagerando un po’ il regista Herzog ha detto a un giornalista: “nessuno si chiederebbe se l’elettricità è cattiva, tranne nel momento in cui si trovasse sulla sedia elettrica”. Certo se la cosa non ci interessa personalmente è più facile permetterci il lusso della speculazione. In ogni caso per valutare razionalmente le decisioni di un algoritmo è necessario anzitutto chiarire qual è il contesto e la finalità della decisione e, successivamente, spostare il punto di vista dal personale al generale, cioè considerare i vantaggi e gli svantaggi di tutte le persone coinvolte. Naturalmente il giudizio è facile se l’algoritmo-decisore nuoce a tutti o non nuoce a nessuno. Ma le cose non sono così semplici: è possibile, addirittura che anche la migliore soluzione possibile di un problema lasci insoddisfatti tutti. Uno studio di alcuni anni fa dimostrò che un programma per la produzione di orari scolastici che ottimizzava al 90% la soddisfazione complessiva delle richieste dei docenti in realtà lasciava tutti insoddisfatti. E questo è ovvio perché per ciascuno c’era un residuo di aspettative deluse.

Il dibattito si focalizza spesso sul fatto che le decisioni siano o no “neutrali” o imparziali. Uno slogan per mettere in discussione l’oggettività degli algoritmi è che i programmi sono scritti da persone e che quindi in essi c’è sempre un elemento di soggettività. Se il criterio nasce da una chiara regola sociale e organizzativa o da un principio condiviso c’è poco da discutere perché l’algoritmo, salvo errori materiali, ne è solo, come è stato detto, la traduzione matematica. Ma se sono la regola e il principio a non essere condivisi è inutile prendersela con l’algoritmo, con chi l’ha scritto e con chi lo usa. Quindi è tutto così semplice? Non sempre. Intanto perché talvolta le regole non sono esaustive ed è possibile che si introducano criteri non dichiarati. L’assegnazione di un posto in treno, per fare un esempio facile, segue alcune regole trasparenti e condivisibili: la classe dipende dalla spesa, la posizione finestrino/corridoio e le prossimità di persone che viaggiano insieme vengono soddisfatte al meglio a seconda delle disponibilità, viene rispettato l’ovvio principio del prima arrivato prima servito ecc. Poi quando saliamo in treno capita di vedere che le carrozze 11 e 12 sono strapiene mentre la 8 è semivuota. E’ evidente che c’è un criterio non dichiarato (e per la verità mai capito da chi scrive). I criteri sono spesso una semplificazione della realtà e, per questo, non prevedono alcuni eventi critici. Sembra che questo sia stato il caso dell’assegnazione di sedi ai docenti. Ma spesso il problema è tanto complesso che la semplificazione taglia inevitabilmente variabili e quindi delude aspettative: il caso dell’orario scolastico è tipico.

Il rifiuto di certe decisioni algoritmiche, dunque, può avere delle buone ragioni. Ma talvolta il rifiuto riguarda l’algoritmizzazione in generale, come una forma di disumanizzazione. Più specificamente c’è il rimpianto per le decisioni transazionali, nelle quali il problema delle variabili nascoste e dei casi-limite è risolto, come sanno bene i vecchi vicepresidi che facevano gli orari scolastici a mano, proprio nella transazione. Ma come sanno bene gli stessi non tutte le transazioni erano innocenti. Per inciso la produzione algoritmica degli orari potrebbe essere un bel tema di dibattito in classe.

Riprendiamo un momento la questione della soggettività introdotta dall’autore del programma. Qui c’è una sorpresa. Nel caso di problemi molto complessi a volte il programmatore semplicemente non c’è. Si tratta di quelli che Weizembaum, nel suo libro Computer Power and Human Reason, chiamava programmi complessi e incomprensibili. Sono composti di migliaia o milioni di righe di codice prodotti in un tempo lungo da molte persone diverse con un processo fatto di stratificazioni, assemblaggi di sottoprogrammi, aggiornamenti, correzioni di bugs e “rammendi” ah hoc. Tutto meno che la pura trasposizione matematica di un procedimento. E nonostante i volumi di documentazione via via prodotti spesso si deve ricorre a metodi empirici: il collaudo, il rodaggio e la richiesta agli utilizzatori del favore di segnalare gli errori.

Questo aprirebbe un altro discorso sul pregiudizio deterministico che consegna le tecnologie informatiche al mondo delle certezze assolute. E sulla superficialità del rinchiudere l’uso di questa, come delle altre tecnologie, nell’alternativa del tutto bene o tutto male.

Mario Fierli