4
INTRODUZIONE
Lo studio della mente umana e il tentativo di riprodurne il
funzionamento mediante calcolatori è stato l’obiettivo di molti
studiosi. La svolta avvenne circa cinquanta anni fa con l’introduzione,
in un seminario nel New Hampshire, del termine intelligenza
artificiale. Fu proprio il periodo di euforia tecnologica caratterizzata
dall’avvento del computer e, quindi, l’intelligenza artificiale sembrava
essere a portata di mano. Ma cosa si intende con tale termine?
L’intelligenza artificiale (IA) indica l’insieme di studi e tecniche volte
a riprodurre i processi mentali mediante l’uso di computers. Molti
sono stati gli studi condotti su essa e le teorie elaborate al punto da
creare due scuole di pensiero: l’intelligenza artificiale forte secondo la
quale una macchina correttamente programmata può essere dotata di
intelligenza pura e, l’intelligenza artificiale debole in base alla quale
un computer può simulare processi umani ma mai riprodurli
totalmente. Indipendentemente dalle varie critiche e differenti modi di
pensare, il principio condiviso da tutti era quello di elaborare
l’informazione sottostante i processi cerebrali tramite sistemi
informatici. Ciò ha portato alla nascita di strumenti noti anche come
pilastri dell’intelligenza artificiale ossia i sistemi esperti, la logica
fuzzy e le reti neurali ma anche gli algoritmi genetici che però non
sono trattati in questa tesi. I sistemi esperti, programmi che
ripropongono il comportamento dell’essere umano in uno specifico
dominio, hanno avuto vasta applicazione in vari settori come quello
medico, finanziario ecc proprio per la loro caratteristica di basarsi
sulla competenza umana registrata nella base di conoscenza. Ma a
prescindere da ciò, la svolta vera e propria si ha con l’introduzione
5
della logica fuzzy. Una logica che costituisce un nuovo modo di
pensare e vedere le cose, infatti con essa non viene più contemplata la
validità assoluta del principio del terzo escluso accettata, invece, da
studiosi come Aristotele e George Boole. Per cui si ha a che fare con
una realtà dove non esiste solo il bianco o nero ma una realtà
caratterizzata da sfumature. Ovviamente tale logica presenta vantaggi
e svantaggi. I principali vantaggi, come si vedrà nel capitolo apposito,
sono dovuti al fatto che è una logica facile da comprendere, permette
di utilizzare l’esperienza degli esseri umani, ma soprattutto riesce a
manipolare dati imprecisi e tutto ciò avviene senza complesse formule
matematiche ma solo con regole. Infatti, sono proprio le regole ad
essere il fulcro di questa logica in quanto dati determinati input
permettono di ottenere l’output. Quindi, oltre a costituire il fulcro
rappresentano un passaggio fondamentale per il funzionamento di
quello che verrà nominato come sistema fuzzy. Per dimostrare il
funzionamento di un sistema fuzzy si possono fare tanti esempi ma
uno sul quale la tesi è focalizzata riguarda il comportamento di un
imprenditore edile sulla valutazione della convenienza economica di
un progetto. Perché il mondo dell’edilizia? Nonostante la crisi che
attualmente sta investendo molti settori tra cui anche quello edile, esso
ricopre un ruolo importante nell’economia per cui è importante
effettuare un processo di programmazione e controllo della
produzione. In Italia la maggior parte delle imprese edili sono di
piccole-medie dimensioni e sono caratterizzate dalla presenza di vari
tipi di attori tra cui i professionisti che si occupano della progettazione
dell’opera. Indipendentemente dalle dimensioni dell’impresa va
sottolineato che la complessità a cui bisogna far fronte sta nel gestire i
lavori, le collaborazioni, gli approvvigionamenti e tutte quelle fasi che
6
implicano una serie di strategie e valutazioni. Una delle valutazioni
più importanti riguarda, appunto, la fattibilità di un progetto
denominato anche commessa. Nel momento in cui ci si trova di fronte
ad un ordine bisogna valutarne la fattibilità tecnica, la compatibilità
con i piani e i programmi di produzione e, la convenienza economica.
In merito a quest’ultimo aspetto è necessaria la determinazione dei
costi, ricavi e margini preventivi al fine di effettuare un controllo
antecedente che andrà a costituire il preventivo esecutivo. In particolar
modo il margine (in seguito denominato margine di contribuzione)
costituisce l’elemento chiave ai fini della valutazione in quanto, come
verrà visto nel proseguio del lavoro, un progetto viene ritenuto
altamente conveniente solo se porta a quel margine costituente l’utile
per l’impresa. Tutto questo verrà sperimentato con un software ossia il
Matlab nella sua versione 7.0. La scelta di ricorrere a questo software
non è da imputare al caso ma è dovuta alla sua capacità di integrare il
calcolo, la visualizzazione e la programmazione ed, inoltre, permette
di risolvere problemi con algoritmi molto più semplici di quelli
utilizzati da linguaggi di programmazione meno recenti quali il
fortran e il C. Date queste caratteristiche e la presenza del fuzzy logic
toolbox verrà costruito un sistema fuzzy che ruota attorno alle scelte di
un generico imprenditore edile proprio per dimostrare come stabilendo
determinati input, il comportamento dell’essere umano interpretato
dalla macchina permetterà di raggiungere un determinato risultato.
Nonostante la logica fuzzy rappresenta la tecnica centrale studiata in
questa tesi, la ricerca continua con la trattazione di un'altra tecnica
costituente l’altro pilastro dell’intelligenza artificiale ossia le reti
neurali. In questo caso si ha a che fare con un approccio diverso
dovuto all’obiettivo di voler studiare il cervello umano in modo da
7
riprodurne il funzionamento mediante computers. Infatti, le reti
neurali artificiali altro non sono che sistemi mediante i quali viene
riprodotto con strumenti informatici il funzionamento dei sistemi
nervosi biologici. Grazie alla loro capacità di apprendere
dall’esperienza riescono ad adattarsi anche a situazioni dove non
esistono formule matematiche. Infatti, l’apprendimento rappresenta
l’elemento chiave delle reti neurali in quanto indica il comportamento
assunto dalla rete a seguito dell’interazione con l’ambiente esterno da
cui si avranno determinati risultati. Come verrà esposto in seguito, a
seconda dei modi in cui il processo viene influenzato e le modalità di
interazione si possono avere diverse tipologie di apprendimento.
Particolare attenzione sarà data all’apprendimento delle reti neurali
costituite da strati nascosti il che implica un processo noto come
backpropagation da cui deriva l’algoritmo di back propagation, un
algoritmo molto efficace e potente ma comunque oggetto di molte
critiche. A prescindere dalle varie caratteristiche delle tecniche di
intelligenza artificiale presentate, la curiosità sta nella trattazione di
una tecnica particolare nata dalla mescolanza della logica fuzzy e reti
neurali ossia le reti neuro-fuzzy. L’idea di creare un sistema ibrido
scaturisce proprio dall’obiettivo di voler superare tutti quegli ostacoli
presentati dalle varie tecniche singolarmente come il fatto di non poter
acquisire conoscenza dai dati tipico della logica fuzzy e la non capacità
di rappresentare la conoscenza in un sistema di regole codificate tipico
delle reti neurali. Grazie a questa possibilità i sistemi neuro-fuzzy
trovano vasta applicazione nelle problematiche più disparate come il
riconoscimento di caratteri e immagini tele-rilevate, le previsioni
finanziarie, di marketing ecc. Per cui il presente lavoro è strutturato in
cinque capitoli. Nel primo si ha una breve rassegna dell’intelligenza
8
artificiale, dalle sue origini storiche alla sua evoluzione. Infatti il
paragrafo 1.2 presenta una trattazione di ciò che rappresenta
l’evoluzione dell’intelligenza artificiale ossia i sistemi esperti e ne
verranno analizzate le varie distinzioni nei relativi sottoparagrafi.
Verrà, anche, presentata una breve rassegna di quelle che sono state le
principali applicazioni ed i relativi vantaggi e svantaggi. Dopodiché si
passa al secondo capitolo dove si ha la trattazione della principale
tecnica presa come riferimento in questo lavoro ossia la logica fuzzy.
Nel paragrafo 2.2 viene presentata una breve rassegna delle origini
storiche per poi passare ai principi base di tale logica (paragrafo 2.3).
Si arriva, quindi, alla base ossia gli insiemi fuzzy (paragrafo 2.4) con
la trattazione, anche, dei numeri fuzzy e le varie distinzioni. Si arriva
in questo modo al fulcro di tale logica ossia il ragionamento fuzzy
(paragrafo 2.5) con le relative fasi ossia la fuzzyficazione, l’inferenza e
la defuzzyficazione. Inoltre, dato che si tratta di una logica che ha per
oggetto il trattamento dell’incertezza è importante vedere il rapporto
che si crea con la teoria della probabilità e ciò avviene nel paragrafo
2.6. Dopodiché, come visto in precedenza per i sistemi esperti, si ha
una breve rassegna delle principali applicazioni e a riguardo viene
presentato un esempio di applicazione riguardante gli investimenti nei
mercati finanziari. Successivamente, nel capitolo 3, si arriva al caso
pratico che come accennato prima riguarda le strategie di un
imprenditore edile. Nel capitolo in questione vengono analizzate tutte
le nozioni fondamentali per un impresa edile, in particolar modo cosa
si intende per attività edile, la gestione per commessa (paragrafo 3.2)
per poi passare alle varie tipologie di costi (paragrafo 3.3) ed i vari
procedimenti di stima trattati nei sottoparagrafi. Dopodiché, nel
paragrafo successivo si passa all’analisi della fattibilità di una
9
commessa dato che è il tema centrale dell’applicazione che verrà
svolta con matlab. Tale applicazione viene illustrata nel quarto
capitolo. Prima di entrare nel vivo dell’applicazione è importante
capire questo software ed in particolar modo, nel paragrafo 4.2, viene
esposto il fuzzy logic toolbox e le relative funzioni. A seguire si ha un
esposizione del procedimento di inferenza fuzzy con il matlab per poi
arrivare alla parte più interessante ossia l’inferenza fuzzy applicata alle
strategie imprenditoriali (paragrafo 4.4). Infine, il lavoro prosegue con
la trattazione delle reti neurali nel capitolo cinque. Per cui si ha una
breve rassegna delle origini storiche per poi analizzare le reti neurali
biologiche (paragrafo 5.3) e la struttura ed il funzionamento
(paragrafo 5.4). In merito a quest’ultimo aspetto ci si sofferma
sull’architettura e apprendimento per poi arrivare alla back
propagation network (paragrafo 5.5). Anche in questo caso vengono
esposte, nel paragrafo 5.6, le principali applicazioni per poi passare ad
un ulteriore sviluppo della ricerca ossia le reti neuro-fuzzy.
10
Capitolo 1
UN NUOVO APPROCCIO PER LA
RISOLUZIONE DI PROBLEMI
1.1 – INTRODUZIONE
Il sogno di capire i principi e i meccanismi del funzionamento della
mente umana va avanti da oltre cinquant’anni quando durante un
seminario nel New Hampshire venne introdotto, per la prima volta, il
termine Intelligenza Artificiale. Da allora il sogno di molti ricercatori
si è trasformato nel tentativo di riprodurre l'intelligenza umana su una
macchina. Infatti, il termine intelligenza artificiale (IA) indica
l’insieme di studi e tecniche volti a riprodurre i processi mentali più
complessi mediante l’uso di computers. Uno dei contributi più
importanti in quest’ambito è quello fornito da Alan Turing nel 1950
con il test di Turing che prende spunto dal “gioco dell’imitazione”
1
dove un osservatore cerca di distinguere un uomo da una donna solo
sulla base di risposte ad una serie di domande. Turing, immaginando
di sostituire alla donna una macchina, riesce ad affrontare il problema
per stabilire se una macchina è intelligente e ciò non sulla base della
risposta ottenibile dall’esperimento ma proprio dalla capacità di
concatenare idee e pensieri. Tuttavia gli sviluppi più importanti si
hanno nel 1956 quando un docente della Darmouth College, J.
McCarthy, cerca di risolvere la questione riunendo in un seminario
1
A.M. Turing (1950),”Computing machinery and intelligence”, Mind 49: 433-460.
Longo G. O. (2009), “Il test di Turing storia e significato”, Mondo Digitale n. 1, marzo 2009