• Non ci sono risultati.

Generazione dell’albero di ricerca

4.3 Automatizzazione e ottimizzazione dell’approccio

4.3.3 Generazione dell’albero di ricerca

Nell’albero di ricerca generato dall’approccio olistico, alla radice sono collegate

tutte le possibili baseline. Ogni livello successivo `e invece associato ad uno degli at-

tributi dimensionali presenti nel group by set della query e contiene i nodi che rap- presentano i refinement ottenuti combinando tutti i possibili valori dell’attributo con i fattori in grado di quantificare una variazione relativa.

Come spiegato nella Sezione 4.3.2, la prima differenza tra l’approccio originale

e la versione implementata `e costituita dal fatto che quest’ultima genera solamente

una baseline e un refinement per ogni membro della gerarchia dimensionale. Essi

vengono calcolati a partire dalla cache e, in questo modo, il sistema sviluppato `e

in grado di eseguire interrogazioni su un qualsiasi cubo multidimensionale.

La prima implementazione realizzata prevedeva una struttura dell’albero di ri- cerca coerente con quanto previsto dall’approccio ma, a seguito di alcune prove

sperimentali, `e emerso chiaramente un limite. Infatti, dato che ogni livello del-

l’albero `e associato ad un certo attributo dimensionale, pu`o essere emesso un solo

refinement che descrive uno dei suoi valori. Al contempo, `e necessario restituire

un refinement per ogni attributo dimensionale presente nel group by set. Di conse- guenza, se le variazioni presenti nei dati non sono distribuite tra le varie dimensioni ma si concentrano in alcune di esse, i refinement scelti dall’approccio non sono in grado di offrire all’utente il massimo contenuto informativo possibile.

Si consideri, ad esempio, la query che richiede di calcolare il salario medio raggruppando i dati per regione di provenienza del lavoratore e per salario iniziale.

Assumendo che il discorso in grado di massimizzare la qualit`a percepita dall’utente

contenga i refinement “Il valore aumenta del 20% per i laureati provenienti dal Northeast” e “Il valore diminuisce del 30% per i laureati provenienti dal South”, la strategia originale non sarebbe in grado di selezionare questo output.

L’implementazione presentata propone quindi un approccio alternativo, a cui si fa riferimento con il termine completo. Esso prevede che, in tutti i livelli dell’albero, a ciascun nodo venga collegato un figlio per ogni refinement relativo ad un possibile

valore di un attributo dimensionale presente nel group by set della query. `E per`o

(Root) The averagemid-career salary is 80K

Values decrease by 30% for graduates from the South Values increase by 20% for

graduates from the Northeast.

Values decrease by 10% for start salaries of less

than 50 K. Values increase by 5% for start salaries of at least

50 K.

(Root) The averagemid-career salary is 80K

Values decrease by 30% for graduates from the

South

Values increase by 20% for graduates from the

Northeast. Values decrease by 10%

for start salaries of less than 50 K. Values increase by 5% for start salaries of at least

50 K.

Values decrease by 30% for graduates from the South Values increase by 20% for

graduates from the Northeast. Values decrease by 10%

for start salaries of less than 50 K. Values increase by 5% for start salaries of at least

50 K.

Figura 4.4: Esempio di albero di ricerca completo

La Figura 4.4 riporta il confronto tra l’albero di ricerca generato dall’approc- cio originale e quello ottenuto con la variante completa, nel caso in cui la query

corrisponda a quella indicata nell’esempio precedente. Si pu`o notare che il secon-

do albero `e caratterizzato da una maggiore espressivit`a, in quanto cattura tutti i

discorsi codificati dal primo aggiungendone altri. Il secondo albero viene definito

completo, perch´e rappresenta tutte le combinazioni tra i possibili refinement.

Nell’implementazione presentata `e possibile, tramite un apposito parametro,

scegliere se generare l’albero di ricerca coerente con l’approccio originale o quello completo. Questo ha permesso, come illustrato nel Capitolo 5, di confrontare le due strategie e di verificare i vantaggi ottenuti grazie ad un albero completo.

Gestione della complessit`a computazionale

Generare un albero completo, che considera tutte le possibili combinazioni di re-

finement, pu`o consentire all’approccio olistico di ottenere risultati migliori. Uno

spazio di ricerca di dimensione maggiore pu`o per`o causare un overhead computa-

Fissato il numero di refinement a n e data una query caratterizzata da un group by set contenente n attributi dimensionali, ognuno dei quali prevede m possibili valori, il numero dei nodi foglia dell’albero generato dall’approccio olistico

`e pari a mn. Considerando invece l’albero completo, il numero di foglie `e (m ∗ n)n

perch´e ad ogni livello sono disponibili tutti i refinement (ad eccezione di quelli gi`a

selezionati). La dimensione dell’albero aumenta quindi di un fattore nn che, pur

essendo n limitato dalla scarsa memoria degli utenti [32], non `e trascurabile.

`

E stata dunque adottata una tecnica euristica per contenere la dimensione dello spazio di ricerca, indipendentemente dal cubo multidimensionale interrogato e dal-

la query formulata. Secondo il principio di uniformit`a descritto nella Sezione 3.2.2,

in assenza di informazioni l’utente tende ad assumere una distribuzione uniforme

dei dati. Perci`o i refinement pi`u interessanti risultano essere quelli che indicano

un maggiore scostamento dalla distribuzione uniforme precedentemente percepita.

Ad esempio, data una query che calcola una media, i refinement pi`u interessanti

sono caratterizzati da una variazione maggiore in valore assoluto.

La strategia descritta `e usata per ordinare tutti i refinement generati, vengono

poi selezionati i primi N (parametro che indica il massimo numero di figli di un nodo dell’albero) ed essi, a loro volta, sono utilizzati per generare l’albero di

ricerca completo. Quest’ultimo `e caratterizzato da una complessit`a nell’ordine di

grandezza di O(mk), che pu`o essere controllata grazie a questa tecnica. Infatti,

m e k corrispondono rispettivamente al massimo numero di figli di un nodo e al numero dei livelli dell’albero e sono entrambi parametri dell’approccio.

Documenti correlati