03.06.2013 Views

Un modello integrato control-flow e data-flow per il rilevamento ...

Un modello integrato control-flow e data-flow per il rilevamento ...

Un modello integrato control-flow e data-flow per il rilevamento ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.3. Costruzione del <strong>modello</strong> 43<br />

Particolare attenzione va posta se uno degli insiemi contiene l’insieme vuoto: esso<br />

non va semplicemente scartato, al contrario esso causa la completa <strong>per</strong>dita di in-<br />

formazione <strong>per</strong> una <strong>data</strong> variab<strong>il</strong>e. Supponiamo si siano osservate le variab<strong>il</strong>i X, X ′<br />

entrambe con valore V e si sia osservata, in un momento differente X con valore<br />

V ′ : varrà su tutta la traccia che se <strong>il</strong> valore è V allora X equals X ′ mentre, se <strong>il</strong><br />

valore è V ′ , non si hanno relazioni con variab<strong>il</strong>i viste in passato. Nel momento in cui<br />

queste due informazioni vengono collassate assieme non si può far altro che dire che<br />

globalmente non esiste nessuna proprietà che valga indipendentemente dal valore.<br />

Questo è molto importante ed è indicativo del fatto che <strong>il</strong> processo di apprendimento<br />

non è monotono: quello che fa l’algoritmo è cercare di costruire una teoria basandosi<br />

su delle osservazioni, nel momento in cui arriva un’osservazione che contraddice la<br />

teoria, quest’ultima decade.<br />

Definizione 7 Siano:<br />

• se, <strong>per</strong> una <strong>data</strong> variab<strong>il</strong>e X si sono osservati i valori v1, . . . , vn si avrà che<br />

CurRels[R][X][v1] = P1, . . . , CurRels[R][X][vn] = Pn saranno definiti. Defi-<br />

niamo CurRels[R][X] = {P1, . . . , Pn}<br />

• V = {v1, . . . , vn} l’insieme di tutti i valori osservati. Definiamo l’insieme<br />

all[R][X] = <br />

v∈V (CurRels[R][X][v])<br />

• or[R][X] = {P \ all[R][X] : P ∈ CurRels[R][X]}<br />

Se all[R][X] = {a1, . . . , ak} allora <strong>per</strong> ogni traccia vale (X R a1) ∧ . . . ∧ (X R ak).<br />

Inoltre vale anche che se or[R][X] = {A1, . . . , Ah} e A1 = ∅, . . . , Ah = ∅ allora<br />

<br />

A∈or[R][X]<br />

<br />

<br />

(X R a)<br />

a∈A<br />

(3.1)<br />

Se ∅ ∈ or[R][X] si è nel caso in cui si sta scartando dell’informazione che non<br />

è universalmente valida. Se anche all[R][X] = ∅, tutte le informazioni raccolte<br />

relativamente ad X erano casi particolari non validi su tutte le tracce osservate.<br />

Quest’ultima definizione è quella che caratterizza la seconda fase dell’algoritmo<br />

di apprendimento, da eseguirsi una volta che sono state processate tutte le tracce.<br />

L’algoritmo completo diventa quindi <strong>il</strong> seguente:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!