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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

46 3. <strong>Un</strong> <strong>modello</strong> che integra <strong>control</strong> <strong>flow</strong> e <strong>data</strong> <strong>flow</strong><br />

Si noti che se uno qualunque dei Pj è un insieme vuoto significa che <strong>per</strong> quel valore<br />

di X non si è osservata alcuna relazione, che equivale a dire che deve sottostare al<br />

vincolo sempre vero ⊤. La 3.3 diventa quindi banalmente sempre vera e quindi non<br />

si può dire niente su X.<br />

3.4 L’algoritmo completo <strong>per</strong> la costruzione del <strong>modello</strong><br />

Algoritmo 5: Algoritmo <strong>per</strong> la costruzione del <strong>modello</strong>.<br />

for T ∈ T do<br />

for e ∈ T do<br />

(Ecall, Ecrs, Ertn) = egBaseCase(stack(e));<br />

learn<strong>Un</strong>ary(arg(e), value(e), stack(e));<br />

learnBinary(arg(e), value(e));<br />

end<br />

end<br />

egInduction(Ecall, Ecrs, Ertn);<br />

for R ∈ R do<br />

for X ∈ X do<br />

apply 3.1 to CurRels[R][X]<br />

end<br />

end<br />

In questa sezione viene dato l’algoritmo completo <strong>per</strong> la costruzione del <strong>modello</strong>.<br />

Esso consiste di due fasi, una “online” e una di post-processing. Durante la fase<br />

“online” le tracce vengono processate evento <strong>per</strong> evento. Ogni evento provoca l’in-<br />

serimento di nuovi archi nell’execution graph o l’apprendimento di nuove relazioni.<br />

La fase successiva di post-processing invece si occupa di lanciare la parte induttiva<br />

della costruzione dell’execution graph (Definizione 2) e di costruire le disgiunzioni<br />

che <strong>il</strong> nuovo algoritmo <strong>data</strong> <strong>flow</strong> è in grado di apprendere.<br />

3.4.1 Relazione con l’algoritmo originale rispetto ai falsi positivi<br />

Come già notato in precedenza la questione dei falsi positivi è molto delicata <strong>per</strong>ché<br />

è legata direttamente alla qualità del training svolto. <strong>Un</strong> training scadente provoca<br />

una elevata quantità di falsi positivi, qualunque sia <strong>il</strong> <strong>modello</strong> ut<strong>il</strong>izzato. Nel <strong>modello</strong><br />

presentato in questa tesi i falsi positivi del <strong>modello</strong> possono essere dovuti alla parte<br />

<strong>control</strong> <strong>flow</strong> e alla parte <strong>data</strong> <strong>flow</strong>. Siccome la parte <strong>control</strong> <strong>flow</strong> del <strong>modello</strong> è<br />

costituita dagli execution graphs senza modifiche, non c’è alcun peggioramento in<br />

falsi positivi da questo punto di vista.

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

Saved successfully!

Ooh no, something went wrong!