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 ...
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: