Transcript
Page 1: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Universita degli Studi di Bologna

FACOLTA DI INGEGNERIA

Corso di Laurea in Ingegneria Informatica

Intelligenza Artificiale

RAGIONAMENTO

CON PROGRAMMAZIONE LOGICA

A DISGIUNZIONE ANNOTATA

Tesi di laurea di: Relatore:

Stefano Bragaglia Chiar. mo Prof. Ing. Paola Mello

Correlatori:

Dott. Ing. Fabrizio Riguzzi

Dott. Ing. Federico Chesani

Anno Accademico 2008-2009Sessione I

Page 2: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Page 3: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Universita degli Studi di Bologna

FACOLTA DI INGEGNERIA

Corso di Laurea in Ingegneria Informatica

Intelligenza Artificiale

RAGIONAMENTO

CON PROGRAMMAZIONE LOGICA

A DISGIUNZIONE ANNOTATA

Tesi di laurea di: Relatore:

Stefano Bragaglia Chiar. mo Prof. Ing. Paola Mello

Correlatori:

Dott. Ing. Fabrizio Riguzzi

Dott. Ing. Federico Chesani

Anno Accademico 2008-2009Sessione I

Page 4: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Page 5: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Indice

Introduzione 5

1 ProbLog 9

1.1 Programmi ProbLog . . . . . . . . . . . . . . . . . . . . . . . 9

1.1.1 Cenni di Programmazione Logica . . . . . . . . . . . 9

1.1.2 Sintassi e semantica del linguaggio ProbLog . . . . . 10

1.2 Calcolo delle probabilita di successo . . . . . . . . . . . . . . 11

1.2.1 Espressioni booleane e forme normali . . . . . . . . . 11

1.2.2 Interrogazioni ProbLog come formule DNF . . . . . . 13

1.2.3 Diagrammi decisionali binari . . . . . . . . . . . . . . 15

1.2.4 Calcolo della probabilita delle formule DNF . . . . . 17

1.3 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.4 Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2 LPAD 23

2.1 Programmi LPAD . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.1.1 Cenni di Programmazione Logica . . . . . . . . . . . 23

2.1.2 Sintassi e semantica del linguaggio degli LPAD . . . 25

2.2 Calcolo delle probabilita di successo . . . . . . . . . . . . . . 27

2.2.1 Interrogazioni sugli LPAD come formule DNF . . . . 27

2.2.2 Calcolo della probabilita delle formule DNF . . . . . 27

2.3 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.4 Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Page 6: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

2 INDICE

3 Algoritmi esistenti 33

3.1 Cenni architetturali . . . . . . . . . . . . . . . . . . . . . . . . 33

3.2 Algoritmi ProbLog . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2.1 Inferenza esatta . . . . . . . . . . . . . . . . . . . . . . 36

3.2.2 Inferenza approssimata con bound sulla probabilita . 37

3.2.3 Inferenza approssimata ai risultati migliori . . . . . . 38

3.2.4 Inferenza approssimata con approccio statistico . . . 39

3.3 Algoritmi LPAD . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3.1 Inferenza esatta con risoluzione SLDNF . . . . . . . . 40

3.4 Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4 Estensioni proposte 45

4.1 Algoritmo esatto . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.2 Algoritmo iterativo con vincolo sulla probabilita . . . . . . . 46

4.3 Algoritmo approssimato Best-First . . . . . . . . . . . . . . . 47

4.4 Algoritmo approssimato K-Best . . . . . . . . . . . . . . . . . 48

4.5 Algoritmo approssimato K-First . . . . . . . . . . . . . . . . . 50

4.6 Algoritmo stocastico Monte Carlo . . . . . . . . . . . . . . . 51

4.7 Algoritmo stocastico Monte Carlo con memoria . . . . . . . 53

4.8 Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5 Esperimenti 57

5.1 Test sintetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.1.1 Grafi a percorsi paralleli . . . . . . . . . . . . . . . . . 58

5.1.2 Grafi a percorsi ramificati . . . . . . . . . . . . . . . . 62

5.1.3 Grafi a percorsi ridondanti . . . . . . . . . . . . . . . 68

5.2 Test su dataset reali . . . . . . . . . . . . . . . . . . . . . . . . 83

5.2.1 Dataset di dati biologici . . . . . . . . . . . . . . . . . 83

5.2.2 Dataset di reti sociali . . . . . . . . . . . . . . . . . . . 84

5.3 Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Conclusioni 89

Ringraziamenti 93

Page 7: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

INDICE 3

Bibliografia 95

Elenco degli algoritmi 99

Elenco delle figure 101

Elenco delle tabelle 103

Page 8: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

4 INDICE

Page 9: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Introduzione

Fin dai primi anni ’50, la possibilita di combinare logica e probabilita

ha affascinato filosofi ed esperti di intelligenza artificiale [Car50, Gai64,

SK66, Hal90]. Negli ultimi vent’anni, questo campo di ricerca e stato og-

getto di rinnovato interesse grazie al lavoro svolto da molte Universita

e Centri di Ricerca nel campo dell’Apprendimento Relazionale Statistico

[GT07] e della Programmazione Logica Induttiva Probabilistica [RFKM08].

I numerosi formalismi che combinano aspetti statistici a quelli relazionali

proposti in questi anni, come ad esempio SLP [Mug00], PLP [Dan91], PHA

[Poo93], PRISM [SK97], pD [Fuh00] ed ICL [Poo97], ne sono un esempio.

Nei casi considerati, si consegue questo risultato semplicemente as-

sociando dei valori di probabilita alle formule logiche dei programmi ed

imponendo opportuni vincoli su di loro. In SLP, ad esempio, le clausole

che definiscono lo stesso predicato devono essere mutuamente esclusive.

In PRISM e PHA, invece, le probabilita possono essere associate solamente

ai fatti e si introducono nuovi vincoli per evitare che certe combinazioni

di fatti siano contemporaneamente vere. In pD, infine, non si impongo-

no vincoli esterni ma il motore inferenziale su cui si basa ha limitazio-

ni cosı forti che gli consente di risolvere solamente problemi di piccole

dimensioni.

Questo lavoro si ispira a due importanti formalismi: ProbLog e i Pro-

grammi Logici a Disgiunzione Annotata, o LPAD. Il primo nasce dalla

necessita di analizzare grafi biologici di grandi dimensioni in cui gli archi

sono etichettati con valori di probabilita, mentre il secondo per modellare

generici sistemi causali.

ProbLog rappresenta l’estensione probabilistica di Prolog piu sempli-

Page 10: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

6 Introduzione

ce che si possa realizzare. In pratica consente di etichettare le regole di

un programma logico con valori di probabilita indipendenti tra di loro.

Il contributo innovativo dato da ProbLog consiste nell’introduzione di un

metodo in due fasi per il calcolo della probabilita di successo di una inter-

rogazione. Nella prima raccoglie tutte le spiegazioni dell’interrogazione

grazie al meccanismo di risoluzione SLD di Prolog, quindi converte que-

sto risultato in una espressione booleana in Forma Normale Disgiuntiva,

o formula DNF; poi, nella seconda fase, calcola la probabilita di questa

espressione mediante l’uso di Diagrammi Decisionali Binari, o BDD (dal-

l’inglese Binary Decision Diagrams). Questo metodo puo essere abbina-

to ad algoritmi di inferenza sia esatti che approssimati ed e in grado di

affrontare problemi di milioni di nodi e di archi.

Gli LPAD, invece, sono un formalismo particolarmente interessante

per la versatilita della sintassi e per la semplicita e la chiarezza della se-

mantica che rende i propri programmi molto leggibili ed equivalenti ad

altri famosi sistemi probabilistici. Diversamente da quelle dei programmi

ProbLog, le clausole degli LPAD possono essere disgiuntive ed e possibile

associare una probabilita ad ogni singolo atomo presente nelle loro teste.

Come i programmi ProbLog, gli LPAD assegnano un valore di probabilita

alle interrogazioni logiche e utilizzano un interprete top-down derivato

dal motore inferenziale di Prolog per determinare le spiegazioni dell’inter-

rogazione ed un software di gestione dei BDD per calcolarne la probabilita

equivalente. Gli LPAD implementano inoltre un metodo alternativo per il

calcolo della probabilita con il quale la parte di programma esplorato dal

meccanismo di risoluzione SLDNF viene convertito in una rete bayesiana

ma sfortunatamente non e altrettanto efficace.

Con questo lavoro vogliamo costruire un sistema che combini i vantag-

gi derivanti dall’adozione del linguaggio LPAD e della risoluzione SLDNF

introdotti in [Rig07] e i miglioramenti tecnologici in ambiente ProbLog

presentati in [KCR+08]. In particolare abbiamo presentato un algoritmo di

risoluzione esatto che coniuga la flessibilita degli LPAD con le innovazio-

ni dell’interprete ProbLog e diversi algoritmi euristici che implementano

molte soluzioni complementari. Tra questi citiamo un algoritmo basato su

Page 11: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

7

approccio iterativo semplice (Depth-Iterative), tre algoritmi euristici (Best-

First, K-Best e K-First) e gli ultimi due basati su approccio probabilistico

(due varianti di Monte Carlo).

Inoltre abbiamo condotto diversi esperimenti sia su dataset artificiali

che su grafi biologici e reti sociali. Rispetto all’algoritmo esatto, gli algoritmi

statistici si sono dimostrati particolarmente efficaci in ogni contesto, men-

tre quelli approssimati sono stati condizionati dai limiti tecnologici dell’in-

terprete Prolog adottato e sebbene abbiano mostrato importanti margini di

miglioramento, non hanno potuto esprimere tutto il loro potenziale.

La tesi e organizzata come segue. Nel capitolo 1 si introduce ProbLog,

un primo formalismo basato sulla conoscenza incerta. Dopo una breve

introduzione su alcune nozioni preliminari e sui concetti cardine su cui si

basa, si descrive la sintassi e la semantica dei suoi programmi ed il cor-

rispondente metodo di risoluzione. Allo stesso modo, nel capitolo 2 si

presentano gli LPAD, un altro formalismo di conoscenza incerta. Anche in

questo caso, dopo averne descritto le caratteristiche principali, se ne ana-

lizza la sintassi, la semantica ed i metodi di risoluzione che utilizza. Nel

capitolo 3, invece, si descrivono ed analizzano tutti gli algoritmi utilizza-

ti dai pacchetti software precedentemente introdotti evidenziandone, in

particolar modo, pregi e difetti. Nel capitolo 4 si espongono le estensioni

realizzate in ambiente YAP-Prolog come miglioramento degli algoritmi esi-

stenti e le motivazioni che ne hanno suggerito l’adozione, mentre nel capi-

tolo 5 si presentano i risultati degli esperimenti condotti con dati sintetici

e database reali su tali applicazioni. Infine si espongono le conclusioni a

cui si e pervenuti e si delineano i possibili sviluppi futuri.

Page 12: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

8 Introduzione

Page 13: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Capitolo 1

ProbLog

In questo primo capitolo verranno dapprima richiamati i concetti prelimina-

ri e la terminologia propri della Programmazione Logica e successivamente si

introdurra ProbLog ([DRKT07], [KCR+08]), un’importante estensione probabi-

listica di Prolog.

Nel seguito tratteremo la sintassi e la semantica di questo linguaggio e, do-

po aver introdotto le espressioni booleane in forma normale disgiunta ed

i diagrammi decisionali binari, mostreremo come sia possibile convertire in

una formula DNF qualsiasi interrogazione ProbLog e come sia possibile valu-

tarne la probabilita. I concetti appena introdotti verranno ulteriormente chiariti

nell’esempio che conclude il capitolo.

1.1 Programmi ProbLog

1.1.1 Cenni di Programmazione Logica

Di seguito sono riportate alcune definizioni preliminari di Program-

mazione Logica, con riferimento a [Llo87].

Un generico programma logico T e un insieme di formule, dette clausole,

espresse nella forma

h! b1, . . . , bm

Page 14: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

10 ProbLog

in cui h e un atomo e b1, . . . , bm sono i suoi letterali. h e b1, . . . , bm sono

detti rispettivamente testa e corpo della clausola. Se il corpo non contiene

letterali negativi, la clausola si dice definita. Se il corpo e vuoto, la clau-

sola prende il nome di fatto. La sola formula ! b1, . . . , bm e nota come

interrogazione o goal.

Un termine, un atomo, un letterale o una clausola si dicono ground se

non contengono alcuna variabile. Una sostituzione ! e un assegnamento di

termini a variabili: ! = {V1/t1, . . . , Vn/tn}. L’applicazione di una sostituzio-

ne ad un termine, un atomo, un letterale o una clausola C si indica con C! e

consiste nella sostituzione delle variabili che compaiono in C ed in ! con

i termini specificati in !. C! rappresenta una istanza di C. Se C e ground,

C! e una istanza ground di C.

1.1.2 Sintassi e semantica del linguaggio ProbLog

ProbLog e stato pensato come l’estensione probabilistica di Prolog piu

semplice che si possa realizzare. Per questo motivo la sintassi dei pro-

grammi ProgLog e quasi del tutto identica a quella dei programmi Prolog.

In particolare, un generico programma ProbLog e composto da un insieme

di fatti etichettati con probabilita pi :: ci e da un insieme di clausole definite.

Ogni fatto ci e vero con probabilita pi. Inoltre si presume che tutti i fatti

siano mutualmente indipendenti. Si noti che le clausole definite permet-

tono di aggiungere conoscenza di fondo arbitraria e ci si riferisce a loro come

BK (dall’inglese background knowledge).

Ad ogni programma ProbLog corrisponde un grafo probabilistico che

puo essere utilizzato per campionare i sottografi decidendo arbitrariamen-

te se includere o escludere ogni arco del grafo. In pratica un programma

ProbLog T = {p1 :: c1, · · · , pn :: cn} " BK definisce una distribuzione di

probabilita sui sottoprogrammi L # LT = {c1, · · · , cn} tale che

P (L|T ) =!

ci!L

pi

!

ci!LT \L

(1$ pi).

Ora ci si puo chiedere quale sia la probabilita che esista un percorso tra

Page 15: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

1.2 Calcolo delle probabilita di successo 11

due nodi qualsiasi del grafo probabilistico che equivale a chiedersi quale

sia la probabilita che un sottografo campionato a caso contenga un per-

corso diretto o uno o piu percorsi indiretti (o una combinazione qualsiasi

di questi) tra i due nodi in esame. Formalmente, la probabilita di successo

Ps(q|T ) di una interrogazione q in un programma ProbLog T e definita

come

Ps(q|T ) ="

L"LT

P (q|L) · P (L|T )

in cui P (q|L) = 1 se esiste una sostituzione ! tale che L " BK |= q! o

P (q|L) = 0 in caso contrario.

Di conseguenza, la probabilita di una dimostrazione specifica, anche

detta spiegazione, e quella di campionare un programma logico L che con-

tiene tutti i fatti richiesti da quella spiegazione o dimostrazione. La proba-

bilita esplicativa Px(q|T ) e definita come la probabilita della spiegazione o

della dimostrazione piu probabile dell’interrogazione q

Px(q|T ) = maxe!E(q)

P (e|T ) = maxe!E(q)

!

ci!e

pi

in cui E(q) e l’insieme di tutte le spiegazioni per l’interrogazione q.

1.2 Calcolo delle probabilita di successo

1.2.1 Espressioni booleane e forme normali

La logica proposizionale e quella branca della matematica che ha a che

fare con i valori di verita. Date le costanti logiche vero 1 e falso 0, si dice va-

riabile booleana o variabile proposizionale una qualsiasi variabile in grado di

assumere una costante logica qualsiasi come valore. Una generica espres-

sione booleana t e definita come composizione di variabili booleane median-

te gli operatori binari di congiunzione (il cui simbolo e % o ·), e di disgiunzio-

ne (& o +) e l’operatore unario di negazione (¬ o un tratto orizzontale posto

sopra alla variabile negata).

Page 16: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

12 ProbLog

Per ogni possibile assegnamento dei valori di verita alle variabili che vi

compaiono, il valore di una espressione booleana t si calcola in base al conte-

nuto delle tabelle di verita standard. L’insieme dei valori di verita si indica

generalmente con B = {0, 1}. Dato un qualsiasi criterio di ordinamento delle

variabili di una espressione booleana t, l’espressione booleana stessa puo

essere vista come una funzione suriettiva f : Bn ' B in cui n esprime il

numero di variabili che compaiono in t. Si noti che il criterio di ordinamen-

to delle variabili di una espressione booleana e essenziale per definire le

funzioni. Inoltre, come si vedra in seguito, tale criterio gioca un ruolo cru-

ciale anche nella costruzione di rappresentazioni compatte per le espressioni

booleane.

Due espressioni booleane si dicono equivalenti se producono lo stesso

valore di verita per ogni assegnamento delle variabili. Una espressione boo-

leana e una tautologia se risulta sempre vera per ogni assegnamento delle

variabili. Una espressione booleana si dice soddisfacibile se risulta vera per

almeno un assegnamento di verita.

Una espressione booleana si dice in forma normale disgiuntiva DNF (acro-

nimo del termine inglese Disjunctive Normal Form) se consiste in una di-

sgiunzione di congiunzioni di termini del tipo

(t11 % · · · % t1k1) & · · · & (tl1 % · · · % tlkl

)

in cui ogni termine tji e una variabile in forma vera xji o in forma negata

¬xji . La ben nota funzione di disuguaglianza, per esempio, si esprime come

(x % ¬y) & (¬x % y).

La formula per le espressioni DNF puo anche essere scritta in maniera piu

succinta utilizzando la versione indicizzata degli operatori di congiunzio-

ne e di disgiunzione:l

#

j=1

$

%

kj&

i=1

tji

'

( .

Esiste una seconda forma normale per le espressioni booleane det-

Page 17: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

1.2 Calcolo delle probabilita di successo 13

ta forma normale congiuntiva CNF (dal termine inglese Conjunctive Normal

Form) che e il duale della precedente e che consiste in una congiunzione

di disgiunzioni di variabili booleane in forma vera o negata esprimibile

come:l

&

j=1

$

%

kj#

i=1

tji

'

( .

Si puo dimostrare che qualsiasi espressione booleana e equivalente (e quin-

di riconducibile) ad una sola espressione DNF minima e ad una sola espres-

sione CNF minima.

In termini generali, stabilire se una certa espressione booleana sia sod-

disfacibile e una operazione piuttosto complicata. In particolare, Cook ha

dimostrato in [Coo71] che questo tipo di problemi e NP completo. Grazie

a questo postulato, si sa che il problema della verifica della soddisfacibi-

lita e NP completo anche per le espressioni CNF, mentre per le espressioni

DNF e solamente polinomiale. Analogamente, il problema della tautolo-

gia e difficile per le espressioni DNF (per la precisione e co-NP completo) e

viceversa per quelle CNF. Alla luce di queste considerazioni, si potrebbe

pensare di calcolare la soddisfacibilita di una espressione booleana grazie

alla sua forma DNF e di effettuare il controllo di tautologia grazie alla sua

forma CNF, tuttavia la conversione da una forma all’altra e una operazione

di complessita esponenziale nel numero delle variabili e quindi attuabile

solo per problemi di dimensioni contenute.

1.2.2 Interrogazioni ProbLog come formule DNF

Per studiare l’insieme dei programmi logici in cui una interrogazio-

ne puo essere provata, occorre considerare la sola parte logica LT della

teoria T su cui viene effettuata l’interrogazione. Di seguito si descrive

come questo insieme di programmi logici, o dimostrazioni, possa essere

rappresentato da una formula DNF.

Per pervenire a questo risultato si utilizza la risoluzione SLD da cui

deriva anche il meccanismo di inferenza di Prolog. I percorsi dalla radice

ad ogni singola foglia di un albero SLD rappresentano delle dimostrazio-

Page 18: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

14 ProbLog

ni. Queste dimostrazioni possono avere successo (terminano in un goal

vuoto, generalmente indicato con !) o fallire (terminano in un goal non

vuoto e che non puo essere ulteriormente sviluppato). Per ogni dimostra-

zione con successo si puo costruire una risposta tramite una sostituzione

! che rende vero il goal iniziale.

Il risolutore SLD genera l’albero grazie ad un procedimento top-down,

inizializzando il nodo radice con l’interrogazione q da dimostrare ! l1,

· · · , ln e successivamente generando ricorsivamente ogni meta$interroga-

zione! b1!, · · · , bm!, l2!, · · · , ln! per ogni clausola h! b1, · · · , bm del pro-

gramma logico per cui l’unificatore piu generale di h ed l sia la sostituzione

!.

Ogni dimostrazione con successo di un albero SLD, dunque, si appog-

gia ad un insieme di clausole {pi1 :: ci1 , · · · , pik :: cik} # T utilizzate per

ottenerla. Ovviamente queste clausole sono necessarie alla dimostrazione,

e la dimostrazione e completamente indipendente dalle restanti clausole.

Di conseguenza, la probabilita che questa dimostrazione abbia successo

e data da)

i pi o, in altre parole, e uguale alla somma delle probabilita

dei programmi che contengono le clausole necessarie alla dimostrazione

in esame.

Se a questo punto si introduce una variabile booleana casuale bi per

ogni clausola pi :: ci ( T per indicare se la clausola ci a cui e associata

faccia parte o no del programma logico, allora la probabilita di una qual-

siasi dimostrazione che coinvolge le clausole {pi1 :: ci1 , · · · , pik :: cik} # T

equivale alla probabilita del congiunto bi1 % · · ·% bik . Siccome ogni interro-

gazione puo avere molteplici dimostrazioni, la probabilita di successo di una

interrogazione e uguale alla probabilita che la disgiunzione dei congiunti

equivalenti alle dimostrazioni sia vera. In termini matematici cio equivale

a

Px(q|T ) = P

$

%

#

e!E(q)

&

bi!cl(e)

bi

'

(

in cui E (q) denota l’insieme delle dimostrazioni per l’interrogazione q

e cl(e) l’insieme delle variabili booleane che rappresentano fatti ground

Page 19: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

1.2 Calcolo delle probabilita di successo 15

utilizzati nella dimostrazione e.

In questo modo il calcolo della probabilita di successo di una inter-

rogazione ProbLog si riduce al calcolo della probabilita di una formula

DNF che tra l’altro e monotona, dato che tutte le variabili booleane che vi

compaiono sono in forma vera.

1.2.3 Diagrammi decisionali binari

Un diagramma decisionale binario, o BDD (dal termine inglese Binary

Decision Diagram), e un particolare grafo diretto e aciclico che puo essere

utilizzato per rappresentare in forma compatta una espressione booleana.

Ogni BDD e composto da due nodi terminali e da un insieme di nodi

decisionali. I nodi terminali, detti terminale-0 e terminale-1, rappresentano

rispettivamente i valori 0 e 1 delle costanti logiche falso e vero. Ogni nodo

decisionale viene etichettato con il nome di una variabile booleana del-

l’espressione di partenza ed ha due nodi figlio corrispondenti ai valori

che questa puo assumere. Il nodo figlio a cui si perviene assegnando la

costante 0 alla variabile booleana associata al nodo decisionale attuale e

detto figlio inferiore. Analogamente il nodo figlio corrispondente all’asse-

gnamento della costante 1 alla variabile booleana associata al nodo padre

e detto figlio superiore. Per convenzione, gli archi verso i figli inferiori so-

no rappresentati mediante una linea tratteggiata mentre quelli verso i figli

superiori con una linea continua. Ne deriva che tutti i nodi decisionali del

BDD hanno semigrado uscente !+ = 2 e semigrado entrante !# > 0, tranne

quello scelto come nodo radice per il quale !# = 0.

Un BDD si dice ordinato (OBDD) se le variabili booleane vengono visi-

tate secondo lo stesso criterio di ordinamento lineare lungo ogni percorso che

congiugne il nodo radice con i nodi terminali. Un BDD e in forma ridotta o

semplicemente ridotto (RBDD) quando

• non contiene nodi isomorfi (principio di unicita),

• non contiene nodi i cui figli siano isomorfi (principio di non ridondan-

za).

Page 20: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

16 ProbLog

(a) (b)

(c)

Figura 1.1: Tabella di verita (a), albero decisionale binario (b) e diagramma deci-sionale binario (c) dell’espressione booleana f = (x1%x2)& (x1%x3)&(x2 % x3).

Due nodi sono isomorfi quando sono associati alla stessa variabile ed

hanno gli stessi figli inferiore e superiore. Analogamente due figli di uno

stesso nodo sono isomorfi quando il figlio inferiore coincide con quello su-

periore. Si noti che il contributo informativo offerto da nodi isomorfi di

qualsiasi tipo e il medesimo. In altre parole, poiche i nodi isomorfi sono

ridondanti, i principi di unicita e di non ridondanza definiscono una pro-

cedura di riduzione che e in grado di semplificare i BDD senza perdita di

informazione.

I ROBDD sono una rappresentazione canonica (unica) [And99] per le

espressioni booleane. Cio significa che, scelto un criterio di ordinamento

delle variabili a piacere, qualsiasi funzione f : Bn ' B corrisponde ad un

Page 21: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

1.2 Calcolo delle probabilita di successo 17

(a) (b) (c)

Figura 1.2: Criterio di ordinamento lineare (a), principio di unicita (b) e principiodi non ridondanza (c) dei BDD.

solo ROBDD.

Questa proprieta, insieme ai principi di unicita e non ridondanza gia

introdotti, consente di definire operazioni estremamente efficienti sulle ep-

sressioni booleane. Si supponga, ad esempio, di voler verificare l’equiva-

lenza tra due espressioni booleane. Generando e confrontando tra di loro

i ROBDD equivalenti alle funzioni di partenza, il problema risulta avere

complessita polinomiale mentre per le espressioni booleane era NP-completo.

Si noti infine che generalmente quando si parla di BDD ci si riferisce ai

ROBDD. Il loro acronimo completo viene utilizzato solo quando si voglio-

no enfatizzare gli aspetti di ordinamento e riduzione tipici di questa classe

di BDD.

1.2.4 Calcolo della probabilita delle formule DNF

Il calcolo della probabilita di una formula DNF e un problema NP dif-

ficile perche non e detto che tutti i congiunti che vi compaiono siano tra

lodo indipendenti. Anche nell’ipotesi di variabili indipendenti prevista

dall’ambiente ProbLog, i singoli congiunti non risultano essere mutual-

mente esclusivi e possono sovrapporsi. Sono stati sviluppati molti algorit-

mi in grado di affrontare questo problema che in letteratura e noto come

problema della somma dei disgiunti.

L’approccio piu semplice, usato tra gli altri da pD, si basa sul principio

di inclusione ed esclusione della teoria degli insiemi ma raggiunge il proprio

limite tecnologico per programmi che generano una decina di dimostra-

zioni. Altri sistemi come PHA e ICL che consentono dimostrazioni non di-

Page 22: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

18 ProbLog

Algoritmo 1.1 Calcolo della probabilita di un generico nodo del BDD

Input: BDD node nOutput: equivalent probability

if n = terminal $ 1 thenreturn 1

else if n = terminal $ 0 thenreturn 0

elseh! high(n)prob(h)! callProbability(h)l! low(n)prob(l)! callProbability(l)return pn · prob(h) + (1$ pn) · prob(l)

end if

sgiunte utilizzano un algoritmo che tuttavia consente di trattare problemi

di dimensioni di poco superiori al caso precedente.

ProbLog invece adotta un nuovo metodo che si avvantaggia dell’uso

dei BDD. Si noti che il criterio di ordinamento delle variabili scelto ha un

grande impatto sulla dimensione e sulla complessita del BDD risultante.

Per calcolare la probabilita dell’espressione booleana corrispondente e

sufficiente attraversare il BDD dal nodo radice fino ad uno dei nodi termi-

nali. Per ogni nodo interno occorre calcolare ricorsivamente le probabilita

di entrambi i nodi figlio e poi combinarle, come e descritto nell’Algorit-

mo 1.1. In pratica la memorizzazione dei risultati intermedi evita di dover

ricalcolare la probabilita dei nodi condivisi da piu percorsi.

L’algoritmo risultante puo essere applicato a domini composti da cen-

tinaia di clausole (o variabili booleane) e da decine di migliaia di dimo-

strazioni (congiunti di variabili).

1.3 Esempio

La Figura 1.3(a) mostra un piccolo grafo probabilistico che fungera da

esempio. Questo grafo puo essere rappresentato in ProbLog mediante il

seguente programma:

Page 23: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

1.3 Esempio 19

(a) (b)

Figura 1.3: (a) Esempio di grafo probabilistico: le etichette sugli archi esprimonola probabilita che l’arco faccia parte del grafo finale. (b) Diagrammadecisionale binario che codifica la formula DNF cd & (ce % ed) checorrisponde alla due spiegazioni per l’interrogazione path(c, d) delgrafo.

0.7 :: edge(a, b).

0.8 :: edge(a, c).

0.6 :: edge(b, c).

0.9 :: edge(c, d).

0.8 :: edge(c, e).

0.5 :: edge(e, d).

Si noti che il grafo in esame puo essere utilizzato per campionare i propri

sottografi semplicemente inserendo o escludendo ogni singolo arco in mo-

do casuale. Il programma viene completato dalla seguente conoscenza di

fondo:

path(X,Y )! edge(X,Y ).

path(X,Y )! edge(X,Z), path(Z, Y ).

In pratica questo programma esprime la probabilita che esista un per-

corso diretto o indiretto tra due nodi qualsiasi del grafo, ad esempio tra c

e d.

Page 24: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

20 ProbLog

Figura 1.4: Albero SLD corrispondente all’interrogazione path(c, d).

In questo caso, l’insieme delle spiegazioni per l’interrogazione path(c, d)

e composta da due soli percorsi: l’arco con probabilita 0.9 tra c e d e la cop-

pia di archi da c ad e (con probabilita 0.8) e da e a d (con probabilita 0.5).

Risulta pertanto che

Px(path(c, d)|T ) = max{0.9, 0.8 · 0.5} = max{0.9, 0.4} = 0.9.

Grazie al metodo di risoluzione SLD tipico di Prolog, e possibile otte-

nere tutte le spiegazioni di una interrogazione. La Figura 1.4 mostra l’albe-

ro SLD generato per l’interrogazione! path(c, d). Se si introduce una va-

riabile booleana bi per ogni clausola pi :: ci utilizzata, si puo ottenere la for-

mula DNF corrispondente alla probabilita di successo dell’interrogazione

di partenza che in questo caso risulta essere

Ps(path(c, d)|T ) = P (cd & (ce % ed))

Page 25: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

1.4 Riepilogo 21

in cui il tenerico termine xy rappresenta la variabile booleana corrispon-

dente alla clausola edge(x, y).

Per calcolare la probabilita della formula DNF appena trovata, occorre

attraversare il BDD ad essa equivalente. Il BDD per il problema in esame e

riportato in Figura 1.3(b). Poiche la procedura presentata in Algoritmo 1.1

e ricorsiva, conviene calcolare le probabilita intermedie a partire dai nodi

terminali del BDD. Con pochi passaggi si ottiene:

P (ed) = ped · P (high(ed)) + (1$ ped) · P (low(ed)) = 0.5

P (ed) = pce · P (high(ce)) + (1$ pce) · P (low(ce)) = 0.4

P (cd) = pcd · P (high(cd)) + (1$ pcd) · P (low(cd)) = 0.94

e dunque la probabilita di successo dell’interrogazione path(c, d) vale:

Ps(path|T ) = 0.94.

1.4 Riepilogo

In questo capitolo abbiamo visto come estendere i concetti della pro-

grammazione logica per definire il formalismo probabilistico di ProbLog.

Abbiamo descritto la sintassi di questo linguaggio ed analizzato la seman-

tica che questo definisce. Successivamente abbiamo mostrato quali stru-

menti utilizzi ProbLog per consentire il calcolo efficiente della probabilita

di successo delle interrogazioni: inizialmente ProbLog utilizza la risolu-

zione SLD di Prolog per raccogliere tutte le spiegazioni possibili e le con-

verte in una unica espressione booleana monotona in forma normale di-

sgiuntiva, quindi sfrutta i diagrammi decisionali binari per calcolarne il

valore in modo efficiente.

Page 26: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

22 ProbLog

Page 27: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Capitolo 2

LPAD

Il tema di questo secondo capitolo sono i Programmi Logici a Disgiunzione

Annotata [VDB06], anche noti come LPAD. Dopo aver richiamato alcuni concet-

ti avanzati di programmazione logica, introdurremo la sintassi e la semantica

del linguaggio utilizzato da questo importante formalismo probabilistico.

Analogamente al caso di ProbLog, vedremo come ricondurre qualsiasi in-

terrogazione sugli LPAD ad una espressione booleana in forma normale di-

sgiunta gia introdotta nel Capitolo 1.2.1. Inoltre mostreremo come sia possibi-

le valutare in modo efficiente le espressioni booleane equivalenti alle interroga-

zioni per mezzo dei diagrammi decisionali binari anch’essi gia introdotti nel

precedente Capitolo 1.2.3.

L’ultima parte del capitolo, infine, e dedicata ad un esempio che ha lo scopo

di chiarire i concetti appena introdotti.

2.1 Programmi LPAD

2.1.1 Cenni di Programmazione Logica

Le seguenti definizioni estendono quanto gia visto nel Capitolo 1.

L’universo di Herbrand HU(T ) e l’insieme di tutti i termini che possono

essere costruiti con i simboli funtore che compaiono in T . La base di Her-

brand HB(T ) di un programma T e l’insieme di tutti gli atomi ground che

possono essere costruiti con i predicati ed i simboli funtore che compaiono in

Page 28: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

24 LPAD

T . Se T contiene simboli funtore di arita maggiore di 0, allora HB(T ) e infi-

nita, finita altrimenti. Il grounding di una clausola C si ottiene sostituendo

le variabili di C con i termini presenti in HU(T ). Il grounding g(T ) di un

programma T e il programma che si ottiene sostituendo ogni clausola con

l’insieme di tutti i suoi grounding. Se il programma contiene variabili e

simboli funzione, g(T ) e infinito, finito altrimenti.

Una interpretazione di Herbrand e un insieme di atomi ground, ad esem-

pio un sottoinsieme di HB(T ). Sia T l’insieme di tutte le possibili interpre-

tazioni di Herbrand di T .

Una mappatura di livello di un progamma T e una funzione || : HB(T )'

N degli atomi ground verso i numeri naturali. Per ogni a ( HB(T ), |a| rap-

presenta il livello di a. Si noti che se l = ¬a, allora |l| = |a| per definizione.

Un programma T si dice aciclico rispetto ad una mappatura di livello se per

ogni istanza ground a ! B di una clausola di T , il livello di a e maggiore

del livello di ogni letterale in B. Un programma T si dice aciclico se esiste

almeno un livello di mappatura rispetto al quale T risulta aciclico. Un

atomo a e vincolato rispetto ad un livello di mappatura se l’insieme dei

livelli di tutte le sue istanze e finito.

Un componente W di un programma T e il massimo sottoinsieme delle

regole di T tale che tutti i predicati che compaiono nella testa delle rego-

le di W siano mutualmente ricorsivi, eventualmente tramite negazione.

Sia W la componente di un normale programma T e sia S l’insieme dei

predicati usati da W . Si supponga che S sia completamente definito da

un’interpretazione I su HB(T ). La riduzione di W modulo I si denota con

RI (W ) e si calcola nel modo seguente:

• rendendo ground tutte le regole di W , ottenendo cioe Wg = g(W );

• eliminando da Wg tutte le regole che hanno un letterale del proprio

corpo il cui predicato e in S ed e falso in I ;

• eliminando dai corpi delle restanti regole tutti i letterali che hanno

predicati in S e che sono veri;

• ponendo RI (W ) uguale all’insieme delle regole ground rimanenti.

Page 29: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

2.1 Programmi LPAD 25

Un normale programma T si dice modularmente aciclico se per ogni

componente W di T esiste un modello completo e ben fondato M per

l’unione di tutti i componenti W $ ) W e la riduzione W modulo M e

aciclica.

2.1.2 Sintassi e semantica del linguaggio degli LPAD

La sintassi di questo nuovo formalismo e leggermente piu complessa di

quella che abbiamo visto nel precedente Capitolo 1, tuttavia la sua seman-

tica e molto piu espressiva. Questo linguaggio infatti puo essere utilizzato

per rappresentare in modo molto intuitivo problemi molto complessi ed

articolati.

Un qualsiasi programma logico a disgiunzioni annotate T (o LPAD) e com-

posto da un insieme di formule, dette clausole, del tipo

h1 : p1 & · · · & hn : pn ! b1, · · · , bm.

I termini hi e bj che compaiono in ogni clausola C sono detti rispettiva-

mente atomi logici e letterali logici, mentre pi indica un numero reale nel-

l’intervallo [0, 1] che esprime il valore di probabilita associato all’atomo

logico.

Le probabilita degli atomi logici di una stessa clausola sono tali per cui)n

i=1 pi = 1. Se la somma delle probabilita risulta inferiore ad 1, significa

che la testa della clausola sottintende la presenza di un ulteriore atomo

logico che si pone come alternativa a tutti gli altri e a cui compete un valore

di probabilita p = 1 $)n

i=1 pi. Inoltre se per una clausola risulta n = 1,

la probabilita associata al suo unico atomo logico risulta essere p = 1 ed e

pertanto possibile omettere la notazione probabilistica dalla formula.

Si definiscono infine testa head(C) e corpo body(C) di una clausola C

l’insieme dei suoi atomi logici e corrispondenti probabilita {(hi : pi) : 1 *

i * n} e l’insieme dei suoi letterali logici {bj : 1 * j * m} rispettivamente.

Come per i programmi ProbLog, la semantica degli LPAD e data in

funzione delle sue istanze. In questo caso, tuttavia, per istanza si intende

ogni normale programma ground che si ottiene scegliendo un atomo logico

Page 30: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

26 LPAD

dalla testa di ogni clausola del programma e scartandone le relative pro-

babilita. L’insieme di tutte le istanze I che e possibile ottenere da un LPAD

T si chiama grounding di T e lo si denota con TG. Il numero di istanze che

fanno parte di un grounding TG e dato dal prodotto del numero di atomi

logici presenti nella testa di ogni clausola del programma T di partenza,

ovvero dan

!

i=1

|head(Ci)| .

La probabilita di una istanza Ik ( TG e data dal prodotto dei fattori p

associati agli atomi logici scelti per quella istanza; in termini matematici

cio equivale a

P (Ik) =!

hik!Ik

pik .

A questo punto ci si puo chiedere quale sia la probabilita che una qualsiasi

interrogazione q abbia successo su certo un programma T .

La probabilita P (q|T ) di una interrogazione q e data dalla somma delle

probabilita delle istanze del grounding di T per le quali l’interrogazione e

dimostrata, ovvero dall’espressione

P (q|T ) ="

Ik!TG

(P (q|Ik) · P (Ik))

in cui P (q|Ik) = 1 se l’interrogazione q e dimostrata in Ik e P (q|Ik) = 0

altrimenti.

Dato un qualsiasi LPAD T quindi, la probabilita di successo di una inter-

rogazione q e data da

P (q|T ) ="

Ik!TG

$

%P (q|Ik) ·!

hik!Ik

pik

'

( .

Page 31: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

2.2 Calcolo delle probabilita di successo 27

2.2 Calcolo delle probabilita di successo

2.2.1 Interrogazioni sugli LPAD come formule DNF

Nonostante alcune sostanziali differenze, il concetto di derivazione per

i problemi ProbLog e gli LPAD e piuttosto simile.

Come abbiamo visto nel Capitolo 1.2.2 per i programmi ProbLog, una

particolare procedura puo ridurre il calcolo della probabilita di successo

di una interrogazione al semplice calcolo della probabilita di una formula

DNF.

Chiaramente i passi logici che descrivono questa procedura non sono

esattamente identici a quelli gia descritti per i programmi ProbLog e si

rimanda il lettore al Capitolo 3.3.1 per una trattazione piu dettagliata.

2.2.2 Calcolo della probabilita delle formule DNF

Il metodo per valutare le espressioni booleane in forma DNF intro-

dotto nel Capitolo 1 non puo essere applicato al caso degli LPAD perche

utilizzano variabili multivalore.

Un possibile approccio consiste nella codifica binaria: se una varia-

bile multivalore Xi puo assumere p diversi valori, si possono utilizzare

q = +log2 p, variabili binarie Xi,1, · · · , Xi,q per rappresentarla, in cui Xi,1 si

riferisce al bit piu significativo.

Pertanto per esprimere l’equazione Xi = j mediante variabili binarie

si puo operare in questo modo

Xi,1 = j1 % · · · %Xi,q = jq

in cui j1 · · · jq e la rappresentazione di j. Una volta convertite tutte le equa-

zioni multivalore in equazioni booleane semplici e possibile procedere alla

costruzione del BDD.

La probabilita delle formule multivalore espresse come BDD puo esse-

re valutata con un apposito algoritmo. Si avvale di due funzioni ricorsive

che si chiamano a vicenda: prob e probbool . La funzione prob(n) viene chia-

Page 32: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

28 LPAD

mata per valutare una nuova variabile booleana multivalore e restituisce

la probabilita del nodo n.

La funzione probbool , invece, viene chiamata per valutare le singole va-

riabili booleane. Questa funzione costruisce un albero binario avente tanti

livelli quanti sono i bit della variabile multivalore equivalente, in modo

che le chiamate conclusive a probbool sui nodi foglia identifichino un sin-

golo valore e vengano chiamate su un nodo la cui variabile binaria appar-

tenga alla successiva variabile multivalore. Dopodiche probbool chiama

prob su quel nodo per valutare la probabilita del sottografo e restiruisce il

prodotto del risultato e della probabilita associata al valore. Le chiamate

intermedie a probbool sommano questi risultati parziali e restituiscono il

totale all’istanza di prob chiamante.

Anche questo metodo e ottimizzato come l’equivalente ProbLog. La

funzione prob, infatti, salva il valore della probabilita che calcola per ogni

nodo in modo da recuperarlo immediatamente quando il nodo viene visi-

tato nuovamente.

2.3 Esempio

Consideriamo come esempio un programma in grado di stabilire le

cause e gli effetti dello starnutire, sia esso dovuto ad influenza o ad aller-

gia. Le clausole che descrivono il problema T sono le seguenti:

strong sneezing(X) : 0.3 &moderate sneezing(X) : 0.5! flu(X).

strong sneezing(X) : 0.2 &moderate sneezing(X) : 0.6! hay fever(X).

flu(david).

hay fever(david).

In pratica si modella il fatto che le cause dello starnutire possano esse-

re l’influenza o l’allergia. L’influenza provoca forti starnuti, starnuti mo-

derati o non provoca del tutto starnuti con probabilita rispettivamente di

0.3, 0.5 e 1 $ 0.3 $ 0.5 = 0.2. Analogamente l’allergia provoca forti star-

nuti, starnuti moderati o non provoca del tutto starnuti con probabilita

rispettivamente pari a 0.2, 0.6 e 1$ 0.2$ 0.6 = 0.2.

Page 33: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

2.3 Esempio 29

Algoritmo 2.1 Calcolo della probabilita di un nodo multivalore

Input: BDD node nOutput: equivalent probability

if n = terminal $ 1 thenreturn 1

else if n = terminal $ 0 thenreturn 0

elsemvar ! multivalue(n)P ! probbool(n, 0, 1,mV ar)return P

end if

Algoritmo 2.2 Calcolo della probabilita di una formula

Input: BDD node nInput: index of the multivalue variable’s valueInput: index of the boolean variableInput: multivalue variable mvarOutput: equivalent probability

if index = mvar.nbit + 1 thenbv ! mvar[value]return bv · prob(n)

elsebn ! boolean(n)bi ! mvar[index]if bn = bi then

h! high(n)l! low(n)valueshl1P ! probbool(h, value+1, index+1,mvar)+probbool(l, value, index+1,mvar)return P

elsevalueshl1P ! probbool(n, value + 1, index + 1,mvar) +probbool(n, value, index + 1,mvar)return P

end ifend if

Page 34: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

30 LPAD

Poiche le teste delle ultime due clausole disgiuntive contengono cia-

scuna 3 atomi logici (di cui uno e ovviamente sottinteso), il numero di

istanze del grounding di T e pari a 3 · 3 = 9.

Si consideri ora l’istanza I6 del grounding TG che si ottiene scegliendo il

secondo atomo logico dalla testa della prima clausola moderate sneezing(X) :

0.5 e l’atomo logico sottointeso dalla testa della seconda clausola, il cui

valore di probabilita abbiamo stabilito che vale 1$ 0.2$ 0.6 = 0.2.

La probabilita P(I6) dell’istanza considerata vale dunque

P(I6) = 0.5 · 0.2 = 0.1.

Si supponga adesso di avere l’interrogazione strong sneezing(david).

Per calcolare la probabilita di questa interrogazione, occorre stabilire in

quali istanze Ik di TG il goal sia derivabile.

Siccome q e dimostrabile in I1 ( TG, la sua probabilita P(I1) contribuira

al valore complessivo della probabilita dell’interrogazione. Ripetendo la

verifica per tutte le istanze di TG, si ricava che q e dimostrabile anche in I2,

I3, I4 e I7. Ora, poiche le probabilita di queste istanze valgono

P(I1) = 0.3 · 0.2 = 0.06

P(I2) = 0.3 · 0.6 = 0.18

P(I3) = 0.3 · 0.2 = 0.06

P(I4) = 0.5 · 0.2 = 0.10

Page 35: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

2.4 Riepilogo 31

P(I7) = 0.2 · 0.2 = 0.04

la probabilita di successo dell’interrogazione q e data da:

P(q|T ) = P(I1) + P(I2) + P(I3) + P(I4) + P(I7) = 0.44.

Come vedremo meglio nel Capitolo 3.3.1, per calcolare questo valore

si puo anche utilizzare un metodo che sfrutta il meccanismo di risoluzione

SLDNF di Prolog e i Binary Decision Diagrams. In Figura 2.1, ad esempio,

e riportato l’albero di derivazione di q. Grazie alle spiegazioni ottenute

dall’albero di derivazione SLNF e possibile costruire un BDD. Poiche le

variabili in gioco sono multivalore, in questo caso occorre procedere ad

una ulteriore fase di codifica binaria con cui si convertono in binarie. Il

BDD che si ottiene e mostrato in Figura 2.2. A questo punto e sufficiente

percorrere il diagramma appena ottenuto dal nodo radice al terminale-1 e

grazie all’Algoritmo 2.1 e all’Algoritmo 2.2 in pochi passaggi si ottiene:

P(q|T ) = 0.3 + (1$ 0.3) · 0.2 = 0.44.

2.4 Riepilogo

Questo capitolo ha trattato il formalismo degli LPAD in modo del tut-

to analogo a quello utilizzato per i programmi ProbLog nel Capitolo 1.

Abbiamo visto quali differenze intercorrano tra ProbLog ed LPAD sia a li-

vello di sintassi che di semantica. Nonostante queste differenze, abbiamo

osservato che anche le interrogazioni sugli LPAD possono essere interpre-

tate come formule DNF e quindi valutate tramite BDD. Inoltre abbiamo

presentato un diverso meccanismo inferenziale, la derivazione SLDNF, ed

un diverso algoritmo di valutazione dei BDD che si sono resi necessari per

via delle divergenze tra questo formalismo ed il precedente.

Page 36: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

32 LPAD

Figura 2.1: Albero di derivazione per l’interrogazione strong sneezing(david).

Figura 2.2: Diagramma decisionale binario equivalente all’interrogazionestrong sneezing(david).

Page 37: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Capitolo 3

Algoritmi esistenti

Questo capitolo e suddiviso in tre parti. Nella prima parte verranno introdotte

le architetture di sistema degli interpreti presi come esempio per i programmi

ProbLog e gli LPAD.

Nella seconda parte mostreremo gli algoritmi che implementa il sistema Pro-

bLog. In particolare vedremo come e possibile valutare la probabilita di una que-

ry utilizzando algoritmi di inferenza esatta e approssimata (con limite sulla

probabilita, con approssimazione ai migliori risultati e con approccio statistico) e

naturalmente i BDD.

Nell’ultima parte del capitolo mostreremo l’algoritmo di inferenza esatta

per gli LPAD utilizzato dal sistema CPLINT. Questo algoritmo non e il solo

implementato dal sistema CPLINT, ma e l’unico pertinente al caso in esame.

3.1 Cenni architetturali

Il componente alla base sia dell’interprete ProbLog che dell’interprete

CPLINT che abbiamo studiato e il sistema Prolog YAP1. YAP e un com-

pilatore Prolog molto efficiente sviluppato in ambito universitario. Il suo

motore inferenziale e basato sulla Warren Abstract Machine alla quale sono

state apportate numerose ottimizzazioni per ottenere migliori prestazioni.

YAP segue la cosidetta tradizione di Edinburgo e risulta largamente compa-

1http://www.ncc.up.pt/˜vsc/Yap/

Page 38: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

34 Algoritmi esistenti

tibile con lo standard ISO-Prolog e con i programmi proprietari Quintus e

SICStus Prolog.

L’architettura del sistema CPLINT risulta essere piu semplice e piu

elegante di quella ProbLog perche definisce i propri predicati specifici

mediante il meccanismo a plugin messo a disposizione da YAP Prolog.

Per contro, la soluzione ProbLog e meno flessibile ma, essendo stata ag-

giornata piu di recente, adotta una serie di miglioramenti che la rendono

piuttosto interessante.

In Figura 3.1 e 3.2 sono rappresentate le architetture a blocchi dei due

sistemi che abbiamo analizzato. Come possiamo vedere, entrambi i siste-

mi utilizzano la stessa libreria CUDD2 per elaborare i BDD. La differenza

tra i due interpreti e che CPLINT utilizza CUDD creando una istanza del

motore per i BDD in memoria e passandogli direttamente i valori che ha

ottenuto dal calcolo delle spiegazioni. ProbLog, al contrario, salva questi

valori in alcuni file di supporto e delega l’operazione di elaborazione ad

un opportuno programma esterno. Questo programma, oltre ad utilizza-

re la libreria CUDD gia citata in precedenza, utilizza anche il componen-

te SimpleCUDD3 in grado di trasferire i dati salvati su file in memoria in

modo molto efficiente.

Questo ulteriore livello di indirezione, pur introducendo necessaria-

mente overhead, permette di specificare un tempo di timeout, scaduto il quale

il programma esterno termina autonomamente anche se non ha completa-

to la propria elaborazione. Questi casi si verificano generalmente quando

l’algoritmo risolutore non e stato in grado di potare efficacemente l’albe-

ro di derivazione SLDNF. Con questo meccanismo le risorse di sistema

non piu impegnate nell’elaborazione del bdd possono essere utilizzate per

esplorare ulteriormente lo spazio di ricerca e, se tutto va bene, per potare

i rami piu infruttuosi dell’albero di derivazione.

2http://vlsi.colorado.edu/˜vis/getting_VIS_2.1.html3http://www.cs.kuleuven.be/˜theo/tools/simplecudd.html

Page 39: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

3.1 Cenni architetturali 35

Figura 3.1: Architettura dell’interprete CPLINT.

Figura 3.2: Architettura dell’interprete ProbLog.

Page 40: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

36 Algoritmi esistenti

3.2 Algoritmi ProbLog

In questa sezione si descrivono gli algoritmi implementati dall’inter-

prete ProbLog [KCR+08] che calcolano la probabilita di successo delle in-

terrogazioni ProbLog mediante inferenza esatta, inferenza approssimata ed

inferenza statistica.

3.2.1 Inferenza esatta

Calcolare la probabilita di successo di una interrogazione nel modo

visto nel Capitolo 1.2.2 e impossibile se non per i problemi piu piccoli.

L’interprete ProbLog utilizza un metodo in due passi. Col primo passo

ricava le dimostrazioni dell’interrogazione q dalla parte logica della teoria

T , che piu propriamente si indica con BK " LT . Questo passaggio e si-

mile all’analoga procedura svolta da pD descritta in [Fuh00]. Il risultato

di questa operazione e una formula DNF. Il secondo passo impiega i BDD

([Bry92]) per calcolare la probabilita di questa formula.

Il meccanismo che permette all’interprete ProbLog di ottenere tutte le

varie dimostrazioni di una interrogazione e la risoluzione SLD di Prolog.

L’attuazione di questo meccanismo produce un albero di derivazione SLD

come quello visto in Figura 1.4. Ogni dimostrazione con successo presente

nell’albero SLD utilizza un insieme di fatti {pi1 :: xi1 , · · · , pik :: xik} #

T . Questi fatti risultano essere necessari per la dimostrazione, e quella

dimostrazione e indipendente dagli altri fatti probabilistici di T .

Se a questo punto si introduce una variabile booleana casuale bi per

ogni clausola pi :: ci ( T che indica se ci fa parte del programma logico,

allora bi ha probabilita pi di essere vera. La probabilita di una certa dimo-

strazione che insiste sulla clausole {pi1 :: xi1 , · · · , pik :: xik} # T e quindi

pari al valore del congiunto bi1 % · · · % bik . Generalmente ogni goal puo

avere piu dimostrazioni, la probabilita di successo di una interrogazione q

e data dalla probabilita della disgiunzione delle congiunzioni di ogni sin-

gola dimostrazione. Denotando l’insieme delle dimostrazioni del goal q

con E (q) e l’insieme delle variabili booleane corrispondenti ai fatti ground

Page 41: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

3.2 Algoritmi ProbLog 37

utilizzati nella spiegazione e con cl(e), si ottiene

Ps(q|T ) = P

$

%

#

e!E(q)

&

bi!cl(e)

bi

'

( .

Il risultato di questa operazione e chiaramente una formula DNF che,

una volta valutata dal componente CUDD per la gestione dei BDD, resti-

tuisce il valore di probabilita desiderato dell’interrogazione q.

3.2.2 Inferenza approssimata con bound sulla probabilita

L’algoritmo di inferenza approssimata con bound sulla probabilita pro-

posto e simile a quello gia introdotto nella precedente versione dell’in-

terprete ProbLog descritto in [DRKT07] ed utilizza le formula DNF per

ottenere sia un lower bound che un upper bound sulla probabilita di una

interrogazione.

Inizialmente l’algoritmo esplora lo spazio di ricerca fino a raggiungere

il valore di soglia della probabilita desiderato. Il vincolo sulla probabilita e

stato preferito al vincolo sulla profondita della versione precedente per-

che genera upper bound piu stringenti fin dall’inizio e di conseguenza fa

convergere l’algoritmo piu velocemente.

Successivamente l’algoritmo percorre l’albero SLD parziale ed ottiene

le formule DNF per i due bound. La formula f1 per il lower bound consi-

dera tutte le dimostrazioni presenti nell’albero DNF parziale. La formula

f2 per l’upper bound comprende anche tutte le derivazioni che sono state

sospese per aver raggiunto il valore di soglia della probabilita.

L’algoritmo quindi procede in modo iterativo, partendo da un altro

valore di soglia della probabilita e riducendolo progressivamente (molti-

plicandolo ad ogni passo per un fattore di contrazione predefinito) finche la

differenza tra i valori dei due bound non diventa sufficientemente picco-

la. Detta f la formula DNF corrispondente all’albero di derivazione SLD

completo, siccome f1 |= f |= f2 e garantito che la probabilita di successo

della interrogazione q ricada nell’intervallo [P(f1),P(f2)].

Page 42: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

38 Algoritmi esistenti

Si supponga, per esempio, di avere un valore di soglia di probabilita

di 0.9 per l’albero SLD di Figura 1.4. In queste ipotesi, f1 contiene solo

il percorso con successo di sinistra, mentre f2 contiene anche il percorso

di destra fino a path(e, d). Risulta quindi f1 = cd, f2 = cd & ce, mentre

f = cd & (ce % ed) per l’albero SLD completo.

3.2.3 Inferenza approssimata ai risultati migliori

Quando si deve valutare un grande numero di interrogazioni, come

nel contesto dell’apprendimento di parametri, diventa fondamentale ave-

re pieno controllo sulla complessita computazionale dell’algoritmo utiliz-

zato. Un modo piuttosto semplice di conseguire questo risultato consiste

nell’utilizzare un numero m di dimostrazioni scelto a priori per approssi-

mare il valore di probabilita da calcolare.

A questo proposito si introduce il concetto di k-probabilita Pk(q|T ) di

una interrogazione q sul programma T

Pk(q|T ) = P

$

%

#

e!Ek(q)

&

bi!cl(e)

bi

'

(

in cui Ek(q) = {e ( E(q)|Px(e) - Px(ek)} con ek k-esimo elemento in

ordine di probabilita decrescente di E(q) e grazie al quale si utilizzano le

k spiegazioni piu probabili per costruire la formula DNF da cui ricavare la

probabilita di successo dell’interrogazione q.

Cio che si ottiene utilizzando solamente le migliori k spiegazioni e ov-

viamente una approssimazione per difetto, o lower bound, del valore di

probabilita normalmente atteso Si noti che per k = . e per k = 1 si

ottengono rispettivamente la probabilita di successo Ps(q|T ) e la probabilita

esplicativa Px(q|T ).

Il corpo principale dell’algoritmo con cui si ottengono le migliori k

spiegazioni e una tipica procedura branch-and-bound.

Per chiarire il concetto di k-probabilita, si consideri nuovamente il gra-

fo proposto in Figura 1.3(a) e si supponga che in questo caso l’interroga-

Page 43: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

3.2 Algoritmi ProbLog 39

zione di cui calcolare la probabilita sia path(a, d). Questa interrogazione

ha quattro spiegazioni equivalenti alle congiunzioni ac % cd, ab % bc % cd,

ac% ce% ed e ab% bc% ce% ed che hanno probabilita 0.72, 0.378, 0.32 e 0.168

rispettivamente. Siccome P1 equivale alla probabilita esplicativa Px, si ot-

tiene P1(path(a, d)) = 0.72. Per k = 2 bisogna prendere in considerazione

la sovrapposizione delle due migliori spiegazioni: la seconda dimostra-

zione contribuisce al valore di probabilita solo quando non lo fa la prima.

Siccome hanno il termine cd in comune, significa che il rimanente termine

ac della prima dimostrazione deve contribuire negativamente alla seconda

dimostrazione, cioe P2(path(a, d)) = P((ac%cd)&(¬ac%ab%bc%cd)) = 0.72+

(1$ 0.8) · 0.378 = 07956. Analogamente si ricava P3(path(a, d)) = 0.8276 e

Pk(path(a, d)) = 0.83096 per k - 4.

3.2.4 Inferenza approssimata con approccio statistico

L’ultima tecnica di approssimazione proposta dall’implementazione

ProbLog considerata implementa il metodo Monte Carlo. Questa tecni-

ca e degna di nota perche non utilizza i BDD per la valutazione della

probabilita delle interrogazioni.

L’algoritmo campiona ripetutamente il programma ProbLog ottenen-

do ogni volta una sua instanza e verifica se contiene una dimostrazio-

ne dell’interrogazione in esame. Il rapporto tra il numero di campioni

per i quali l’interrogazione e dimostrata ed il numero totale di campioni

considerati rappresenta una stima della probabilita dell’interrogazione.

Il corpo principale dell’algoritmo e composto da un ciclo che ogni

m campioni analizzati, calcola l’intervallo di confidenza della popolazione

statistica considerata fino a quel momento. Questo ciclo termina quan-

do l’ampiezza dell’intervallo di confidenza al 95% risulta essere inferiore

al valore del parametro ". Si noti che e stato utilizzato lo stesso criterio

di uscita dal ciclo adottato dagli altri algoritmi di inferenza approssima-

ta discussi finora benche gli intervalli di confidenza non corrispondano

esattamente ai bound considerati in quei casi.

Page 44: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

40 Algoritmi esistenti

Questo algoritmo, nonostante non facesse uso degli intervalli di confi-

denza, era gia stato suggerito da Dantsin in [Dan91] senza riportarne una

implementazione. Inoltre era gia stato trattato nel contesto delle reti da

[SEH+06].

3.3 Algoritmi LPAD

In questa sezione descriviamo l’algoritmo esatto utilizzato dall’inter-

prete CPLINT4. Questo interprete e dotato di altri algoritmi di risoluzione

che pero esulano da questo contesto o sono noti per non essere molto effi-

cienti e per questo motivo non sono stati presi in considerazione in questa

trattazione.

3.3.1 Inferenza esatta con risoluzione SLDNF

Il concetto di derivazione per problemi ProbLog ed LPAD e molto

simile, tuttavia ci sono tre differenze principali di cui tenere conto.

La prima consiste nel fatto che, a differenza di quelle ProbLog, le clau-

sole LPAD possono contenere piu atomi logici nella propria testa. Cio si-

gnifica che per rappresentare ogni clausola non e piu sufficiente utilizzare

una variabile booleana ma occorre ricorrere ad una variabile multivalore. La

seconda differenza si riferisce ai concetti ai quali ogni variabile e associa-

ta. Le variabili non sono piu associate alle clausole del problema come in

ProbLog, ma ai loro grounding. Cio significa che occorrera utilizzare una

nuova variabile per ogni grounding. La terza ed ultima discordanza consi-

ste nel fatto che nel corpo delle clausole LPAD possono comparire dei let-

terali negati. In linea di massima questo significa che ogni interrogazione

negativa viene risolta trovando tutte le possibili derivazioni dell’interroga-

zione in forma vera: si sceglie una clausola ground per ogni derivazione e

la si aggiunge alla derivazione attuale ma con una testa diversa da quella

utilizzata per derivare il goal.

4http://www.ing.unife.it/software/cplint/manual.html

Page 45: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

3.3 Algoritmi LPAD 41

Da queste considerazioni si evince il fatto che non e piu possibile uti-

lizzare la semplice risoluzione SLD come meccanismo inferenziale per de-

rivare le spiegazioni di ogni interrogazione ma che occorre perlomeno uti-

lizzare la sua estensione alle interrogazioni negative, ovvero la risoluzione

SLDNF. L’adozione di questo metodo di derivazione impone alcuni vin-

coli che di fatto restringono la classe di problemi a cui puo essere applica-

to. Fortunatamente la classe dei programmi aciclici a cui appartiene una

moltitudine di interessanti applicazioni ricade in questa categoria.

Una derivazione da (G1, C1) a (Gn, Cn) in T di profondaita n e una

sequenza

(G1, C1), · · · , (Gn, Cn)

tale che ogni Gi e una interrogazione del tipo! l1, · · · , ln e Ci e un insieme

di coppie in cui sono immagazzinate le clausole istanziate e le teste utiliz-

zate. Per costruire il termine successivo (Gi+1, Ci+1) della successione si

utilizzano la seguenti regole:

• se l1 e un predicato built-in, si esegue li e si pone Gi+1 = (! l2, · · · , lk)!

e Ci+1 = Ci!, dove ! e la sostituzione ottenuta eseguendo li.

• se l1 e un letterale positivo, sia c = h1 : p1 & · · · & hn : pn ! B una

nuova copia della clausola che risolve con Gi su l1, sia hj un atomo

della testa di c che risolve con l1 e sia ! la sostituzione mgu di l1 e

hj . Per ogni coppia (c",m) ( Ci tale che m /= j e c" unifica con c!, si

impone il vincolo dif (c", c!) in modo che ulteriori istanziazioni di c"

o di c! non rendano uguali le due clausole. Quindi Gi+1 = r, dove r

e il risolvente di hj ! B con Gi sul letterale l1 e Ci+1 = Ci " {(c!, j)}.

• se l1 e un letterale negativo ¬a1, sia C l’insieme di tutti gli insiemi C

per cui esiste una derivazione da (! a1, 0) a (!, C). Quindi Gi+1 =!

l1, · · · , lk e Ci+1 = select(C, C), in cui select e la funzione mostrata

nell’Algoritmo 3.1.

Una derivazione ha successo se Gn =!.

Page 46: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

42 Algoritmi esistenti

Algoritmo 3.1 Creazione della coppia (clausole istanziate, teste utilizzate)

Input: C sets for successfull derivations of the negative goal CInput: current set of used clauses Ci

Output: new set of used clauses Ci+1

Ci+1 = Ci

for all C ( C doselect a (c!, j) ( Cfor all " : (c", j) ( Ci+1, unify(c", c!) do

impose dif (c", c!)end for{perform one of the following operations}• select (c",m) ( Ci+1 : m /= j, unify(c", c!)

Ci+1 ! Ci+1\{(c",m)} " {(c!,m)}• select (c",m) ( Ci+1 : m /= j, unify(c", c!)

impose dif (c", c!)Ci+1 ! Ci+1 " {(c!,m)}

• select m /= j :/ 1c"/(c",m) ( Ci+1, unify(c", c!)Ci+1 ! Ci+1 " {(c!,m)}

end forreturn Ci+1

Dall’insieme C di tutte gli insiemi C per cui esiste una derivazione da

(! q, 0) a (!, C) si puo costruire la formula

P (q|T ) =#

C!C

&

(c!,j)!C

(Xc! = j)

in cui Xc! indica la variabile multivalore associata alla clausola c!. Poi-

che il membro a destra di questa ultima equazione e una congiunzione di

disgiunzioni di variabili booleane, risulta essere una formula DNF valida.

3.4 Riepilogo

In questo capitolo abbiamo visto quali componenti costituiscono i si-

stemi ProbLog e CPLINT. In particolare abbiamo visto che pur sfruttando

gli stessi componenti o quasi, i due interpreti li utilizzano in modo diverso.

Nel proseguo del capitolo abbiamo visto nello specifico gli algoritmi

che i due sistemi realizzano con i componenti che abbiamo descritto. Il

Page 47: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

3.4 Riepilogo 43

sistema ProbLog implementa un algoritmo di inferenza esatta e tre di in-

ferenza approssimata che sono piuttosto performanti. Nella parte centrale

del capitolo abbiamo descritto ogni singolo algoritmo evidenziandone le

qualita e gli svantaggi.

L’interprete CPLINT e piu elegante della propria controparte, tuttavia

di tutti gli algoritmi che implementa il solo che abbiamo potuto conside-

rare e descrivere nel dettaglio e quello di inferenza esatta.

Page 48: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

44 Algoritmi esistenti

Page 49: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Capitolo 4

Estensioni proposte

In questo capitolo sono presentate tutte le estensioni che abbiamo proposto

per inferire la conoscenza descritta tramite gli LPAD in modo efficiente.

Dopo aver descritto i miglioramenti generali apportati all’algoritmo esatto

gia presente nell’interprete CPLINT, tratteremo in dettaglio tutti gli algoritmi

che abbiamo sviluppato, ovvero: un algoritmo iterativo relativamente semplice,

tre algoritmi approssimati basati su euristiche avanzate, rispettivamente Best-

First, K-Best e K-First, e due algoritmi stocastici di tipo Monte Carlo.

4.1 Algoritmo esatto

Ad onor del vero, l’algoritmo esatto per gli LPAD e gia stato propo-

sto in passato e pertanto non dovrebbe essere presentato come possibile

estensione in questa sezione. Tuttavia la versione utilizzata come termi-

ne di paragone per gli algoritmi che seguono negli esperimenti descritti al

Capitolo 5 contiene diversi contributi ispirati dall’interprete ProbLog che

lo rendono molto diverso dalla versione iniziale.

La differenza principale tra queste due versioni dello stesso algoritmo

e gia stata discussa nel Capitolo 3.1 e consiste nel processo esterno che

puo essere richiamato con un opportuno tempo di timeout per delegare la

valutazione tramite BDD delle spiegazioni. Si noti che per scelta proget-

tuale l’algoritmo esatto non fa uso dei tempi di timeout ma attende che il

processo generato termini prima di proseguire oltre.

Page 50: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

46 Estensioni proposte

4.2 Algoritmo iterativo con vincolo sulla proba-

bilita

Oltre al goal da risolvere, questo algoritmo necessita di quattro para-

metri per poter funzionare correttamente. I primi due parametri sono il

limite iniziale sul valore di probabilita ed il fattore di contrazione con cui ri-

durre tale limite ad ogni iterazione. Il terzo parametro e l’errore minimo

che l’algoritmo utilizza per stabilire quando uscire dal ciclo delle iterazio-

ni. L’ultimo parametro e il tempo di timeout per il calcolo dei BDD intro-

dotto grazie ai miglioramenti all’algoritmo esatto. I valori che abbiamo

utilizzato durante gli esperimenti che vedremo nel Capitolo 5 per questi

parametri sono rispettivamente 0.01, 0.1, 0.01 e 300 secondi. L’algoritmo

restituisce l’intervallo di probabilita in termini di lower bound e upper bound

a cui appartiene la probabilita della query in esame.

Inizialmente la soglia di probabilita equivale al valore del primo para-

metro e l’albero di derivazione SLDNF contiene solamente la query. Ad

ogni iterazione, l’algoritmo espande i percorsi presenti nell’albero di deri-

vazione parziale finche le spiegazioni presenti lungo i suoi rami diventano

complete o superano il valore di soglia sulla probabilita. Successivamente

da queste spiegazioni si generano tre insiemi. Il primo di questi corrispon-

de all’insieme delle spiegazioni complete e viene utilizzato per calcolare il

limite inferiore dell’intervallo di probabilita grazie al processo esterno de-

scritto nel Capitolo. 4.1. Il secondo corrisponde all’insieme delle spiega-

zioni complete ed incomplete che in modo del tutto analogo viene usato

per determinare il limite superiore dell’intervallo di probabilita. Il terzo

ed ultimo insieme coincide con l’insieme dei goal ancora da risolvere che

verra utilizzato in seguito.

Il ciclo principale di questo algoritmo si ripete finche l’insieme dei goal

da risolvere non risulta vuoto o l’ampiezza dell’intervallo di probabilita

appena calcolato non diventa piu piccolo dell’errore minimo.

Queste operazioni sono state riassunte nell’Algoritmo 4.1. Si noti che si

e scelto di utilizzare la probabilita come grandezza in base alla quale esplo-

rare lo spazio di ricerca perche garantisce la convergenza dell’algoritmo

Page 51: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

4.3 Algoritmo approssimato Best-First 47

Algoritmo 4.1 Pseudo-codice per l’algoritmo iterativo sulla probabilita

Input: query goalInput: initial probability bound boundInput: shrinking factor factorInput: minimum error epsilonOutput: lower bound for the given queryOutput: upper bound for the given query

goals! goalthreshold! boundrepeat

answers! solve(goals , threshold)separate(answers, complete, all, pending)lower ! bdd(complete)upper ! bdd(all)threshold! threshold · factorgoals! pending

until (goals = 0) & (upper $ lower * epsilon)return lowerreturn upper

nel minor tempo possibile.

4.3 Algoritmo approssimato Best-First

Per il corretto funzionamento di questo algoritmo occorre specificare

il numero di spiegazioni per iterazione desiderato, il fattore di contrazione per

il vincolo sulla probabilita e l’errore minimo oltre che, naturalmente, al goal

da risolvere. I valori di questi parametri che abbiamo utilizzato per gli

esperimenti nel Capitolo 5 sono rispettivamente 64, 0.1 e 0.01. Inoltre, sic-

come sfrutta le migliorie introdotte per l’algoritmo esatto, e possibile spe-

cificare anche il tempo di timeout come ulteriore parametro. Si ricorda che

il tipico valore per questo parametro e di 300 secondi. I valori restituiti al

termine dell’esecuzione sono il lower bound e l’upper bound dell’intervallo

di probabilita a cui appartiene la probabilita della query.

L’Algoritmo 4.2 contiene lo pseudo-codice che descrive questo algo-

ritmo. Durante la fase di inizializzazione, l’albero di derivazione parziale

Page 52: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

48 Estensioni proposte

contiene solo la query del problema. Nella prima parte del proprio ci-

clo di iterazione principale, l’algoritmo esegue un ciclo innestato grazie al

quale individua k nuove spiegazioni. Per trovare ogni nuova spiegazione,

l’algoritmo sceglie come punto di espansione dell’albero di derivazione

SLDNF parziale la spiegazione incompleta a cui compete il valore di pro-

babilita piu promettente. Si noti che l’algoritmo calcola un limite sul valore

di probabilita moltiplicando la probabilita associata al punto di espansio-

ne scelto per il fattore di contrazione specificato; questo valore serve ad

interrompere la ricerca delle spiegazioni entro un certo limite. Quando

ha individuato il numero desiderato di nuove spiegazioni o tutto l’albero

di derivazione e stato completamente esplorato, l’algoritmo procede alla

seconda parte del ciclo di iterazione principale. Durante questa fase, le

spiegazioni vengono utilizzate per comporre tre insiemi: l’insieme delle

spiegazioni complete, l’insieme delle spiegazioni complete e incomplete e

l’insieme dei goal ancora da risolvere. Il primo insieme viene utilizzato

per valutare il lower bound dell’intervallo di probabilita da calcolare, il

secondo per calcolarne l’upper bound ed il terzo verra utilizzato durante

la successiva eventuale iterazione come goal da risolvere.

Il ciclo appena descritto si sussegue nel tempo fino a quando l’insie-

me dei goal da risolvere non diventa vuoto o l’ampiezza dell’intervallo di

probabilita calcolato non scende al di sotto del valore dell’errore minimo.

4.4 Algoritmo approssimato K-Best

Questo algoritmo prevede che gli siano passati i seguenti parametri: il

fattore di contrazione per calcolare il valore limite sulla probabilita (il cui va-

lore tipico e 0.1), il numero di spiegazioni per iterazione desiderato (64) il tempo

di timeout (300 secondi) e, naturalmente, il goal da risolvere. Il valore resti-

tuito al termine dell’esecuzione e un lower bound sul valore di probabilita

della query.

Il comportamento di questo algoritmo ricalca per larga parte quello

dell’algoritmo Best-First presentato al Capitolo 4.3. I primi passi consisto-

no nell’inizializzare il nodo radice dell’albero di derivazione al goal da

Page 53: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

4.4 Algoritmo approssimato K-Best 49

Algoritmo 4.2 Pseudo-codice per l’algoritmo euristico Best-First

Input: query goalInput: number of explanation per iteration kInput: shrinking factor factorInput: minimum error epsilonOutput: lower bound for the given queryOutput: upper bound for the given query

goals! goalrepeat

for i = 1 to k doif goals = 0 then

breakend ifexpanding ! best(goals)goals! goals$ expandingbound! prob(expanding) · factoranswers! answers + solve(expanding, bound)

end forseparate(answers, complete, all, pending)lower ! bdd(complete)upper ! bdd(all)goals! pending

until (goals = 0) & (upper $ lower * epsilon)return lower

risolvere e nell’impostare l’insieme delle migliori spiegazioni all’insieme

vuoto. Dopodiche inizia il ciclo principale della procedura, come si puo

vedere dal codice presentato con l’Algoritmo 4.3.

In questo ciclo, si calcola la soglia di probabilita moltiplicando la pro-

babilita che compete all’insieme dei goal per il fattore di contrazione e

l’albero di derivazione SLDNF viene fatto crescere finche non viene indi-

viduato il numero di nuove spiegazioni desiderato nei limiti del valore

di soglia. Queste generano anche in questo caso l’insieme delle spiega-

zioni complete e dei goal ancora da risolvere. Diversamente da prima, le

spiegazioni complete non vengono direttamente utilizzate per calcolare il

limite inferiore sul valore di probabilita della query in esame ma vengono

passate ad una procedura di branch and bound che si preoccupa di inserirle

in modo ordinato nella lista delle migliori spiegazioni. Le spiegazioni che

Page 54: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

50 Estensioni proposte

Algoritmo 4.3 Pseudo-codice per l’algoritmo euristico K-Best

Input: query goalInput: shrinking factor factorInput: number of explanation per iteration kOutput: lower bound for the given query

goals! goalbest! 0repeat

bound! prob(goals) · factoranswers! solve(goals , bound)separate(answers, complete, , pending)best! branch and bound(k, best, complete)goals! pending

until (goals = 0)return bdd(best)

eccedono alle dimensione desiderate per la lista vengono scartate. Il lower

bound sulla probabilita della query viene calcolato solo adesso passando

la lista aggiornata delle migliori spiegazioni al solito processo esterno per

la risoluzione dei BDD.

Il ciclo termina quando l’insieme dei goal ancora da risolvere diventa

vuoto; quindi si calcola e si restituisce il valore di probabilita equivalente

alla migliori spiegazioni.

4.5 Algoritmo approssimato K-First

Questo algoritmo nasce dalla volonta di sperimentare un metodo che

riduca drasticamente la quantita di risorse computazionali richieste dal

calcolo delle spiegazioni anche a scapito della qualita del risultato. I soli

parametri oltre al goal da derivare di cui questo algoritmo necessita sono

il fattore di contrazione sulla probabilita, il numero di spiegazioni desidera-

to ed il solito tempo di timeout da utilizzare per la risoluzione dei BDD.

Come e stato piu volte ricordato, i valori piu tipici per questi parametri

sono rispettivamente 0.1, 64 e 300 secondi. Anche in questo caso il valore

restituito e un lower bound sul valore di probabilita della query in esame.

Page 55: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

4.6 Algoritmo stocastico Monte Carlo 51

Algoritmo 4.4 Pseudo-codice per l’algoritmo euristico K-First

Input: query goalInput: shrinking factor factorInput: number of desired explanation kOutput: lower bound for the given query

counter ! 0first! 0repeat

bound! prob(goals) · factoranswers! solve(goals , bound)separate(answers, complete, , pending)counter ! counter + count(answers)first! first + completegoals! pending

until (goals = 0) & (counter - k)return bdd(first)

Come si puo osservare dal codice dell’Algoritmo 4.4, questa procedu-

ra consiste in un ciclo molto semplice. L’albero di derivazione contiene

inizialmente solo il goal da derivare poi, dopo aver calcolato la soglia di

probabilita moltiplicando la probabilita che compete all’insieme dei goal

per il fattore di contrazione, viene fatto crescere nei limiti di tale valore

finche non si e ottenuto il numero desiderato di spiegazioni o non ci so-

no piu goal da derivare. L’insieme di spiegazioni ottenuto viene passato

alla consueta procedura che si occupa di separarli in modo da conservare

solamente le spiegazioni complete. Si noti che a seconda della natura del

problema affrontato, l’insieme delle spiegazioni complete rimasto potreb-

be contenere un numero minore di elementi rispetto a quello desiderato.

Questo insieme di spiegazioni complete viene utilizzato dal processo a cui

viene delegata la valutazione dei BDD per calcolare il lower bound sulla

probabilita della query in esame da restituire.

4.6 Algoritmo stocastico Monte Carlo

Questo algoritmo e completamente diverso da tutti quelli presentati

finora perche non si appoggia ai BDD per valutare le probabilita associate

Page 56: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

52 Estensioni proposte

alle spiegazioni ma ad un approccio stocastico. Oltre al goal da derivare,

questo algoritmo deve conoscere i seguenti parametri: numero di campioni

per iterazione desiderato il cui tipico valore utilizzato durante gli esperi-

menti e 64 e l’errore minimo il cui consueto valore e 0.01. Il valore restituito

da questa procedura e la probabilita equivalente alla query in esame.

Appena avviato l’algoritmo, l’insieme dei campioni viene inizializzato

all’insieme vuoto ed i contatori per il numero di successi ed il numero di

campioni totali viene azzerato.

Durante ogni iterazione, questo algoritmo si preoccupa di esplorare

daccapo lo spazio di ricerca del problema mediante una strategia depth-

first. Ogni volta che il percorso si trova ad un bivio, significa che occorre

effettuare una scelta per continuare la costruzione dell’albero di derivazio-

ne parziale. In altre parole, si puo dire che grazie a questo stratagemma e

possibile campionare le istanze del problema in modo incrementale ridu-

cendo drasticamente la durata dell’operazione. Il campionamento si puo

concludere con un successo o un fallimento a seconda che la query in esa-

me sia derivabile o no nell’istanza campionata. Mentre il contatore dei

campioni generati viene sempre aggiornato, il contatore dei successi viene

ovviamente aggiornato solo in caso di successo. Le iterazioni terminano

solo quando e stato campionato un multiplo del numero di campioni de-

siderato e l’mpiezza dell’intervallo di confidenza sui campioni generati e

minore dell’errore minimo.

L’intervallo di confidenza viene calcolato mediate la seguente formula:

p ± z1#"/2

*

p · (1$ p)

n

in cui p e la proporzione stimata per il campione statistico, z1#"/2 e 1$#/2

percentile della distribuzione normale standard ed n il numero di cam-

pioni. Si noti che questa formula non e applicabile per valori di proba-

bilita prossimi allo 0 o all’1. Per ovviare a questo problema si e utiliz-

zato la regola empirica di Brown che consiglia di verificare che (n · p >

5) % (n · (1$ p)).

Il valore di probabilita da restituire viene infine calcolato come rappor-

Page 57: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

4.7 Algoritmo stocastico Monte Carlo con memoria 53

Algoritmo 4.5 Pseudo-codice per l’algoritmo stocastico Monte Carlo

Input: query goalInput: number of samples per iteration kInput: minimum error epsilonOutput: probability of the given query

success! 0number ! 0samples! 0repeat

current! sample(goal, solution)if solution = true then

success! success + 1end ifnumber ! number + 1samples! samples + currentinterval! confidence(samples)

until (number mod k = 0) % (interval < epsilon)return success/number

to tra il numero di successi e il numero totale di campioni generati.

L’Algoritmo 4.5 contiene il codice della procedura che abbiamo appena

descritto.

4.7 Algoritmo stocastico Monte Carlo con memo-

ria

Questa variante dell’algoritmo Monte Carlo necessita esattamente de-

gli stessi parametri dell’algoritmo da cui trae origine, restituisce lo stesso

risultato e si comporta anche esattamente allo stesso modo. Per questo si

puo dire che l’Algoritmo 4.5 la descriva perfettamente.

L’unica differenza tra queste due varianti dello stesso algoritmo e la

struttura dati che viene utilizzata per memorizzare le scelte delle spiega-

zioni che descrivono ogni istanza campionata del problema. Nella ver-

sione originale di questa procedura, queste informazioni venivano salvate

nell’albero di derivazione SLDNF mentre in questa variante vengono me-

morizzate in un database ad accesso veloce interno all’interprete Prolog.

Page 58: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

54 Estensioni proposte

In pratica e sufficiente sostituire i predicati che descrivono il meccanismo

di ricerca dei percorsi sui grafi dell’algoritmo Montecarlo

path(X,Y )! path(X,Y, [X], ).

path(X,X,A,A).

path(X,Y,A,R)!

X /= Y, arc(X,Z),¬member(Z,A), path(Z, Y, [Z|A], R).

arc(X,Y )! edge(Y,X).

arc(X,Y )! edge(X,Y ).

con la seguente versione opportunamente modificata:

memopath(X,Y )!

eraseall(visited), recordz (visited , X, ),memopath(X,Y, [X], ).

memopath(X,X,A,A).

memopath(X,Y,A,R)!

X /= Y, arc(X,Z),

recordzifnot(visited, Z, ),memopath(Z, Y, [Z|A], R).

arc(X,Y )! edge(Y,X).

arc(X,Y )! edge(X,Y ).

Il vantaggio principale derivante da questa scelta consiste nella sostan-

ziale riduzione dei tempi di accesso alle variabili, che si traduce in tempi

di esecuzione complessivi sensibilmente piu brevi.

Questa soluzione ha anche uno svantaggio non trascurabile che per

fortuna si manifesta solamente con gli LPAD che contengono incertezza

anche nelle regole di derivazione. Con la versione originale di questo al-

goritmo, il meccanismo di backtracking di Prolog lavorava in sinergia con

quello per la costruzione incrementale dei campioni in modo da esplorare

eventuali percorsi alternativi in caso di insuccesso lungo un ramo. Avendo

rimosso le spiegazioni dall’albero di derivazione parziale, quando si trova

nelle stesse condizioni questa variante non e piu in grado di esplorare le

strade alternative in modo intelligente.

Questa interferenza e seria e potenzialemente pericolosa, pertanto ne-

cessita sicuramente di futuri approfondimenti.

Page 59: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

4.8 Riepilogo 55

4.8 Riepilogo

In questo capitolo abbiamo visto quali miglioramenti generali siano

stati applicati all’algoritmo esatto dell’interprete CPLINT e agli altri al-

goritmi che abbiamo sviluppato. Inoltre abbiamo analizzato ogni singolo

algoritmo (iterativo, euristico Best-First, euristico K-Best, euristico K-First,

stocastico Monte Carlo e variante) descrivendone le peculiarita ed i tipici

parametri di utilizzo.

Page 60: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

56 Estensioni proposte

Page 61: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Capitolo 5

Esperimenti

Questo capitolo e diviso in due parti. Nella prima parte presentiamo alcu-

ni dataset sintetici appositamente creati per valutare l’efficacia degli algoritmi

sviluppati nel precedente Capitolo 4 e mostriamo i risultati delle simulazioni che

abbiamo condotto su di essi.

Nella seconda parte del capitolo, invece, introduciamo alcuni importanti da-

taset reali gia utilizzati dagli interpreti ProbLog ed LPAD di esempio: dopo aver

ripetuto le simulazioni su questi nuovi dati, introduciamo i risultati conseguiti in

modo da poterli confrontare con quelli pubblicati in letteratura.

5.1 Test sintetici

Come gia accennato nell’introduzione al capitolo, in questa sezione

vengono presentati alcuni dataset che sono stati appositamente inventati

per verificare l’efficienza degli algoritmi proposti e che non modellano al-

cuna applicazione reale. I problemi di verifica degli algoritmi consistono

nel calcolo della probabilita dei percorsi dei grafi equivalenti ai programmi

descritti in ogni dataset.

Tutti gli algoritmi da sottoporre a verifica sono stati implementati con

YAP Prolog, una implementazione open source allo stato dell’arte del lin-

guaggio Prolog, ed utilizzano i pacchetti CUDD e SimpleCUDD come

componente per la gestione dei BDD. Ogni esperimento e stato esegui-

to su macchine Linux dotate di processore Intel Core 2 Duo E6550 (2333

Page 62: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

58 Esperimenti

Figura 5.1: Costruzione iterativa dei grafi sintetici a percorsi paralleli.

MHz) e 4 Gb di RAM limitando a 24 ore il tempo massimo di esecuzione

di ogni esperimento.

5.1.1 Grafi a percorsi paralleli

L’idea alla base di questi grafi artificiali e che esistano piu percorsi che

portano dal nodo di partenza a quello di destinazione. Questi grafi si co-

struiscono in modo iterativo aggiungendo un nuovo percorso ad ogni pas-

saggio successivo. Ogni nuovo percorso, inoltre, deve essere formato da

un numero di archi pari al numero di archi del percorso precedente piu

uno.

La Figura 5.1 rappresenta i grafi prodotti dalle prime tre iterazioni

della procedura generatrice presentata nell’Algoritmo 5.1.

Da un punto di vista strutturale, questi grafi risultano essere piuttosto

semplici e non troppo pesanti in termini di dimensioni. Sono un ottimo

punto di partenza per valutare l’efficacia dei nuovi algoritmi proposti.

Gli algoritmi presentati nel Capitolo 4 sono stati testati su tutti i grafi

procedendo per numero di percorsi crescente. Gli esperimenti sono stati

interrotti dopo 24 ore di esecuzione o al termine dell’esecuzione del primo

grafo che ha provocato l’esaurimento della memoria a disposizione del

processo.

Le euristiche degli algoritmi Deep-It e Best-First introducono un ove-

rhead non trascurabile per problemi relativamente semplici come quelli

modellati da questo tipo di grafi. Come si vede in Tabella 5.1, questi algo-

Page 63: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 59

Esatto Deep-It Best-First# tres tbdd ttot tres tbdd ttot tres tbdd ttot

12 0.000 0.004 0.004 0.000 0.020 0.020 0.000 0.004 0.00424 0.008 0.068 0.076 0.020 0.168 0.188 0.000 0.016 0.01636 0.080 0.404 0.484 0.025 0.588 0.613 0.000 0.036 0.03648 0.081 0.872 0.953 0.048 1.677 1.725 0.004 0.052 0.05660 0.100 1.729 1.829 $ $ $ 0.028 0.152 0.18072 0.184 3.345 3.529 $ $ $ 0.028 0.172 0.20084 0.273 5.885 6.158 $ $ $ 0.020 0.128 0.14896 0.388 9.553 9.941 $ $ $ $ $ $108 0.604 15.316 15.920 $ $ $ $ $ $120 0.785 23.153 23.938 $ $ $ $ $ $132 1.032 33.382 34.414 $ $ $ $ $ $144 1.453 47.571 49.024 $ $ $ $ $ $156 1.825 66.116 67.941 $ $ $ $ $ $168 $ $ $ $ $ $ $ $ $180 $ $ $ $ $ $ $ $ $192 $ $ $ $ $ $ $ $ $204 $ $ $ $ $ $ $ $ $216 $ $ $ $ $ $ $ $ $228 $ $ $ $ $ $ $ $ $240 $ $ $ $ $ $ $ $ $252 $ $ $ $ $ $ $ $ $264 $ $ $ $ $ $ $ $ $276 $ $ $ $ $ $ $ $ $288 $ $ $ $ $ $ $ $ $300 $ $ $ $ $ $ $ $ $

Tabella 5.1: Tempi di risoluzione tres, tempi di valutazione dei BDD tbdd e tem-pi totali ttot degli esperimenti sui grafi a percorsi paralleli con algo-ritmi Esatto, Deep-It e Best-First a confronto. Per motivi di spazio,la tabella riporta solamente una campionatura uniforme dei risultatisignificativi ottenuti.

Page 64: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

60 Esperimenti

Monte MemoK-Best K-First Carlo Path

# tres tbdd ttot tres tbdd ttot ttot ttot

12 0.000 1.425 1.425 0.000 0.000 0.000 0.188 $24 0.022 3.446 3.468 0.000 0.000 0.000 0.348 $36 0.091 34.630 34.721 0.000 0.004 0.004 0.573 $48 0.371 31.617 31.988 0.016 0.000 0.016 0.837 $60 0.922 81.549 82.471 0.004 0.000 0.004 1.152 $72 1.772 80.966 82.738 0.024 0.000 0.024 1.565 $84 2.593 79.659 82.252 0.064 0.000 0.064 1.893 $96 3.958 78.134 82.092 0.032 0.000 0.032 2.381 $108 5.355 79.605 84.960 0.032 0.000 0.032 2.925 $120 7.578 78.698 86.276 0.052 0.000 0.052 3.473 $132 10.366 81.255 91.621 0.060 0.000 0.060 4.244 $144 11.003 78.542 89.545 0.052 0.000 0.052 4.529 $156 16.463 80.446 96.909 0.028 0.000 0.028 5.528 $168 20.747 78.271 99.018 0.068 0.004 0.072 6.505 $180 24.472 80.693 105.165 0.088 0.000 0.088 6.949 $192 28.936 78.824 107.760 0.036 0.000 0.036 76.521 $204 40.067 79.867 119.934 0.068 0.000 0.068 82.397 $216 48.040 77.737 125.777 0.048 0.000 0.048 80.009 $228 59.477 79.784 139.261 0.072 0.000 0.072 77.809 $240 66.584 79.975 146.559 0.096 0.000 0.096 86.225 $252 84.701 81.679 166.380 0.056 0.000 0.056 117.415 $264 96.058 79.200 175.258 0.072 0.000 0.072 118.299 $276 113.713 80.934 194.647 0.096 0.000 0.096 120.147 $288 135.928 78.948 214.876 0.128 0.000 0.128 125.103 $300 154.095 79.229 233.324 0.152 0.000 0.152 124.391 $

Tabella 5.2: Tempi di risoluzione tres, tempi di valutazione dei BDD tbdd e tempitotali ttot degli esperimenti sui grafi a percorsi paralleli con algoritmiK-Best, K-First, Monte Carlo e Memo Path a confronto. Per motivi dispazio, la tabella riporta solamente una campionatura uniforme deirisultati significativi ottenuti.

Page 65: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 61

Algoritmo 5.1 Algoritmo per grafi artificiali a percorsi paralleli

for step = 1 to 300 donew ! 2for lane = 1 to step do

for length = 1 to lane docurrent! 0if length = lane then

print edge(current, 1) : 0.3.else

print edge(current, new) : 0.3.current! newnew ! new + 1

end ifend for

end forend for

ritmi riescono a risolvere un minor numero di step dell’algoritmo esatto.

Inoltre, a parita di step, Deep-It risulta essere piu lento e Best-First piu ve-

loce rispetto all’algoritmo esatto. Se si osservano la Tabella 5.3 e la Tabel-

la 5.4, si evince che al lower ed upper bound calcolato da queste estensioni

compete un errore percentuale nullo o quasi nullo, almeno finche e stato

possibile fare un confronto con i risultati esatti.

La logica degli algoritmi K-Best e K-First e meno onerosa di quella de-

gli algoritmi considerati sopra ed infatti, come si puo vedere in Tabella 5.2,

questi sono stati in grado di risolvere tutti gli step che gli sono stati sot-

toposti in tempi sostanzialmente brevi. Tuttavia, se con K-Best abbiamo

ottenuto un buon lower bound ed un errore percentuale nullo, con K-First

abbiamo ottenuto risultati disastrosi. Questo risultato non ci stupisce per-

che l’algoritmo K-First privilegia la velocita di esecuzione all’accuratezza

dei risultati per ipotesi di progetto ed infatti i risultati che produce sono

ottenuti in modo quasi istantaneo. La Tabella 5.5 pone a confronto i valori

di probabilita e gli errori percentuali prodotti da questi algoritmi.

La Tabella 5.2 raccoglie anche i tempi di esecuzione per gli algoritmi

Monte Carlo e Memo Path, la variante di Monte Carlo con memoria. L’ap-

proccio statistico di Monte Carlo e cosı leggero per il sistema da essere in

Page 66: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

62 Esperimenti

Figura 5.2: Costruzione iterativa dei grafi sintetici a percorsi ramificati.

grado di risolvere tutti gli step che gli sono stati sottoposti nella meta del

tempo impiegato da K-Best, il miglior algoritmo fino a questo punto. Da

un punto di vista del valore di probabilita calcolato e del relativo erro-

re percentuale, Monte Carlo ha prodotto risultati piu che accettabili per la

velocita di elaborazione seppur di poco inferiori rispetto a quelli di K-Best.

I valori di probabilita e relativi errori percentuali di questi algoritmi sono

stati riportati in Tabella 5.6. Si noti che la variante Memo Path di Mon-

te Carlo non e stata in grado di produrre risultati perche sia i fatti che le

regole dei problemi equivalenti ai grafi considerati contengono incertezza.

5.1.2 Grafi a percorsi ramificati

Il concetto che ha ispirato la creazione di questi grafi artificiali e che

ci fossero piu percorsi molto ramificati congiungenti il nodo di partenza

a quello di destinazione. Questo scenario dunque risulta essere l’ideale

per saggiare l’effettiva capacita degli algoritmi implementati di ridurre lo

spazio di ricerca in modo intelligente grazie alla loro euristica.

Anche questi grafi sono stati generati in modo iterativo. Ogni iterazio-

ne della procedura generatrice aggiunge al grafo 2n percorsi di lunghezza

n+1 che si sviluppano tra il nodo radice e il nodo di destinazione. Il primo

arco e comune a tutti i percorsi, poi da ogni nodo intermedio scaturiscono

due nuovi archi finche la lunghezza dei percorsi parziali non e pari a n. A

questo punto i percorsi si richiudono sul nodo di destinazione, diventando

cosı di lunghezza n + 1.

Page 67: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 63

Deep-It# Esatto Plow e(P) Pup e(P)

2 0.095670 0.095670 0.00% 0.095670 0.00%4 0.096211 0.096211 0.00% 0.096211 0.00%6 0.096215 0.096215 0.00% 0.096215 0.00%8 0.096216 0.096216 0.00% 0.096216 0.00%10 0.096216 0.096216 0.00% 0.096216 0.00%12 0.096216 0.096216 0.00% 0.096216 0.00%14 0.096216 0.096216 0.00% 0.096216 0.00%16 0.096216 0.096216 0.00% 0.096216 0.00%18 0.096216 0.096216 0.00% 0.096216 0.00%20 0.096216 0.096216 0.00% 0.096216 0.00%22 0.096216 0.096216 0.00% 0.096216 0.00%24 0.096216 0.096216 0.00% 0.096216 0.00%26 0.096216 0.096216 0.00% 0.096216 0.00%28 0.096216 0.096216 0.00% 0.096216 0.00%30 0.096216 0.096216 0.00% 0.096216 0.00%32 0.096216 0.096216 0.00% 0.096216 0.00%34 0.096216 0.096216 0.00% 0.096216 0.00%36 0.096216 0.096216 0.00% 0.096216 0.00%38 0.096216 0.096216 0.00% 0.096216 0.00%40 0.096216 0.096216 0.00% 0.096216 0.00%42 0.096216 0.096216 0.00% 0.096216 0.00%44 $ 0.096216 $ 0.096216 $46 $ 0.096216 $ 0.096216 $48 $ 0.096216 $ 0.096216 $50 $ 0.096216 $ 0.096216 $

Tabella 5.3: Lower bound Plow, upper bound Pup e relativi errori percentuali e(P)rispetto alla probabilita dell’algoritmo Esatto sui grafi a percorsi pa-ralleli con algoritmo Deep-It. Per motivi di spazio, la tabella ripor-ta solamente una campionatura uniforme dei risultati significativiottenuti.

Page 68: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

64 Esperimenti

Best-First# Esatto Plow e(P) Pup e(P)

2 0.095670 0.095670 0.00% 0.095670 0.00%4 0.096211 0.096211 0.00% 0.096211 0.00%6 0.096215 0.096215 0.00% 0.096215 0.00%8 0.096216 0.096215 0.00% 0.096216 0.00%10 0.096216 0.096215 0.00% 0.096217 0.00%12 0.096216 0.096215 0.00% 0.096218 0.00%14 0.096216 0.096215 0.00% 0.096218 0.00%16 0.096216 0.096215 0.00% 0.096219 0.00%18 0.096216 0.096215 0.00% 0.096220 0.00%20 0.096216 0.096215 0.00% 0.096221 0.01%22 0.096216 0.096215 0.00% 0.096221 0.01%24 0.096216 0.096215 0.00% 0.096222 0.01%26 0.096216 0.096215 0.00% 0.096223 0.01%28 0.096216 0.096215 0.00% 0.096223 0.01%30 0.096216 0.096215 0.00% 0.096224 0.01%32 0.096216 0.096215 0.00% 0.096225 0.01%34 0.096216 0.096215 0.00% 0.096226 0.01%36 0.096216 0.096215 0.00% 0.096226 0.01%38 0.096216 0.096215 0.00% 0.096227 0.01%40 0.096216 0.096215 0.00% 0.096228 0.01%42 0.096216 0.096215 0.00% 0.096228 0.01%44 $ 0.096215 $ 0.096229 $46 $ 0.096215 $ 0.096230 $48 $ 0.096215 $ 0.096231 $50 $ 0.096215 $ 0.096231 $

Tabella 5.4: Lower bound Plow, upper bound Pup e relativi errori percentuali e(P)rispetto alla probabilita dell’algoritmo Esatto sui grafi a percorsi pa-ralleli con algoritmo Best-First. Per motivi di spazio, la tabella ri-porta solamente una campionatura uniforme dei risultati significativiottenuti.

Page 69: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 65

K-Best K-First# Esatto Plow e(P) Plow e(P)

2 0.095670 0.095670 0.00% 0.000000 100.00%4 0.096211 0.096211 0.00% 0.000000 100.00%6 0.096215 0.096215 0.00% 0.000000 100.00%8 0.096216 0.096216 0.00% 0.000000 100.00%10 0.096216 0.096216 0.00% 0.000000 100.00%12 0.096216 0.096216 0.00% 0.000000 100.00%14 0.096216 0.096216 0.00% 0.000000 100.00%16 0.096216 0.096216 0.00% 0.000000 100.00%18 0.096216 0.096216 0.00% 0.000000 100.00%20 0.096216 0.096216 0.00% 0.000000 100.00%22 0.096216 0.096216 0.00% 0.000000 100.00%24 0.096216 0.096216 0.00% 0.000000 100.00%26 0.096216 0.096216 0.00% 0.000000 100.00%28 0.096216 0.096216 0.00% 0.000000 100.00%30 0.096216 0.096216 0.00% 0.000000 100.00%32 0.096216 0.096216 0.00% 0.000000 100.00%34 0.096216 0.096216 0.00% 0.000000 100.00%36 0.096216 0.096216 0.00% 0.000000 100.00%38 0.096216 0.096216 0.00% 0.000000 100.00%40 0.096216 0.096216 0.00% 0.000000 100.00%42 0.096216 0.096216 0.00% 0.000000 100.00%44 $ 0.096216 $ 0.000000 $46 $ 0.096216 $ 0.000000 $48 $ 0.096216 $ 0.000000 $50 $ 0.096216 $ 0.000000 $

Tabella 5.5: Lower bound Plow e relativo errore percentuale e(P) rispetto alla pro-babilita dell’algoritmo Esatto sui grafi a percorsi paralleli con algorit-mi K-Best e K-First. Per motivi di spazio, la tabella riporta solamenteuna campionatura uniforme dei risultati significativi ottenuti.

Page 70: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

66 Esperimenti

Monte Carlo Memo Path# Esatto Pstat e(P) Pstat e(P)

2 0.095670 0.096461 0.83% $ $4 0.096211 0.098795 2.69% $ $6 0.096215 0.097017 0.83% $ $8 0.096216 0.097973 1.83% $ $10 0.096216 0.101324 5.31% $ $12 0.096216 0.101425 5.41% $ $14 0.096216 0.091657 4.74% $ $16 0.096216 0.097159 0.98% $ $18 0.096216 0.098655 2.53% $ $20 0.096216 0.090731 5.70% $ $22 0.096216 0.098325 2.19% $ $24 0.096216 0.094985 1.28% $ $26 0.096216 0.094985 1.28% $ $28 0.096216 0.096115 0.10% $ $30 0.096216 0.094913 1.35% $ $32 0.096216 0.098325 2.19% $ $34 0.096216 0.094042 2.26% $ $36 0.096216 0.096474 0.27% $ $38 0.096216 0.096474 0.27% $ $40 0.096216 0.097372 1.20% $ $42 0.096216 0.094334 1.96% $ $44 $ 0.100771 $ $ $46 $ 0.093381 $ $ $48 $ 0.094622 $ $ $50 $ 0.098395 $ $ $

Tabella 5.6: Probabilita Pstat e relativo errore percentuale e(P) rispetto alla pro-babilita dell’algoritmo Esatto sui grafi a percorsi paralleli con algo-ritmi Monte Carlo e Memo Path. Per motivi di spazio, la tabella ri-porta solamente una campionatura uniforme dei risultati significativiottenuti.

Page 71: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 67

Algoritmo 5.2 Algoritmo per grafi artificiali a percorsi ramificati

for step = 1 to 25 donew ! 2current! 1for length = 1 to step do

print edge(0, current) : 0.3.if length > 1 then

left! 2length#1 $ 2new ! new + 1

elsecurrent! new

end iffor node = 1 to (2length#1 $ 1) do

if left = 0 thenprint edge(current, 1) : 0.3.print edge(current, 1) : 0.3.

elseprint edge(current, new) : 0.3.print edge(current, new + 1) : 0.3.left! left$ 2new ! new + 2

end ifcurrent! current + 1

end forend for

end for

La Figura 5.2 mostra un esempio dei primi tre grafi prodotti dalla

procedura generatrice presentata nell’Algoritmo 5.2.

Rispetto a quelli introdotti al Capitolo 5.1.1, questi grafi risultano es-

sere piuttosto complessi come testimonia la loro dimensione. La veloce

esplosione del numero di percorsi, infatti, produce grafi di notevoli di-

mensioni tanto che, pur limitandoci a 25 iterazioni, abbiamo ottenuto file

dell’ordine di grandezza dei 2 Gb.

I grafi generati sono stati sottoposti a test utilizzando tutti gli algoritmi

proposti, procedendo per complessita crescente dei grafi. Come sempre,

gli esperimenti sono stati interrotti dopo 24 ore di esecuzione o al termi-

ne dell’esecuzione del primo grafo che ha provocato l’esaurimento della

Page 72: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

68 Esperimenti

memoria a disposizione dell’applicazione di test.

Come si puo vedere in Tabella 5.7, le performance di Deep-It e Best-

First sono migliori rispetto al caso dei grafi a percorsi paralleli nonostante

questi grafi siano molto piu complessi. Sebbene abbiano risolto meno step

in valore assoluto rispetto alla casistica precedente, in questo caso Deep-

It ha risolto quasi lo stesso numero di step risolti dall’algoritmo esatto e

Best-First addirittura qualche step in piu. Dal punto di vista della qua-

lita dei valori di probabilita calcolati, anche in questo caso abbiamo errori

percentuali nulli, come si evince dalla Tabella 5.9 e Tabella 5.10.

Il comportamento degli algoritmi K-Best e K-First e risultato essere an-

cora migliore di quello appena citato: entrambi sono stati in grado di ela-

borare piu del doppio degli step risolti dall’algoritmo esatto. Per quanto

riguarda la qualita dei valori di probabilita calcolati, entrambi gli algorit-

mi confermano il comportamento mostrato con i grafi a percorsi paralleli.

K-Best produce risultati attendibili con errore percentuale pressoche nul-

lo finche e stato possibile confrontrali con quelli esatti, e K-First risultati

terribili in tempi quasi nulli. La Tabella 5.8 documenta i tempi di esecu-

zione di K-Best e K-First mentre la Tabella 5.11 propone i relativi valori di

probabilita ed errori percentuali calcolati.

L’algoritmo Monte Carlo citato nella Tabella 5.8 gia introdotta e riusci-

to anch’esso a risolvere piu del doppio degli step elaborati dall’algoritmo

esatto. In merito alle performance, ha restituito i valori di probabilita cal-

colati in tempo quasi nullo, paragonabile a quello di K-First, e con errore

percentuale piu che accettabile. Anche in questo caso la variante Memo

Path non ha prodotto risultati per via dell’incertezza presente nelle regole

di questi problemi. La Tabella 5.12 presenta i risultati relativi agli utlimi

due algoritmi citati.

5.1.3 Grafi a percorsi ridondanti

Questa classe di grafi artificiali nasce dalla necessita di coniugare una

complessita paragonabile a quella dei grafi a percorsi ramificati del Capi-

Page 73: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 69

Esatto Deep-It Best-First# tres tbdd ttot tres tbdd ttot tres tbdd ttot

1 0.000 0.000 0.000 0.000 0.004 0.004 0.000 0.000 0.0002 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.0003 0.000 0.004 0.004 0.000 0.004 0.004 0.000 0.000 0.0004 0.000 0.000 0.000 0.000 0.008 0.008 0.000 0.008 0.0085 0.000 0.004 0.004 0.004 0.020 0.024 0.000 0.016 0.0166 0.004 0.028 0.032 0.004 0.052 0.056 0.004 0.032 0.0367 0.004 0.064 0.068 0.004 0.148 0.152 0.004 0.044 0.0488 0.016 0.204 0.220 $ $ $ 0.004 0.072 0.0769 $ $ $ $ $ $ 0.004 0.084 0.08810 $ $ $ $ $ $ 0.004 0.152 0.15611 $ $ $ $ $ $ 0.052 11.166 11.21812 $ $ $ $ $ $ $ $ $13 $ $ $ $ $ $ $ $ $14 $ $ $ $ $ $ $ $ $15 $ $ $ $ $ $ $ $ $16 $ $ $ $ $ $ $ $ $17 $ $ $ $ $ $ $ $ $18 $ $ $ $ $ $ $ $ $19 $ $ $ $ $ $ $ $ $20 $ $ $ $ $ $ $ $ $21 $ $ $ $ $ $ $ $ $22 $ $ $ $ $ $ $ $ $23 $ $ $ $ $ $ $ $ $24 $ $ $ $ $ $ $ $ $25 $ $ $ $ $ $ $ $ $

Tabella 5.7: Tempi di risoluzione tres, tempi di valutazione dei BDD tbdd e tem-pi totali ttot degli esperimenti sui grafi a percorsi ramificati conalgoritmi Esatto, Deep-It e Best-First a confronto.

Page 74: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

70 Esperimenti

Monte MemoK-Best K-First Carlo Path

# tres tbdd ttot tres tbdd ttot ttot ttot

1 0.000 0.178 0.178 0.000 0.000 0.000 0.056 $2 0.000 0.190 0.190 0.000 0.000 0.000 0.072 $3 0.000 0.135 0.135 0.000 0.000 0.000 0.100 $4 0.000 0.128 0.128 0.000 0.000 0.000 0.124 $5 0.000 0.138 0.138 0.000 0.000 0.000 0.116 $6 0.005 1.039 1.044 0.000 0.000 0.000 0.180 $7 0.009 1.143 1.152 0.000 0.000 0.000 0.128 $8 0.019 1.353 1.372 0.000 0.000 0.000 0.160 $9 0.055 1.153 1.208 0.000 0.000 0.000 0.165 $10 0.097 1.337 1.434 0.004 0.000 0.004 0.184 $11 0.204 1.816 2.020 0.004 0.000 0.004 0.204 $12 0.510 1.399 1.909 0.032 0.000 0.032 0.240 $13 0.978 2.265 3.243 0.020 0.000 0.020 0.304 $14 1.747 2.040 3.787 0.040 0.000 0.040 0.305 $15 5.359 2.936 8.295 0.069 0.000 0.069 0.424 $16 12.379 3.918 16.297 0.180 0.004 0.184 0.593 $17 19.741 4.682 24.423 0.580 0.000 0.580 0.481 $18 73.018 10.048 83.066 1.276 0.004 1.280 1.293 $19 $ $ $ $ $ $ $ $20 $ $ $ $ $ $ $ $21 $ $ $ $ $ $ $ $22 $ $ $ $ $ $ $ $23 $ $ $ $ $ $ $ $24 $ $ $ $ $ $ $ $25 $ $ $ $ $ $ $ $

Tabella 5.8: Tempi di risoluzione tres, tempi di valutazione dei BDD tbdd etempi totali ttot degli esperimenti sui grafi a percorsi ramificaticon algoritmi Esatto, K-Best, K-First, Monte Carlo e Memo Path aconfronto.

Page 75: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 71

Deep-It# Esatto Plow e(P) Pup e(P)

1 0.090000 0.090000 0.00% 0.090000 0.00%2 0.099639 0.099639 0.00% 0.099639 0.00%3 0.101256 0.101256 0.00% 0.101256 0.00%4 0.101544 0.101544 0.00% 0.101544 0.00%5 0.101596 0.101596 0.00% 0.101596 0.00%6 0.101605 0.101605 0.00% 0.101605 0.00%7 0.101607 0.101607 0.00% 0.101607 0.00%8 0.101607 $ $ $ $9 $ $ $ $ $10 $ $ $ $ $11 $ $ $ $ $12 $ $ $ $ $13 $ $ $ $ $14 $ $ $ $ $15 $ $ $ $ $16 $ $ $ $ $17 $ $ $ $ $18 $ $ $ $ $19 $ $ $ $ $20 $ $ $ $ $21 $ $ $ $ $22 $ $ $ $ $23 $ $ $ $ $24 $ $ $ $ $25 $ $ $ $ $

Tabella 5.9: Lower bound Plow, upper bound Pup e relativi errori percentualie(P) rispetto alla probabilita dell’algoritmo Esatto sui grafi a percorsiramificati con algoritmo Deep-It.

Page 76: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

72 Esperimenti

Best-First# Esatto Plow e(P) Pup e(P)

1 0.090000 0.090000 0.00% 0.090000 0.00%2 0.099639 0.099639 0.00% 0.099639 0.00%3 0.101256 0.101256 0.00% 0.101256 0.00%4 0.101544 0.101544 0.00% 0.101544 0.00%5 0.101596 0.101596 0.00% 0.101596 0.00%6 0.101605 0.101596 0.01% 0.101605 0.00%7 0.101607 0.101596 0.01% 0.101614 0.01%8 0.101607 0.101596 0.01% 0.101624 0.02%9 $ 0.101596 $ 0.101633 $10 $ 0.101596 $ 0.101642 $11 $ 0.101607 $ 0.108836 $12 $ $ $ $ $13 $ $ $ $ $14 $ $ $ $ $15 $ $ $ $ $16 $ $ $ $ $17 $ $ $ $ $18 $ $ $ $ $19 $ $ $ $ $20 $ $ $ $ $21 $ $ $ $ $22 $ $ $ $ $23 $ $ $ $ $24 $ $ $ $ $25 $ $ $ $ $

Tabella 5.10: Lower bound Plow, upper bound Pup e relativi errori percentua-li e(P) rispetto alla probabilita dell’algoritmo Esatto sui grafi apercorsi ramificati con algoritmo Best-First.

Page 77: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 73

K-Best K-First# Esatto Plow e(P) Plow e(P)

1 0.090000 0.090000 0.00% 0.000000 100.00%2 0.099639 0.099639 0.00% 0.000000 100.00%3 0.101256 0.101256 0.00% 0.000000 100.00%4 0.101544 0.101544 0.00% 0.000000 100.00%5 0.101596 0.101596 0.00% 0.000000 100.00%6 0.101605 0.101605 0.00% 0.000000 100.00%7 0.101607 0.101605 0.00% 0.000000 100.00%8 0.101607 0.101605 0.00% 0.000000 100.00%9 $ 0.101605 $ 0.000000 $10 $ 0.101605 $ 0.000000 $11 $ 0.101605 $ 0.000000 $12 $ 0.101605 $ 0.000000 $13 $ 0.101605 $ 0.000000 $14 $ 0.101605 $ 0.000000 $15 $ 0.101605 $ 0.000000 $16 $ 0.101605 $ 0.000000 $17 $ 0.101605 $ 0.000000 $18 $ 0.101605 $ 0.000000 $19 $ $ $ $ $20 $ $ $ $ $21 $ $ $ $ $22 $ $ $ $ $23 $ $ $ $ $24 $ $ $ $ $25 $ $ $ $ $

Tabella 5.11: Lower bound Plow e relativo errore percentuale e(P) rispetto allaprobabilita dell’algoritmo Esatto sui grafi a percorsi ramificati conalgoritmi K-Best e K-First.

Page 78: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

74 Esperimenti

Monte Carlo Memo Path# Esatto Pstat e(P) Pstat e(P)

1 0.090000 0.088645 1.51% $ $2 0.099639 0.099306 0.33% $ $3 0.101256 0.099444 1.79% $ $4 0.101544 0.102476 0.92% $ $5 0.101596 0.102242 0.64% $ $6 0.101605 0.103246 1.62% $ $7 0.101607 0.095766 5.75% $ $8 0.101607 0.105815 4.14% $ $9 $ 0.102310 $ $ $10 $ 0.102611 $ $ $11 $ 0.101288 $ $ $12 $ 0.104367 $ $ $13 $ 0.097159 $ $ $14 $ 0.098935 $ $ $15 $ 0.099375 $ $ $16 $ 0.104367 $ $ $17 $ 0.100456 $ $ $18 $ 0.101220 $ $ $19 $ $ $ $ $20 $ $ $ $ $21 $ $ $ $ $22 $ $ $ $ $23 $ $ $ $ $24 $ $ $ $ $25 $ $ $ $ $

Tabella 5.12: Probabilita Pstat e relativo errore percentuale e(P) rispetto alla pro-babilita dell’algoritmo Esatto sui grafi a percorsi ramificati conalgoritmi Monte Carlo e Memo Path.

Page 79: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 75

Figura 5.3: Costruzione iterativa dei grafi sintetici a percorsi ridondanti.

tolo 5.1.2 con file dell’ordine di grandezza dei grafi a percorsi paralleli del

Capitolo 5.1.1.

Questi grafi artificiali si generano in modo iterativo, proprio come

quelli introdotti in precedenza. Ogni iterazione della procedura genera-

trice introduce un solo nuovo nodo e diversi archi. Ogni nuovo nodo pos-

siede un arco che lo congiunge direttamente al nodo di destinazione. Ogni

nodo gia presente nel grafo (ad esclusione del nodo di destinazione), inol-

tre, acquista un nuovo arco che lo congiunge direttamente al nuovo nodo.

In pratica il grafo corrispondente all’iterazione n disporra di percorsi di

lunghezza compresa tra 1 ed n in numero pari ai valori presenti nell’i-

esima riga del triangolo di Tartaglia. Ad esempio, poiche i valori presenti

nella 5a riga del triangolo di Tartaglia sono [1, 4, 6, 4, 1], il grafo prodotto

dalla 5a iterazione della procedura generatrice conterra esattamente 1 per-

corso di lunghezza 1, 4 percorsi di lunghezza 2, 6 percorsi di lunghezza 3,

4 percorsi di lunghezza 4 ed 1 percorso di lunghezza 5.

La Figura 5.3 mostra i grafi prodotti dalle prime tre iterazioni della

procedura generatrice presentata nell’Algoritmo 5.3.

Questi grafi, come gli altri, sono stati sottoposti a test utilizzando tutti

gli algoritmi. Anche in questo caso, sono stati presi in considerazione in

ordine di complessita crescente. Gli esperimenti sono stati interrotti dopo

24 ore di elaborazione o al termine dell’esecuzione dell’elaborazione del

Page 80: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

76 Esperimenti

Algoritmo 5.3 Algoritmo per grafi artificiali a percorsi ridondanti

for step = 1 to 300 dofor slice = 1 to step do

print edge(0, slice) : 0.3.for node = pred(slice) to 1 do

print edge(slice, node) : 0.3.end for

end forend for

primo grafo che ha provocato l’esaurimento della memoria a disposizione

del processo.

L’elevato numero di percorsi alternativi presenti nei grafi a percorsi ri-

dondanti ha messo a dura prova gli algoritmi Deep-It, Best-First, K-Best e

K-First. Ognuno di loro e riuscito a risolvere grossomodo lo stesso nume-

ro di step che ha elaborato l’algoritmo esatto, circa una decina sui trecento

a disposizione. Il migliore tra tutti e risultato essere K-Best che ha risolto

qualche step in piu dell’algoritmo esatto, il peggiore e stato K-First con

qualche step in meno mentre gli altri hanno risolto circa lo stesso nume-

ro di step. Monte Carlo invece si e dimostrato del tutto indifferente alla

diversa natura di questi grafi e, ancora una volta, ha risolto tutti gli step

che gli sono stati sottoposti. La loro elaborazione ha richiesto tempi non

trascurabili ma tutto sommato piuttosto contenuti. I tempi di esecuzione

di tutti gli algoritmi sono riportate nella Tabella 5.13 e nella Tabella 5.14.

Per quanto riguarda la qualita dei valori di probabilita calcolati, Deep-

It ha prodotto risultati con errore percentuale di probabilita nullo (Tabel-

la 5.15), Best-First e K-Best hanno prodotto risultati con errore di proba-

bilita piu che accettabile (Tabella 5.16 e Tabella 5.17), K-First ha prodotto i

risultati disastrosi che ci attendevamo (Tabella 5.17) e Monte Carlo risultati

con errore percentuale piu che accettabile, come al solito (Tabella 5.18). Si

noti che, come sempre in questi grafi, la presenza di incertezza anche nelle

regole dei problemi non ha permesso alla variante Memo Path di Monte

Carlo di produrre alcun risultato.

Page 81: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 77

Esatto Deep-It Best-First# tres tbdd ttot tres tbdd ttot tres tbdd ttot

12 0.048 0.268 0.316 0.056 0.573 0.629 0.060 0.300 0.36024 $ $ $ $ $ $ $ $ $36 $ $ $ $ $ $ $ $ $48 $ $ $ $ $ $ $ $ $60 $ $ $ $ $ $ $ $ $72 $ $ $ $ $ $ $ $ $84 $ $ $ $ $ $ $ $ $96 $ $ $ $ $ $ $ $ $108 $ $ $ $ $ $ $ $ $120 $ $ $ $ $ $ $ $ $132 $ $ $ $ $ $ $ $ $144 $ $ $ $ $ $ $ $ $156 $ $ $ $ $ $ $ $ $168 $ $ $ $ $ $ $ $ $180 $ $ $ $ $ $ $ $ $192 $ $ $ $ $ $ $ $ $204 $ $ $ $ $ $ $ $ $216 $ $ $ $ $ $ $ $ $228 $ $ $ $ $ $ $ $ $240 $ $ $ $ $ $ $ $ $252 $ $ $ $ $ $ $ $ $264 $ $ $ $ $ $ $ $ $276 $ $ $ $ $ $ $ $ $288 $ $ $ $ $ $ $ $ $300 $ $ $ $ $ $ $ $ $

Tabella 5.13: Tempi di risoluzione tres, tempi di valutazione dei BDD tbdd e tempitotali ttot degli esperimenti sui grafi a percorsi ridondanti con al-goritmi Deep-It e Best-First a confronto. Per motivi di spazio, latabella riporta solamente una campionatura uniforme dei risultatisignificativi ottenuti.

Page 82: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

78 Esperimenti

Monte MemoK-Best K-First Carlo Path

# tres tbdd ttot tres tbdd ttot ttot ttot

12 0.159 1.112 1.271 0.004 0.000 0.004 0.377 $24 $ $ $ $ $ $ 1.809 $36 $ $ $ $ $ $ 4.212 $48 $ $ $ $ $ $ 8.072 $60 $ $ $ $ $ $ 11.569 $72 $ $ $ $ $ $ 13.565 $84 $ $ $ $ $ $ 15.857 $96 $ $ $ $ $ $ 16.569 $108 $ $ $ $ $ $ 17.226 $120 $ $ $ $ $ $ 17.317 $132 $ $ $ $ $ $ 17.346 $144 $ $ $ $ $ $ 17.562 $156 $ $ $ $ $ $ 18.525 $168 $ $ $ $ $ $ 16.950 $180 $ $ $ $ $ $ 19.686 $192 $ $ $ $ $ $ 184.540 $204 $ $ $ $ $ $ 185.728 $216 $ $ $ $ $ $ 186.752 $228 $ $ $ $ $ $ 193.340 $240 $ $ $ $ $ $ 194.969 $252 $ $ $ $ $ $ 281.838 $264 $ $ $ $ $ $ 277.986 $276 $ $ $ $ $ $ 275.242 $288 $ $ $ $ $ $ 277.477 $300 $ $ $ $ $ $ 277.125 $

Tabella 5.14: Tempi di risoluzione tres, tempi di valutazione dei BDD tbdd e tempitotali ttot degli esperimenti sui grafi a percorsi ridondanti con algo-ritmi Esatto, K-Best, K-First, Monte Carlo e Memo Path a confronto.Per motivi di spazio, la tabella riporta solamente una campionaturauniforme dei risultati significativi ottenuti.

Page 83: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 79

Deep-It# Esatto Plow e(P) Pup e(P)

1 0.090000 0.090000 0.00% 0.090000 0.00%2 0.095670 0.095670 0.00% 0.095670 0.00%3 0.101437 0.101437 0.00% 0.101437 0.00%4 0.107283 0.107283 0.00% 0.107283 0.00%5 0.113190 0.113190 0.00% 0.113190 0.00%6 0.119141 0.119141 0.00% 0.119141 0.00%7 0.125116 0.125116 0.00% 0.125116 0.00%8 0.131100 0.131100 0.00% 0.131100 0.00%9 0.137075 0.137075 0.00% 0.137075 0.00%10 0.143026 0.143026 0.00% 0.143026 0.00%11 0.148935 0.148935 0.00% 0.148935 0.00%12 0.154790 0.154790 0.00% 0.154790 0.00%13 0.160577 0.160577 0.00% 0.160577 0.00%14 0.166282 0.166282 0.00% 0.166282 0.00%15 $ 0.171895 $ 0.171895 $16 $ 0.177404 $ 0.177404 $17 $ $ $ $ $18 $ $ $ $ $19 $ $ $ $ $20 $ $ $ $ $21 $ $ $ $ $22 $ $ $ $ $23 $ $ $ $ $24 $ $ $ $ $25 $ $ $ $ $

Tabella 5.15: Lower bound Plow, upper bound Pup e relativi errori percentualie(P) rispetto alla probabilita dell’algoritmo Esatto sui grafi a per-corsi ridondanti con algoritmo Deep-It. Per motivi di spazio, latabella riporta solamente una campionatura uniforme dei risultatisignificativi ottenuti.

Page 84: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

80 Esperimenti

Best-First# Esatto Plow e(P) Pup e(P)

1 0.090000 0.090000 0.00% 0.090000 0.00%2 0.095670 0.095670 0.00% 0.095670 0.00%3 0.101437 0.101437 0.00% 0.101437 0.00%4 0.107283 0.107283 0.00% 0.107283 0.00%5 0.113190 0.113190 0.00% 0.113190 0.00%6 0.119141 0.119141 0.00% 0.119141 0.00%7 0.125116 0.125116 0.00% 0.125116 0.00%8 0.131100 0.131100 0.00% 0.131101 0.00%9 0.137075 0.135924 0.84% 0.138709 1.19%10 0.143026 0.140354 1.87% 0.146853 2.68%11 0.148935 0.147352 1.06% 0.151221 1.53%12 0.154790 0.151474 2.14% 0.159593 3.10%13 0.160577 0.157535 1.89% 0.161437 0.54%14 0.166282 $ $ $ $15 $ $ $ $ $16 $ $ $ $ $17 $ $ $ $ $18 $ $ $ $ $19 $ $ $ $ $20 $ $ $ $ $21 $ $ $ $ $22 $ $ $ $ $23 $ $ $ $ $24 $ $ $ $ $25 $ $ $ $ $

Tabella 5.16: Lower bound Plow, upper bound Pup e relativi errori percentualie(P) rispetto alla probabilita dell’algoritmo Esatto sui grafi a per-corsi ridondanti con algoritmo Best-First. Per motivi di spazio, latabella riporta solamente una campionatura uniforme dei risultatisignificativi ottenuti.

Page 85: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.1 Test sintetici 81

K-Best K-First# Esatto Plow e(P) Plow e(P)

1 0.090000 0.090000 0.00% 0.000000 100.00%2 0.095670 0.095670 0.00% 0.000000 100.00%3 0.101437 0.101437 0.00% 0.000000 100.00%4 0.107283 0.107283 0.00% 0.000000 100.00%5 0.113190 0.113190 0.00% 0.000000 100.00%6 0.119141 0.119141 0.00% 0.000000 100.00%7 0.125116 0.125116 0.00% 0.000000 100.00%8 0.131100 0.131096 0.00% 0.000000 100.00%9 0.137075 0.136911 0.12% 0.000000 100.00%10 0.143026 0.142680 0.24% 0.000000 100.00%11 0.148935 0.148387 0.37% 0.000000 100.00%12 0.154790 0.153618 0.76% $ $13 0.160577 0.157424 1.96% $ $14 0.166282 0.161127 3.10% $ $15 $ 0.164728 $ $ $16 $ 0.168230 $ $ $17 $ 0.171636 $ $ $18 $ 0.174948 $ $ $19 $ 0.178170 $ $ $20 $ 0.181347 $ $ $21 $ $ $ $ $22 $ $ $ $ $23 $ $ $ $ $24 $ $ $ $ $25 $ $ $ $ $

Tabella 5.17: Lower bound Plow e relativo errore percentuale e(P) rispetto allaprobabilita dell’algoritmo Esatto sui grafi a percorsi ridondanti conalgoritmi K-Best e K-First. Per motivi di spazio, la tabella ripor-ta solamente una campionatura uniforme dei risultati significativiottenuti.

Page 86: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

82 Esperimenti

Monte Carlo Memo Path# Esatto Pstat e(P) Pstat e(P)

1 0.090000 0.088645 1.51% $ $2 0.095670 0.096461 0.83% $ $3 0.101437 0.100564 0.86% $ $4 0.107283 0.105749 1.43% $ $5 0.113190 0.115112 1.70% $ $6 0.119141 0.118295 0.71% $ $7 0.125116 0.122096 2.41% $ $8 0.131100 0.129969 0.86% $ $9 0.137075 0.137741 0.49% $ $10 0.143026 0.138691 3.03% $ $11 0.148935 0.144417 3.03% $ $12 0.154790 0.150029 3.08% $ $13 0.160577 0.165327 2.96% $ $14 0.166282 0.168759 1.49% $ $15 $ 0.174342 $ $ $16 $ 0.180490 $ $ $17 $ 0.186554 $ $ $18 $ 0.189412 $ $ $19 $ 0.194555 $ $ $20 $ 0.202429 $ $ $21 $ 0.207968 $ $ $22 $ 0.207600 $ $ $23 $ 0.214344 $ $ $24 $ 0.218860 $ $ $25 $ 0.216507 $ $ $

Tabella 5.18: Probabilita Pstat e relativo errore percentuale e(P) rispetto alla pro-babilita dell’algoritmo Esatto sui grafi a percorsi ridondanti con al-goritmi Monte Carlo e Memo Path. Per motivi di spazio, la ta-bella riporta solamente una campionatura uniforme dei risultatisignificativi ottenuti.

Page 87: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.2 Test su dataset reali 83

5.2 Test su dataset reali

I dataset che vengono introdotti in questa sezione sono gia stati utiliz-

zati da ProbLog e CPLINT, le implementazioni dei programmi ProbLog e

degli LPAD considerate, per verificare l’efficacia dei loro algoritmi. L’a-

dozione di questi dataset non e stata dettata solamente dalla stessa neces-

sita ma anche dal desiderio di confrontare i risultati ottenuti con quelli di

riferimento.

La configurazione hardware e software della macchine su cui sono sta-

ti svolti gli esperimenti e ancora la stessa utilizzata per i dataset sintetici

e viene riportata di seguiro solo per comodita. I computer utilizzati per

i test sono macchine Linux dotate di processore Intel Core 2 Duo E6550

(2333 MHz) e 4 Gb di RAM su cui il tempo massimo di esecuzione di ogni

esperimento e stato limitato a 24 ore.

5.2.1 Dataset di dati biologici

Le reti biologiche proposte da [SEH+06] contengono nodi che rappre-

sentano entita biologiche quali geni, proteine, tessuti, organismi, processi

biologici e funzioni molecolari. Un arco tra due nodi rappresenta una re-

lazione tra le due entita ed e etichettato con un valore di proprieta che

esprime l’intensita del legame. Queste reti possono essere utilizzate per

scoprire relazioni indirette tra concetti, come ad esempio la probabilita che

un gene sia responsabile di una malattia.

La particolare rete presa in considerazione e stata utilizzata in [DRKT07]

per valutare le performance dell’interprete ProbLog. Descrive quattro ge-

ni responsabili dell’Alzheimer e contiene 5220 nodi e 11530 archi. Il da-

taset iniziale e stato suddiviso in 50 sottografi estratti dalla rete comple-

ta per campionamento. Il primo grafo contiene 200 archi, l’ultimo 5000.

Ogni grafo contiene 200 archi in piu del precedente e risulta essere un

sottoinsieme del successivo. La campionatura e stata ripetuta 10 volte.

Gli algoritmi proposti sono stati testati su tutti i sottografi proceden-

do per dimensioni crescenti. Gli esperimenti sono stati interrotti dopo 24

Page 88: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

84 Esperimenti

ore di esecuzione o al termine dell’esecuzione dell’elaborazione del primo

sottografo per saturazione della memoria.

In Figura 5.4 sono stati riportati il numero di successi conseguiti da

ogni algoritmo negli esperimenti sui grafi biologici. Come si puo osserva-

re, gli algoritmi deterministici hanno risolto un numero di problemi mino-

re o uguale a quello dell’algoritmo esatto, con la sola eccezione dell’algo-

ritmo K-First che ha risolto qualche problema in piu. Tuttavia, sappiamo

che l’algoritmo K-First ottiene questo tipo di risultati grazie alla sua na-

tura aggressiva e a scapito della qualita dei valori di probabilita calcolati.

Per questo motivo non lo possiamo considerare un successo. Gli algorit-

mi stocastici hanno confermato la loro efficienza: Monte Carlo ha risolto

quasi il doppio dei problemi risolti dall’algoritmo esatto e la variante con

memoria si e spinta addirittura molto oltre.

La Figura 5.5 rappresenta i tempi medi di esecuzione degli algoritmi

calcolati su tutti i campioni che hanno avuto successo. Gli andamenti ri-

portati in figura mostrano che gli algoritmi deterministici sono molto ve-

loci ma anche molto avidi di memoria. Per problemi di dimensioni non

trascurabili, infatti, il calcolo delle spiegazioni assorbe tutte le risorse di

sistema e provoca la fine prematura degli esperimenti. Gli algoritmi stoca-

stici non sembrano soffrire questo problema: inizialmente seppure risulta-

no essere leggermente piu lenti degli algoritmi deterministici ma poi rie-

scono a risolvere problemi di dimensioni maggiori in tempi che si possono

comunque definire accettabili.

5.2.2 Dataset di reti sociali

Gli algoritmi presentati sono stati anche utilizzati anche per calcolare

la probabilita dei percorsi all’interno di reti sociali. La peculiarita di questo

dataset e che l’incertezza e localizzata anche nelle interrogazioni e non solo

nella basi di conoscenza. Il predicato utilizzato dalle interrogazioni infatti

e:

path(X,Y )! path(X,Y, [X], Z).

path(X,Y, V, [Y |V ]) : 0.8! edge(X,Y ).

Page 89: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.2 Test su dataset reali 85

500 1000 1500 2000 2500 3000 3500 40000

1

2

3

4

5

6

7

8

9

10

Archi

Successi

esattodeep-itbest-firstk-bestk-firstmontecarlomemopath

Figura 5.4: Numero di successi negli esperimenti sui grafi biologici.

500 1000 1500 2000 2500 3000 3500 400010−3

10−2

10−1

100

101

102

103

104

105

Archi

Tempi (s)

esattodeep-itbest-firstk-bestk-firstmontecarlomemopath

Figura 5.5: Tempi medi di esecuzione negli esperimenti sui grafi biologicicalcolati su tutti i campioni che hanno avuto successo.

Page 90: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

86 Esperimenti

path(X,Y, V 0, V 1) : 0.8!

edge(Z, V 0), \ + member(Z, V 0), path(Z, Y, [Z|V 0], V 1).

I dataset specifici che abbiamo preso in considerazione sono quelli re-

lativi alla classificazione dei documenti di Citeseer, Cora e WebKB1. I nodi

dei dataset Citeseer e Cora rappresentano articoli e gli archi citazioni. In

WebKB, invece, ogni nodo rappresenta una pagina web del dipartimento

di informatica di una universita americana e gli archi rappresentano colle-

gamenti ipertestuali. WebKB e composto da quattro sottoreti indipendenti

relative alle universita di Cornell, Texas, Washington e Wisconsin. Per ef-

fettuare interrogazioni incondizionate su queste reti abbiamo considerato

tutte le coppie di nodi uniti da percorsi che hanno lunghezza compresa tra

1 e 100.

Gli algoritmi hanno eseguito le interrogazioni in ordine crescente di

lunghezza dei percorsi tra i nodi in esame. Come al solito, gli esperimenti

sono stati interrotti dopo 24 ore di elaborazione o al termine della prima

interrogazione che ha provocato l’esaurimento della memoria a disposi-

zione del processo. Infine e stata calcolata la media in secondi del tempo

di esecuzione di ogni interrogazione rispetto al numero complessivo di

interrogazioni eseguite su percorsi della stessa lunghezza.

Come si puo vedere in Figura 5.6, la diversa natura di questi dataset

ha permesso all’algoritmo iterativo di risolvere qualche problema in piu

rispetto all’algoritmo esatto, gli algoritmi euristici sono riusciti a risolvere

molti piu problemi rispetto all’algoritmo esatto, mentre gli algoritmi sto-

castici non sono riusciti nemmeno a completare l’elaborazione di tutti i

percorsi di lunghezza 1. Questo risultato era atteso per la variante Memo

Path perche, come abbiamo evidenziato in apertura di sezione, le regole di

derivazione che sono state utilizzate contengono incertezza, ma e del tutto

impensato per quanto riguarda l’agoritmo Monte Carlo principale.

La Figura 5.7, invece, mostra i tempi medi di esecuzione calcolati su

tutti gli insiemi di percorsi che sono stati risolti per intero. Prima di ana-

lizzare le prestazioni degli algoritmi, si noti che certi dataset non conten-

gono percorsi di tutte le lunghezze e questo giustifica la presenza di picchi

1Disponibili all’indirizzo http://www.cs.umd.edu/˜sen/lbc-proj/LBC.html

Page 91: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

5.2 Test su dataset reali 87

10 20 30 40 50 60 70 80 90 1000

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Percorsi

Successi

esattodeep-itbest-firstk-bestk-firstmontecarlomemopath

Figura 5.6: Numero di successi negli esperimenti sulle reti sociali.

10 20 30 40 50 60 70 80 90 10010−3

10−2

10−1

100

101

102

Percorsi

Tempo (s)

esattodeep-itbest-firstk-bestk-firstmontecarlomemopath

Figura 5.7: Tempi medi di esecuzione negli esperimenti sulle reti sociali calcolatisu tutti gli insiemi di percorsi che sono stati elaborati per intero.

Page 92: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

88 Esperimenti

negativi in concomitanza di queste assenze. Possiamo osservare che gli

algoritmi deterministici hanno un andamento piu regolare rispetto all’al-

goritmo esatto, ma indicativamente impiegano circa lo stesso tempo per

risolvere problemi di dimensioni analoghe. L’algoritmo K-First, che so-

litamente risolve i problemi piu velocemente rispetto agli altri algoritmi

seppur a scapito della qualita dei risultati, inspiegabilmente in questo caso

e risultato essere il piu lento di tutti. Nulla si puo dire, infine, per quanto

riguarda l’andamento nel tempo degli algoritmi stocastici.

In conclusione, possiamo concludere che i risultati raccolti sono in con-

trotendenza rispetto a quelli ottenuti finora e pertanto e consigliabile svol-

gere ulteriori indagini prima di esprimere un giudizio conclusivo su di

essi. La causa di questo comportamento puo essere ricondotta alla parti-

colare natura delle reti sociali considerate, cosı diverse le une dalle altre.

Nessun algoritmo, ad esempio, e riuscito a risolvere alcun problema della

rete WebKB relativa all’Universita di Cornell, mentre la rete WebKB del-

l’Universita del Texas e sempre stata risolta per intero o quasi da qualsiasi

algoritmo.

5.3 Riepilogo

In questo capitolo abbiamo presentato tutti i dataset che sono stati uti-

lizzati per svolgere esperimenti sulle estensioni proposte. Alcuni di que-

sti sono stati generati artificialmente per verificare il comportamento de-

gli algoritmi in certe condizioni estreme e pertanto hanno solamente una

valenza sperimentale. Altri dataset, invece, sono il risultato di studi su

specifiche applicazioni scientifiche ed hanno una valenza molto piu ge-

nerale tanto che vengono comunemente utilizzati per verificare l’efficacia

dei nuovi formalismi probabilistici. Il capitolo inoltre riporta e commenta

i risultati di tutte le simulazioni svolte su queste basi di conoscenza.

Page 93: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Conclusioni

Nel corso dello sviluppo di questo progetto di tesi, abbiamo contribui-

to all’introduzione di alcune procedure per il calcolo del valore approssi-

mato delle query su Programmi Logici con Disgiunzione Annotata. L’obietti-

vo di questa tesi consiste nell’estendere l’approccio canonico per risolvere

problemi di maggiore complessita.

Siamo partiti dall’analisi di due formalismi molto promettenti nell’am-

bito della programmazione logica probabilistica: i programmi ProbLog e

gli LPAD. Del primo, nato dall’esigenza pratica di risolvere problemi su

grafi biologici di grandi dimensioni, abbiamo apprezzato la semplicita e

la potenza; del secondo, appositamente sviluppato per modellare generici

sistemi causali, abbiamo gradito l’espressivita e la versatilita.

Successivamente abbiamo approfondito la conoscenza degli interpreti

dei linguaggi presi ad esempio sia in termini di architettura di sistema che

di algoritmi per il calcolo delle probabilita delle query. Abbiamo potuto

constatare che entrambi fanno uso degli stessi strumenti, l’interprete Pro-

log YAP e la libreria CUDD di gestione dei BDD, sebbene li utilizzino in

modo diverso. Inoltre, mentre il secondo implementa solo un metodo di

calcolo per il valore esatto delle probabilita; il primo suggerisce anche al-

cune procedure alternative per inferire valori di probabilita approssimati

in un minor tempo.

Ispirati dalle caratteristiche intrinseche delle soluzioni di ciascun siste-

ma, abbiamo sviluppato alcuni metodi per il calcolo del valore di probabi-

lita che adottano un trade-off tra il tempo di elaborazione e l’approssima-

zione del risultato. Durante questa fase centrale del lavoro svolto abbiamo

sviluppato un algoritmo iterativo piuttosto semplice che consente pero di

Page 94: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

90 Conclusioni

calcolare in modo incrementale le spiegazioni che generano il risultato, tre

algoritmi euristici e due algoritmi stocastici.

Di questi algoritmi euristici, cosı definiti perche fanno uso di una fun-

zione euristica che valuta la bonta di ogni spiegazione, quello chiamato

Best-First ci ha permesso di raffinare ulteriormente la ricerca incremen-

tale delle spiegazioni considerando per prime quelle piu promettenti per

il risultato finale. Anche il cosiddetto algoritmo K-Best privilegia le spie-

gazioni migliori, ma secondo un diverso criterio: la ricerca incrementale

restituisce solamente il numero prestabilito di spiegazioni migliori, ridu-

cendo cosı la complessita dei calcoli da sviluppare. L’ultimo algoritmo

appartenente a questa categoria, detto K-First utilizza una euristica diver-

sa che valuta le spiegazioni in base al tempo utilizzato per calcolarle e che

in pratica considera solamente il numero prestabilito di soluzioni trovate

per prime.

Gli algoritmi stocastici proposti sono entrambi di tipo Monte Carlo ed

utilizzano un approccio totalmente diverso che permette di calcolare la

probabilita delle spiegazioni in base al campionamento statistico delle istan-

ze del problema. La variante proposta utilizza inoltre una particolare

struttura dati ad accesso veloce dell’interprete Prolog per memorizzare i

progressi dell’algoritmo e, sebbene sia ristretto ad una particolare sotto-

classe degli LPAD, consente di ottenere tempi di esecuzione notevolmente

piu contenuti.

Tutte le estensioni proposte sono state sottoposte ad una esaustiva fa-

se finale di testing durante la quale sono stati utilizzati sia dataset reali ine-

renti a grafi biologici e reti sociali, che dataset sintetici appositamente creati

per evidenziarne i limiti. Dalla maggior parte degli esperimenti condotti

e emerso che gli algoritmi deterministici proposti hanno evidenziato un

comportamento in linea con quello dell’algoritmo esatto, risolvendo velo-

cemente e con buona approssimazione i problemi piu piccoli ma entrando

in crisi con i problemi piu grandi. Nonostante siano inizialmente piu lenti

e producano risultati leggermente piu approssimati, gli algoritmi stocasti-

ci hanno mantenuto un comportamento migliore in quasi tutti i campi di

utilizzo.

Page 95: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

91

Per quanto concerne gli sviluppi futuri, sono possibili diversi interven-

ti rivolti a migliorare la validita delle soluzioni proposte. Ad esempio po-

trebbe essere interessante approfondire lo studio degli algoritmi stocastici

in modo da estendere il loro campo di utilizzo a problemi di natura diver-

sa da quelli di percorso. Per quanto rigurda gli algoritmi deterministici,

invece, e possibile introdurre l’uso degli Zero-suppressed Decision Dia-

grams: diagrammi simili ai BDD ma piu compatti che dovrebbero ridurre

ulteriormente i tempi di valutazione delle spiegazioni delle query.

Page 96: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

92 Conclusioni

Page 97: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Ringraziamenti

Il percorso che mi ha portato a scrivere questa tesi parte da molto

lontano, da quando da bambino attendevo con ansia ogni sabato sera

per vivere alla televisione le avventure di KITT, una automobile parlante

controllata da una intelligenza artificiale senziente.

I miei ringraziamenti vanno, in primo luogo, alla Prof. Paola Mello

non solo per avermi dato l’opportunita di sviluppare questo lavoro di tesi,

ma anche per avermi fatto conoscere ed amare ancora di piu cio che da

bambino mi aveva tanto affascinato: il mondo dell’Intelligenza Artificiale.

Ringrazio anche i miei correlatori, gli Ingg. Fabrizio Riguzzi e Fede-

rico Chesani per la fiducia che mi hanno concesso e per la pazienza con

cui hanno sopportato le mie incursioni nei loro spazi al Laboratorio di In-

formatica Avanzata dell’Universita di Bologna. Vorrei poi ringraziare in

modo particolare l’Ing. Riguzzi per avermi sostenuto e guidato durante

tutto il lavoro di tesi: senza i suoi consigli puntuali e precisi, il mio lavoro

sarebbe stato molto piu gravoso e molto meno gratificante, e per questo

non posso che essergliene infinitamente grato!

Un grazie particolare va alla mia famiglia per i valori che mi hanno

insegnato, l’educazione che mi hanno fornito ed il sostegno incondizio-

nato che mi hanno dato: se sono riuscito a conseguire questo importante

risultato e principalmente merito loro.

Vorrei infine ricordare tutti gli amici con cui ho condiviso gli episodi

felici ed i momenti difficili di questo lungo percorso. Citarvi tutti sarebbe

improponibile, ma e anche grazie ad ognuno di voi se sono qui oggi.

Page 98: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

94 Ringraziamenti

Page 99: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Bibliografia

[And99] H. R. Andersen. An introduction to binary decision diagrams,

1999.

[Bry92] Randal E. Bryant. Symbolic boolean manipulation wi-

th ordered binary-decision diagrams. ACM Comput. Surv.,

24(3):293–318, 1992.

[Car50] R. Carnap. Logical Foundations of Probability. University of

Chicago Press, 1950.

[Coo71] S. A. Cook. The complexity of theorem-proving procedures.

Proceedings of the Third Annual ACM Symposium on the Theory of

Computing, pages 151–158, 1971.

[Dan91] Evgeny Dantsin. Probabilistic logic programs and their seman-

tics. In Logic Programming, First Russian Conference on Logic Pro-

gramming, Irkutsk, Russia, September 14-18, 1990 - Second Rus-

sian Conference on Logic Programming, St. Petersburg, Russia, Sep-

tember 11-16, 1991, Proceedings, volume 592 of Lecture Notes in

Computer Science, pages 152–164. Springer, 1991.

[DRKT07] L. De Raedt, A. Kimmig, and H. Toivonen. ProbLog: A proba-

bilistic prolog and its application in link discovery. In Interna-

tional Joint Conference on Artificial Intelligence, pages 2462–2467,

2007.

Page 100: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

96 Bibliografia

[Fuh00] Norbert Fuhr. Probabilistic datalog: Implementing logi-

cal information retrieval for advanced applications. JASIS,

51(2):95–110, 2000.

[Gai64] H. Gaifman. Concerning measures in first order calculi. Israel

J. Math., 2:1–18, 1964.

[GT07] L. Getoor and B. Taskar, editors. An Introduction to Statistical

Relational Learning. MIT Press, 2007.

[Hal90] Joseph Y. Halpern. An analysis of first-order logics of

probability. Artif. Intell., 46(3):311–350, 1990.

[KCR+08] A. Kimmig, V. S. Costa, R. Rocha, B. Demoen, and L. De Raedt.

On the efficiente execution of problog programs. In ICLP,

pages 175–189, 2008.

[Llo87] J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag,

2nd extended edition, 1987.

[Mug00] Stephen Muggleton. Learning stochastic logic programs.

Electron. Trans. Artif. Intell., 4(B):141–153, 2000.

[Poo93] David Poole. Logic programming, abduction and probabili-

ty - a top-down anytime algorithm for estimating prior and

posterior probabilities. New Generation Comput., 11(3):377–400,

1993.

[Poo97] D. Poole. The Independent Choice Logic for modelling mul-

tiple agents under uncertainty. Artif. Intell., 94(1–2):7–56,

1997.

[RFKM08] Luc De Raedt, Paolo Frasconi, Kristian Kersting, and Ste-

phen Muggleton, editors. Probabilistic Inductive Logic Program-

ming - Theory and Applications, volume 4911 of Lecture Notes in

Computer Science. Springer, 2008.

Page 101: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

97

[Rig07] Fabrizio Riguzzi. A top down interpreter for LPAD and

CP-logic. In Congress of the Italian Association for Artificial

Intelligence, volume 4733 of LNAI, pages 109–120. Springer,

2007.

[SEH+06] Petteri Sevon, Lauri Eronen, Petteri Hintsanen, Kimmo Kulo-

vesi, and Hannu Toivonen. Link discovery in graphs derived

from biological databases. In Data Integration in the Life Sciences,

Third International Workshop, DILS 2006, Hinxton, UK, July 20-

22, 2006, Proceedings, volume 4075 of Lecture Notes in Computer

Science, pages 35–49. Springer, 2006.

[SK66] D. Scott and P. Krauss. Assigning probabilities to logical

formulas. In Aspects of Inductive Logic. North-Holland, 1966.

[SK97] Taisuke Sato and Yoshitaka Kameya. PRISM: A language for

symbolic-statistical modeling. In International Joint Conference

on Artificial Intelligence, pages 1330–1339. Morgan Kaufmann,

1997.

[VDB06] J. Vennekens, M. Denecker, and M. Bruynooghe. Representing

causal information about a probabilistic process. In European

Conference on Logics in Artificial Intelligence, LNAI. Springer,

September 2006.

Page 102: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

98 Bibliografia

Page 103: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Elenco degli algoritmi

1.1 Calcolo della probabilita di un generico nodo del BDD . . . 18

2.1 Calcolo della probabilita di un nodo multivalore . . . . . . . 29

2.2 Calcolo della probabilita di una formula . . . . . . . . . . . . 29

3.1 Creazione della coppia (clausole istanziate, teste utilizzate) . 42

4.1 Pseudo-codice per l’algoritmo iterativo sulla probabilita . . . 47

4.2 Pseudo-codice per l’algoritmo euristico Best-First . . . . . . 49

4.3 Pseudo-codice per l’algoritmo euristico K-Best . . . . . . . . 50

4.4 Pseudo-codice per l’algoritmo euristico K-First . . . . . . . . 51

4.5 Pseudo-codice per l’algoritmo stocastico Monte Carlo . . . . 53

5.1 Algoritmo per grafi artificiali a percorsi paralleli . . . . . . . 61

5.2 Algoritmo per grafi artificiali a percorsi ramificati . . . . . . 67

5.3 Algoritmo per grafi artificiali a percorsi ridondanti . . . . . . 76

Page 104: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

100 Elenco degli algoritmi

Page 105: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Elenco delle figure

1.1 Esempio di BDD . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.2 Criteri di ordinamento e principi di riduzione dei BDD . . . 17

1.3 Grafo probabilistico e BDD di esempio . . . . . . . . . . . . . 19

1.4 Esempio di albero SLD per programmi ProbLog . . . . . . . 20

2.1 Esempio di albero SLD per LPAD . . . . . . . . . . . . . . . . 32

2.2 Esempio di BDD per LPAD . . . . . . . . . . . . . . . . . . . 32

3.1 Architettura dell’interprete CPLINT . . . . . . . . . . . . . . 35

3.2 Architettura dell’interprete ProbLog . . . . . . . . . . . . . . 35

5.1 Grafi sintetici a percorsi paralleli . . . . . . . . . . . . . . . . 58

5.2 Grafi sintetici a percorsi ramificati . . . . . . . . . . . . . . . 62

5.3 Grafi sintetici a percorsi ridondanti . . . . . . . . . . . . . . . 75

5.4 Successi negli esperimenti sui grafi biologici . . . . . . . . . 85

5.5 Tempi di esecuzione negli esperimenti sui grafi biologici . . 85

5.6 Successi negli esperimenti sulle reti sociali . . . . . . . . . . . 87

5.7 Tempi di esecuzione negli esperimenti sulle reti sociali . . . 87

Page 106: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

102 Elenco delle figure

Page 107: Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010

Elenco delle tabelle

5.1 Percorsi paralleli: tempi di Esatto, Deep-It e Best-First . . . . 59

5.2 Percorsi paralleli: tempi di K-Best, K-First e Monte Carlo . . 60

5.3 Percorsi paralleli: probabilita di Deep-It . . . . . . . . . . . . 63

5.4 Percorsi paralleli: probabilita di Best-First . . . . . . . . . . . 64

5.5 Percorsi paralleli: probabilita di K-Best e K-First . . . . . . . 65

5.6 Percorsi paralleli: probabilita di Monte Carlo e Memo Path . 66

5.7 Percorsi ramificati: tempi di Esatto, Deep-It e Best-First . . . 69

5.8 Percorsi ramificati: tempi di K-Best, K-First e Monte Carlo . 70

5.9 Percorsi ramificati: probabilita di Deep-It . . . . . . . . . . . 71

5.10 Percorsi ramificati: probabilita di Best-First . . . . . . . . . . 72

5.11 Percorsi ramificati: probabilita di K-Best e K-First . . . . . . 73

5.12 Percorsi ramificati: probabilita di Monte Carlo e Memo Path 74

5.13 Percorsi ridondanti: tempi di Esatto, Deep-It e Best-First . . 77

5.14 Percorsi ridondanti: tempi di K-Best, K-First e Monte Carlo . 78

5.15 Percorsi ridondanti: probabilita di Deep-It . . . . . . . . . . . 79

5.16 Percorsi ridondanti: probabilita di Best-First . . . . . . . . . 80

5.17 Percorsi ridondanti: probabilita di K-Best e K-First . . . . . . 81

5.18 Percorsi ridondanti: probabilita di Monte Carlo e Memo Path 82