INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE

Pagina creata da Samuele Pisani
 
CONTINUA A LEGGERE
INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE
Dipartimento di Impresa e Management
Cattedra di Informatica

 INTELLIGENZA ARTIFICIALE:
 il futuro è già presente

 RELATORE: CANDIDATO:
 Prof. Laura Luigi Pompili Alessio
 Matr. 233271

 Anno Accademico
 2020-2021
INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE
Indice
INTRODUZIONE .................................................................................................................................................................. 3
1. INTELLIGENZA ARTIFICIALE ........................................................................................................................................ 4
 1.1 Storia, Turing e i primi sviluppi: ......................................................................................................................... 4
 1.2 Intelligenza: cos’è, è possibile definirla? ........................................................................................................... 7
 1.3 Le basi dell’Intelligenza Artificiale: .................................................................................................................... 9
 1.4 Paradigmi dell’Intelligenza Artificiale: ............................................................................................................. 13
2. MACHINE LEARNING E DEEP LEARNING .................................................................................................................. 18
 2.1 Machine Learning: ........................................................................................................................................... 18
 2.2 Funzionamento: ............................................................................................................................................... 19
 2.3 Capire il problema e lavorare con i dati: ......................................................................................................... 19
 2.4 Tipi di apprendimento: .................................................................................................................................... 24
 2.5 Training, validazione e ottimizzazione:............................................................................................................ 27
 2.6 Categorie di soluzioni: ..................................................................................................................................... 31
 2.7 Deep Learning: ................................................................................................................................................. 33
 2.8 Cervello umano:............................................................................................................................................... 37
3. DOVE SIAMO E DOVE VOGLIAMO ARRIVARE .......................................................................................................... 41
 3.1 Applicazioni, dove siamo oggi: ........................................................................................................................ 41
 3.2 Big Data:........................................................................................................................................................... 53
 3.3 Privacy:............................................................................................................................................................. 58
 3.4 Etica, fino a dove si vuole arrivare:.................................................................................................................. 62
 3.5 Lavoro: ............................................................................................................................................................. 68
 3.6 Uno sguardo al futuro:..................................................................................................................................... 71
4. ADDESTRAMENTO DI UNA RETE NEURALE.............................................................................................................. 77
 4.1 Introduzione: ................................................................................................................................................... 77
 4.2 Codice: ............................................................................................................................................................. 77
 4.3 Risultati: ........................................................................................................................................................... 80
CONCLUSIONI .................................................................................................................................................................. 85
BIBLIOGRAFIA .................................................................................................................................................................. 86

 2
INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE
INTRODUZIONE
Il tema dell’Intelligenza Artificiale è stato molto dibattuto, e continua ad esserlo sempre più. Da un lato c’è
chi pensa che l’Intelligenza Artificiale sia la cosa migliore che potesse inventare l’essere umano, dall’altro
lato c’è chi pensa che sia la cosa peggiore. Secondo la visione più ottimistica, l’Intelligenza Artificiale porterà
l’essere umano ad uno stato superiore rendendo la sua vita migliore sotto tutti i punti di vista ed eliminando le
disuguaglianze tra le persone. Al contrario, secondo la visione pessimistica, l’Intelligenza Artificiale porterà
la razza umana all’estinzione. Probabilmente entrambe le visioni sono troppo estreme per verificarsi. Tuttavia,
nonostante non si riesca (ancora) a giungere ad una conclusione condivisa sul fatto che l’Intelligenza
Artificiale sia o meno favorevole per lo sviluppo della qualità della vita dell’essere umano, è bene che esista
e che si sviluppi questo dibattito. Nel dibattito sull’Intelligenza Artificiale non viene sempre data la giusta
importanza al funzionamento degli algoritmi. Comprendere il funzionamento di questa tecnologia è
fondamentale per capire in che modo potrebbe evolversi e realmente a che punto è il suo sviluppo. Dopo che
si è compreso il suo funzionamento, e le sue reali applicazioni, è possibile instaurare un dibattito sugli effettivi
sviluppi che potrebbe avere in futuro.
Nella prima parte di quest’elaborato viene descritta la storia di quest’affascinante materia, andando anche a
cercare di capire che cosa sia effettivamente l’Intelligenza Artificiale e se possa essere definita intelligente,
fornendo anche dei paragoni su come viene intesa l’intelligenza degli esseri umani e degli animali. Sempre
nella prima parte vengono analizzate le basi sulle quali si fondano gli algoritmi di Intelligenza Artificiale e
vengono descritti alcuni dei paradigmi più importanti. Spesso, quando si parla di algoritmi di Intelligenza
Artificiale si pensa subito al Machine Learning. Questa tecnica è sicuramente molto utilizzata, ma non è certo
l’unica e non è sempre la migliore.
Nella seconda parte viene descritto il funzionamento del Machine Learning e della sottocategoria del Deep
Learning, andando anche analizzare il processo alla base che permette a questi algoritmi di funzionare. Quando
si sviluppando algoritmi di Intelligenza Artificiale è necessario comprender e il problema che si vuole andare
a risolvere in modo tale da selezionare l’approccio più accurato. In questa sezione non mancano alcuni consigli
pratici per poter implementare gli algoritmi in maniera più accurata, per ridurre i costi e per migliorare
l’efficienza al fine di ottenere risultati più adatti al problema da risolvere.
Nella terza parte, compreso il funzionamento di alcuni tipi di algoritmi di Intelligenza Artificiale si passa
all’esplorazione delle applicazioni di questi algoritmi. Sono presenti sia applicazioni robotiche, che sono in
grado di interagire con lo spazio circostante, sia applicazioni meramente computazionali che permettono
l’analisi di dati e lo svolgimento di determinate previsioni. In questa sezione vengono analizzati i Big Data e
vengono approfondite le tematiche legate alla privacy. Oltre a questo viene descritto come dovrebbero essere
programmati gli algoritmi per tenere comportamenti etici, ma anche che etica dovrebbero seguire i
programmatori al fine di non creare algoritmi pericolosi per gli esseri viventi. Alla fine vengono analizzate le
posizioni degli esperti in merito a quale sia il futuro dell’intelligenza artificiale, sia in ambito lavorativo che
in un ambito più generale.
Nell’ultima parte viene descritto un algoritmo di Intelligenza Artificiale che è in grado di prendere in input 2
immagini, una di contenuto e una di stile, e dare come output il contenuto della prima immagine con lo stile
della seconda.

 3
INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE
1. INTELLIGENZA ARTIFICIALE
1.1 Storia, Turing e i primi sviluppi:
L’Intelligenza Artificiale ha un enorme legame con lo sviluppo dei computer, che iniziarono a diffondersi
negli anni 40’ con i lavori di McColloch e Pitts. Nel 1943 elaborarono dei modelli matematici formati da
neuroni sulla base dell’analisi dei neuroni biologici originali. Questi lavori riuscirono a spiegare
approssimativamente l’accensione e lo spegnimento dei neuroni, operando in un sistema binario, e
dimostrando che gli stessi possono apprendere e di conseguenza possono modificare le loro azioni nel tempo.
Negli anni 50’ Alan Turing1 si chiese se una macchina potesse pensare ed elaborò un test, famoso con il nome
di “Test di Turing”, intuendo che per assegnare un livello di intelligenza ad un altro essere umano siamo soliti
rivolgergli delle domande, quindi dovremmo fare lo stesso con le macchine. Questo metodo fu accettato perché
non prevedeva di definire tutte le caratteristiche di intelligenza ma testava il grado di indistinguibilità di una
macchina da un essere umano in una conversazione con un altro essere umano. Il test di Turing originale
prevedeva un interrogatore con una tastiera e un monitor diviso in due parti per mostrare le diverse risposte
del computer e dell’altro essere umano. Venivano previsti 5 minuti per discutere di qualsiasi argomento deciso
dall’interrogatore e alla scadenza si doveva decidere quale delle due chat era stata eseguita con una macchina.
Se il computer fosse riuscito ad ingannare il 30% degli interrogatori medi2, facendosi votare come essere
umano, allora avrebbe superato il test. Il test non è impeccabile perché se fosse svolto da due persone di diversa
intelligenza, una delle due persone esaminate potrebbe ottenere meno del 30% dei voti e quindi fallire il test.
Il test certifica solo il fatto che la macchina possa o meno simulare il pensiero umano e non affronta la
questione della consapevolezza di sé del computer. Turing quando elaborò il test previse che in circa 50 anni,
quindi approssimativamente negli anni 2000, qualche macchina avrebbe superato il test. Ad oggi ancora
nessuna macchina ha superato il test. Negli ultimi anni sono state riportate notizie del superamento del test ma
analizzando il modo in cui era stato svolto il test e le premesse si è notato un tentativo di porre delle restrizioni
alla giuria, andando quindi ad infrangere la regola della totale libertà di giudizio. Un esempio di questo falso
superamento è il chatbot Eugene Goostman che nel 2014 ottenne il 33% dei voti, ma essendosi presentato
come un tredicenne ucraino che non parlava frequentemente l’inglese ha, probabilmente, indotto alcuni
valutatori a giudicare alcune sue risposte in maniera meno critica date le sue difficoltà linguistiche e questo
potrebbe aver compromesso la loro valutazione, spiegandone il superamento del test di Turing. Ogni anno
viene assegnato il premio Loebner, finanziato da Hugh Loebner, il quale si propone di riconoscere la migliore
macchina da conversazione. In questa competizione ci sono alcuni aspetti diversi dal test di Turing originale
perché si ha una conversazione di 25 minuti e non è consentito l’accesso alla rete, andando quindi a sfavorire
la macchina. Nelle edizioni passate l’andamento delle prestazioni dei computer non è stata crescente ma è stata
costituita da alti e bassi. Tuttavia i motivi di questa discontinuità non sono chiari e alcuni ritengono che i

1
 Articolo “Computing machinery and intelligence” apparso sulla rivista Mind
2
 Ad oggi ancora si discute su chi possa essere considerato un interrogatore medio, anche se molti test vengono fatti da esperti
del settore e questo sfavorisce la riuscita del test da parte della macchina

 4
INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE
motivi possano essere dovuti ad un aumento delle aspettative degli esaminatori, che quindi diventano sempre
più esigenti nelle loro valutazioni.
Nel 1956 Herb Simon e Allen Newell riuscirono a costruire la prima macchina pensante in grado di risolvere
autonomamente alcuni problemi matematici basilari. Quest’anno fu molto importante anche perché John
McMarty coniò per la prima volta il termine “Artificial Intelligence” in una conferenza a Dartmouth per
descrivere macchine in grado di ragionare e compiere operazioni che necessitano di intelligenza umana. Decise
quest’espressione anche per distinguere il suo lavoro da quello dei colleghi che stavano lavorando nel campo
della cibernetica. L’obbiettivo della conferenza era quello di espandere l’utilizzo dei computer oltre la mera
elaborazione di dati. Da qui si iniziò a diffondere il termine “Intelligenza Artificiale”. Il 1956 fu quindi un
anno importante, ma già da tempo gli essere umani pensavano a sistemi in grado di emulare il comportamento
umano, infatti nel 1700 il Barone Von Kempelen realizzò il giocatore di scacchi per impressionare
l’imperatrice Maria Teresa. Questo giocatore era posizionato di fronte ad una scacchiera e venne presentato
come una vera macchina intelligente in grado di giocare in modo autonomo, ma quello che gli spettatori non
sapevano era che all’interno della macchina si nascondeva uno scacchista che svolgeva tutto il lavoro, e che
quindi era tutto un inganno.
In questi anni ci fu un ottimismo crescente e iniziarono i primi dibattiti sulla possibilità dell’Intelligenza
Artificiale di eguagliare l’intelligenza umana. Molti ritenevano che l’Intelligenza Artificiale potesse imitare e
ricreare perfettamente il funzionamento del cervello umano e questo portò notevoli fondi ed interesse da parte
del grande pubblico. Alcuni informatici come Stephen Cook e Richard Karp identificarono classi
computazionali che avrebbero dovuto funzionare in linea torica, ma intuirono che avrebbero avuto bisogno di
enormi quantità di tempo di elaborazione e di memoria per portarli a compimento. Nel 1966 Joseph
Weisenbaum programmò ELIZA che è considerato il primo esemplare di chatbot 3. ELIZA era in grado di
fornire risposte prestabilite a seconda di ciò che le veniva chiesto. Anche se agiva in modo limitato, riuscì
comunque a farsi credere uno psicologo da diverse persone.
Purtroppo negli anni 70’ non si arrivò ai risultati desiderati e questo portò a una brusca interruzione della
ricerca dovuta a un interesse sempre minore e alla conseguente diminuzione dei fondi per lo sviluppo della
stessa. La difficoltà maggiori furono determinate dai limiti della potenza di calcolo e dalle limitate capacità
dei computer, nonché dai pochi dati disponibili in quel periodo. Ci si rese conto che l’ottimismo era stato
eccessivo e che per un computer l’elaborazione di una semplice immagine richiedeva molte informazioni.
L’interesse dei filosofi portò a una riconsiderazione sul fatto che una macchina potesse davvero pensare. John
Searle espose il problema della stanza cinese4 a dimostrazione del fatto che non si può considerare una
macchina come pensante perché essa non comprende i simboli che comunica. Searle arrivò alla conclusione
che se il test fosse fatto da una persona che non comprende il cinese ma che possiede delle istruzioni come
quelle del computer si arriverebbe allo stesso output ma non si potrebbe dire che la persona ha compreso ciò

3
 I chatbot sono software che simulano una conversazione tra essere umani
4
 La stanza cinese è un test che consiste nel far acquisire ad un computer caratteri cinesi come input in modo da produrre come
output altri caratteri cinesi date alcuni istruzioni di un programma

 5
INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE
che ha scritto e per questo neanche il computer può comprenderlo. La conclusione a cui giunge Searle è che
l’esecuzione di un programma per computer non genera comprensione e quindi non può essere considerato
intelligente. I computer non hanno comportamenti intelligenti ma simulano solamente dei comportamenti
intelligenti. In questi anni vengono comunque studiate diverse tipologie di rappresentazioni di problemi e di
soluzioni che permettono di ottenere programmi migliori al fine di raggiungere le prestazioni degli essere
umani.
Negli anni 80’ si assistette ad una rinascita dell’interesse per l’Intelligenza Artificiale e questo fu dovuto a uno
sviluppo più pratico che teorico, in modo tale da affrontare i problemi tramite sistemi esperti in determinati
settori. Le discussioni filosofiche continuarono ma in maniera indipendente rispetto ai progressi pratici. Infine
ci fu uno sviluppo della robotica che influenzò l’Intelligenza Artificiale in modo tale da creare un’intelligenza
reale in grado di percepire il mondo circostante, tramite il processo dell’emboiment 5. Il crescente entusiasmo
ritrovato portò a numerosi applicazioni in diverse aree industriali che contribuirono al miglioramento della
stessa. In diversi ambiti l’Intelligenza Artificiale riuscì a superare l’uomo. Grazie alle ricerche di Geoffrey
Hinton e Yann LeCun è stato ripreso e intensificato lo studio delle reti neurali. L’11 maggio 1997 Deep Blue,
progettata da IMB, riuscì a battere Garry Kasparov in una competizione di scacchi. Questi tipi di intelligenza
non furono basati tecnologie recenti ma furono dovute alla potenza computazionale disponibile, infatti, Deep
Blue era 10 milioni di volte più veloce del computer di Ferranti progettato nel 1951.
Il progresso tecnologico è descritto dalla legge di Moore, ideata da Gordon Moore, secondo la quale la velocità
e la capacità di memoria dei computer raddoppiano ogni 18 mesi. Quando Moore propose la sua teoria si basò
su pochi dati, ma le sue previsioni furono piuttosto adeguate. Si basò sull’aumento del numero dei transistor6
introducibili in un circuito. Ad oggi assistiamo ancora a questo fenomeno che permette un incremento
esponenziale delle capacità di calcolo dei computer. La collaborazione dei gruppi ha permesso un notevole
sviluppo perché scoperta la soluzione ad un problema, questa va a beneficio anche degli altri gruppi. La legge
di Moore può essere anche considerata come una profezia che si autorealizza perché se smettessimo di cercare
di migliorare i circuiti attuali il miglioramento non ci sarebbe, quindi è necessaria la volontà di migliorare le
tecnologie esistenti e non pensare di aver raggiunto il limite. Lo svantaggio di questa legge deriva da un limite
fisco perché non si potranno ridurre i transistor all’infinito.
Alpha Go, progettata da Google7, nel 2016 riuscì a sfidare e a battere il campione cinese di Go 8, Lee Sedol.
Questa tecnologia riuscì ad apprendere il gioco giocando contro sé stessa e migliorando partita dopo partita.
Negli ultimi anni è emerso il metodo degli agenti intelligenti, che consiste nell’imitazione di un cervello
tramite l’unione di diversi agenti intelligenti specializzati per singoli problemi. Questo approccio ha portato a
notevoli sviluppi come il data mining e il riconoscimento vocale. L’avvento del wireless è stato fondamentale
per l’evoluzione di computer perché senza questa tecnologia i computer vengono considerati come singoli,

5
 L’embodiment è un processo mediante il quale si dota una rete neurale artificiale di un corpo fisico per permettergli di
interagire con gli oggetti circostanti
6
 I transistor potevano essere utilizzati come componete economica e affidabile per i calcoli dei computer
7
 Progettata in seguito all’acquisizione della startup DeepMind per migliorare i servizi di ricerca delle immagini
8
 Il Go è un gioco, originario della Cina per due giocatori, bianco e nero, caratterizzato da regole molto semplici che danno origine
ad una strategia sorprendentemente complessa

 6
INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE
mentre con una rete globale che li collega possono essere considerati come uno solo grande cervello con
amplia distribuzione e con un’ampia connettività. Questo è un enorme vantaggio per l’Intelligenza Artificiale
rispetto all’intelligenza umana, perché permette un’integrazione della conoscenza.
L’andamento storico della ricerca nell’ambito dell’Intelligenza Artificiale ha avuto un andamento ondulatorio
con periodi di grande ottimismo e ingenti finanziamenti, e periodi meno floridi nei quali non si riuscirono ad
essere all’altezza dei risultati attesi facendo perdere parte dell’interesse per l’argomento e molti dei
finanziamenti con la conseguenza di una crescita più lenta e difficile.

1.2 Intelligenza: cos’è, è possibile definirla?
Per comprendere l’Intelligenza Artificiale bisogna partire dalla comprensione di che cosa sia l’intelligenza.
Nel considerare una qualsiasi definizione di intelligenza bisogna considerare la natura soggettiva della
definizione stessa. Ognuno ha una concezione personale di intelligenza dovuta a fattori come le credenze, le
esperienze e i valori, che sono mutevoli nel tempo, e sono influenzati dalla cultura.
Alla fine del 18° secolo Franz Joseph Gall elaborò la disciplina della frenologia, secondo la quale le differenze
volumetriche dei crani determinerebbero le funzioni psichiche degli essere umani. Questi studi furono smentiti
successivamente constatando che le dimensioni e la forma del cranio non forniscono informazioni riguardo
all’intelligenza di un individuo. Nel 1904 Alfred Binet elaborò un test d’intelligenza per determinare il
quoziente intellettivo (QI) degli essere umani. Nell’elaborazione del test prese in considerazione elementi
come la memoria, la comprensione, l’attenzione. Per quanto diffusi questi test, sono molto criticati perché si
focalizzano solo su determinate capacità e quindi non sull’intelligenza in sé. Secondo Howard Gardner ogni
persona è dotata di diversi tipi di intelligenza e quindi non sarebbe corretto dare un’unica definizione di
intelligenza.
Un’altra questione che riguarda l’intelligenza è la sua origine. Gli studiosi si chiedono se l’intelligenza sia
innata o se sia qualcosa che tutti possono apprendere dall’esperienza e dall’educazione. Non c’è una risposta
univoca, ed entrambi i fattori devono essere presi in considerazione. Per cercare di rispondere a questa
domanda gli studiosi si sono concentrati sui gemelli omozigoti, data la loro particolare struttura genetica. Nel
1966 Cyril Burt studiò 53 coppie di gemelli omozigoti separati alla nascita e constatò che l’educazione aveva
un peso molto maggiore nella determinazione dell’intelligenza, tuttavia fu criticato per la validità dei gemelli
presi in esame. Nel 1976 John Loehlin prese in esame 850 gemelli e constatò che l’intelligenza è
prevalentemente determinata dal patrimonio ereditario, anche se considerò coppie di gemelli cresciuti in
contesti simili.
Quando si cerca di definire l’intelligenza e come si sviluppa è necessario tenere in considerazione una
moltitudine di fattori interni ed esterni ed è estremamente difficile considerarli tutti. È quindi molto importante
considerare che ogni individuo considera un atto intelligente in base ai processi del suo pensiero e alle
competenze alle quali lui attribuisce un valore. Quindi il concetto di intelligenza non ha significato se è estratto
dal contesto sociale di riferimento.

 7
INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE
Tendendone presenti i limiti, possiamo considerare la definizione di intelligenza della Treccani 9, che la
definisce:

 “Complesso di facoltà psichiche e mentali che consentono all’uomo di pensare, comprendere o
 spiegare i fatti o le azioni, elaborare modelli astratti della realtà, intendere e farsi intendere dagli
 altri, giudicare, e lo rendono insieme capace di adattarsi a situazioni nuove e di modificare la
 situazione stessa quando questa presenta ostacoli all’adattamento; propria dell’uomo, in cui si
 sviluppa gradualmente a partire dall’infanzia e in cui è accompagnata dalla consapevolezza e
 dall’autoconsapevolezza, è riconosciuta anche, entro certi limiti agli animali, specialmente
 mammiferi”

Questa definizione è incentrata sull’uomo ma riconosce anche agli animali un certo grado di intelligenza. Per
quanto riguarda l’intelligenza degli animali può essere molto difficile considerare intelligenti determinate
capacità perché per noi sono prive di significato. Considerando il contesto generale nel quale agiscono gli
essere umani e gli animali si potrebbe definire intelligente la capacità di raggiungere determinati obiettivi. Gli
obiettivi primari potrebbero essere legati alla sopravvivenza della specie, ma andrebbero comunque
considerati obiettivi più immediati legati al piacere. Quando consideriamo l’intelligenza delle macchine
dobbiamo domandarci se per definirle intelligenti dobbiamo considerare il raggiungimento degli stessi
obiettivi posti per gli esseri viventi. Per le macchine un obiettivo che noi consideriamo primario potrebbe non
essere un obiettivo primario.
Date le difficoltà nella comprensione di cosa sia l’intelligenza negli esseri viventi, definire l’Intelligenza
Artificiale risulta molto difficile e controverso. Rapportando l’Intelligenza Artificiale all’intelligenza umana
ci si deve chiedere se sia importante il risultato o la comprensione del procedimento per arrivare a quel
risultato. Se si considerasse solamente il risultato finale non si porrebbe importanza al modo con il quale si
arriva allo stesso. Considerando un testo si potrebbe giungere alla formulazione di un discorso di senso
compiuto prendendo casualmente dei tasti e ciò è completamente differente dall’elaborazione dello stesso
seguendo un ragionamento logico e comprendendolo. Nella valutazione dell’operato degli essere umani diamo
per scontato che dietro ad un risultato ci siano determinate abilità logiche e di comprensione, ma il modo in
cui si raggiunge un risultato diventa rilevante se lo scopo è testare l’intelligenza di una macchina perché non
possiamo presupporre che utilizzino le nostre stesse abilità. Utilizzare le capacità umane come confronto è
molto limitante, anche perché numerosi compiti svolti dalla macchine sono impossibili da replicare per gli
esseri umani.
Bisogna quindi partire dal presupposto che ad oggi il cervello umano e i computer non possono funzionare
allo stesso modo perché abbiamo una comprensione troppo limitata del funzionamento del cervello per
replicarlo. La misurazione dell’Intelligenza Artificiale, quindi, non deve essere vincolata all’intelligenza
umana soprattutto se si tratta di affrontare problemi ripetitivi in maniera veloce. Bensì si potrebbe considerare

9
 https://treccani.it/vocabolario/intelligenza/

 8
INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE
una macchina come intelligente se fosse capace di acquisire determinate abilità a svolgere dei compiti senza
però ricevere delle istruzioni precise.
Considerando il problema dal punto di vista degli errori possiamo notare come l’essere umano sbagli
frequentemente ma possieda anche l’abilità di imparare dai suoi errori. Questo può essere considerato la base
del comportamento intelligente. Se invece è il computer a fare un errore e quest’errore è dovuto ad un errore
di programmazione, il computer non riuscirà ad imparare dall’errore e non riuscirà a superare il problema,
pertanto, non potrà essere considerato intelligente. Molti campi, che ritenevamo eseguibili solamente
dall’intelligenza umana, stanno iniziando ad essere svolti con successo anche dall’Intelligenza Artificiale.
Essendo campi molto specifici si tende a non considerare queste applicazioni come intelligenti perché
svolgono solo quell’attività. A fronte di questo, però, la tecnologia ha la tendenza all’unificazione di tecnologie
diverse. Ma perché dovremmo considerare le macchine come intelligenti se intese come insieme mentre se
prese singolarmente no? È importante riconoscere specifici aspetti dell’Intelligenza Artificiale anche presi
singolarmente perché sarebbe sbagliato considerare un Intelligenza Artificiale programmata per uno scopo
preciso non intelligente solamente perché non è in grado di svolgere compiti tipici dell’intelligenza umana. Ci
sono una moltitudine di input intorno a noi che non riusciamo a cogliere, come i raggi infrarossi o gli
ultrasuoni, solamente perché i nostri sensi sono limitati e se venissimo valutati solo sulla base di non poterli
rilevare, allora non dovremmo essere considerati esseri intelligenti. L’Intelligenza Artificiale, come
l’intelligenza umana, non ha una definizione univoca e il modo in cui la valutiamo è soggetto a diverse
limitazioni dovute all’ambiente nella quale la si valuta e al confronto che facciamo con determinate
caratteristiche.

1.3 Le basi dell’Intelligenza Artificiale:
Nonostante tutte le limitazioni di una definizione, può essere utile dare una definizione di Intelligenza
Artificiale per comprendere meglio l’ambito di applicazione della stessa e i componenti necessari per il suo
sviluppo. La Treccani10 definisce l’Intelligenza Artificiale come:

 “La disciplina che studia se e in che modo si possano riprodurre i processi mentali più complessi
 mediante l'uso di un computer. Tale ricerca si sviluppa secondo due percorsi complementari: da
 un lato l'Intelligenza Artificiale cerca di avvicinare il funzionamento dei computer alle capacità
 dell'intelligenza umana, dall'altro usa le simulazioni informatiche per fare ipotesi sui meccanismi
 utilizzati dalla mente umana.”

In questa definizione si evince quanto siano fondamentali i computer come mezzo per l’applicazione
dell’Intelligenza Artificiale. I computer sono macchine elettroniche e digitali perché hanno una tecnologia che
sfrutta il movimento degli elettroni, di materiali come il silicio, cioè di materiali conduttori di elettricità, e
utilizzano i bit per rappresentare l’informazione. La tendenza dei computer a diventare sempre più potenti in
termini di memoria e di velocità di elaborazione sono dovuti alla creazione di tecnologie sempre più
miniaturizzate che permettono di inserire maggiori componenti dentro lo stesso. Il computer è composto anche

10
 https://www.treccani.it/enciclopedia/intelligenza-artificiale

 9
INTELLIGENZA ARTIFICIALE: il futuro è già presente RELATORE
da un hardware che al suo interno contiene dei componenti che si attivano miliardi di volte in un secondo a
seconda dell’algoritmo inserito nel programma scritto in un linguaggio informatico, ad esempio C e C++, e
poi convertito in bit. Gli elementi all’interno del computer sono organizzati secondo l’architettura elaborata
dal John Von Neumann che permette di avere un sistema coerente ed efficace. Le funzioni dell’architettura
sono le unità di controllo (CPU), la memoria interna (RAM), e i dispositivi di ingresso e di uscita (IO).
La disciplina dell’Intelligenza Artificiale richiede una vasta gamma di competenze e può essere vista come
una materia multidisciplinare perché è stata, e continua ad essere influenzata da molte discipline diverse, che
la rendono affascinante complessa tramite l’apporto di nuove idee e tecniche.
La filosofia ha posto molte questioni interessanti che sono ancora attuali nelle discussioni riguardanti
l’Intelligenza Artificiale. Già nel IV secolo a.C. Aristotele tentò di formulare un insieme preciso di leggi
rappresentative della mente razionale umana, e non fu l’unico. Molti secoli dopo, Hobbes ipotizzò che il
ragionamento avesse delle affinità con il calcolo numerico. Ci furono anche persone come Leonardo da Vinci,
che nel 1500 progettò un calcolatore meccanico11, e Leibnitz che costruì un calcolatore per eseguire operazioni
su concetti, anche se era un prototipo molto limitato. Si instaurò, quindi, il presupposto che alla base della
parte formale e razionale della mente ci fosse un insieme di regole che possano descriverlo. Nel periodi
successivi si instaurarono idee come il dualismo della mente e, in contrapposizione a questo, il materialismo.
Con l’empirismo si cercò la fonte della conoscenza. Carnap elaborò la teoria del positivismo logico, secondo
la quale tutta la conoscenza può essere espressa dalle percezioni sensoriali, e quindi da enunciati osservabili.
Lo stesso Carnap, con l’aiuto di Hempel elaborò la teoria della conferma per spiegare come si acquisisce
conoscenza dall’esperienza. La filosofia infine pone la questione del collegamento tra la conoscenza e l’azione
che è fondamentale nell’applicazione dell’Intelligenza Artificiale.
La filosofia è alla base dei concetti riguardanti l’Intelligenza Artificiale, ma la matematica ha dato una
formalizzazione in termini di logica, computazione e probabilità. Boole, nel 19° secolo, ha elaborato i principi
della logica booleana e in seguito Frege la integrò agli oggetti, andando a creare la logica di primo ordine che
oggi permette di rappresentare la conoscenza. Quando si considera il primo algoritmo non banale si fa
rifermento a quello di Euclide per calcolare il massimo comun denominatore. Nel 1900 Hilbert stilò una lista
di 23 problemi, ancora attuali, tra cui il problema della concreta possibilità di scrivere un algoritmo per
decretare il grado di verità di qualsiasi proporzione logica dei numeri naturali, cioè l’Entscheidungsproblem.
Nel 1930 Gödel elaborò l’esistenza di una procedura per dimostrare ogni proporzione vera nella logica di
primo ordine, ma che questa non poteva esprimere il principio di induzione matematica necessario per definire
i numeri naturali. Quindi propose il teorema di incompletezza nel quale stabilisce che in ogni linguaggio in
grado di descrivere le proprietà dei numeri naturali esistono delle proposizioni vere indecidibili, e quindi
esistono numeri incomputabili. Turing partì da questo presupposto per definire quali sono le funzioni
computabili. Si ha l’intrattabilità di un problema quando il tempo di risoluzione cresce esponenzialmente con
le dimensioni dell’istanza. Nel 1971 Cook e Karp proposero la teoria della NP-completezza per riconoscere
quando un problema è intrattabile. Sono riusciti a dimostrare che le classi di problemi che rientrano nella

11
 Leonardo da Vinci non riuscì a costruire il suo progetto, ma recentemente è stato costruito e si è dimostrato corretto

 10
categoria dei problemi NP-completi sono probabilmente intrattabili anche aumentando le capacità
computazionali. Infine, nella matematica, il contributo della probabilità è stato fondamentale. Il primo a
formulare i termini di possibili risultati fu Cardano. Bayes propose una regola per aggiornare i valori di
probabilità in base ai dati raccolti di volta in volta in modo da porre le basi per il ragionamento in condizioni
di incertezza.
L’economia, iniziata ad essere considerata una vera scienza grazie al contributo di Adam Smith, pose le sue
basi su sistemi economici considerati come agenti tesi a massimizzare il proprio benessere economico. Quindi
l’economia dovrebbe portare le persone a prendere decisioni razionali in modo da massimizzare la propria
utilità portando a risultati graditi. Fu elaborata la teoria delle decisioni, fondendo i concetti di probabilità e
computazione, in modo da aiutare nelle decisioni incerte. Importante fu la teoria dei giochi, nella quale le
azioni di un giocatore possono influenzare l’utilità degli altri giocatori, e quindi si devono considerare scelte
esterne per massimizzare la propria utilità. Nel 1957 Bellman formulò una classe di problemi basati sulle
decisioni, detti processi decisionali di Markov. L’economia è stata molto utile nella definizione dell’agente
intelligente e nella complessità dell’attività di prendere decisioni razionali quando si hanno termini di
incertezza. Simon vinse il premio Nobel per l’economia per i modelli economici basati sulla soddisfazione che
non prevedevano una decisione sempre ottimale, ma che erano più rappresentativi della realtà.
Le neuroscienze sono una disciplina fondamentale per l’Intelligenza Artificiale dato che quest’ultima si è
iniziata a sviluppare cercando di replicare il funzionamento del cervello umano. Il cervello fu inteso come sede
della coscienza solo nel 18° secolo. Nel 1861 Boca, con gli studi sulle afasie, dimostrò l’esistenza di aree
specifiche del cervello responsabili di precise funzioni cognitive. Orami l’idea che il cervello fosse formato
da neuroni era stata accettata e nel 1873 Gori sviluppò una tecnica per permettere di visualizzare i singoli
neuroni. Ad oggi ancora non siamo riusciti a comprendere il meccanismo che permette a determinate aree di
prendere il controllo di determinate funzioni in caso di danni alle aree che solitamente svolgono quel compito.
In questo campo sono fondamentali tecnologie innovative come l’elettroencefalografo (EEG) e la risonanza
magnetica funzionale (fMRI) che permettono di avere immagini dell’attività celebrare in un determinato
momento. Non siamo comunque vicini a comprendere come si sviluppi un processo cognitivo. Ad oggi ci sono
chip di computer che riescono ad essere molto più rapidi dei neuroni ma non riescono, a differenza dei neuroni,
ad essere attivati simultaneamente.
Le origini della psicologia risalgono a quando Hermann von Helmholtz applicò il metodo scientifico alla
visione umana. Nel 1879 Wundt fece i primi esperimenti controllati nei quali si dovevano seguire determinati
attività percettive mentre le persone ispezionate si concentravano sui processi mentali. Watson, con il
movimento behaviorista, rifiutò queste teorie sostenendo che i dati introspettivi non erano affidabili. James
diede un importante contributo sviluppando la visione del cervello tramite la psicologia cognitiva. Secondo
Craik i requisiti fondamentali per un agente che si basa sulla coscienza sono che lo stimolo deve avere una
rappresentazione interna, la quale deve essere manipolata da determinati processi cognitivi in modo da ottenere
rappresentazioni interne, che, infine, devono essere trasformate in azioni. I modelli computazionali si sono
basati sulla scienza cognitiva. Secondo Anderson una teoria cognitiva può essere considerata al pari di un

 11
programma per computer visto che entrambe devono descrivere in modo dettagliato un meccanismo di
elaborazione dell’informazione.
L’ingegneria informatica è fondamentale nel fornire gli artefatti, cioè i computer, che permettono lo sviluppo
dell’Intelligenza Artificiale. Il modello di computer elettronico digitale si diffuse durante la Seconda guerra
mondiale in maniera indipendente grazie a Turing, Zuse e Atanasoff. Da allora la potenza computazionale è
cresciuta enormemente. I software sono stati anch’essi fondamentali per lo sviluppo dell’Intelligenza
Artificiale. Lo sviluppo della stessa ha però portato a notevoli sviluppi anche in altre aree dell’informatica
generale tra cui la gestione automatica della memoria.
La cibernetica ha esempi molto lontani nel tempo, perché già nel 250 a.C. Ctesibio di Alessandria inventò un
orologio ad acqua con un regolatore che manteneva il flusso d’acqua costante in maniera autonoma. Nel 18°
secolo Warr elaborò i primi sistemi di regolazione dei motori a vapore. Winer elaborò la teoria del controllo
in contrapposizione alla teoria behaviorista. La moderna teoria del controllo ha lo scopo della massimizzazione
della funzione obiettivo. L’Intelligenza Artificiale è nata cercando di superare i limiti matematici tipici della
teoria del controllo.
La linguistica è nata negli stessi anni dell’Intelligenza Artificiale ed entrambe si sono influenzate. Chomsky
dimostrò che la teoria behaviorista non considerava la creatività del linguaggio e riuscì a creare una teoria
abbastanza solida da poter essere programmata. La complessità della linguistica inizialmente era sottovalutata
data la difficoltà della comprensione stessa del linguaggio. Questa disciplina ha permesso la nascita e lo
sviluppo della linguistica computazionale.
Compresi gli elementi e le discipline che stanno alla base dell’Intelligenza Artificiale si possono fare delle
distinzione riguardanti la stessa e il modo nel viene concepita. Si può dividere l’Intelligenza Artificiale in due
grandi categorie.
Si parla di Intelligenza Artificiale debole quando si hanno macchine che cercano di emulare azioni tipicamente
intelligenti e ripetitive con una base logica abbastanza semplice. È il tipico approccio utilizzato per il problem
solving tramite l’elaborazione di diverse soluzioni, a partire da una base di dati, e si definisce la soluzione più
razionale in base alle regole impartite dal programma. Questo tipo di macchine non possono apprendere
autonomamente e quindi non riescono ad auto-migliorarsi ed è necessario il costante monitoraggio umano.
Viene anche definita l’intelligenza del “come se” perché agisce come se pensasse ma senza capacità di capire
ciò che fa, con lo scopo di semplificare e velocizzare processi che se fossero svolti dagli essere umani sarebbe
difficile realizzare con la stessa efficienza dato che l’Intelligenza Artificiale debole consente di verificare le
ipotesi in maniera estremamente precisa.
In contrapposizione all’Intelligenza Artificiale debole si ha l’Intelligenza Artificiale forte. Questo tipo di
Intelligenza Artificiale non si limita alla mera emulazione delle azioni umani ma ha l’obiettivo di compiere
azioni in modo tale da apprendere da sola nuove informazioni e migliorarsi. L’intervento dell’uomo è iniziale
e fornisce alcune regole e procedure alla macchina che poi continua l’applicazione in maniera autonoma.
Questo tipo di intelligenza riesce quindi a comprendere le azioni che svolge e quindi non è uno mero strumento
da utilizzare. Ha l’obiettivo di riprodurre e apprendere le competenze degli esperti di determinati settori in

 12
modo tale da fornire risposte immediate a determinati problemi. Ad oggi però l’Intelligenza Artificiale forte è
difficilmente applicabile12.

1.4 Paradigmi dell’Intelligenza Artificiale:
Al fine del funzionamento dell’Intelligenza Artificiale è determinate la scelta dell’algoritmo che sta alla base
della stessa. È sempre necessario un algoritmo per far funzionare i dati che vengono inseriti nel programma.
Un algoritmo richiede sempre una serie di passaggi per risolvere un problema che viene scomposto in calcoli
elementari. Bisogna porsi delle domande prima di iniziare. Si deve comprendere cosa si vuole creare, le
motivazioni alla base, il come si deve fare, l’arco temporale e quali sono i costi stimati. Si può quindi optare
per una soluzione con un livello di utilità non massimo se questo permette una maggiore fattibilità del progetto.
Stabilire preliminarmente linee guida per la risoluzione di problemi si può rilevare molto utile in modo da
sapere a priori dove ci si sta dirigendo. L’informatica permette di risolvere problemi con il computer date
regole e risorse necessarie ad operare. Risolvere un problema significa, dati degli input, arrivare ad un output
soddisfacendo un criterio di verifica. È molto opportuno comprendere ciò che si vuole realizzare e questo lo
si può fare solo definendo nel dettaglio il problema da risolvere. Durante lo svolgimento del processo è
comunque necessaria una supervisione attiva perché il sopraggiungimento di dati non previsti potrebbe
interferire con il raggiungimento dell’output.
La figura 1 mostra, in forma schematica, i passaggi necessari per la risoluzione del problema. Questo schema
non deve essere applicato in maniera rigorosa ma deve essere adattato al caso specifico.

 Figura 1 - Sequenza di operazioni per realizzare un algoritmo basato sull’Intelligenza Artificiale.
 Fonte: libro Algoritmi per l'Intelligenza Artificiale di Roberto Marmo

12
 https://www.intelligenzaartificiale.it/intelligenza-artificiale-forte-e-debole/

 13
La definizione del problema è quindi il primo passo fondamentale da fare e deve essere svolto dall’uomo che
avrà poi il supporto dell’Intelligenza Artificiale. Questa fase prevede l’individuazione dei dati in ingresso, la
scelta degli obiettivi da raggiungere e la relazione esistente tra i dati e i risultati. Bisogna sempre verificare se
il problema è ben definito perché un’errata definizione comprometterebbe i risultati successivi. Se i passaggi
preliminari sono corretti si può passare alla scelta dei dati da inserire. I dati sono fondamentali ma è opportuno
inserire solo quelli necessari in modo tale da non sovraccaricare la macchina, e si devono considerare anche i
tempi e i costi che una raccolta di dati può richiedere. Successivamente si va a scegliere la tipologia di agente
che si intende utilizzare. Si può avere un approccio orientato alla ricerca, ottimale nel caso di applicazioni
matematiche, orientato all’apprendimento, ottimale nel caso dell’utilizzo di esperienze passate, orientato alla
pianificazione, ottimale con una sequenzialità delle operazioni, e orientato al ragionamento automatico. In
base all’approccio adottato si deve definire il paradigma, che deve essere dipendete dalla scelta precedente
perché ogni paradigma ha vantaggi e svantaggi che è consigliabile sfruttare a seconda del caso concreto. Il
primo paradigma tra cui scegliere è l’evolutionary algorithm che si basa su metodi euristici di ricerca e sul
principio di selezione naturale. Esiste poi, l’expert system che cerca di riprodurre le preazioni degli esperti in
un determinato campo di attività. Un altro paradigma utilizzabile è il fuzzy logic che è una funzione logica
che permette l’attribuzione di un grado di verità, espresso in percentuale, a ogni proposizione. Infine, un altro
paradigma che si può utilizzare è il macchine learning che permette di acquisire in maniera automatica nuove
conoscenze. Definito il paradigma più adatto al caso concreto si devono adattare gli input e gli output allo
stesso. Si può poi iniziare la programmazione tramite il linguaggio di programmazione cercando di ottimizzare
i parametri che regolano il funzionamento del programma al fine di ottenere il risultato migliore. Si procede
poi con l’applicazione concreta del programma per verificare la sua validità e nel caso si riscontrassero degli
errori si cerca di risolversi fino a quando l’esercizio non avrà successo. Man mano che si raccoglieranno altri
dati si continuerà a verificarli in modo da permettere all’Intelligenza Artificiale di apprendere e si ha quindi
un apprendimento continuo.
Come abbiamo visto in precedenza la definizione dell’agente è un passo fondamentale per la definizione di un
sistema, per questo motivo è importante comprendere i vari tipi e le caratteristiche. L’agente definisce
l’Intelligenza Artificiale che è inserita in un determinato ambiente, che viene percepito tramite sensori, ed è
dotata dell’autonomia necessaria per affrontarlo in maniera autonoma tramite attuatori. L’agente deve essere
considerato razionale, cioè deve riuscire a raggiungere gli scopi prefissati sulla base dei dati disponibili e deve
svolgere attività considerate complesse. Deve inoltre massimizzare il valore atteso. La razionalità perfetta è
difficilmente raggiungibile dati i limiti computazionali. Il compito dell’Intelligenza Artificiale è quello di
andare a creare il programma agente in modo tale da metterlo in relazione con le percezioni e le azioni. Nel
tempo sono stati sviluppati tipi di agenti diversi con caratteristiche e capacità via via più sviluppate e
complesse. Inizialmente venivano utilizzati agenti con riflessi semplici che era in grado di rispondere
solamente agli stimoli ricevuti senza però avere memoria degli stessi. Si è passati poi ad agenti con riflessi che
si basa, oltre alla percezione attuale, anche sulla precedente sequenza percettiva in modo tale da aggiornarsi
nel tempo permettendo all’agente di modificare il modello. Successivamente l’agente basato su obiettivi ha

 14
dato la possibilità di conseguire la pianificazione da svolgere in base alla combinazione dello stato interno e
dell’obiettivo prefissato ma considerando anche gli effetti di tale azioni in modo da garantire una certa
flessibilità. L’agente basato sull’utilità esprime il grado di soddisfazione per un determinato risultato andando
a selezionare il migliore e privilegiarlo. Infine si è arrivati all’agente che apprende in modo tale da migliorarsi
in maniera automatica. Quest’ultimo approccio è il più utilizzato data la difficoltà nella programmazione
manuale degli agenti.
Nell’Intelligenza Artificiale oltre agli agenti si posso avere i sistemi esperti, che a differenza degli agenti non
sono associati ad un ambiente, e cercano di emulare il comportamento di esperti umani, in determinati campi,
sulla base di un determinato numero di dati e regole in modo tale da formulare un’ipotesi e fornire una
soluzione razionale. I sistemi esperti cercano di emulare il comportamento del cervello umano in determinate
situazioni tramite l’applicazione di determinate regole, dettate dagli stessi esperti del settore in questione,
quando si introducono nuove informazioni. Uno dei primi sistemi esperti era chiamato MYCIN e consisteva
in un sistema medico di infezioni del sangue che conteneva oltre 450 regole dettate da medici esperti in base
alle valutazioni pratiche che utilizzano nella valutazione delle infezioni del sangue. Le regole seguono
l’espressione IF (condizione) THEN (conclusione), che premette di trarre una conclusione data una condizione
iniziale. Le condizioni possono coesistere tra loro e devono essere attivate tutte per arrivare ad una determinata
conclusione. Nel caso si verificassero dei conflitti tra le regole si deve stabilire, a priori, una risoluzione dei
conflitti e quindi devono essere stabilite delle priorità. Si possono applicare criteri differenti che possono essere
la regola della priorità più elevata, le condizioni a priorità più elevata, la prossimità temporale, la maggiore
specificità e la limitazione in base al contesto. Molti sistemi esperti prevedono la presenza di regole che
dipendono l’una dall’altra e quindi soddisfatta una condizione si riesce ad accedere alla regola successiva.
Questo comporta maggiore precisione ma anche maggiore complessità. I sistemi esperti possono lavorare con
una concatenazione in avanti, cioè, generate un determinato numero di regole, verranno innescati ulteriori
eventi che attiveranno determinate regole per raggiungere una conclusione definitiva. Con questo metodo si
cerca di scoprire il più possibile partendo da una determinata base di dati. Il metodo opposto a questo è la
concatenazione all’indietro, che consiste nel ricercare determinate regole per scoprire quali dati si sono
verificati per arrivare a quella determinata conclusione. Questo tipo è utile alla verifica del sistema conoscendo
a priori la conclusione alla quale giungere. I vantaggi dei sistemi esperti sono la facilità di programmazione e
le regole sono aggiornabili a seconda dei nuovi dati disponibili. Poi uno stesso sistema esperto potrebbe essere
usato in differenti campi a seconda dei dati disponibili. I sistemi esperti possono hanno un’elevata velocità di
risposta. Una volta che un sistema raggiunge determinate conclusioni si possono ricompensare le regole
aumentando le probabilità di essere selezionate successivamente. Esistono poi una serie di svantaggi. Può
essere abbastanza difficile raccogliere le regole necessarie perché è difficile per gli esperti descrivere in modo
semplificato i procedimenti che svolgono e ogni esperto potrebbe agire in modo diverso per arrivare alla
medesima conclusione, e non sempre è possibile fare una media dei risultati. Un ulteriore problema potrebbe
essere l’esplosione combinatoria che implicherebbe un sistema troppo grande che perderebbe la velocità di
esecuzione, dato che in linea teorica deve considerare tutte le regole che si potrebbero verificare. Anche il

 15
debug può risultare complicato perché le regole rischiano di invalidarsi a vicenda e senza raggiungere una
conclusione.
I sistemi esperti sono solo un tipo di Intelligenza Artificiale. I sistemi fuzzy non danno per scontato, come i
sistemi esperti, che una determinata condizione esista oppure no, e contemplano la possibilità che una
conclusione sia solo parzialmente vera in una determinata percentuale (%). Il primo passo da svolgere è la
fuzzificazione, che consiste nel pendere una dato e sfumarlo per poi inserirlo nel sistema. Si deve quindi avere
presente il rapporto esistente tra il valore reale e il valore fuzzy. Si procede poi all’applicazione delle regole
sul valore fino ad ottenere un valore fuzzy. Come per i sistemi esperti, possono coesistere più condizioni e più
regole contemporaneamente. Possono essere previsti diversi operatori booleani (AND, OR e NOT). Spesso si
ha il caso in cui si attivano più regole contemporaneamente ed ognuna determina un valore differente e questi
dovranno essere uniti per formare un’unica conclusione coerente con il mondo esterno. I metodi più utilizzati
sono la media, la media ponderata e il center of gravity13 (COG). La defuzzificazione consiste nel considerare
di meno una regola che non si è attivata recentemente. Per ottenere un sistema fuzzy ottimale è necessario
procedere per tentativi ed errori, imparando da essi. Questo sistema permette di seguire tutte le regole per
coprire tutte le eventualità previste dal sistema.
Il problem solving è un paradigma dell’Intelligenza Artificiale utilizzato per risolvere determinati problemi
umani in cui sappiamo dove vogliamo arrivare e il punto da cui partiamo e vogliamo capire il procedimento
da seguire. È utile perché può essere molto più veloce di un essere umano. Si possono avere diversi modi per
giungere alla soluzione migliore. Un primo approccio è la ricerca breadth-first nel quale si analizzano tutte le
soluzioni possibili, operando un confronto tra le stesse, in modo tale da scegliere la soluzione migliore adatta
al caso specifico. Il problema di quest’approccio è che quando le soluzioni sono tante si rischia di
sovraccaricare la macchina in termini di memoria e avere costi troppo elevati. Un altro approccio è la ricerca
depth-first nel quale si verifica un percorso completo dall’inizio alla fine e si compie un confronto immediato
con il percorso precedente in modo da scegliere subito il migliore dei due e in un successivo confronto andare
a confrontare il percorso migliore trovato con il nuovo percorso. Questo andrà a ottimizzare la memoria perché
una volta scartato un percorso questo sarà eliminato. Il problema di quest’approccio è che una scelta iniziale
non ottimale potrebbe compromettere il risultato finale e potrebbe passare molto tempo prima di avere una
soluzione. Poi si può utilizzare il metodo depth-limited nel quale si determina un limite di profondità in modo
da limitare la ricerca depth-first. In questo metodo si deve applicare del buon senso e una certa conoscenza del
problema. Infine si può utilizzare la ricerca bidirezionale che prevede di dividere la ricerca in due parti. La
prima parte è una ricerca normale dal punto di partenza fino alla fine, mentre la seconda parte prevede di
partire dalla fine e andare a ritroso. Questo metodo permette di risparmiare tempo nel trovare una soluzione
ma richiede una quantità significativa di memoria. È utile una conoscenza del problema a priori. Un problema
di questo tipo di ricerche è lo spreco di tempo dovuto alla revisione continua dei percorsi già toccati e la
conseguente capacità di memoria che produce costi maggiori. Confrontare i dati precedenti è necessario in

13
 Nel COG ogni valore percentuale si moltiplica per un coefficiente ad esso associato e le risposte sono addizionate e divise per il
valore di tutti i valori ponderati e sommati.

 16
Puoi anche leggere