Upload
ferdinando-molteni
View
220
Download
3
Embed Size (px)
Citation preview
Algoritmi di classificazione e reti neuraliSeminario su clustering dei dati
Università Sapienza di Roma
Dipartimento di ingegneria Informatica, Automatica e Gestionale
Corso di Laurea in “Ingegneria Gestionale”
A.A. 2013-2014
a cura di Silvia Canale
contatto e-mail: [email protected]
2
Definizione del problema di clustering di dati
Apprendimento automatico e data mining
Schema generale di una procedura di clustering
Applicazioni del clustering di dati
Definizioni preliminari e rappresentazione dei dati
Misure di similarità e di dissimilarità – distanze
Problema della partizione in clique
definizione e formulazione
algoritmo dei piani di taglio
Problema k-means
ARGOMENTI DEL SEMINARIO
3
DEFINIZIONE DEL PROBLEMA
CLUSTERING: classificazione di oggetti sulla base delle similarità percepite
Gli oggetti sono descritti:
- dagli attributi che lo definiscono (misure oggettive o soggettive)
- dalle relazioni con gli altri oggetti
Lo scopo è quello di determinare un’organizzazione degli oggetti che sia:
- valida
- facile da determinare
Un cluster è un gruppo di oggetti simili (criterio di omogeneità). Oggetti che appartengono a cluster diversi non sono simili (criterio di separazione).
4
DEFINIZIONE DEL PROBLEMA
Un cluster è un gruppo di oggetti simili.
SeSe gli oggetti sono puntipunti in uno spazio di distanza spazio di distanza alloraallora possiamo dare la seguente definizione:
Un cluster è un sottoinsieme di punti tali che la distanza tra due punti qualsiasi del cluster è minore della distanza tra un qualsiasi punto del cluster ed un punto esterno al cluster.
Sia X uno spazio di oggetti e d una distanza definita su X.
Indicheremo con (X,d) lo spazio di distanza definito da d su X.
Un sottoinsieme V X è un cluster se e solo se
d(i,j) d(k,l) per ogni i,j,k V, l V
1
11
4
4
5
5
APPRENDIMENTO AUTOMATICO
Apprendimento: Processo di ragionamento induttivoragionamento induttivo che permette di passare dalle osservazioni alle regole generali (tipico dell’uomo che impara dall’esperienza)
Automatico: Definizione automatica, distinta da quella naturale, delle regole generali a partire dalle osservazioni (dati sperimentali)
Scopo: Estrazione di informazione interessante dai dati nuova (non è qualcosa di già noto, analisi esplorativa) oppure
attesa (ipotesi a priori da convalidare, analisi confermativa) implicita: presente nei dati analizzati ma non immediatamente
accessibile potenzialmente utile: può essere utilizzata per prendere delle
decisioni
REGOLE
OSSERVAZIONI
Processo deduttivo
Processo induttivo
INFORMAZIONE
6
APPRENDIMENTO AUTOMATICO
Processo automatico di estrazione di informazioni su un sistema fisico S incognito partendo da un insieme finito di n osservazioni.
L’insieme { v1, v2, …, vn } prende il nome di training set.
Apprendimento non supervisionatonon supervisionato (clustering): Il sistema S non ha ingressi e lo scopo è determinare una regola che metta in relazione le osservazioni del training set sulla base di una misura di similarità definita.
Apprendimento supervisionatosupervisionato (analisi discriminante): Il sistema S riceve gli ingressi { c1, c2, …, cn
} e lo scopo è determinare una regola che metta in relazione le osservazioni del training set con gli ingressi.
S
v1
v2
v3
vn
c1
c2
c3
cn
7
ESTRAZIONE DELLA CONOSCENZA
Pulizia ed integrazione
dei dati
Data Mining
Valutazioneregole
Database
Selezione e trasformazione
dei dati
Informazione
Datawarehouse
Regole
APPRENDIMENTO AUTOMATICO
8
APPLICAZIONI
Segmentazione di immagini – partizione di un’immagine in regioni che siano omogenee rispetto ad una proprietà di interesse (es. intensità, colore, struttura, …)
Riconoscimento di oggetti e caratteri – Analisi di immagini allo scopo di riconoscere particolari strutture
Information retrieval – Processo di raccolta e recupero automatico di informazioni (es. libri e riviste di una biblioteca)
Segmentazione di grandi database in gruppi omogenei di dati
Classificazioni di documenti web
Analisi predittiva in Customer Relationship Management- Customer profiling- Customer retention- Market segmentation- … ….E MOLTE ALTRE
9
CLUSTERING – SCHEMA GENERALE
1. Rappresentazione dei dati
• Definizione del numero, del tipo e della scala delle caratteristiche (o attributi)
• Definizione del numero di cluster (o classi)
• Selezione delle caratteristiche (opzionale)
• Estrazione delle caratteristiche (opzionale)
2. Definizione di una misura di similarità sull’insieme dei dati
3. Applicazione di un algoritmo di clustering
4. Astrazione sui dati
5. Valutazione dei risultati
studio dell’andamento dei cluster
analisi della validità dei cluster confronto esterno confronto interno controllo relativo
DESCRIZIONE COMPATTA DESCRIZIONE COMPATTA E SINTETICA DEI CLUSTERE SINTETICA DEI CLUSTER
10
DEFINIZIONI PRELIMINARI
Un algoritmo di clustering partizionale raggruppa le osservazioni del training set in cluster sulla base di una misura di similarità definita sull’insieme delle coppie di osservazioni.
Due tipi di algoritmi di clustering partizionale:
- clustering di tipo “hard”: un’osservazione è assegnata ad un solo cluster;
- clustering di tipo “fuzzy”: un’osservazione ha un grado di appartenenza per ciascuno dei cluster individuati.
Le osservazioni possono essere rappresentate in due formati standard:
matrice delle istanze di dato
matrice delle similarità
11
MATRICE DELLE ISTANZE
Un’osservazione (o istanza) v è rappresentata da un vettore di m caratteristiche (o attributi).
v1
v2
v = ……vm
L’insieme X = { v1, v2, …, vn } delle osservazioni viene
rappresentato come una matrice n x m detta matrice delle istanze.
X =
nm
n2
n1
2m
22
21
1m
12
11
v .... v v
.... .... .... ....
v .... v v
v .... v v
12
TIPI DI DATO
Un’istanza può rappresentare un oggetto fisico oppure un concetto astratto.
Un attributo può essere di diversi tipi:
quantitativo
• continuo (es. peso, larghezza, temperatura)
• discreto (es. età di un individuo)
• intervallo (es. durata di un evento)
qualitativo
• nominale (es. colori)
• ordinato (es. intensità di un suono, valutazione di una sensazione)
Sono inoltre possibili altre rappresentazioni delle istanze.
13
MATRICE DELLE RELAZIONI
Sia X = { v1, v2, …, vn } un insieme di n istanze.
Indichiamo con V = { 1, 2, …, n } l’insieme degli indici da 1 a n.
Una relazione r definita sullo spazio X x X delle coppie di istanze può essere rappresentata come una matrice n x n detta matrice delle relazioni.
R =
Consideriamo relazioni simmetriche ( per ogni i, j V ) e in particolare: relazioni di similarità (più vi e vj sono simili, più è grande) relazioni di dissimilarità (più vi e vj sono simili, più è basso)
nnn2n1
2n2221
1n1211
r .... r r
.... .... .... ....
r .... r r
r .... r r
jiij r r
ijr
ijr
14
DISTANZE
i)d(j,j)d(i,
0i)d(i,
Una distanzadistanza d definita sull’insieme X è una relazione che gode delle seguenti proprietà:
a) d è simmetrica per ogni coppia (i,j) in V.
b) d assume valore nullo per ogni coppia (i,i) in V.
Indicheremo con (X,d) lo spazio di distanza definito da d su X.
Se inoltre d soddista la proprietà:
c) d soddisfa la diseguaglianza triangolare per ogni terna (i,j,k) in V
allora d è una semimetricasemimetrica sull’insieme X.
Si definisce metricametrica una semimetrica d che soddisfa l’ulteriore proprietà:
j)d(k,k)d(i,j)d(i,
ji 0j)d(i,
v1
13
4
v2
v3v1
12
4
v2
v3
15
NORME
Se X è uno spazio vettoriale definito sul campo dei reali , una
funzione || • || : X + si definisce norma se:
i. || v || = 0 v = 0 per ogni v in X.
ii. || v || = | | || v || per ogni in , v in X.
iii. || vi + vj || || vi || + || vj || per ogni vi ,vj in X.
Si definisce spazio normato la coppia (X, || • ||).
Ad uno spazio normato (X, || • ||) può essere associata la topologia metrica indotta dalla norma || • || tramite l’identità:
Consideriamo lo spazio normato (m, || • ||p) dove || • ||p è la norma lp
jiji v-v :)v,(vd = METRICA METRICA NORMANORMA
p1m
1k
pkp
)|v|(v
16
UNA METRICA NORMA È UNA METRICA
Dim. Sia || • || : X + una norma definita su X. La funzione
a) è simmetrica
b) d assume valore nullo per ogni coppia (i,i) in V.
c) d soddisfa la diseguaglianza triangolare per ogni terna (i,j,k) in V
jiji v-v )v,(vd
)v,(vdv-vv-v v--1(vv-v )v,(vd ijijijijjiji |1|)
|| v || = | | || v ||
00 iiii v-v )v,(vd
|| v || = 0 v = 0
)v,(vd)v,(vdvvv(v
vvv(vvvv-vv-v )v,(vd
kjkijkki
jkkikkjijiji
)()
)()|| vi + vj || || vi || + || vj ||
17
METRICHE NORME
Una classe molto importante di metriche è quella delle metriche dlp
indotte dalle diverse norme lp:
p = 1 – distanza di Manhattan o metrica “city-block”
p = 2 – distanza Euclidea
p = – distanza di Lagrange
p = 0 – distanza di Hamming
p1
pm
1k
jk
ikp
jiji )|v-v|(v-v )v,(vdp
|v-v| )v,(vdm
1k
jk
ik
ji
1
2m
1k
jk
ik
ji |v-v| )v,(vd2
|| jk
ik
m1,...,k
jiji v-vmaxv-v )v,(vd
0}| |v-v| :m1,...,k | {v-v )v,(vd jk
ik0
jiji
0
18
PROBLEMA DI PARTIZIONE
Un algoritmo di clustering partizionale di tipo “hard” determina una partizione delle osservazioni del training set sulla base di una misura di similarità definita sull’insieme delle coppie di osservazioni.
Si definisce partizione P di un insieme X = { v1, v2, …, vn } è una
famiglia finita di k insiemi V1, V2, …, Vk
P = { V1, V2, …, Vk }
tali che
ogni insieme Vj in P è un sottoinsieme non vuoto di X: Vj X
XVk
1jj
jik 1,..., ji, 0VV ji
19
RAPPRESENTAZIONE DEI DATI
Dato un insieme di osservazioni X = { v1, v2, …, vn } e la matrice
delle similarità relative all’insieme X, si definisce grafo associato a
X il grafo G(N,A) tale che:
N rappresenta l’insieme dei nodi { 1, 2, …, n } tale che ciascun
nodo i N sia associato ad un’osservazione vi X
A sia l’insieme degli archi che connettono ogni coppia non
ordinata (vi, vj) di osservazioni in X con vi vj.
L’arco in A che connette due nodi i e j viene indicato con (i,j) o con
ij.
Siano n e m il numero di nodi e di archi, rispettivamente, in N e A.
Il grafo associato a X è completo! 21)n(n
m
20
INSIEME DELLE SOLUZIONI – DEFINIZIONI
Si definisce clustering del grafo G(N,A) una partizione
P(G) = { V1, V2, …, Vk }
dei nodi del grafo G(N,A).
Gli elementi ViP(G) vengono definiti componenti o cliqueclique del
clustering P(G).
Dato un grafo G(N,A) si definisce cliqueclique un sottoinsieme V N dei nodi tali che per ogni coppia di nodi i e j l’arco ij appartiene ad A.
A)G(N,
1
23
4
5
6
Se il grafo G(N,A) è completo, ogni sottoinsieme V N è una cliqueclique.
}4,3,2,1{1V
}6,5,4,3{2V
}5,4,2,1{3VNON è una clique:
25 A
21
INSIEME DELLE SOLUZIONI – DEFINIZIONI
Si definisce clustering del grafo G(N,A) una partizione
P(G) = { V1, V2, …, Vk }
dei nodi del grafo G(N,A).
Come sono fatte le soluzioni di un problema di clustering?
Sia Vh N. Indichiamo con (Vh)
l’insieme degli archi che connettono
nodi in Vh e nodi fuori da Vh
Se |Vh| = 1, (Vh) è la stella del nodo in Vh.
hhh Vj,VA| iij)δ(V Vδ(V)
i
j
22
INSIEME DELLE SOLUZIONI – DEFINIZIONI
Siano Vh, Vl N. Indichiamo con
(Vh ,Vl) l’insieme degli archi che
connettono nodi in Vh e nodi in Vl
In generale, dati k sottoinsiemi
V1,…, Vk N, l’insieme
degli archi con estremi in due
sottoinsiemi diversi viene
indicato con
lhlh Vj,VA| iij)V,δ(V
lh k,1,...,lh,Vj,VA| iij)V,....,δ(V lhk1 ,
1V
2V3V
)V,δ(V 31
1V
2V3V
)V,V,δ(V 321
23
INSIEME DELLE SOLUZIONI – DEFINIZIONI
Ad ogni clustering P(G)= { V1, V2, …, Vk } del grafo G(N,A) è
possibile associare un insieme multi-cutmulti-cut (P(G))
(P(G)) = ( V1, V2, …, Vk )
Definiamo il vettore di incidenza yP
di un insieme multi-cutmulti-cut (P(G)) 1V
2V3V
)V,V,V,δ(V 4321
4V
otherwise 0
δ(P(G))ij 1y 0,1y ij
mP
24
INSIEME DELLE SOLUZIONI – DEFINIZIONI
1V)E(V1u
v
Sia Vi N. Indichiamo con E(Vi) l’insieme degli archi che
connettono
nodi in Vi.
Se |Vi| = 1, E(Vi) è vuoto.
In generale, dati k sottoinsiemi
V1,…, Vk N, l’insieme degli
archi con estremi nello stesso
sottoinsieme viene indicato con
iii Vv,VA| uuv)E(V
)E(V ... )E(V)V,....,E(V k1k1 1V
2V3V
)V,V,E(V 321
25
INSIEME DELLE SOLUZIONI – DEFINIZIONI
Ad ogni clustering P(G)= { V1, V2, …, Vk } del grafo G(N,A) è
possibile associare un insieme partizionepartizione E(P(G))
E(P(G)) = E( V1, V2, …, Vk )
Definiamo il vettore di incidenza xP
di un insieme partizione E(P(G))partizione E(P(G)) 1V
2V3V
)V,V,V,E(V 4321
4V
otherwise 0
E(P(G))ij 1 x0,1x ij
mP
mPP 1yx Gli insiemi multi-cutmulti-cut e partizionepartizione definiscono una partizione di A
26
VETTORE DI INCIDENZA DI UNA PARTIZIONE
1V
2V
3V
)E(V3
)E(V1
)E(V2
1
8
76
5
43
2
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
78
68
67
58
57
56
48
47
46
45
38
37
36
35
34
28
27
26
25
24
23
18
17
16
15
14
13
12
321 V,V,VP(G)
Esempio –– Sia X = { v1, v2, v3, v4, v5, v6, v7, v8 }.
Definiamo il grafo G(N,A) associato all’insieme X, dove
N = { 1, 2, 3, 4, 5, 6, 7, 8 } e A = { ij | 1 i j 8 }.
Consideriamo il clustering
P(G)= { V1, V2, V3 }
Px
27
INSIEME DELLE SOLUZIONI
Supponiamo di voler determinare una partizione in k cluster.
Sia s = . Se vogliamo che i cluster contengano un numero numero
ugualeuguale di osservazioni, il problema è equivalente al problema di
determinare una partizione in cluster che abbiano ciascuno un
numero di osservazioni non inferiori a s.
kn
k
ji
δ(i)1sxx ikij
2
L’insieme S delle soluzioni del problema di clustering di X è
l’insieme dei vettori di incidenza di tutte le possibili insiemi
partizione E(P(G)) del grafo G(N,A) associato a X.
E(P(G)) di incidenza di vettore x :{0,1}xS Pm
P
δ(i)ij
ijx 1 s Ni
Vincolo di
dimensione
s =3
28
PROBLEMA DI PARTIZIONE IN CLIQUE
In base al valore di s possiamo avere diversi problemi:
}
{
Ni 1sx
,P(G) di incidenza di vettore x :{0,1}xS
δ(i)ijij
Pm
P
se s 1, S è l’insieme delle soluzioni del problema di partizione partizione
in in cliqueclique (CPP) dei nodi di un grafo
Consideriamo l’insieme delle soluzioni
se s 1, S è l’insieme delle soluzioni del problema di partizione partizione
in in clique con vincolo di dimensioneclique con vincolo di dimensione (CPPMIN)
se k = 2, S è l’insieme delle soluzioni del problema di
equipartizioneequipartizione se n è multiplo di s, S è l’insieme delle soluzioni del problema di
equipartizione in k sottoinsiemiequipartizione in k sottoinsiemi Ni 1sx 1sxδ(i)ij
ijδ(i)ij
ij
29
CRITERIO DI OTTIMALITÀ
Esempio –– Sia X = { v1, v2, v3, v4, v5, v6, v7, v8 } e s = 2
Definiamo il grafo G(N,A) associato all’insieme X, dove
N = { 1, 2, 3, 4, 5, 6, 7, 8 } con n = 8, e A = { ij | 1 i j 8 }.
Consideriamo i due clustering P1(G)= { V1, V2, V3 } e P2(G)= { V4, V5,
V6 }
Come valutare le soluzioni in S? Qual è la migliore soluzione?
1V
2V
3V1
8
76
5
43
24V5V
6V
1
8
76
5
43
2
In P1(G) i punti appartenenti allo stesso cluster sono più vicini…
30
CRITERIO DI OTTIMALITÀ
1V
2V
3V1
8
76
5
43
24V5V
6V
1
8
76
5
43
2
In P1(G) i punti appartenenti allo stesso cluster sono più vicini…
La matrice delle relazioni contiene le informazioni relative alla similarità o alla dissimilarità tra i punti
Sia D la matrice n x n delle relazioni di dissimilarità (più i e j sono simili, più è basso)ijd
1
1 1
5.1
1
11
1
1 1
32 3
1
3
Assegniamo ad ogni arco ij di A il peso ijd
31
CRITERIO DI OTTIMALITÀ
1V
2V
3V1
8
6
5
43
24V5V
6V
1
8
6
5
43
2
Assegniamo ad ogni cluster V N la somma dei pesi degli archi in E(V)
1
1 1
5.1
1
11
1
1 1
32 3
1
3
Assegniamo ad ogni arco ij di A il peso ijd
E(V)ij
ijdc(V)
7 73)c(V2
3)c(V3
5.1)c(V1
11)c(V5
1)c(V6
3)c(V4
Assegniamo ad ogni partizione P(G)= { V1, V2, …, Vk } del grafo G(N,A) la somma dei costi degli elementi della partizione
P(G)V
i
i
)c(Vc(P(G))
c(P1(G)) = 1.5 + 3 + 3 =
7.5
c(P2(G)) = 15<
P1(G) è migliore di P2(G)
32
CRITERIO DI OTTIMALITÀ
Ad ogni partizione P(G)= { V1, V2, …, Vk } del grafo G(N,A) associamo il costo
P(G)V
i
i
)c(Vc(P(G))
Ad ogni P(G)= { V1, V2, …, Vk } è associato il vettore di incidenzavettore di incidenza
xP di un insieme partizione E(P(G))partizione E(P(G))
k
ji
E(V)
otherwise 0
E(P(G))ij 1 x0,1x ij
mP
k1,..., h
),E(Vij x hij
1
V
)V,...,E(VE(P(G)) k1
∑∑A∈ij
ijijE(P(G))∈ij
ij xddc(P(G)) ==
ijx
jkxikx
33
CRITERIO DI OTTIMALITÀ
Ad ogni partizione P(G)= { V1, V2, …, Vk } del grafo G(N,A) associamo il costo
Aij
ijijxdc(P(G))
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
78
68
67
58
57
56
48
47
46
45
38
37
36
35
34
28
27
26
25
24
23
18
17
16
15
14
13
12
Px
Esempio –– Sia X = { v1, v2, v3, v4, v5, v6, v7, v8 } e s = 2
Consideriamo la soluzione xP associata al
clustering P(G)= { V1, V2, V3 }
1V
2V
3V1
8
6
5
43
2
1
1 1
5.1
1
11
7 3)c(V2
3)c(V3
5.1)c(V1
Aij
ijijxdc(P(G))
5.7
786867
45353412
ddd
dddd
34
FORMULAZIONE MATEMATICA DEL CPP
S x
xd minAij
ijij
} { Ni 1sx,P(G) di incidenza di vettore x :{0,1}xSδ(i)ij
ijPm
P
Risolvere il problema di partizione in cliquepartizione in clique dei nodi di un grafo
significa determinare la soluzione del seguente problema
dove l’insieme delle soluzioni è
35
FORMULAZIONE DI UN PROBLEMA DI PL01
Sia S l’insieme delle soluzioni di un problema di Programmazione Lineare 0–1
Esempio CPP – Dato un grafo G(N,A)
S è l’insieme di tutte le possibili partizioni in clique di G(V,A)
A)G(N,
1
23
4
5
6
56
46
45
36
35
34
26
25
24
23
16
15
14
13
12
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
211 V,V(G)P 1Px
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
432 V,V(G)P
653 V,V(G)P
S x
xd minAij
ijij
S x
xc min T
} { P(G)diincidenza di vettorex :{0,1}xS Pm
P
36
FORMULAZIONE DI UN PROBLEMA DI PL01
Indichiamo con x* la soluzione ottima del problema di PL01
xc minargx* T
S x
In un problema di PL01 S è un insieme finito
La soluzione ottima x* esiste sempre e può essere individuato con una enumerazione completa di S
L’enumerazione completa di tutte le soluzioni in S
richiede tempi moltomolto lunghi
PROCEDURA DI ENUMERAZIONE COMPLETA (ESEMPIO CPP)
1. Genera tutte le partizioni in clique del grafo G(N,A)
2. Per ogni partizione in clique calcola il costo
3. Scegli la partizione in clique che produce la soluzione di costo minimo
Aij
ijijxd
37
SOLUZIONE DI UN PROBLEMA DI PL01
In generale, la soluzione di un problema di PL01 richiede algoritmi sofisticatisofisticati e molto efficientiefficienti.
Quanto è buonabuona la soluzione ammissibile trovata?
Gli algoritmi di soluzione si basano generalmente su:
certificati di qualità della soluzione
metodologie generali di soluzione, sia di tipo esatto che di tipo euristico
Gli algoritmi di soluzione possono essere:
di tipo esatto: determinano sempre la soluzione ottima
approssimati: determinano sempre una soluzione ammissibile
Formulare non implicanon implica risolvere un problema di PL0.
38
SEMISPAZI E POLIEDRI
PP = { x Rm : Ax ≤ b }
Siano
• A Rpxm una matrice reale di p righe e m colonne
• b Rp un vettore reale di p componenti
L’insieme dei vettori xRm che soddisfano le p disequazioni x ≤ bq del sistema
è definito POLIEDROPOLIEDRO e viene indicato con la lettera PP
Ax ≤ b
Tqa
x P P x ≤ bq per per qq = 1, …, p = 1, …, pTqa
39
SEMISPAZI E FORMULAZIONI
PP = { x R2 : }
Geometricamente, ogni disequazione del sistema Ax ≤ b individua unsemispazio
Esempio – m = 2 1xx2
121 Consideriamo la retta
1xx2
121
Quindi un poliedro PP è intersezione di un numero finito q di semispazi.
PPPP = { x Rp : Ax ≤ b }
x1
x2
40
FORMULAZIONE DI UN PROBLEMA DI PL01
Sia S l’insieme delle soluzioni di un problema di Programmazione Lineare 0–1.
P {0,1}m = S
Il poliedro P è una formulazioneformulazione del problema di Programmazione Lineare 0–1 se e solo se
contiene tutti i vettori di S: S P
non contiene alcun vettore di S’ ={ 0,1}m \ S: P S’ =
Ci sono infiniteinfinite formulazioni dello stesso problema di PL01.
Per ognuna vale l’ovvia proprietà:
min { cTx: x S } = min { cTx: x P {0,1}m }
= cTx*
x1
x2
PP
0
0
0
1
1
1
1
0
41
FORMULAZIONI E LOWER BOUND
Per ogni formulazione P vale inoltre la disuguaglianza
Il valore
LB(P) = min { cTx: x P }viene definito lower bound del problema di PL01.
min { cTx: x P {0,1}m }min { cTx: x P }
Per ogni formulazione di un problema di PL01 con insieme delle soluzioni vale la proprietà
LB(P) cTx*
Il lower bound è il valore ottimo della soluzione di un problema di PL che viene definito rilassamento lineare
min { cTx: x P }
42
FORMULAZIONE OTTIMA
Esiste una formulazione P* migliore di tutte le altre?
P* = conv( S )
Per il problema della partizione in clique dei nodi di un grafo, non
conosciamo tutte le disequazioni che definiscono il poliedro P*
Argomento trattato nel corso di Ottimizzazione Combinatoria (III anno)
x1
x2
P*P*
conosciamo alcune famiglie di disequazioni che definiscono
P*
SI
Inoltre….
Una disequazione aTx b si definisce validavalida per un poliedro P se e solo se è soddisfatta da tutti i punti in P
conosciamo famiglie di disequazioni valide per P*
PP { x Rp : aTx b }
43
DISEQUAZIONI TRIANGOLO
Consideriamo tre nodi i, j, k N di G(N,A)
1 xse ij
Si definisce disequazione triangolodisequazione triangolo relativa ai nodi i, j, k
1xxx jkikij
Una disequazione triangolo rappresenta il vincolo logico:
1 x jk
A)G(N,i
jk
1 xe ik
44
i
j k
0
0
0
x
x
x
jk
ik
ij
(a)
NO
(b)
0
0
1
x
x
x
jk
ik
ij
i
j k
(c)
i
j k
0
1
0
x
x
x
jk
ik
ij
(e)
i
j k
0
1
1
x
x
x
jk
ik
ij
(d)
i
j k
1
0
0
x
x
x
jk
ik
ij
(f)
i
j k
1
0
1
x
x
x
jk
ik
ij
(h)
i
j k
1
1
1
x
x
x
jk
ik
ij
(g)
i
j k
1
1
0
x
x
x
jk
ik
ij
45
FORMULAZIONE DEL PROBLEMA CPP
Consideriamo il poliedro definito dalle disequazioni triangolo relative a tutte le terne di nodi G(N,A)
} mji1per 1x 0
m,kji1per
1xxx
1xx x
1xx x
:R x {P'
ij
jkikij
jkikij
jkikijm
È facile verificare che P’ è una formulazione del problema CPP
A)G(N,1
23
4
5
6
56
46
45
36
35
34
26
25
24
23
16
15
14
13
12
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
211 V,V(G)P 1Px
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
P {0,1}m = S
46
i
j k
0
0
0
x
x
x
jk
ik
ij
(a) (b)
0
0
1
x
x
x
jk
ik
ij
i
j k
(c)
i
j k
0
1
0
x
x
x
jk
ik
ij
(e)
i
j k
0
1
1
x
x
x
jk
ik
ij
(d)
i
j k
1
0
0
x
x
x
jk
ik
ij
(f)
i
j k
1
0
1
x
x
x
jk
ik
ij
(h)
i
j k
1
1
1
x
x
x
jk
ik
ij
(g)
i
j k
1
1
0
x
x
x
jk
ik
ij
NO
NO
NO
47
FORMULAZIONE DEL PROBLEMA CPP
Le disequazioni triangolo sono tante.
3
n 33 disequazioni per ogni terna ordinata di nodi
Consideriamo il rilassamento lineare del problema
S x
xd minAij
ijij
P' x
xd minAij
ijij
x {0,1}m
Ora sono ammissibili soluzioni non interenon intere
1
23
4
5
6
56
46
45
36
35
34
26
25
24
23
16
15
14
13
12
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
.....(G)P1
1Px
21
41
41
0
0
41
0
0
0
21
0
0
0
21
21
S P’
?21
21
21
41
41
21
41
48
DISEQUAZIONI A 2 PARTIZIONI
Possiamo trovare disequazioni migliori delle disequazioni triangolo?
Siano S,T N due sottoinsiemi disgiunti e non vuoti di N.
La disequazione a 2 partizioni2 partizioni (S,T) associata ai sottoinsiemi S e T è
| }T|| ,S| min{x(E(T))x(E(S)) ) x( T)δ(S,S
T
2
3
1
4
1xxxxxx 342423141312
x(E(T)) E(S)
min{1,3}
Una disequazione a 2 partizioni2 partizioni (S,T) associata ai sottoinsiemi S e
T definisce è validavalida per il poliedro P*.
Definisce una faccia di P* se e solo se |T||S|
) x( T)δ(S,
49
DISEQUAZIONI A 2 PARTIZIONI
Sia P’’ il poliedro costituito da tuttetutte le disequazioni a 2 partizioni2 partizioni (S,T) con |S| |T|
S
T
2
3
1
4
1xxxxxx 342423141312
OsservazioneOsservazione Le disequazioni triangolo sono disequazione a 2 2 partizionipartizioni (S,T) con |S|= 1 e |T| = 2
P’’ P’
0
0
02
12
12
1
x
x
x
x
x
x
x
23
24
23
14
13
12
ˆ
21
21
210
00
EsempioEsempio Consideriamo il grafo G(N,A) e la soluzione
soddisfa tutte le 12
disequazioni triangolo
x̂
non soddisfa la
disequazione a 2 part.
S = { 1 } e T = { 2, 3, 4 }
x̂'P'xˆ
1000111 222
P’’ P’
P'xˆ
50
DISEQUAZIONI A 2 PARTIZIONI
Quindi…
Data una soluzione x’ appartenente a P’ è possibile determinare S
e T tali che la disequazione a 2 partizioni2 partizioni (S,T) sia violata da x’ ?
P* P’’ P’ P*
P’
P’’
PROBLEMA DI SEPARAZIONE delle disequazioni a 2 partizioni
(S,T)
x’
S
T
2
3
1
4
21
21
210
00
come individuare S e T tale che
| }T|| ,S| min{x(E(T))x(E(S)) ) x( T)δ(S,
51
EURISTICA DI SEPARAZIONE
Sia x’ una soluzione appartenente a P’.
Vogliamo determinare, se esiste, una disequazione a 2 partizioni (S,T) con |S|=1
Per ogni i N
poni S = { i } e determina l’insieme W = { j N \{i} : 0 < xij’ < 1 }scegli un ordinamento nell’insieme W: W = { j1, …, jl }
poni T = { j1}
per ogni k = 2, …, l poni T = T { jk } se xjkjk’’ = 0 per ogni jk’
Tse |T|>1 e x’((S,T))>1, la disequazione a 2 partizioni (S,T) è violata
ALGORITMO EURISTICO
complessità O(n3) La soluzione dipende dall’ordinamento!
52
EURISTICA DI SEPARAZIONE
ESEMPIO Consideriamo la soluzione x’ in figura e applichiamo l’algoritmo euristico di separazione
S
T
2
3
1
4
21
21
21
0
00
Sia i = 1 e poniamo S = { 1 }
Definiamo W = { 2, 3, 4 } e scegliamo come ordinamento dato dalla permutazione naturale
Poniamo T = { 2 } e verifichiamo:
T = T { 3 } se x32’ = 0
Iterazione 1
T = { 2, 3 }T = T { 4 } se x43’ = 0 e x42’ = 0 T = { 2, 3, 4
}x’(S,T)= 3 / 2 >1 1x(E(T))x(E(S)) ) x( T)δ(S,
1x(E(T))x(E(S)) ) x( T)δ(S,
53
EURISTICA DI SEPARAZIONE
S
T
2
3
1
4
21
21
21
0
00
Sia i = 2 e poniamo S = { 2 }
Definiamo W = { 1 }
Poniamo T = { 1 }
Iterazione 2
|T| = 1 non è possibile determinare una disequazione violata
Per simmetria, è facile verificare che le iterazione 3 e 4 danno lo stesso risultato dell’iterazione 2.
L’unica disequazione violata da x’ trovata dall’algoritmo è
1xxxxxx 342423141312
54
FORMULAZIONE OTTIMA
Per il problema della partizione in clique dei nodi di un grafo, non
conosciamo tutte le disequazioni che definiscono il poliedro P*conosciamo alcune famiglie di disequazioni che definiscono
P*conosciamo famiglie di disequazioni valide per P*
In particolare,
le disequazioni triangolodisequazioni triangolo relative ai nodi i, j, k
1xxx jkikij
le disequazioni a 2 partizioni2 partizioni (S,T) associate ai sottoinsiemi S e T
|}T||,S| min{x(E(T))x(E(S)) ) x( T)δ(S,
P’
P’’
55
ALGORITMO DEI “PIANI DI TAGLIO”
Definisci il poliedro P0 P’ definito da un
sottoinsieme di disequazioni triangolo
Poni h = 0
risolvi il problema di PL
sia xh la soluzione ottima del problema di PL
esiste una disequazione triangolo violata da xh ?
P*
P’
h
Aijijij
P x
xd min
ALGORITMO DI SOLUZIONE
P’x0
P0
P0
P1
SI xh P’ : aggiungi la disequazione a Ph
e definisci il nuovo poliedro Ph+1
P*
56
esiste una disequazione triangolo violata da xh ?
ALGORITMO DI SOLUZIONE
NO xh P’
ALGORITMO DEI “PIANI DI TAGLIO”
xh {0,1}m ?
P’’
P’
P*
P’
P0
P*x0
NO xh S : esistono due insiemi S e T tali che la disequazione a 2 2
partizionipartizioni (S,T) sia violata da xh?
STOP
SI xh P’’ : aggiungi la disequazione a Ph e definisci il nuovo poliedro Ph+1
SI xh S : xh è la soluzione ottimax0
P0
57
esistono due insiemi S e T tali che la
disequazione a 2 partizioni2 partizioni (S,T) sia violata da xh?
ALGORITMO DI SOLUZIONE
NO xh P’’
ALGORITMO DEI “PIANI DI TAGLIO”
xh {0,1}m ?
P’
P0
P*
P’
P0
P*x0
NO xh S : applica il metodo del branch and bound per risolvere il problema di PL01
P’’
x0
mh
Aijijij
{0,1}P x
xd min
STOPSI xh S : xh è la soluzione ottima
P’’
STOP
VERO se l’algoritmo di separazione è esatto
58
ESEMPIO
ESEMPIO Sia X = { v1, v2, v3, v4, v5, v6, v7, v8 }.
Definiamo il grafo G(N,A) associato all’insieme X, dove
N = { 1, 2, 3, 4, 5, 6 } e A = { ij | 1 i j 6 }.
A)G(N,
1
65
2 3
4
20
10
10
10
10
10
1010
20
0.5
0.50.2
0.3
0.5
0.5
0 10 10 0.2 0.5 0.5
10 0 0.5 0.3 0.5 10
10 0.5 0 10 10 10
0.2 0.3 10 0 10 20
0.5 0.5 10 10 0 20
0.5 10 10 20 20 0
D =
Sia D la matrice delle distanze
Risolviamo il problema di partizione in clique con vincolo di dimensione con s = 2.
59
APPLICAZIONE ALGORITMO
Definiamo il poliedro P0 P’ definito da un
sottoinsieme di disequazioni triangolo e h = 0 x12 + x13 - x23 <= 1 x12 - x13 + x23 <= 1 - x12 + x13 + x23 <= 1 x12 + x14 - x24 <= 1 x12 - x14 + x24 <= 1 - x12 + x14 + x24 <= 1 x12 + x15 - x25 <= 1 x12 - x15 + x25 <= 1 - x12 + x15 + x25 <= 1 x12 + x16 - x26 <= 1 x12 - x16 + x26 <= 1 - x12 + x16 + x26 <= 1 x13 + x14 - x34 <= 1 x13 - x14 + x34 <= 1 - x13 + x14 + x34 <= 1 x13 + x15 - x35 <= 1 x13 - x15 + x35 <= 1 - x13 + x15 + x35 <= 1 x13 + x16 - x36 <= 1 x13 - x16 + x36 <= 1 - x13 + x16 + x36 <= 1
P0 = { x [0,1]15: } { x [0,1]15 : }
x12 + x13 + x14 + x15 + x16 >= 1
x12 + x23 + x24 + x25 + x26 >= 1
x13 + x23 + x34 + x35 + x36 >= 1
x14 + x24 + x34 + x45 + x46 >= 1
x15 + x25 + x35 + x45 + x56 >= 1
x16 + x26 + x36 + x46 + x56 >= 1
60
risolviamo il problema di PL
sia x0 la soluzione ottima del problema di PL di costo 1.8
0
Aijijij
P x
xdmin
A)G(N,
1
65
2 3
41
1
1
1
56
46
45
36
35
34
26
25
24
23
16
15
14
13
12
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
0x
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
11
1
111
1
1
APPLICAZIONE ALGORITMO
61
esiste una disequazione triangolo violata da x0 ?
SI x0 P’ : aggiungi la disequazione a P0 e definisci il nuovo poliedro
per enumerazione o ispezione visiva
1
65
2 3
41
1
1
111
1
111
1
1
- x23 + x25 + x35 <= 1- x34 + x35 + x45 <= 1
P1 = P0{ x [0,1]15: }
- x34 + x35 + x45 = 2 > 1
- x23 + x25 + x35 = 2 > 1
APPLICAZIONE ALGORITMO
62
risolviamo il problema di PL
sia x1 la soluzione ottima del problema di PL di costo 6.25
1
Aijijij
P x
xdmin
1x
0
0 2
1
21
21
0 2
1
21
0
0 2
1
0 2
1
0
0
56
46
45
36
35
34
26
25
24
23
16
15
14
13
12
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
1
65
2 3
42
1
21
21
21
21
21
21
APPLICAZIONE ALGORITMO
63
esiste una disequazione triangolo violata da x1 ?
NO x1 P’
1
65
2 3
42
1
21
21
21
21
21
21
x1 {0,1}m ?
NO x1 S : esistono due insiemi S e T tali che la disequazione a 2 2
partizionipartizioni (S,T) sia violata da x1?applico l’euristica
APPLICAZIONE ALGORITMO
64
esiste una disequazione a 2 partizioni violata da x1 ?
1
6
2 3
42
1
21
21
21
21
21
21
APPLICAZIONE ALGORITMO
Sia i = 1 e poniamo S = { 1 }Definiamo W = { 4, 6 }
Poniamo T = { 4 } e verifichiamo:
T = T { 6 } se x46 = 0
Iterazione 1
T = { 4, 6 }
x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 1 }
5
65
1
6
2 3
42
1
21
21
21
21
21
21
APPLICAZIONE ALGORITMO
Sia i = 2 e poniamo S = { 2 }Definiamo W = { 5, 6 }
Poniamo T = { 5 } e verifichiamo:
T = T { 6 } se x56 = 0
Iterazione 2
T = { 5, 6 }
x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 2 }
5
66
1
6
2 3
42
1
21
21
21
21
21
21
APPLICAZIONE ALGORITMO
Sia i = 3 e poniamo S = { 3 }Definiamo W = { 5, 6 }
Poniamo T = { 5 } e verifichiamo:
T = T { 6 } se x56 = 0
Iterazione 3
T = { 5, 6 }
x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 3 }
5
67
1
6
2 3
42
1
21
21
21
21
21
21
APPLICAZIONE ALGORITMO
Sia i = 4 e poniamo S = { 4 }Definiamo W = { 1, 5 }
Poniamo T = { 1 } e verifichiamo:
T = T { 5 } se x15 = 0
Iterazione 4
T = { 1, 5 }
x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 4 }
5
68
1
6
2 3
42
1
21
21
21
21
21
21
APPLICAZIONE ALGORITMO
Sia i = 5 e poniamo S = { 5 }Definiamo W = { 2, 3, 4 }
Poniamo T = { 2 } e verifichiamo:
T = T { 3 } se x23 = 0
Iterazione 5
T = { 2, 3 }
5
T = T { 4 } se x43 = 0 e x42 = 0 T = { 2, 3, 4 }
x’(S,T)= 3 / 2 >1 1x(E(T))x(E(S)) ) x( T)δ(S,
1x(E(T))x(E(S)) ) x( T)δ(S,
S
T
69
1
6
2 3
42
1
21
21
21
21
21
21
APPLICAZIONE ALGORITMO
Sia i = 6 e poniamo S = { 6 }Definiamo W = { 1, 2, 3 }
Poniamo T = { 1 } e verifichiamo:
T = T { 2 } se x12 = 0
Iterazione 6
T = { 1, 2 }
5
T = T { 3 } se x13 = 0 e x23 = 0 T = { 1, 2, 3 }
x’(S,T)= 3 / 2 >1 1x(E(T))x(E(S)) ) x( T)δ(S,
1x(E(T))x(E(S)) ) x( T)δ(S,
S
T
70
esiste una disequazione a 2 partizioni violata da x1 ?
1
6
2 3
42
1
21
21
21
21
21
21
APPLICAZIONE ALGORITMO
5
SI x1 P’’ : aggiungi le disequazioni a P1 e definisci il nuovo poliedro P2
x25 + x35 + x45 - x23 - x24 - x34 <= 1
x16 + x26 + x36 - x12 - x13 - x23 <= 1
P2 = P1{ x [0,1]15: } x25 + x35 + x45 - x23 - x24 - x34 <= 1
x16 + x26 + x36 - x12 - x13 - x23 <= 1
71
risolviamo il problema di PL
sia x2 la soluzione ottima del problema di PL di costo 7.833
2
Aijijij
P x
xdmin
2x
0
0 9
4
91
96
91
91
94
93
91
98
0 9
1
0
0
56
46
45
36
35
34
26
25
24
23
16
15
14
13
12
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
1
65
2 3
49
8
91
91
96
94
91
94
APPLICAZIONE ALGORITMO
91
93
72
esiste una disequazione triangolo violata da x2 ?
NO x2 P’
x2 {0,1}m ?
NO x2 S : esistono due insiemi S e T tali che la disequazione a 2 2
partizionipartizioni (S,T) sia violata da x1?applico l’euristica
APPLICAZIONE ALGORITMO
1
65
2 3
49
8
91
91
96
94
91
94
91
93
73
esiste una disequazione a 2 partizioni violata da x2 ?
APPLICAZIONE ALGORITMO
Sia i = 1 e poniamo S = { 1 }Definiamo W = { 4, 6 }
Poniamo T = { 4 } e verifichiamo:
T = T { 6 } se x46 = 0
Iterazione 1
T = { 4, 6 }
x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 1 }
1
65
2 3
49
8
91
91
96
94
91
94
91
93
74
APPLICAZIONE ALGORITMO
Sia i = 2 e poniamo S = { 2 }Definiamo W = { 3, 5, 6 }
Poniamo T = { 3 } e verifichiamo:
T = T { 5 } se x35 = 0
Iterazione 2
NO
|T|= 1 Nessuna disequazione a 2 partizioni trovata con S = { 2 }
1
65
2 3
49
8
91
91
96
94
91
94
91
93
T = T { 6 } se x36 = 0 NO
75
APPLICAZIONE ALGORITMO
Sia i = 3 e poniamo S = { 3 }Definiamo W = { 2, 4, 5, 6 }
Poniamo T = { 2 } e verifichiamo:
T = T { 4 } se x24 = 0
Iterazione 3
T = { 2, 4 }
x’(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 3 }
1
65
2 3
49
8
91
91
96
94
91
94
91
93
T = T { 5 } se x25 = 0 e x45 = 0 NO
T = T { 6 } se x26 = 0 e x46 = 0 NO
76
APPLICAZIONE ALGORITMO
Sia i = 4 e poniamo S = { 4 }Definiamo W = { 1, 3, 5 }
Poniamo T = { 1 } e verifichiamo:
T = T { 3 } se x13 = 0
Iterazione 4
T = { 1, 3 }
x(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 4 }
1
65
2 3
49
8
91
91
96
94
91
94
91
93
T = T { 5 } se x15 = 0 e x35 = 0 NO
77
APPLICAZIONE ALGORITMO
Sia i = 5 e poniamo S = { 5 }Definiamo W = { 2, 3, 4 }
Poniamo T = { 2 } e verifichiamo:
T = T { 3 } se x23 = 0
Iterazione 5
NO
x(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 5 }
1
65
2 3
49
8
91
91
96
94
91
94
91
93
T = T { 4 } se x24 = 0 T = { 2, 4 }
78
APPLICAZIONE ALGORITMO
Sia i = 6 e poniamo S = { 6 }Definiamo W = { 1, 2, 3 }
Poniamo T = { 1 } e verifichiamo:
T = T { 2 } se x12 = 0
Iterazione 6
T = { 1, 2 }
x(S,T)= 1 1 Nessuna disequazione a 2 partizioni trovata con S = { 6 }
1
65
2 3
49
8
91
91
96
94
91
94
91
93
T = T { 3 } se x13 = 0 e x23 = 0 NO
79
esiste una disequazione a 2 partizioni (S,T) violata da x2 ?
NO non possiamo dire che x2 P’’ e andiamo avanti
x2 {0,1}m ?
APPLICAZIONE ALGORITMO
1
6 5
2 3
49
8
91
91
96
94
91
94
91
93
NO x2 S : applica il metodo del branch and bound per risolvere
il problema di PL01
m2
Aijijij
{0,1}P x
xdmin
80
applichiamo il metodo del branch and bound per risolvere il problema di PL01 e ricaviamo la soluzione x3 di costo 10.7
APPLICAZIONE ALGORITMO
1
6 5
2 3
4
1
11
STOP
56
46
45
36
35
34
26
25
24
23
16
15
14
13
12
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
3x
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
la soluzione x3 è una soluzione 0-1
la soluzione x3 rispetta le disequazioni triangolo x3 P’
la soluzione x3 è la soluzione ottima del problema
81
Il costo della soluzione ottima è dTx3 =10.7
CONSIDERAZIONI
LB(Ph) = min { dTx: x Ph }
Per ogni poliedro Ph indichiamo
Abbiamo visto che
LB(P0) < LB(P1) < LB(P2) < dTx3
1.8 < 6.25 < 7.833 < 10.7
Più vincoli violati aggiungiamo e maggiore è il valore del lower lower boundbound
E se P2 {0,1}m avesse avuto dimensioni troppo grandi?
Algoritmo euristico di soluzione per determinare un upper upper
boundbound
82
1. Poni U := N, i := 1
2. Trova i nodi u e v più lontani in U
3. Ordina le distanze dei nodi in U\{u} da u
Sia Ou il vettore dei nodi ordinati
4. Forma un cluster Ci con i primi s-1 elementi in Ou
5. U = U \ Ci
6. Ordina le distanze dei nodi in U \{v} da v
Sia Ov il vettore dei nodi ordinati
7. Forma un cluster Ci+1 con i primi s-1 elementi in Ov
8. U = U \ Ci+1
9. i = i + 2
10. SE |U| ≥ 2s ALLORA torna al passo 2.
ALTRIMENTI SE s ≤ |U| < 2s ALLORA Ci = U
ALTRIMENTI assegna ogni nodo in U al cluster cui appartiene il nodo più vicino
PROBLEMA CPP – ALGORITMO EURISTICO
83
ESEMPIO ALGORITMO EURISTICO
ESEMPIO Consideriamo nuovamente il grafo G(N,A) associato all’insieme X = { v1, v2, v3, v4, v5, v6, v7, v8
}, dove
N = { 1, 2, 3, 4, 5, 6 } e A = { ij | 1 i j 6 }.
A)G(N,
1
65
2 3
4
20
10
10
10
10
10
1010
20
0.5
0.50.2
0.3
0.5
0.5
0 10 10 0.2 0.5 0.5
10 0 0.5 0.3 0.5 10
10 0.5 0 10 10 10
0.2 0.3 10 0 10 20
0.5 0.5 10 10 0 20
0.5 10 10 20 20 0
D =
Sia D la matrice delle distanze
Applichiamo l’algoritmo euristico di soluzione del problema di partizione in clique con vincolo di dimensione con s = 2.
84
1. Poniamo U := { 1, 2, 3, 4, 5, 6 }, i := 1
2. Determiniamo i nodi più lontani in U
e poniamo u := 1 e v := 2
3. Ordiniamo le distanze dei nodi in U\{1} da 1
e poniamo O1 = { 6, 5, 4, 3, 2 }
4. Formiamo un cluster C1 con i primi s-1 = 1 elementi in O1
C1:= { 1, 6 }
1
65
2 3
4
20
10
10
10
10
10
1010
20
0.5
0.50.2
0.3
0.5
0.5
0 10 10 0.2 0.5 0.5
10 0 0.5 0.3 0.5 10
10 0.5 0 10 10 10
0.2 0.3 10 0 10 20
0.5 0.5 10 10 0 20
0.5 10 10 20 20 0
D =
ESEMPIO ALGORITMO EURISTICO
85
5. U = { 2, 3, 4, 5 }
6. Ordiniamo le distanze dei nodi in U\{2} da 2
e poniamo O2 = { 5, 4, 3 }
7. Formiamo un cluster C2 con il primo elemento in O2
C2 = { 2, 5 }
8. U = { 3, 4 }
9. i = 3
10. 2 ≤ |U| < 4 C3 = { 3, 4 }
1
65
2 3
4
10
0.5 0.5
C2
C1
C3
La soluzione euristica èP = { C1, C2 , C3 }
Il valore della soluzione èc(P) = 0.5 + 0.5 +10 = 11
ESEMPIO ALGORITMO EURISTICO
86
PROBLEMA DI PARTIZIONE DI CLIQUE
S x
xd minAij
ijij
} { Ni 1sx,P(G) di incidenza di vettore x :{0,1}xSδ(i)ij
ijPm
P
Risolvere il problema di partizione in cliquepartizione in clique dei nodi di un grafo
significa determinare la soluzione del seguente problema
dove l’insieme delle soluzioni è
1V
2V3V
1
1
11
11
1
somma delle distanze tra nodi appartenenti allo stesso
clusterÈ l’unico criterio di ottimalitàcriterio di ottimalità?
87
I criteri di ottimalità si dividono in due classi: criteri di separazione (da massimizzare) criteri di omogeneità (da minimizzare)
CRITERI DI OTTIMALITÀ
I criteri di separazionecriteri di separazione si basano sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra punti in cluster diversi
critero SPLIT: minima distanza tra cluster
ijδ(V)ij
ijVjV,i
dmindmins(V)
I criteri di ottimalitàcriteri di ottimalità sono funzioni che associano un valore numerico a un cluster
NV RV :s
88
CRITERI DI SEPARAZIONE
1V
2V
3V1
8
6
5
43
2
Assegniamo ad ogni cluster V N il minimo dei pesi degli archi in (V)
1
1 1
5.1
1
15
Assegniamo ad ogni arco ij di A il peso ijd
ijδ(V)ij
dminc(V)
7 2)c(V2
2)c(V3
2)c(V1
Assegniamo ad ogni partizione P(G)= { V1, V2, …, Vk } del grafo G(N,A) la somma dei costi degli elementi della partizione
P(G)V
i
i
)c(Vc(P(G))c(P(G)) = 2 + 2 + 2 = 6
3 24 3
3
4
23
4
5
73
89
critero CUT: somma delle distanze tra cluster
δ(V)ij
ijVjV,i
ij ddC(V)
CRITERI DI SEPARAZIONE
critero CUT normalizzato:
|)V|(n-|V|
C(V)(V)CN
90
CRITERI DI OMOGENEITÀ
I criteri di omogeneitàcriteri di omogeneità si basano sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra punti nello stesso cluster
critero DIAMETRO: massima distanza nel cluster
ijE(V)ij
ijVjV,i
dmaxdmaxd(V)
1
65
2 3
4
20
10
10
10
10
10
1010
20
0.5
0.50.2
0.3
0.5
0.5
}6 ,5 ,4 ,3 ,2 ,1{V
20d(V)
critero RAGGIO: minima tra le distanze massime nel cluster
ijVjVi
dmaxminr(V)
10=r(V)
91
critero STELLA: minima somma delle distanze nel cluster
VjijVi
dminst(V)
1
65
2 3
4
20
10
10
10
10
10
1010
20
0.5
0.50.2
0.3
0.5
0.5
}6 ,5 ,4 ,3 ,2 ,1{V
3.21st(V)
critero CLIQUE: somma delle distanze nel cluster
E(V)ij
ijdcl(V)
5.112cl(V)
CRITERI DI OMOGENEITÀ
0 10 10 0.2 0.5 0.5
10 0 0.5 0.3 0.5 10
10 0.5 0 10 10 10
0.2 0.3 10 0 10 20
0.5 0.5 10 10 0 20
0.5 10 10 20 20 0
D =
92
CENTRO DI UN CLUSTER
I criteri di omogeneitàcriteri di omogeneità basati sui “centricentri” si riferiscono sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra i punti di un cluster ed il centro del cluster
Si definisce centro di un cluster la media aritmetica dei punti del cluster
Vv
i
i
v|V|
1v
1
3
2
0 6
2 5
1 1
X =
1
4
3
12
31
v
93
CRITERI DI OMOGENEITÀ
critero SOMMA DEI QUADRATI: somma delle distanze euclidee al quadrato tra i punti di cluster ed il centro
Vv
2i
i2
)]v,(v[dsq(V)
critero VARIANZA: somma dei quadrati normalizzata
sq(V)|V|
1vr(V)
0 6
2 5
1 1
X = 1
3
2
1
4v
92
516sq(V)
316
vr(V)
94
PROBLEMI DI CLUSTERING PARTIZIONALE
In base al criterio di ottimalità, abbiamo diversi problemi di clustering partizionale
critero CLIQUE: problema di partizione in clique
CLIQUE PARTITIONING PROBLEM
critero STELLA: problema p-median
p-MEDIAN PROBLEM
critero SOMMA DEI QUADRATI: problema k-means
k-MEANS PROBLEM
95
ALGORITMO K-MEANS
Passo 1 Noto il numero k di cluster da individuare nella partizione, seleziona in maniera del tutto casuale k punti all’interno dell’insieme di dati.
Passo 2 Assegna ogni pattern al cluster il cui CENTRO sia più vicino al pattern in esame
Passo 3 Calcola nuovamente i CENTRI dei cluster secondo la configurazione attuale
Passo 4 Se non è verificato il criterio di convergenza, torna al Passo 2.
1,...ki v|V|
1v ∑
ij V∈v
j
ii ==
2i
j
k1,..,i
*
i
j )]v,(v[d min argi :V v2
* ==↔
96
ALGORITMO K-MEANS
Passo 1 Noto il numero k di cluster da individuare nella partizione, seleziona in maniera del tutto casuale k punti all’interno dell’insieme di dati.
Buone configurazioni di partenza
e.g. Neat trick: Posiziona il primo centro casualmente all’interno dell’insieme di dati in input. Per ogni successivo centro j, scegli scegli all’interno dell’insieme di dati in input il punto che sia il più lontano possibile dai primi j-1 centri.
Running multipli a partire da diverse configurazioni di partenza
97
ALGORITMO K-MEANS
Passo 4 Se non è verificato il criterio di convergenza, torna al Passo 2.
non ci sia alcun assegnamento nuovo possibile di alcun pattern da un cluster ad un altro (al Passo 2 non cambia nulla)la funzione di errore quadratico cessi di ridursi significativamente dopo un certo numero di iterazioni (al Passo 3 non cambia nulla)
Buone configurazioni di partenza Neat trick: Place first center on top of randomly chosen
datapoint. Place j’th center on datapoint that’s as far away as possible from the closest of Centers 1 through j-1
Running multipli a partire da diverse configurazioni di partenza
98
MATERIALE DEL SEMINARIO
Le slide di questo seminario sono reperibili al seguente link:
http://www.dis.uniroma1.it/~canale/didattica/ACRN_2013.ppt