• Non ci sono risultati.

POLITECNICO DI TORINO ESAME DI STATO PER L’ABILITAZIONE ALLA PROFESSIONE DI INGEGNERE RAMO INFORMATICA VECCHIO ORDINAMENTO I SESSIONE 2011 Prova scritta del 15 giugno 2011

N/A
N/A
Protected

Academic year: 2022

Condividi "POLITECNICO DI TORINO ESAME DI STATO PER L’ABILITAZIONE ALLA PROFESSIONE DI INGEGNERE RAMO INFORMATICA VECCHIO ORDINAMENTO I SESSIONE 2011 Prova scritta del 15 giugno 2011"

Copied!
5
0
0

Testo completo

(1)

POLITECNICO DI TORINO

ESAME DI STATO PER L’ABILITAZIONE ALLA PROFESSIONE DI INGEGNERE RAMO INFORMATICA

VECCHIO ORDINAMENTO I SESSIONE 2011

Prova scritta del 15 giugno 2011 Premessa.

Molti fenomeni fisici vengono rappresentati mediante un insieme di misure di alcune caratteristiche distintive (features), organizzate in un vettore. Si pensi, ad esempio, ai fenomeni atmosferici, de- scritti dall'insieme di temperature, pressione, umidità, ecc. , o ad un segnale elettrico stazionario, descritto dai punti dello spettro, e così via. Questi vettori possono essere considerati dei punti in uno spazio euclideo multidimensionale.

In molte applicazioni (pattern-recognition, data-base, ecc.), è richiesto di analizzare come questi da- ti si aggregano (clustering). A tal fine la letteratura propone algoritmi come k-Means e il più sofisti- cato ISODATA, qui di seguito descritto.

Algoritmo Isodata

L’algoritmo Isodata (Iterative Self-Organizing Data Analysis Technique A) è simile alla procedura K-Means: si aggiungono in più delle procedure euristiche (importante, tra le altre, quella detta di split and merge).

All’inizio si fissa un numero di cluster iniziali N (non necessariamente quello che si desidera come c definitivo) e i loro centri (arbitrari) z1,z2,...,zNc. Ad esempio, si possono scegliere come centri di cluster i primi N vettori. c

Passo 1) Si specificano i seguenti parametri di processo:

K: numero dei centri di cluster desiderati o auspicati (in tutti i casi, si può prefissare il numero mas- simo di cluster)

ϑ : numero di campioni con cui confrontare il numero di campioni in un cluster N

ϑ : parametro di deviazione standard S

ϑ : parametro di aggregazione di un blocco C

L: massimo numeri di coppie di centri di cluster che possono essere aggregate I: numero di iterazioni permesse

Passo 2) Si distribuiscono gli N campioni

{

x1,...,xN

}

tra gli attuali centri di cluster in base alla rela- zione: x∈ se SJ xzj < xzi , con i= 21, ,...,Nc;ij

In pratica, si attribuisce un vettore al centro di cluster più vicino.

Passo 3) Si scaricano i cluster con meno di ϑ campioni; formalmente: N Se per un j è NjN, allora si elimina Sj e si riduce N di 1. c

(2)

Passo 4) Si ricalcolano i centri dei cluster zj, j=1,2,...,Nc, ponendoli uguali alla media dei cam- pioni in ciascun cluster,

=

Sj

j x

j x

z N1

, con j=1,2,...,Nc

Passo 5) Si calcola la distanza media

=

Sj

x j

j

j x z

D N1 , con j=1,2,...,Nc

Passo 6) Si calcola la media pesata delle distanze medie, cioè

=

= Nc

j NjDj

D N

1

1

Passo 7) a) Se questa è l’ultima iterazione porre ϑC =0 e andare al passo 11).

b) Se Nc ≤ k/2 (pochi cluster rispetto al previsto), andare al passo 8) (fase di split).

c) Se questa è un'iterazione pari oppure Nc ≥ 2k (troppi cluster), andare al passo 11) (fase di merge);

altrimenti continuare (Passo 14).

Passo 8) Calcolare il vettore di deviazioni standard σj =

(

σ1j,σ2j,...,σnj

)

' per ciascun cluster, se-

condo la relazione

( )

= σ

Sj

x

ij ik j

ij x z

N

1 2 , i=1,2,...,n,

Nc

,..., ,

j=12 dove :

n è la dimensionalità dei vettori x

x è la i-esima componente del k-esimo campione di ik Sj

zij è la i-esima componente del j-esimo centro di cluster

In pratica, il vettore σ rappresenta la deviazione standard dei campioni in j Sj lungo gli assi princi- pali delle coordinate.

Passo 9) Si cerca la componente massima di ciascun σ , con j j=1,2,...,Nc e si denota come σjmax

Passo 10) Se per ogni σjmax ci si trova di fronte a questa situazione:

S max j

σ e

( )

+ ϑ

>

>

2 1 2

/ K N ) b

oppure N e D D ) a

C

N j

j

si spezza zj in due centri di cluster z e j+ z . j

Il nuovo centro di cluster z è ricavato da j+ zj sommando una data quantità γ alla componente di j

zj che corrisponde alla massima componente di σ ; j

per z invece j γ viene sottratto. j γ in pratica viene calcolato come j γj =jmax con 0≤ k≤1. L’obiettivo è quello di creare una perturbazione, cioè una differenza sensibile nella distanza tra un generico campione e i due nuovi centri di cluster, senza tuttavia modificare la disposizione degli al- tri cluster in modo apprezzabile. Se avviene lo “splitting”, si va al passo 2 altrimenti si continua;

(3)

(è evidente che la zj originaria scompare, N aumenta di 1) C

Nota: per semplicità, i passi 8) e 9) e la condizione su σ del passo 10 possono essere ignorati. Se sono soddisfatte le condizioni a) e b) indicate nel passo 10, la perturbazione può essere creata sem- plicemente sommando (per z ) e sottraendo (per j+ z ) una quantità γ a ciascuna coordinata del vet-j

tore zj. γ può essere calcolata come una frazione minima di Dj. Passo 10bis) Vai a 14)

Passo 11) Si calcolano le distanze a coppie Dij tra i centri dei cluster:

Dij = zizj , i=1,2,...,NC−1 e j=1,2,...,NC

Passo 12) Si confrontano le distanze Dij con il parametro ϑ . Si ordinano le L più piccole distanze C che sono minori di ϑ in ordine crescente: C [Di1j1,Di2j2,...,DiLjL] ( si ricordi che L è il numero mas- simo di centri di cluster che si possono aggregare).

Passo 13) A partire dalla distanza più piccola Dieje si aggregano i centri a coppie z e ie zje (a condi- zione che z e ie zje non siano già stati usati per una aggregazione).

In pratica da z e ie zje si crea un nuovo centro come somma pesata dei due (i pesi sono il numero di campioni in ogni cluster)

( ) ( )

[

e e e e

]

e e

j j i i j i

*

e N z N z

N

z N ⋅ + ⋅

= +1

( Praticamente z è il baricentro) *

Si cancellano quindi z e ie zje, riducendo N di 1. Si osservi che, poiché ogni centro di cluster è C

usato al più una volta, non è detto che si riescano a fare L aggregazioni.

Passo 14) Se questa è l’ultima iterazione, fine. Altrimenti andare al passo 2) (è previsto che si possa andare anche al passo 1) per modificare qualche parametro, se l’utente lo ritiene opportuno per una migliore adattatività: qui non è richiesto).

Tema.

In un file di tipo testo sono memorizzati un insieme di vettori da utilizzare per la clusterizzazione.

Nella prima riga un numero intero indica la dimensionalità dei vettori. Nelle righe successive ci so- no gli elementi dei vettori espressi come numeri reali, separati da almeno uno spazio (blank) o da un RETURN (<CR>). Il numero di vettori può superare le migliaia.

Realizzare un programma in linguaggio di alto livello (C, C++, Java) che attui l'algoritmo ISODA- TA sopra descritto.

Il nome del file dei dati deve essere introdotto da tastiera o passato come parametro.

Descrivere nel dettaglio ma in modo sintetico:

- le strutture dati (si tenga conto che il numero dei vettori può essere molto grande, il numero di cluster è limitato).

(4)

- gli algoritmi utilizzati nella manipolazione dei dati per realizzare il progetto.

Realizzare nel linguaggio prescelto il programma main e le funzioni principali (si possono trascura- re le funzioni minori o quelle riconducibili ad algoritmi standard, come l’ordinamento ecc.).

Quanto non stabilito espressamente deve essere scelto dall'esaminando e sarà oggetto di valutazio- ne.

Esempio numerico

Siano dati i campioni in figura:

1. Si ipotizza inizialmente k=2. Si sceglie z1

( )

1 =x1 =

( )

0,0, z2

( )

1 =x2 =

( )

1,0

2. Poiché x1z1

( )

1 < x1zi

( )

1 , con i=2, x1 appartiene a S1

( )

1 . Idem per x . Gli altri campioni 3 sono più prossimi a z2

( )

1 .

Quindi:

( ) {

1 3

}

11 x,x

S = , S2

( ) {

1 = x2,x4,...,x20

}

3. Si aggiorna il valore dei centri dei cluster

( )

= ( ) =

(

+

)

=

0.5

0 . 0 2

1

2 1 1 2

1 1 1

1

x x N x

z

S x

( )

= ( ) =

(

+ + +

)

=

33 . 5

67 . 5

18 ...

1

2 1 2 4 20

2 1 2

2

x x

x N x

z

S x

4. Non si sono esaurite le iterazioni, si va al passo 2

(5)

5. Ricalcolando le distanze rispetto ai nuovi centri si conclude che:

( ) {

1 2 8

}

1 2 x,x ,...,x

S = ,

( ) {

9 10 20

}

2 2 x ,x ,...,x

S =

6. Si calcolano di nuovo i centri dei cluster

( ) {

= + + +

}

=

13 . 1

25 . ... 1

8

3 1 1 2 8

1 x x x

z ,

( )

=

{

+ + +

}

=

33 . 7

67 . ... 7

12

3 1 9 10 20

2 x x x

z

7. Si supponga che a questo punto il secondo cluster risulti troppo grande e occorra effettuare uno split. Si procede sommando e sottraendo a z2

( )

3 un valore γ (pari ad es. a 0.001):

8. Si formano due nuovi centri di cluster:

( )

=

+

331 . 7

671 . 4 7 z2

( )

=

329 . 7

669 . 4 7 z2

9. Si rifanno le assegnazioni (su tutti i centri di cluster attualmente presenti), ecc.

Riferimenti

Documenti correlati

Un sistema di trasmissione tipo telepass a 5.2 GHz è costituito da una stazione base, posta a 6 m di altezza sul terreno, che trasmette e riceve segnali verso dei terminali utente,

1) Un prospetto dei requisiti funzionali, tecnologici e prestazionali dal punto di vista dell’utente e del gestore. Nella definizione dei requisiti tecnologici in particolare

Considerando che tra gli impianti necessari alla produzione ci saranno dei forni, si richiede di illustrare i criteri di progettazione e di calcolo degli stessi, in

4. Indipendentemente dal fatto che nel caso specifico servano o no, indicare come `e possi- bile gestire i frame accorciati. In particolare spiegare: a) come si pu`o mantenere un

- da 19÷20 metri fino a circa 25 metri: ghiaia limosa grigia e sabbia medio-fine, limosa (formazione B), - da circa 25 metri in poi: limo argilloso e argilla limosa

Gli utenti registrati potranno scaricare ad alta risoluzione le immagini gratuite, e potranno scaricare quelle a pagamento solo a seguito della relativa transazione economica..

Al progettista `e richiesto di determinare una opportuna quantit` a di banda da allocare sui canali fisici di una intrastruttura fisica pre-esistente, ed una opportuna quantit` a

Supponendo che la tecnologia permetta di utilizzare stazioni base, ciascuna equipaggiata con un numero di canali telefonici multiplo di N = 8 (si assuma che ogni telefonata