AI SPIEGATA SEMPLICE 04
IN BREVE
Un algoritmo descrive un procedimento attraverso una sequenza organizzata di istruzioni o regole finalizzate a ottenere un risultato.
Il concetto non coincide con l’intelligenza artificiale: molti algoritmi sono deterministici e producono lo stesso risultato quando ricevono gli stessi input nelle stesse condizioni.
Comprendere gli algoritmi permette di distinguere le istruzioni definite direttamente dal programmatore dai comportamenti ricavati attraverso l’apprendimento dai dati.
Nel Nucleo precedente abbiamo scoperto che un computer può rappresentare informazioni attraverso dati, bit, byte e sistemi di codifica.
Ma avere dei dati non basta.
Il computer deve anche sapere che cosa fare con quei dati.
È qui che incontriamo una parola utilizzata continuamente quando si parla di tecnologia e intelligenza artificiale: algoritmo.
La sentiamo nei giornali, nei social network, nei tribunali e persino nelle norme. Si dice che «lo ha deciso l’algoritmo», che «l’algoritmo ci conosce», che «l’algoritmo sceglie cosa mostrarci».
Ma che cos’è davvero un algoritmo?
Partiamo, ancora una volta, dall’inizio.
Partiamo da una ricetta
Immaginiamo di dover preparare un caffè.
Possiamo descrivere l’operazione attraverso una sequenza molto semplice.
INIZIO → prendi una tazzina → prepara il caffè → versalo → FINE
Abbiamo indicato un punto di partenza, una serie ordinata di operazioni e un risultato.
Naturalmente un algoritmo informatico può essere enormemente più complesso. Ma l’intuizione fondamentale è già qui.
Il NIST utilizza diverse definizioni di algorithm provenienti dalle proprie pubblicazioni tecniche. In termini semplici, ricorre l’idea di un procedimento chiaramente specificato o di un insieme di regole che conduce a un risultato.
Si può quindi utilizzare una prima definizione didattica.
Un algoritmo descrive un procedimento attraverso una sequenza organizzata di istruzioni o regole finalizzate a ottenere un risultato.
Non vogliamo ancora costruire una definizione universale di algoritmo.
Ci interessa comprenderne l’idea fondamentale.
E c’è già qualcosa che possiamo osservare.
Per una persona l’istruzione «prepara il caffè» può essere sufficiente.
Sappiamo che cosa significa prendere la macchina o la moka, utilizzare il caffè, versare l’acqua e compiere tutte le altre operazioni necessarie.
Abbiamo utilizzato conoscenze che possediamo già.
Una macchina non può necessariamente fare altrettanto.
Le operazioni devono essere rappresentate in una forma che il sistema possa eseguire.
Ed è proprio questa differenza che inizieremo a comprendere.
NOTA SULLA FONTE — NIST
NIST significa National Institute of Standards and Technology.
È un’agenzia del Dipartimento del Commercio degli Stati Uniti che svolge attività scientifica, tecnica e di standardizzazione. Nel percorso HUMAIURIS lo incontreremo spesso perché mette a disposizione definizioni, standard e pubblicazioni tecniche utili per comprendere molti concetti informatici.
Quando utilizziamo una definizione del NIST, verifichiamo anche la pubblicazione dalla quale deriva e il contesto nel quale viene utilizzata.
Dal caffè al fascicolo dell’avvocato
Proviamo ora a utilizzare qualcosa di più vicino al nostro lavoro.
Immaginiamo una cartella contenente cento documenti.
Vogliamo ordinarli dal più vecchio al più recente.
A una persona potremmo semplicemente dire:
«Ordina questi documenti per data.»
Ma proviamo a scomporre ciò che deve accadere.
Il sistema deve individuare i documenti.
Deve trovare una data utilizzabile.
Deve rappresentarla in modo da poterla confrontare con le altre.
Deve stabilire quale data venga prima e quale dopo.
Deve sapere che cosa fare se un documento non contiene una data.
Deve sapere che cosa fare se due documenti hanno la stessa data.
Infine deve restituire un risultato.
Possiamo rappresentare il procedimento in modo estremamente semplificato.
DATI / INPUT →
ALGORITMO →
OPERAZIONI →
RISULTATO / OUTPUT
Questo schema ci permette di collegare ciò che abbiamo già imparato a ciò che stiamo iniziando a studiare.
Nel Nucleo precedente avevamo i dati.
Ora iniziamo a occuparci di ciò che possiamo fare con quei dati.
Sequenza
Un primo elemento è intuitivo.
Le operazioni possono dover essere eseguite secondo un certo ordine.
Pensiamo ancora ai documenti.
Prima devo individuare il documento.
Poi devo cercare la data.
Poi posso confrontarla.
Infine posso utilizzare il risultato del confronto per ordinare i documenti.
Non posso confrontare una data che non ho ancora individuato.
L’ordine delle operazioni può quindi avere importanza.
Questa è la sequenza.
Condizione
Ma un procedimento non deve necessariamente essere una linea retta.
Può contenere delle condizioni.
Immaginiamo di avere individuato la data del documento.
Possiamo stabilire:
SE la data è presente e valida
→ utilizzala
ALTRIMENTI
→ segnala il documento per un controllo.
Abbiamo introdotto una condizione.
Nel linguaggio informatico incontreremo spesso strutture concettualmente riconducibili a:
IF → THEN → ELSE
cioè, in forma molto semplificata:
SE accade questo → fai questo
ALTRIMENTI → fai qualcos’altro
Non stiamo ancora imparando a programmare.
Stiamo imparando a riconoscere la logica che può stare dietro una procedura.
Ripetizione
Abbiamo cento documenti.
Non vogliamo scrivere cento volte la stessa istruzione.
Possiamo immaginare qualcosa del genere:
PER OGNI documento
→ individua la data
→ verifica la data
→ memorizza il risultato
→ passa al documento successivo.
Stiamo ripetendo una serie di operazioni.
In informatica incontreremo il concetto di iterazione.
NOTA TECNICA — Iterazione
Per iterazione intendiamo, in questo contesto, la ripetizione di determinate operazioni secondo le regole previste dal procedimento.
Non significa necessariamente che la stessa operazione venga ripetuta per sempre.
Devono esistere le condizioni che stabiliscono quando la ripetizione continua e quando termina.
SEQUENZA →
le operazioni seguono un ordine
CONDIZIONE →
il percorso cambia in base a una regola
RIPETIZIONE
le operazioni si ripetono fino alla condizione di arresto
Proviamo a scriverlo diversamente
Possiamo ora descrivere il nostro piccolo procedimento in una forma più strutturata.
PER OGNI documento
LEGGI la data
SE la data è valida
MEMORIZZA la data
ALTRIMENTI
SEGNALA il documento
ORDINA i documenti per data
MOSTRA il risultato
Quello che abbiamo scritto assomiglia a uno pseudocodice.
NOTA TECNICA — Pseudocodice
Lo pseudocodice è un modo informale e strutturato di rappresentare la logica di un algoritmo.
Non dobbiamo considerarlo necessariamente un linguaggio di programmazione che il computer possa eseguire direttamente.
Serve soprattutto a noi.
Ci permette di descrivere con maggiore precisione le operazioni senza dover ancora conoscere un linguaggio di programmazione.
E ci consente di vedere una differenza importante.
Dire:
«ordina i documenti»
non è la stessa cosa che provare a descrivere come arrivare a quel risultato.
Algoritmo e programma sono la stessa cosa?
No.
Questa distinzione ci servirà molto nel prossimo Nucleo.
Per ora possiamo immaginare l’algoritmo come la descrizione logica del procedimento.
Il programma informatico è invece una realizzazione concreta attraverso istruzioni che possono essere eseguite dal computer.
In forma semplificata:
PROBLEMA
↓
ALGORITMO
↓
PROGRAMMA
↓
ESECUZIONE
↓
RISULTATO
Non fermiamoci ancora sui dettagli.
Ci interessa soltanto evitare una prima confusione.
Algoritmo e programma sono concetti collegati, ma non sono sinonimi.
E algoritmo significa intelligenza artificiale?
No.
Questo è probabilmente il concetto più importante di tutto il Nucleo.
ALGORITMO ≠ INTELLIGENZA ARTIFICIALE
Una calcolatrice utilizza algoritmi.
Un programma che ordina alfabeticamente cento nomi utilizza algoritmi.
Un sistema che confronta due date utilizza algoritmi.
Questo non significa che siano necessariamente sistemi di intelligenza artificiale.
L’AI Act utilizza una definizione specifica di sistema di IA. Fra gli elementi che caratterizzano la definizione normativa assume rilievo la capacità del sistema automatizzato di inferire, dagli input ricevuti, come generare determinati output.
Non dobbiamo ancora approfondire questa definizione.
Lo faremo quando avremo costruito gli strumenti necessari per comprenderla davvero.
Per ora ci interessa soltanto una conclusione.
La presenza di un algoritmo non basta, da sola, per dire che siamo davanti a un sistema di intelligenza artificiale.
Attenzione
Abbiamo utilizzato ricette, documenti, sequenze e condizioni per costruire un’intuizione.
Ora dobbiamo evitare che l’intuizione diventi una falsa equivalenza.
ALGORITMO ≠ RICETTA
Una ricetta ci ha aiutato a intuire il concetto. Non costituisce una definizione tecnica completa di algoritmo.
ALGORITMO ≠ PROGRAMMA
Il procedimento logico e la sua implementazione informatica devono essere distinti.
ALGORITMO ≠ INTELLIGENZA ARTIFICIALE
Non ogni procedimento algoritmico costituisce un sistema di IA.
ALGORITMO ≠ DECISIONE UMANA
Il fatto che un sistema produca un risultato non significa necessariamente che abbia compreso il problema o deciso nel significato umano e giuridico del termine.
Quest’ultima distinzione merita particolare attenzione.
«Lo ha deciso l’algoritmo»
Quante volte abbiamo sentito questa frase?
«È stato l’algoritmo.»
«Lo ha deciso l’algoritmo.»
«L’algoritmo non mi ha selezionato.»
È un modo semplice di descrivere qualcosa che potrebbe essere molto meno semplice.
Proviamo allora a cambiare prospettiva.
Immaginiamo che il nostro programma stabilisca questa regola:
SE un documento non contiene una data → collocarlo alla fine dell’elenco.
Chi ha deciso questa regola?
Il computer?
L’algoritmo?
Il programmatore?
Chi ha progettato il sistema?
Chi ha definito i requisiti?
E chi ha deciso che proprio quella regola fosse adeguata allo scopo?
Non dobbiamo ancora rispondere completamente.
Ci interessa accorgerci che attribuire una decisione genericamente «all’algoritmo» può nascondere una serie di scelte, soggetti e passaggi che il giurista potrebbe invece avere interesse a ricostruire.
Le domande dell’avvocato
Quando un risultato prodotto o influenzato da un sistema automatizzato assume rilevanza per una persona, per un procedimento o per un diritto, la frase «lo ha deciso l’algoritmo» potrebbe non bastare.
Potremmo aver bisogno di chiederci:
Quali dati sono stati utilizzati?
Quali regole sono state applicate?
Chi le ha definite?
Quali operazioni sono state effettuate?
Come sono state gestite le eccezioni?
Quanto del procedimento è stato automatizzato?
Dove è intervenuta una persona?
Come si è arrivati al risultato?
Possiamo verificarlo?
Possiamo contestarlo?
A questo punto la tecnologia comincia a incontrare il diritto.
Dal concetto alla professione
Un avvocato non deve necessariamente essere capace di progettare un algoritmo.
Può però avere bisogno di comprenderne sufficientemente il funzionamento per sapere quali domande porre.
Questo vale quando utilizziamo direttamente uno strumento tecnologico.
Ma vale ancora di più quando il risultato prodotto da un sistema incide sulla posizione del nostro assistito.
In quel momento comprendere almeno la differenza fra dati, regole, operazioni e risultato può diventare uno strumento professionale.
E può diventare anche uno strumento di difesa.
Quando capire l’algoritmo diventa diritto di difesa
La questione non è soltanto teorica.
La giurisprudenza amministrativa italiana si è già confrontata con l’utilizzo di algoritmi nell’attività amministrativa.
Il Consiglio di Stato, sez. VI, con la sentenza 8 aprile 2019, n. 2270, ha affrontato il problema della conoscibilità del meccanismo algoritmico utilizzato dall’amministrazione e della possibilità di sottoporlo al sindacato del giudice.
Per noi, in questo momento del percorso, non interessa ancora studiare nel dettaglio quella giurisprudenza.
Ci interessa comprendere qualcosa di più semplice.
Quando un procedimento tecnologico incide su una posizione giuridicamente rilevante, comprendere come funziona può diventare necessario anche per poterlo verificare e contestare.
È uno dei motivi per cui stiamo partendo dalle fondamenta.
Non per trasformare l’avvocato in un informatico.
Ma perché il diritto di difesa può richiedere anche la capacità di formulare domande corrette alla tecnologia.
E quando l’algoritmo lo utilizza l’avvocato?
La prospettiva cambia, ma il problema della consapevolezza rimane.
Un risultato automatizzato non diventa corretto semplicemente perché è stato prodotto automaticamente.
L’avvocato deve mantenere il governo della propria attività professionale, conoscere in misura adeguata gli strumenti che utilizza e verificare gli output quando questi entrano nella prestazione professionale.
Questo principio diventerà ancora più importante quando parleremo di intelligenza artificiale generativa, sistemi di ricerca, automazioni e agenti AI.
Per ora ci basta fissare un’idea.
Automatizzare un’operazione non significa trasferire alla macchina la responsabilità professionale.
Un algoritmo può sbagliare?
La domanda è interessante.
Ma forse è ancora troppo generica.
Immaginiamo che il nostro sistema produca un risultato errato.
Che cosa è successo?
Potremmo avere utilizzato dati sbagliati.
DATI ERRATI
↓
RISULTATO PROBLEMATICO
Potremmo avere definito male una regola.
REGOLA INADEGUATA
↓
RISULTATO PROBLEMATICO
Potrebbe esserci un errore nella realizzazione del programma.
IMPLEMENTAZIONE ERRATA
↓
RISULTATO PROBLEMATICO
Oppure il sistema potrebbe aver prodotto correttamente il risultato previsto, ma qualcuno potrebbe averlo utilizzato in un contesto nel quale non avrebbe dovuto essere utilizzato in quel modo.
OUTPUT TECNICAMENTE CORRETTO
↓
UTILIZZO INADEGUATO
↓
DECISIONE PROBLEMATICA
Questo piccolo schema ci insegna qualcosa.
Quando diciamo che «l’algoritmo ha sbagliato» potremmo sintetizzare problemi molto diversi in un’unica frase.
Il giurista deve imparare a scomporli.
Fermiamoci un momento
Abbiamo iniziato con una ricetta.
Poi siamo passati a una cartella di documenti.
Abbiamo incontrato sequenze, condizioni e ripetizioni.
Abbiamo distinto algoritmo, programma e intelligenza artificiale.
E siamo arrivati a una conclusione che riguarda direttamente il nostro lavoro.
Dietro un risultato automatizzato dobbiamo imparare a cercare che cosa è accaduto.
Quali dati.
Quali regole.
Quali operazioni.
Quale sistema.
Quali persone.
Quale risultato.
Questa capacità di scomporre il problema ci servirà moltissimo più avanti.
Il concetto fondamentale
Un algoritmo descrive un procedimento attraverso il quale determinate operazioni vengono organizzate per ottenere un risultato. Non è sinonimo di programma e non è sinonimo di intelligenza artificiale.
E per il giurista c’è una seconda idea altrettanto importante.
Quando qualcuno dice «lo ha deciso l’algoritmo», quella frase non dovrebbe chiudere il problema. Dovrebbe aprire a delle domande.
Il prossimo passo
Ora sappiamo che possiamo descrivere un procedimento.
Ma un algoritmo, da solo, non ci spiega ancora come quelle istruzioni diventino qualcosa che il computer possa concretamente eseguire.
Dobbiamo quindi aggiungere un altro tassello.
Che differenza c’è tra algoritmo, programma, software e automazione?
E soprattutto:
quando cominciamo davvero a parlare di intelligenza artificiale?
È da qui che proseguiremo.
Prossima tappa — Dal software all’intelligenza artificiale: quando un programma comincia a “inferire”
Fonti
NIST, Special Publication 800-107 — Recommendation for Applications Using Approved Hash Algorithms
Fonte tecnica istituzionale originaria della definizione di algoritmo richiamata nell’articolo: consulta la pubblicazione ufficiale NIST.
NISTIR 7696 — Common Platform Enumeration: Naming Specification Version 2.3
Fonte tecnica istituzionale utilizzata per verificare il ruolo dello pseudocodice nella descrizione del comportamento computazionale: consulta la pubblicazione ufficiale NIST.
Regolamento (UE) 2024/1689 — AI Act, art. 3 e considerando 12, testo consolidato vigente
Fonte normativa ufficiale utilizzata per distinguere il concetto generale di algoritmo dalla definizione giuridica di sistema di IA: consulta il testo consolidato su EUR-Lex.
Consiglio di Stato, sez. VI, 8 aprile 2019, n. 2270
Fonte giurisprudenziale ufficiale utilizzata per introdurre il collegamento tra procedimento algoritmico, conoscibilità e sindacabilità: consulta la sentenza sul portale della Giustizia amministrativa.
Continua il percorso
Il diritto è già un po’ algoritmico? Il “se… allora” delle norme e il ruolo dell’avvocato — approfondisci il rapporto fra struttura condizionale, interpretazione e difesa.
AI spiegata semplice — torna alla pagina del percorso introduttivo.
AI Literacy · Tappa 1.3 — colloca questo Nucleo nel percorso formativo.
Prossima tappa — Dal software all’intelligenza artificiale: quando un programma comincia a “inferire”