Tesina informatica
Algoritmo
La parola “algoritmo” deriva dalla trascrizione latina del nome del matematico persiano Khwarizmi, il quale viene considerato uno dei primi autori ad aver fatto riferimento a questo concetto che suggerì un metodo per sommare 2 numeri rappresentati dal sistema numerico Hindu. Nel medioevo con algorismus si indicava il complesso di operazioni nel calcolo numerico con numeri arabi. Oggi con questo termine si indica la sequenza finita di passi effettuabili per risolvere una classe di problemi in un tempo finito.
Nei nostri giorni algoritmo è una parola che probabilmente molti conoscono e che viene spesso associata unicamente al mondo dell’algebra e quindi dell’informatica. Pochi infatti, si rendono conto di come la maggior parte della nostra vita quotidiana può essere paragonata ad un algoritmo. Una prima definizione infatti può avvalorare il pensiero di chi lo associa esclusivamente al mondo matematico: “.. Un algoritmo non è altro che una serie di istruzioni ben definite, di numero finito, eseguite in maniera ordinata, passo dopo passo, al termine delle quali si deve ottenere un risultato corretto.”
Proprietà di un algoritmo
Dalla precedente definizione di algoritmo si evincono alcune proprietà necessarie, senza le quali un algoritmo non può essere definito tale:
- I passi costituenti devono essere "elementari", ovvero non ulteriormente scomponibili (atomicità).
- I passi costituenti devono essere interpretabili in modo diretto e univoco dall'esecutore, sia esso umano o artificiale (non ambiguità).
- L'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso (finitezza).
- L'esecuzione deve avere termine dopo un tempo finito (terminazione).
- L’esecuzione deve portare a un risultato univoco (effettività).
L’algoritmo è un problema che può essere considerato come una funzione che lega i dati in ingresso (input) con quelli in uscita (output). I dati in ingresso descrivono le informazioni rilevanti legate al problema stesso, mentre i dati in uscita descrivono la soluzione del problema. L’ordine di esecuzione di un algoritmo si chiama controllo dell’algoritmo.
Rappresentazione grafica
Un algoritmo può essere rappresentato graficamente con un diagramma di flusso costituito da simboli quali: rettangoli, ovali, cerchi e rombi. I simboli sono connessi tra loro tramite linee, dette linee di flusso, orientate con frecce che indicano l’ordine con cui vengono eseguite le azioni. Se un diagramma di flusso deve rappresentare un algoritmo completo, all’inizio viene posto un simbolo ovale con la parola ‘inizio’. Analogamente all’uscita si pone un ovale con la parola ‘fine’. Il rettangolo, detto anche ‘simbolo di azione’, indica qualsiasi tipo di operazione. I rombi vengono detti ‘simboli decisionali’ e vengono posti nei punti dove la linea di esecuzione delle azioni può prendere diverse direzioni a seconda del verificarsi di alcune condizioni. Se invece il diagramma rappresenta solo una parte dell’algoritmo, all’inizio e alla fine si pongono dei cerchietti detti ‘simboli di connessione’.
È facilmente comprensibile come l’algoritmo sia alla base della nostra vita quotidiana. Un esempio lampante è quello della preparazione della moka per il caffè, o il procedimento che si usa nel seguire una ricetta culinaria. Anche lo stesso computer viene programmato attraverso una serie di algoritmi che permettono l’utilizzo di motori di ricerca. Un altro esempio di algoritmo presente nelle nostre vite è il semaforo, nel quale agisce un particolare algoritmo che permette l’accensione delle tre luci, e quindi parte dello smaltimento del traffico. All’estero invece, troviamo casi come quello avvenuto nel 2005 a Memphis, dove la polizia utilizzava un algoritmo che calcola il tasso di criminalità nella città, agendo spesso a colpo sicuro sul luogo di più alta concentrazione. Questo particolare algoritmo viene chiamato Crush, che sta per “Criminal Reduction Utilising Statistical History” ed è stato elaborato da un team di criminologi e scienziati dell’università di Memphis.
Più in generale possiamo quindi dire che tutta la nostra vita può essere vista come un insieme di algoritmi, che se esercitati in maniera corretta ci permettono di risolvere piccoli problemi quotidiani. In questi giorni si è parlato molto del social network Facebook che è intervenuto nuovamente sul proprio algoritmo e l'impatto principale si sta avendo sul News Feed, precisamente su genere e origine dei contenuti che ogni utente vede scorrere, favorendo quelli per i quali ognuno impiega più tempo per leggerli. Il nuovo obiettivo è quello di favorire gli articoli che tengono incollati gli utenti alla lettura e non più solo quelli che generano interazione con commenti o 'Mi Piace’. I due nuovi parametri introdotti sono il tempo di lettura (o di visione) e la diversità dei post. In parole semplici, per ogni link esterno Facebook calcola il tempo trascorso a leggerlo (o a visualizzarlo) nel browser o in versione Instant Article, eliminando dal conteggio i secondi impiegati per caricare la pagina. Inoltre, il tempo di lettura non sarà calcolato in assoluto, per evitare di favorire esclusivamente gli articoli molto lunghi, ma con tutta una serie di parametri. Il social network vuole capire quale sia l'interesse generato da un contenuto per premiare gli articoli che determineranno un'attenzione che superi il minuto, rispetto a quelli letti velocemente e chiusi in un battito. Inoltre, attraverso la diversità dei post, l’algoritmo eviterà di mostrare ad un utente troppe notizie che arrivano da una stessa pagina-fonte.
Nello specifico
Algoritmi che indirizzano la conoscenza, che regolano l’economia, che selezionano l’anima gemella: dietro ogni soluzione ce n’è sempre uno. Esplicito o nascosto: c’è un algoritmo dietro il funzionamento dei navigatori satellitari. Un algoritmo dietro le previsioni del tempo. È un algoritmo che sceglie il paziente da operare per primo dalle liste d’attesa per un trapianto. Un algoritmo presiede alla prenotazione di un posto in aereo, alla sicurezza della firma elettronica, alla compressione di un file online. Gli algotrading, che operano sulla base della logica, dei dati disponibili e delle informazioni storiche, determinano i boom o le crisi di mercato. E algoritmi sovrintendono a intere attività, come ha dimostrato uno studio di Data & Society a proposito di Uber: è un algoritmo a condizionare i rendimenti e le gratificazioni dei suoi autisti, a spingerli a prendere le corse, a migliorare i punteggi.
Un algoritmo del Miur ha seminato per l’Italia migliaia di docenti immessi nella scuola, costringendoli a traslocare nelle sedi assegnate. Un algoritmo ha distribuito agli spettacoli dal vivo gli ambitissimi finanziamenti del Fus, il Fondo unico dello spettacolo, lasciando a secco molti teatri e associazioni. Anche a colpi di algoritmo si è combattuta la battaglia per rallentare la riforma del Senato, con un’opposizione impegnata a moltiplicare gli emendamenti: il leghista Roberto Calderoli, ne presentò in una mattina sola 82 milioni. E chi è il responsabile dello scandalo che ha travolto Volkswagen se non un algoritmo, che truccava i dati sulle emissioni?
Il caso Volkswagen
Nei primi mesi del 2014 Peter Mock, responsabile per l’Europa dell’Icct, (International Council on Clean Transportation) organizzazione indipendente che si occupa di trasporti e sostenibilità, conduce test sulle emissioni nocive delle versioni europee di tre automobili diesel, tra cui Volkswagen Jetta. In laboratorio nessuno dei tre modelli risulta fuori norma per quanto riguarda la valutazione degli inquinanti, in particolare degli ossidi di azoto di NOx. Diverso però, fu il discorso per le prove su strada, durante le quali i due veicoli Volkswagen, forniscono prestazioni diverse e decisamente peggiori. A questo punto Mock chiama in causa i colleghi d’oltreoceano. I modelli automobilistici presentano sensibili differenze tra i due continenti, ed è dunque probabile che, a parità di condizioni, le versioni americane non superino i limiti consentiti dalla legge. Mock contatta i due istituti: California Air Resources Board, incaricato di effettuare i test sui rulli, mentre ai tecnici dell’Università della West Virginia, effettua ulteriori verifiche.