Sei sulla pagina 1di 23

Creatività computazionale

Informatica
Università degli Studi di Brescia
22 pag.

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
Indice
Introduzione…………………………………………………………………………3

1) La creatività……………………………………………………………………..5

1.1) Cos’è la creatività?...................................................................5

1.2) La ricerca della creatività


computazionale………………………………………..…5

1.2.1) L’intelligenza
Artificiale………………………………………………………………………..6

1.3) Il conflitto tra creatività e


efficienza…………………………………………………….10

Capitolo 2: Le metodologie applicate………………………………………..12

2.1) La teoria della miscelazione concettuale


( CBT)……………………………………12

2.1.1) Applicazione della miscelazione a doppio


campo………………………..14

2.1.2) Approccio teorico alla creatività


computazionale…………………………16

2.2) Programmazione
genetica…………………………………………………………………….17

2.2.1) I metodi di ricerca


genetica………………………………………………………….17

2.2.2) Il primo algoritmo


genetico…………………………………………………………..19

2.2.3) Meccanismi
genetici……………………………………………………………………….21

2.2.4) La ricerca genetica nei programmi informatici: il teorema degli


schemi………………………………………………………………………………………
……………….23

2.2.4.1) Unità di base del


processo……………………………………………….26

2.2.4.2) Preparare la
popolazione………………………………………………….28

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
2.2.4.3) Le operazioni genetiche nella programmazione genetica 29

2.2.5) Esempi di programmazione


genetica……………………………………………31

2.2.5.1) Fasi
iniziali…………………………………………………………………………33

2.2.5.2)
L’esecuzione………………………………………………………………………36

Capitolo 3: Applicazioni e approcci alla creatività computazionale 39

3.1) Un passato di
successo………………………………………………………………………….39

3.2) Nuove esperienze


vincenti…………………………………………………………………….41

3.3.) Applicazioni varie della creatività


computazionale…………………………….42

3.4) Un esempio di architettura per la creatività


artificiale…………………………49

Capitolo 4: Approfondimento sui sistemi generatori di storie………52

4.1) Intelligenza
narrativa…………………………………………………………………………….52

4.2) Approcci alla generazione di


storia……………………………………………………….53

4.3) La creatività nei sistemi generazione di


storie…………………………………….58

4.4) Valutazione della creatività in una


storia…………………………………………….60

4.5) Le applicazioni dei generatori di storie


automatici………………………………60

4.6) Direzioni di sviluppo


interessanti………………………………………………………….60

4.7) Generatore di fabula:


FabuPlan…………………………………………………………….61

4.7.1)L’architettura di
FabuPlan………………………………………………………….62

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
4.7.2) Algoritmo di planning alla base di
FabuPlan……………………………62

4.7.3) Linguaggio e caratteristiche di


FabuPlan…………………………………65

4.7.4) Un esempio di generazione di


storia……………………………………….71

Capitolo 5: Esempi di applicazioni attuali della programmazione


genetica……………………………………………………………………………….83

5.1)
Genetica…………………………………………………………………………………………
………83

5.2)
TinyGP……………………………………………………………………………………………
………83

5.2.1) Peculiarità del PG e file di


input……………………………………………….83

5.2.2) Le fasi della compilazione e


dell’esecuzione……………………………84

5.3) Bilanciamento degli


obiettivi…………………………………………………………………85

Capitolo 6: Conclusioni…………………………………………………………..87

Bibliografia……………………………………………………………………………89

Introduzione

Questa tesi si occupa di descrivere la creatività nelle sue diverse forme ed in


particolare si focalizza sulla creatività computazionale, diventata ormai una
disciplina scientifica che studia il processo creativo attraverso modelli e
metodi artificiali, producendo poi un risultato o un comportamento che
potrebbe essere considerato creativo se esibito da esseri umani. Gli scopi
principali di questa disciplina si riuniscono in tre punti fondamentali:
3

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
1. Il progetto di algoritmi o eventuali macchine che conseguono una
creatività che può essere confrontata e paragonata con quella umana.
2. La formalizzazione dei procedimenti creativi che avvengono nell’uomo e
negli animali
3. L’aumento della creatività degli esseri umani attraverso mezzi artificiali,
i quali possono fungere anche da supporto per tale attività.
Dato che il concetto di creatività è molto difficile da definire con precisione,
risulta ancora più difficile associarlo ad una macchina e viene posta infatti la
fatidica domanda, ovvero se sia possibile che una macchina possa essere
creativa. Si vedrà però che è possibile porre una distinzione tra “creatività
naturale” ovvero la creatività della natura, che si esprime nelle varie forme
vegetali e animali, e creatività dell’uomo, visto come unico “animale
culturale”. Se invece anche alla creatività umana viene dato un carattere di
“naturalità”, alla creatività naturale dell’uomo viene a contrapporsi la
creatività artificiale delle sue macchine, in particolare dei calcolatori
programmati per esibire una qualche forma di intelligenza.
Si noterà nelle pagine seguenti che poter attuare la creatività
computazionale, è necessario prendere in considerazione vari settori, poiché
essa è influenzata dai contributi dell’intelligenza artificiale, della psicologia
cognitiva, della filosofia, della neurologia e delle varie discipline artistiche.
Vengono discusse poi le metodologie applicate facendo riferimento ad
alcune teorie, in particolare alla teoria della miscelazione concettuale in
modo da avere i mezzi per concepire la concettualizzazione umana,
utilizzando il modello dell’integrazione concettuale che fornisce quattro
spazi mentali dove ognuno viene visto come un insieme coerente di
informazioni che vengono attivate all’interno della mente umana in un
preciso momento. Vengono forniti anche esempi e algoritmi, per capire
quindi in che modo applicare la creatività computazionale nella vita di tutti i
giorni e in quali settori essa può ritenersi utile. In particolare si farà
riferimento alla programmazione genetica e quindi agli algoritmi genetici e
alle operazioni genetiche che si ispirano ai meccanismi genetici delle
popolazioni e della selezione naturale e sono caratterizzati da due
componenti fondamentali, la sopravvivenza dell’individuo che si adatta in
modo migliore e l’ereditarietà dei genotipi. Gli algoritmi citati vengono
implementati per risolvere un’ampia gamma di problematiche, da problemi
di controllo, come la guida di missili terra aria, a problemi di natura
ottimizzatoria, come ad esempio quello del commesso viaggiatore, ai
problemi di scheduling. In tale tesi si vede come essi vengano utili quando si
vuole massimizzare una funzione, quindi quando si ha a che fare con
problemi di ricerca che non necessitano obbligatoriamente di una soluzione
esatta. Verrà descritta una panoramica delle applicazioni e degli approcci
dove ha luogo la creatività computazionale, guardando sia al passato che al
presente e ponendo delle basi per quello che potrebbe accadere in futuro.
Le applicazioni viste spaziano fra vari campi: musica, arti visive, pubblicità,
strategia militare, simulazioni di videogiochi, innovazioni nel marketing,
robotica e controllo automatico. Nello specifico verranno trattati i generatori
di storie, ed in particolare il generatore di fabule FabuPlan, ponendo
attenzione sul procedimento da compiere per produrre il racconto, sul

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
linguaggio utilizzato, sull’algoritmo da porre in essere, sulle applicazioni di
questi sistemi e sulla valutazione della creatività delle narrazioni prodotte,
tenendo in considerazione che è necessaria una certa coerenza nella storia.
Altre due applicazioni vengono analizzate in queste pagine e sono Genetica
e TinyGP, nell’ambito della programmazione genetica, delle quali si
descrivono le caratteristiche principali e il fine ultimo.

Capitolo 1: La creatività
1. Cos’è la creatività?
La creatività umana è uno di quei concetti difficili da definire. Da sempre la
creatività viene vista come un qualcosa di misterioso, per non dire un
paradosso. La creatività nello scenario comune, viene vista come la capacità
di elaborare idee sorprendenti e preziose, idee che includono concetti,
poesie, composizioni musicali, teorie scientifiche, ricette di cucina,
coreografia, battute e così via. Come suggeriscono questi esempi molto
diversi tra loro, la creatività entra in ogni aspetto della vita, viene giudicata
dall’essere umano ed è una proprietà soggettiva. Non è una "facoltà"
speciale ma un aspetto dell'intelligenza umana. In generale, questo aspetto
è basato su abilità quotidiane, come ad esempio il pensiero concettuale, la
percezione, la memoria e l'autocritica riflessiva. Non si limita quindi ad una

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
piccola elite: ognuno di noi è creativo, ad un certo punto. Una nuova idea
può essere creativa, mentre un'altra è solo nuova. Sicuramente però si può
affermare che le idee creative sono imprevedibili, a volte sembrano
impossibili eppure vengono poste in essere. La comunità di ricerca è divisa
tra fondamentalisti e pragmatisti in cui i primi credono che sia impossibile
lavorare in un modo scientifico senza una definizione misurabile e precisa di
creatività, mentre i secondi sostengono che sia meglio dimostrare
successivamente la creatività artificiale in tutti i domini di applicazione
possibile e utilizzare questa esperienza per perfezionare di continuo la
definizione operativa di creatività. La divisione tra fondamentalisti e
pragmatisti è inoltre aggravata dai filosofi, religiosi e metafisici. I concetti di
creatività, intelligenza, morale, emotività sono infatti strettamente legati
all’essere umano. Alcuni filosofi sostengono che è impossibile attribuire la
creatività alle macchine poiché la creatività richiede una coscienza che solo
gli esseri umani possiedono. Altri sostengono che l’intelligenza umana,
inclusa la creatività, è provocata dalle connessioni tra cellule nervose del
cervello e che i computer sarebbero in grado di simularle. Ad oggi, non
esiste una teoria scientifica che formalizzi il pensiero creativo, e non risulta
nemmeno chiaro se sia possibile parlarne in maniera generale, come
proposto, ad esempio, dalla teoria formale della creatività[1], o se sia
necessario vederlo come un insieme di diversi processi mentali.
1.2 La ricerca della creatività computazionale
Nel campo della creatività computazionale, sono stati di grande importanza
i lavori della ricercatrice Margaret Boden[2]. La Boden affermò in particolare
i seguenti punti fondamentali:
• Una netta distinzione tra gli atti creativi definiti come storici,
ovvero mai compiuti prima, e quelli invece personali, già
compiuti da qualcuno precedentemente, di cui non si è al
corrente al momento dell'atto stesso. In questa ottica, l’obiettivo
principale della creatività computazionale dovrebbe essere
l'emulazione della più semplice creatività personale.
• La definizione di tre tipi principali di creatività:
▲ Creatività esplorativa: cerca una novità e un valore all’interno di uno
spazio di ricerca predefinito.
▲ Creatività combinatoria: unisce idee familiari e concetti in combinazioni
nuove e preziose.
▲ Creatività trasformazionale: modifica il limite della ricerca spaziale e quali
tipi di cose si possono combinare tra loro, in questa visione, algoritmi
evolutivi, come gli algoritmi genetici possono essere un buon strumento
grazie alla loro natura ricombinativa.
Questo schema non è però del tutto ben definito, infatti le differenze tra le
categorie di Boden non sono sempre chiare, ma viene comunque accettato.
La categorizzazione di Boden non è ovviamente l'unica possibile. Ad
esempio, un team dell'IBM Thomas J. Watson Research Center, basandosi su
lavori recenti nel campo della psicologia, ha portato avanti una
categorizzazione fra creatività espressiva, da rappresentazione,
e scientifica.
6

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
Dalla prospettiva dell’informatica quindi la creatività potrebbe essere intesa
come la ricerca esplorativa nello spazio di combinazioni e miscele.
Come affermato precedentemente, la creatività computazionale è una
scienza incipiente e risulta impossibile stabilire un accordo sugli obiettivi che
consegue e i relativi confini in modo preciso. Per questa tesi, l’obiettivo della
ricerca della creatività computazionale è quello di produrre una conoscenza
che permette ai software e alle macchine di essere creativi. I metodi
utilizzati per arrivare alla creatività artificiale, consistono nell’applicazione
della scienza cognitiva, alla neuroscienza e alla psicologia. E’qui che nasce
l’intelligenza artificiale. Per capire come possa essere messa in atto la
creatività esplorativa o trasformativa, è necessario sapere quali spazi
concettuali e quali tipologie di processi mentali sono in grado di esplorarli e
modificarli. Questo è il primo punto in cui i computer sono rilevanti. Questi
spazi e modi per esplorarli e trasformarli, possono essere descritti appunto
da concetti tratti dall'intelligenza artificiale (AI) [3][8].
1.2.1) L’ Intelligenza Artificiale
Uno dei sogni dell’uomo nel campo dell’informatica è quello di costruire o
creare qualcosa potenzialmente simile a lui. E’ in questo momento che la
creatività dell’uomo pone le basi per la creatività computazionale, un ramo
dell’Intelligenza Artificiale (AI) nata nel 1956, che tenta di capire e costruire
entità intelligenti. Essa comprende lo studio di come far fare ai calcolatori
cose che, ora come ora, gli esseri umani fanno meglio, inoltre può anche
essere definita come la costruzione di un manipolatore di simboli che è in
grado di soddisfare il test di Turing[4], cioè un criterio per determinare se
una macchina sia in grado di pensare. Tale criterio è stato suggerito da Alan
Turing nell’articolo Computing machinery and intelligence, apparso nel 1950
sulla rivista Mind. Nell'articolo Turing prende spunto da un gioco, chiamato
"gioco dell'imitazione", e prevede tre partecipanti: un uomo A, una donna B,
e una terza persona C. Quest'ultimo è tenuto separato dagli altri due e
attraverso una serie di domande deve stabilire qual è l'uomo e quale la
donna. Anche A e B hanno dei compiti: A deve ingannare C e portarlo a fare
un'identificazione errata, mentre B deve cercare di aiutarlo. C non dispone
di alcun indizio a riguardo e quindi si basa solo sulle risposte di A e B. Il test
di Turing si basa sul presupposto che una macchina si sostituisca ad A e se
la percentuale di volte in cui C indovina chi sia l'uomo e chi la donna è
simile prima e dopo la sostituzione di A con la macchina, allora la macchina
stessa dovrebbe essere considerata intelligente, dal momento che nella
situazione presentata, sarebbe indistinguibile da un essere umano.
In questo ambito è necessario definire che cosa si intende per
“comportamento intelligente”:
■ Reagire in modo flessibile a situazioni differenti
■ Trarre vantaggio da circostanze fortuite e talora imprevedibili
■ Ricavare un senso da messaggi ambigui e contradditori
■ Riconoscere l’importanza dei diversi elementi in una determinata
situazione
■ Trovare somiglianze e analogie tra situazioni differenti, nonostante
presentino elementi concreti di diversità
7

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
■ Notare distinzioni tra situazioni differenti, nonostante siano caratterizzate
da elementi molto simili
■ Sintetizzare nuovi concetti e produrre nuove idee
Per macchina intelligente Turing ne intende una in grado di pensare, ossia
capace di concatenare idee e di esprimerle in modo sensato. Una macchina
per sostenere il test dev'essere programmata considerando la descrizione di
un uomo in termini discreti (stati interni, segnali, simboli) e quindi si capì
ben presto che un “comportamento intelligente” non poteva esistere senza
una dose di conoscenza base che aiutasse il sistema artificiale a definire i
contesti, valutare la debolezza dei modelli teorici e utilizzare il buon senso.
L’ideale sarebbe perciò produrre agenti basati su conoscenza, cioè
programmi che usano conoscenza e inferenze per risolvere problemi difficili.
Questi agenti dovrebbero anche interagire con l’ambiente attraverso sensori
e attuatori ed essere:
■ Autonomi: l’azione è data da direttive”interne”
■ Reattivi: percepiscono aspetti dell’ambiente e reagiscono in modo
opportuno
■ Proattivi: possono prendere iniziative e di conseguenza intraprendere
delle azioni per raggiungere gli obiettivi
■ Sociali: comunicano con altri agenti
In base a quanto detto, si otterrebbe un agente intelligente capace di
ragionare in base al buon senso, di agire in modo flessibile e appropriato,
utilizzando la conoscenza posseduta.
Nel campo dell’intelligenza artificiale vi sono due correnti fondamentali:
• Macchine intelligenti:
1. I programmi che vengono creati ottengono un alto livello di
competenza nella conoscenza di problemi particolari
2. Utilizzo di un approccio ingegneristico
3. Ci si preoccupa di emulare selettivamente l’attività che dà origine
al ragionamento umano e non di simularla
• Scienza cognitiva:
1. Tentativo di modellare il comportamento delle persone e i relativi
processi di informazione
2. Utilizza l’approccio di psicologi, biologi, linguisti e filosofi
3. La macchina viene vista come un mezzo per sperimentare, dalla
quale poi analizzare i risultati ottenuti
L’intelligenza artificiale inoltre si può distinguere in debole e forte:
• L’AI debole si pone l’obiettivo di realizzare macchine in modo che
agiscano come se fossero intelligenti; vi sono però degli argomenti da
tenere in considerazione che ostacolano questo obiettivo:
1. Le macchine sono incapaci di fare determinate cose, al di là
del modo in cui le si programmi

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
2. Si potrebbe avere un fallimento agendo per un lungo periodo,
poiché solitamente la macchina non apprende come un
essere umano.
3. La conoscenza di base non è sufficiente oppure vi è un
elevato livello di conoscenza, troppo complessa, che non
permette la costruzione di programmi appropriati a
determinate situazioni.
• L’AI forte riguarda invece la costruzione di macchine che pensino
intelligentemente, cioè che abbiano delle menti coscienti reali e quindi
che possano eguagliare il ragionamento umano e riprodurre qualsiasi
attività del pensiero umano. I sostenitori dell’AI forte partivano dalla
convinzione che la mente umana potesse essere paragonata ad un
programma basato su regole algoritmiche. Inoltre erano convinti del fatto
di poter studiare i processi mentali umani a partire dall’esame di una
siffatta macchina affermando che: << Lo scopo scientifico della ricerca
nell’Intelligenza Artificiale è di arrivare a comprendere l’intelligenza come
processo algoritmico, mentre il suo scopo tecnologico è di costruire
macchine che superino o estendano utilmente le capacità mentali degli
esseri umani>> (Ford K.M & Hayes P.J. 1999).
I fondamenti dell’AI sono molti:
• La filosofia e di conseguenza la logica, i metodi di ragionamento, la
mente, l’apprendimento e la razionalità.
• La matematica, perciò la rappresentazione formale, le dimostrazioni, le
computazioni, le teorie logiche, la decidibilità e la computabilità.
• Psicologia, intesa come percezione e modelli della conoscenza
• Linguistica e quindi il linguaggio, la grammatica, la semantica e la
rappresentazione
• Ingegneria dei calcolatori, computer, linguaggi ed efficienza.
Le categorie di attività dell’AI sono varie e si possono dividere in:
• Attività normali:
-Processo del linguaggio naturale:
• Comprensione
• Generazione
• Traduzione
-Percezione:
• Visione
• Linguaggio parlato
• Ragionamento di buon senso
• Controllo di Robot
• Attività formali:
-Giochi

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
-Scacchi
-Dama
-Matematica e Logica
-Prova automatica di Teoremi
-Geometria
-Calcolo differenziale
-Dimostrazione di proprietà di programmi
• Attività specializzate:
-Ingegneria
-Progetto
-Ricerca di guasti
-Pianificazione della produzione
-Programmazione automatica
-Diagnosi medica
-Analisi finanziaria
-Analisi scientifica ecc.

I concetti dell’intelligenza artificiale ci permettono quindi di vedere la


psicologia con un occhi diversi, di realizzare e verificare delle ipotesi sulle
strutture e sui processi in cui il pensiero umano potrebbe essere coinvolto.
Ovviamente, è necessario porsi delle domande sul fatto che questi processi
e strutture vengano implementati veramente nella testa dell’uomo, ma il
punto chiave qui è quello di domandarsi se un approccio computazionale ci
dà un modo per arrivare a ipotesi scientifiche sulle ricche sottigliezze della
mente umana e se ci possa essere un legame tra creatività e macchine. Le
indagini svolte in questo senso vengono divise tra ricerca fondamentale e
ricerca applicata: la prima si concentra sulla comprensione della creatività
in termini di informatica e sulla misura da adoperare per poter fare una sua
valutazione, la seconda si concentra invece sulla dimostrazione di
programmi di macchine creative.
1.3) Il conflitto tra creatività ed efficienza

"La creatività" è una parola usata spesso in senso positivo, ma la sua


applicazione nella vita reale può anche essere problematica. Non c'è dubbio
sul fatto che la creatività si trova dietro allo straordinario sviluppo che la
razza umana ha portato il mondo negli ultimi mille anni. Molte decisioni
nell’ambito della vita civile e militare testimoniano che quando non c'è
abbastanza tempo per valutare soluzioni innovative nuove, basarsi
sull'esperienza è spesso la scelta migliore. La conclusione che possiamo
trarre è che il semplice fatto che un'idea sia creativa non significa
necessariamente che sia utile nella pratica. Come regola generale, le idee
creative dovrebbero essere adeguatamente valutate prima di essere
10

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
implementate. In un certo senso questo è contraddittorio. Il rischio per il
valutatore è quello di restare polarizzato e di scartare un'idea solo perché
non è stata precedentemente testata. Un'altra contraddizione si ha quando
si parla di "creatività" come un tratto desiderabile e di solito si assume che
essa dovrebbe restare entro certi limiti. Questo è particolarmente vero
quando la creatività viene discussa in relazione ad una specifica
applicazione. Affinché un'idea creativa possa essere incorporata in un
prodotto esistente, l'idea non deve essere troppo lontana. Inoltre, non deve
essere creativa nel senso "sbagliato". Chiaramente, ci sarà sempre un
compromesso problematico tra scartare idee nuove e adottare soluzioni non
tentate. Una possibile conclusione globale potrebbe riguardare la questione
di come sostenere una valutazione oggettiva delle applicazioni dei contributi
creativi alla vita reale.

11

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
CAPITOLO 2: Le metodologie applicate
In questo capitolo vengono esaminate le metodologie con cui applicare la
creatività computazionale.

2.1) La teoria della miscelazione concettuale (CBT)

La teoria della miscelazione concettuale è un modello esplicativo del


pensiero umano che viene utilizzato negli algoritmi generativi nell’ambito
della ricerca dell’intelligenza artificiale. La base di partenza è la teoria degli
spazi mentali[5], elaborata da Fauconnier verso la metà degli anni Ottanta. Il
modello della miscelazione concettuale comprende infatti quattro “spazi
mentali”, ognuno di essi viene visto come un raggruppamento di
informazioni coerenti, che vengono prese in considerazione nella mente in
una situazione specifica e che rappresentano il modo di comprendere uno
scenario, che può essere reale, ma anche frutto dell’immaginazione. Per
spiegare meglio quanto appena detto, prendiamo per esempio lo spazio
mentale: viaggio.

Esso è costituito da alcuni elementi: posizione iniziale, posizione da


raggiungere, veicolo, difficoltà, ritardi, pericoli, persone lasciate alle spalle,
persone incontrate durante il viaggio, e relazioni come: un saluto, un addio,
un incontro nel viaggio. In questo modello, due spazi di input, che
condividono ciò che viene mappato su ciascuno di essi da parte di uno
spazio generico, vengono combinati per produrre un quarto spazio, quello
del blending, esso rappresenta una struttura nuova, emergente, che non è
possibile definire con la semplice somma delle parti.

Oppure pensiamo ad esempio alla circostanza in cui uno studente assiste


all’interrogazione di un suo compagno di classe, che consegue un buon
voto, e durante la quale, ricorda la sua interrogazione del giorno prima, che
invece non è andata bene. Si nota come l’input è dato dalla situazione reale,
mentre un secondo input è costituito dalla scena impressa nella memoria
dello studente non soggetto all’interrogazione. Lo spazio generico invece
proietta sugli input ricevuti ciò che essi hanno in comune, in questo caso, la
situazione in cui qualcuno interroga qualcun altro. Lo studente non
interrogato effettua delle connessioni analogiche tra gli elementi dei due
input, tra sé e lo studente interrogato e tra il professore reale e quello della
scena ricordata. I due input proiettano una selezione di elementi nello

12

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
spazio mentale del blending, in cui lo studente che sta guardando
l’interrogazione può ad esempio immaginare che venga di nuovo
interrogato, ma che in questo caso l’interrogazione vada bene. Il blending
funziona quasi interamente al disotto dell’orizzonte della nostra coscienza.
In tal senso esso può essere ricondotto ai processi che caratterizzano
l’inconscio cognitivo. Nonostante il blending sia utilizzato frequentemente
nel nostro modo di pensare, non viene fatta confusione tra gli spazi mentali
coinvolti: lo studente che assiste all’interrogazione sa che quella in atto non
è la sua interrogazione e quindi non questo non modificherà il voto
conseguito nel giorno precedente. Il blending è un processo profondamente
dinamico, che può comportare sviluppi complessi, per esempio:

• È possibile disattivare connessioni fra gli spazi mentali

• È possibile ristrutturare spazi mentali precedenti

La struttura emergente nello spazio di blending può essere generata in tre


modi:

1. Attraverso una combinazione delle possibili proiezioni che provengono


dagli input

2. Mediante un completamento realizzato con frame e scenari che sono


richiamati in modo non cosciente

3. Tramite l’elaborazione (ovvero effettuando l’integrazione quasi come se


fosse una pellicola)

Noi utilizziamo gli spazi mentali letteralmente ma attraverso metafore. Tali


metafore sono rappresentate da delle operazioni di fusione, in cui gli
elementi scelti dai vari spazi mentali sono abbinati tra loro. Il concetto di
spazio mentale appena discusso, può essere delineato con nozioni simili ma
molto più definite, all’interno dell’informatica, attraverso la tassonomia e
l’ontologia. Ad esempio, gli organismi viventi sono organizzati in una
tassonomia biologica, comprendendo anche la gerarchia, alcuni esempi
sono la Famiglia, il Genere e la Specie. Le ontologie estendono le
tassonomie mediante varie informazioni, quali gli attributi, le relazioni e le
regole.

13

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
2.1.1) Applicazione della miscelazione a doppio campo

L’operazione di miscelazione a doppio campo, nell’immagine seguente


tratta dal documento Computational Creativity: Novel Technologies for
Creative Decision Making [6]

L’atto di creazione nella miscelazione a doppio campo, consiste nella


selezione degli spazi di input e di uno spazio generico, utilizzando poi lo
spazio generico per:

▲ mappare alcuni concetti negli spazi di input

▲ progettare gli elementi selezionati da ciascuno spazio di input nello


spazio di blanded

▲ definire nuove relazioni tra i concetti che fanno parte dello spazio di
blanded

I concetti degli spazi di ingresso A e B sono collegati da un riferimento allo


spazio generico. Diversi spazi combinati possono essere costruiti
creativamente collegando gli elementi di entrambi gli spazi di input. Lo

14

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
spazio miscelato quindi può essere elaborato da complementi del modello,
associazioni e specializzazioni.

La miscelazione a doppio campo[6] può essere utilizzata in un esempio


concreto ai fini del miglioramento della sicurezza nella zona del porto di
Singapore. Le autorità portuali di Singapore gestiscono più di 60.000 navi
ogni anno e nelle vicinanze si hanno raffinerie di petrolio e aeroporti molto
importanti. I sistemi automatici per il supporto decisionale sono sviluppati
per assistere le navi da pattuglia che proteggono l’area. La pianificazione
degli scenari in questo caso è utilizzata per identificare possibili minacce e
per progettare strategie. Lo spazio mentale generico della navigazione viene
implicitamente utilizzato per connettere gli spazi di input del terrorismo
marittimo e del trasporto. Si suppone che l’agente del terrorismo marittimo
sia una singola nave o una piccola imbarcazione che potrebbe commettere
una missione dove è previsto il suicidio oppure dove può sopravvivere. In
quest’ottica, è possibile costruire cinque spazi combinati, che possono
essere ritenuti rilevanti da parte degli esseri umani. Esempi di tali spazi
miscelati sono:

■ Una nave container che attacca utilizzando energia cinetica

■ Una nave container che attacca utilizzando dispositivi a bordo

■ Un peschereccio che attacca

■ Un aereo di linea con un missile con l’intendo di creare danni massicci ad


una raffineria di petrolio nelle vicinanze.

15

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
Immagine tratta da [6]

La capacità di creare scenari così dettagliati si basa sulla conoscenza di


base del sistema. Gli scenari vengono generati per mezzo di uno spazio
miscelato di alto livello, utilizzando i componenti astratti dei due spazi di
input e successivamente selezionando le specializzazioni di alcuni
componenti astratti dalle conoscenze di base associate. Per migliorare
ulteriormente la situazione, si avrebbe bisogno di un livello di capacità
autonoma maggiore, nonostante questo sembra però che la miscelazione
automatica sia di aiuto agli analisti del personale per effettuare valutazioni
e per scegliere scenari interessanti.

2.1.2 ) Approccio teorico alla creatività computazionale

Jürgen Schmidhuber, dirigente di un gruppo di AI leader mondiale, definisce


la teoria formale della creatività [1]. La teoria descrive i principi essenziali
che stanno alla base dei comportamenti creativi,sia biologici, sia artificiali,
che sono incorporati in un ambiente di cui non si conosce molto a riguardo.
Facciamo riferimento ad essa con un esempio concreto, prendendo in
considerazione un robot che memorizza tutti i dati che riceve grazie ai suoi
sensori e cerca costantemente di comprimerli il più possibile, perciò entra in
gioco un algoritmo che regolarizza i dati per produrre una descrizione
codificata dei dati che utilizzano meno bit rispetto ai dati grezzi. Se la
compressione è senza perdita, è possibile decodificare i dati compressi e
16

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
recuperare i dati originali. Gli algoritmi di compressione con perdita invece,
scartano le informazioni che non sono ritenute importanti. Dato che
Schmidhuber mira a una teoria generica, dobbiamo supporre che il robot
lavori con una compressione senza perdita. Il robot di Schmidhuber lavora
incessantemente per minimizzare il codice C(t), che descrive la sua storia di
vita, memorizzata al tempo t, H(t). Supponiamo che il robot incontri un
nuovo oggetto D, rappresentato dai dati sensoriali. L’oggetto potrebbe
essere un’idea, una poesia, un’opera di scienza o altro. Schmidhuber
definisce l’interesse soggettivo nei confronti del nuovo oggetto come la
diminuzione della dimensione dei dati compressi all’interno del robot.
L’interessamento effettivo dell’oggetto nel momento t, risulta quindi essere:

I(D | t) = B(D | t-1) - B(D | t)

Dove B(D|t) è il numero di bit nella versione compressa di D al tempo t. Si


noti che l’algoritmo di compressione è basato non solo sui dati riguardanti il
nuovo oggetto, ma anche sull’intera storia di vita del robot, H(t). L’oggetto
appare molto interessante se l’algoritmo di compressione ha imparato a
comprimerlo in modo che B(D|t) sia molto più piccolo di B(D|t-1),
migliorando la situazione, si va a legare quindi la creatività all’interesse.
Supponiamo ora che il robot veda un oggetto prodotto da un altro agente,
come ad esempio un essere umano. La macchina ritiene che l’oggetto sia un
prodotto di creatività e ha un alto valore di interesse. Un’immagine creativa
appare molto complessa e per questa ragione richiede un numero elevato di
bit. Il robot scopre tuttavia, nuovi tipi di regolarità nella figura e attraverso di
essi è possibile migliorare l’algoritmo di compressione del robot, con una
conseguente e notevole riduzione delle dimensioni del file. Se
l’interessamento per l’immagine nel momento attuale è molto grande e la
macchina può affermare che l’immagine è molto creativa. Ad un certo punto
però, in un tempo successivo, il robot potrebbe non essere in grado di
scoprire nuove regolarità e perciò diviene impossibile migliorare l’algoritmo
di compressione dei dati. In quel momento quindi l’immagine verrà vista
come noiosa, si ha un calo dell’interesse e automaticamente l’immagine
risulta non creativa. Se invece si hanno oggetti caratterizzati da una
creatività duratura appare l’opportunità di scoprire in continuazione livelli
nuovi di regolarità che possono essere interessanti per lo spettatore.
Schmidhuber sostiene che questo è un meccanismo che fa parte anche
dell’uomo, per quanto riguarda l’interesse soggettivo, la creatività e la
curiosità, anche se i meccanismi di compressione umana sono nascosti e si
ritrovano in gran parte nel subconscio. Il presupposto della teoria di
Schmidhuber è dunque che vi sia un agente di creatività computazionale
che valute le idee basate su una stima di quanta compressione potrebbe
essere fatta sui dati.

2.2) Programmazione genetica


17

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
Tutti i problemi nel campo della scienza informatica, possono essere
interpretati come la ricerca di una soluzione nello spazio delle soluzioni. La
natura ha sviluppato tecniche intelligenti per risolvere problemi di vario tipo.
Per esempio:

– L’adattamento alle variazioni dell’ambiente,

– la difesa dell'organismo attraverso il sistema immunitario,

– la coordinazione tra insetti senza una pianificazione anticipata (ad


esempio le termiti costruiscono termitai senza un progetto, le formiche
muovono oggetti grandi senza un coordinatore).

Fra i sistemi fondamentali a metafora naturale spiccano gli algoritmi genetici


e attraverso essi è possibile mettere in atto la programmazione genetica.

2.2.1) I metodi di ricerca genetica

I metodi genetici sono metodi di ricerca ispirati dal funzionamento


dell’evoluzione naturale. Vengono posti in essere quindi gli algoritmi genetici
(AG), algoritmi di ricerca euristici che provengono dalla teoria di Charles
Darwin riguardante la selezione naturale e l’evoluzione biologica. Lo scopo
finale degli algoritmi genetici è quello di ricercare una soluzione ottima
all’interno di uno specifico problema, per far questo vengono utilizzate delle
tecniche che stanno alla base dell’evoluzione biologica e della riproduzione
sessuale che caratterizzano la natura. La fase iniziale riguarda
l’inizializzazione di una popolazione iniziale ( nel caso della genetica, i
cromosomi), i quali caratterizzano le soluzioni del problema in corso.
Ciascun individuo che appartiene alla popolazione ha una codifica, che
consiste in una serie di simboli di un alfabeto non infinito, ( ovvero i geni in
caso di genetica). Come avviene anche nel processo di evoluzione biologica,
nell’ambito informatico, la popolazione iniziale è soggetta ad un’evoluzione
che produce una generazione nuova e migliore di quella passata, poiché si
adatta maggiormente all’ambiente e quindi il problema di ricerca viene
risolto in modo più efficace. Il processo appena descritto continua fino a che
non viene ottenuto un criterio di determinazione ben definito. Entrando più
nello specifico, si possono distinguere due processi negli algoritmi di
riproduzione: la riproduzione sessuale e le mutazioni biologiche. Un breve
esempio di algoritmo genetico si può ritrovare se si considera il seguente
problema, tratto da [6]:

Trovare il percorso più veloce per un camion che deve visitare 10 campi che
sono collegati da una complessa rete di strade. Il codice genetico in questo
caso potrebbe essere l’elenco di nomi di campi che il camion visita in ordine.
L’algoritmo di ricerca genetica produrrebbe una prima generazione di 40
elenchi casuali contenenti nomi di campi. La simulazione testa ogni elenco

18

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
e trova le 20 liste che corrispondono al percorso con il tempo minore. Le
generazioni successive sono costituite da:

1. Una copia delle 20 migliori liste

2. Un accoppiamento di coppie di liste derivante dalle 20 migliori in modo


che ogni coppia di genitori produca due figli

3. Una mutazione casuale dei genomi della prole

Per la riproduzione, un gruppo di codici campioni prima vengono copiati dal


genitore A al figlio (evidenziati nell’area grigia nell’esempio) , i restanti
codici per il figlio vengono selezionati nell’ordine in cui appaiono nel
genoma del genitore B.

Immagini tratte da [6]

Per quanto concerne la mutazione invece, essa consiste in uno scambio dei
codici di due campi selezionati in modo casuale e dopo aver eseguito questo
processo per molte generazioni si troverà a breve una soluzione. A causa
della natura casuale del processo, non è tuttavia garantito che la soluzione
trovata sia quella ottimale a livello globale.

2.2.2) Il primo algoritmo genetico

Per gli algoritmi genetici non è stata creata una teoria unificata che esplichi
tutto o che suggerisca quali sono i parametri adatti, tuttavia esiste il
teorema di Holland[7], il quale assicura la convergenza dell’algoritmo
genetico nella direzione di una soluzione ottima. Il primo prototipo di
algoritmo genetico deriva appunto da J.H. Holland, il quale cercò di
implementare i meccanismi dell’evoluzione nel settore informatico. Tale
algoritmo considera una popolazione di N cromosomi che hanno una data
lunghezza L già stabilita e hanno una codifica in codice binario e nel loro
insieme questi cromosomi costituiscono lo spazio nel quale ricercare, ovvero
dove l’algoritmo impegna il suo tempo durante il procedimento di ricerca ed
ha un limite massimo di 2L cromosomi. Prendiamo in considerazione ora
questo problema codificato con L=3 bit: 2^3=8 sono i cromosomi che
costituiscono lo spazio di ricerca. Esso può essere rappresentato mediante
un cubo dal punto di vista grafico:

19

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
Il funzionamento previsto dall’algoritmo che stiamo analizzando è il
seguente. In una fase iniziale si procede a una generazione casuale della
popolazione di partenza formata da N individui che hanno una lunghezza L.
Successivamente si passa a valutare ciascun individuo Ci(i = 1,...,N), che fa
parte della popolazione attraverso ad una funzione f, chiamata funzione di
fitness, la quale restituisce un valore fi , che rappresenta la capacità da
parte del cromosoma considerato di risolvere il problema. L’algoritmo
provvede poi a produrre continuamente una popolazione nuova formata da
N individui, che si sostituiscono a quella vecchia. La generazione attuale è
sottoposta a delle operazioni genetiche fino a che un determinato criterio
non viene soddisfatto. I criteri da soddisfare mirano a uno dei punti seguenti
oppure a entrambi:

■ il raggiungimento del numero massimo di generazioni possibili Gmax,


che corrispondono anche al numero di cicli massimi l’algoritmo può
sostenere

■ il conseguimento di un valore della variabile di fitness accettabile per il


problema. Nella figura seguente è riportato un diagramma di flusso che
dà una panoramica del ciclo di vita di un tipico algoritmo genetico:

20

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
Immagine tratta da [9]

dove le quantità pr, pc e pm indicano, rispettivamente, la probabilità di


riproduzione, crossover e mutazione.

2.2.3) Meccanismi genetici

I meccanismi genetici fanno luce sulle operazioni genetiche poste in essere


per arrivare ai risultati. Gli algoritmi genetici [7] prevedono una selezione
dei candidati che andranno a formare la nuova generazione e tale
scrematura viene fatta guardando i valori di fitness, tenendo in
considerazione solamente quelli più elevati. Questa situazione ha
un’analogia con l’osservazione svolta da Charles Darwin, il quale aveva
notato che la lenta modificazione della specie e la successiva evoluzione

21

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)
dipendeva dalla selezione naturale, perciò la generazione successiva era
data dagli individui migliori capaci di sopravvivere ai cambiamenti e alla
lotta. Il cromosoma generico Ci ha una probabilità di selezione:

22

Document shared on www.docsity.com


Downloaded by: domenico-mereu-1 (domenicomereupalermo@gmail.com)