Sulla correttezza e complessità computazionale degli algoritmi

Tempo di lettura stimato:5 Minuti, 10 Secondi

Nell’epoca in cui viviamo, la correttezza e la complessità computazionale degli algoritmi rivestono un ruolo cruciale non solo nel campo dell’informatica, ma anche in quello giuridico. Gli algoritmi sono al centro di sistemi decisionali automatizzati che influenzano la vita quotidiana di milioni di persone, dalle raccomandazioni di prodotti alle decisioni di credito, dalla sorveglianza alla giustizia predittiva.

Un algoritmo è una sequenza finita e ordinata di istruzioni elementari, ripetibili e non ambigue che specifica una combinazione di azioni da compiere per risolvere, in maniera deterministica, un problema. Finitezza (l’algoritmo deve portare alla soluzione in un numero finito di passi), generalità (l’algoritmo non risolve un unico problema, ma una classe di problemi), non ambiguità (le istruzioni indicate sono univoche, la loro esecuzione avviene sempre allo stesso modo, indipendentemente dall’esecutore) e ripetibilità (dati gli stessi dati di input, l’algoritmo deve fornire gli stessi risultati in output) sono dunque le proprietà fondamentali di ogni algoritmo.

Chiaramente gli algoritmi non sono tutti uguali, alcuni conducono a soluzioni corrette, altri invece producono risultati errati (per alcuni dei loro possibili input), per questo alcuni algoritmi sono più efficienti di altri, nel senso producono il proprio risultato con uno sforzo minore, e quindi in un tempo minore.

La correttezza di un algoritmo si riferisce alla sua capacità di eseguire le funzioni per cui è stato progettato senza errori, mentre la complessità computazionale riguarda l’efficienza con cui un algoritmo può risolvere un problema dato. Queste due caratteristiche sono fondamentali per garantire che gli algoritmi funzionino in modo equo, trasparente e responsabile.

Scopo di questo breve contributo è esplorare la relazione tra la correttezza e la complessità computazionale degli algoritmi e il loro impatto sul diritto e sulla società. Si discuterà di come la legge possa regolamentare l’uso degli algoritmi per prevenire discriminazioni e violazioni dei diritti umani, e di come la complessità degli algoritmi possa sfidare la comprensione e l’applicazione delle norme giuridiche.

La correttezza

Essa è un requisito preliminare ed inderogabile. Bisogna però domandarsi se sia possibile essere sicuri che un certo algoritmo sia corretto, ossia che esso darà il risultato desiderato per ogni input ammissibile. Vi sono alcune ragioni che rendono difficile l’individuazione degli errori, quindi la predeterminazione della correttezza di un algoritmo: innanzitutto, non esiste alcun algoritmo di validità universale capace di dirci se un algoritmo contenga errori; in secondo luogo, non è possibile verificare la correttezza di un algoritmo applicandolo preventivamente ad ogni input possibile; in terzo luogo, un algoritmo può operare correttamente nella maggior parte dei casi, ma cadere in errore rispetto ad input particolari: finché l’algoritmo non è applicato ad uno di quegli input, l’errore può restare inosservato.

L’efficienza

Quanto all’ efficienza, un algoritmo non dà vita ad un solo processo di esecuzione, ma a diversi processi di diversa lunghezza a seconda dell’input che gli è stato fornito. Nel valutare l’efficienza degli algoritmi se ne considera la complessità computazionale, che fa riferimento al rapporto tra l’aumento dell’ampiezza dell’input di un algoritmo e l’aumento della lunghezza del processo di esecuzione dell’algoritmo stesso. In particolare, negli algoritmi con bassa complessità computazionale, l’aumento dell’ampiezza dell’input determina un piccolo aumento della lunghezza del processo di esecuzione (ad esempio un algoritmo per la ricerca binaria); negli algoritmi con media complessità computazionale, la lunghezza del processo di esecuzione cresce in proporzione all’ampiezza dell’input (ad esempio un algoritmo per la ricerca sequenziale in un elenco telefonico); negli algoritmi con alta complessità computazionale, l’aumento dell’input determina un aumento più che proporzionale della lunghezza del processo di esecuzione, tanto che ad un certo punto diventa impossibile eseguire l’algoritmo in un tempo ragionevole. Quando poi l’input diventa molto lungo (ad esempio 150 cifre) si dice che l’algoritmo ha una complessità esponenziale, e al crescere dell’input, non solo il processo di esecuzione si allunga, ma lo fa con un’accelerazione sempre maggiore. Pertanto, al crescere dell’input gli algoritmi con complessità esponenziale diventano così esigenti da divenire intrattabili.

Le implicazioni giuridiche sottese

Oggigiorno gli algoritmi, specialmente quelli basati sull’intelligenza artificiale e sul machine learning, sono sempre più utilizzati in vari settori, dalla sanità all’istruzione, dal mercato del lavoro alle decisioni giuridiche. Tuttavia, la loro capacità di elaborare grandi quantità di dati e di “apprendere” dai pattern può portare a rischi di discriminazione algoritmica, soprattutto se i dati di partenza sono incompleti o viziati da pregiudizi.

La complessità degli algoritmi moderni può rappresentare una sfida per la comprensione e l’applicazione delle norme giuridiche. Gli algoritmi di machine learning, in particolare, possono essere vere e proprie “scatole nere” che rendono difficile discernere come vengono prese le decisioni. Ciò richiede un nuovo approccio legale che possa tenere il passo con l’evoluzione tecnologica, forse attraverso l’introduzione di standard di accountability e la formazione di esperti legali in materia di intelligenza artificiale.

Il legislatore può certamente intervenire stabilendo norme chiare e precise per l’uso degli algoritmi, garantendo che siano trasparenti, equi e non discriminatori. E va certamente dato uno sguardo anche all’attuale panorama normativo. Ad esempio, il GDPR (General Data Protection Regulation) dell’Unione Europea già impone una valutazione di impatto sulla protezione dei dati quando si utilizzano sistemi di intelligenza artificiale che hanno un effetto significativo sugli individui. E questo ben può includere l’analisi dei rischi di discriminazione e la necessità di adottare misure mitiganti. Ma quello che è veramente fondamentale è la creazione di una proficua collaborazione tra legislatori, giuristi, esperti tecnologici e società civile. Essa sarà cruciale per navigare in queste acque complesse e garantire che la tecnologia sia al servizio dell’umanità e non il contrario.

Per approfondire:

- N. HARTMANN, Il problema dell'essere spirituale, Firenze, 1965; 

- L. LESSIG, Code and Other laws of Cyberspace, New York, 1999; 

- G. SARTOR, Il diritto della rete globale, in Ciberspazio e diritto, 4, 2003, pp. 67-94; 

- G. SARTOR, L'informatica giuridica e le tecnologie dell'informazione, Torino, 2016; 

- F. ROMEO, Lezioni di logica ed informatica giuridica, Torino, 2012; 

- F. ROMEO, Reti neurali, in Parole Chiave, 34, 2005, pp. 165-182; 
 
- W.S. MCCULLOCH, W.H. PITTS, A logical calculus of the ideas immanent in nervous activity, 1943; 

- A.M. TURING, Computing machinery and intelligence, in Mind, 59, 1950, p. 236 ss.
The following two tabs change content below.

Nicola Nappi

⚖️ Diritto commerciale, assicurativo, bancario, delle esecuzioni, di famiglia. Diritti reali, di proprietà, delle locazioni e del condominio. IT Law. a Studio Legale Nappi
*Giurista, Master Universitario di II° livello in Informatica Giuridica, nuove tecnologie e diritto dell'informatica, Master Universitario di I° livello in Diritto delle Nuove Tecnologie ed Informatica Giuridica, Corso di Specializzazione Universitario in Regulatory Compliance, Corso di Specializzazione Universitario in European Business Law, Corso di Perfezionamento Universitario in Criminalità Informatica e Investigazioni digitali - Le procedure di investigazione e di rimozione dei contenuti digitali, Corso di Perfezionamento Universitario in Criminalità Informatica e Investigazioni digitali - Intelligenza Artificiale, attacchi, crimini informatici, investigazioni e aspetti etico-sociali, Master Data Protection Officer, Consulente esperto qualificato nell’ambito del trattamento dei dati.