Seminario su clustering dei dati – Parte II

Slides:



Advertisements
Presentazioni simili
Flusso Massimo Certificati di (non-) ottimalità
Advertisements

Algoritmi e Strutture Dati
Il linguaggio della Matematica: Insiemi e operazioni
DISEQUAZIONI Si dice disequazione una disuguaglianza tra due funzioni eventualmente verificata per particolari valori attribuiti alla variabile che vi.
COORDINATE POLARI Sia P ha coordinate cartesiane
LE MATRICI.
6. Catene di Markov a tempo continuo (CMTC)
La scelta del paniere preferito
programmazione lineare: un esempio
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
6. Catene di Markov a tempo continuo (CMTC)
Ordini Parziali - Reticoli
Ordini Parziali - Reticoli
Università degli Studi di Roma Tor Vergata
R. Soncini Sessa, MODSS, L 24b Analisi a molti obiettivi-esempi Rodolfo Soncini Sessa MODSS Copyright 2004 © Rodolfo Soncini Sessa.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Algoritmo di Ford-Fulkerson
ANALISI DEI GRUPPI seconda parte
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
Algoritmi e Strutture Dati (Mod. B)
Seminario su clustering dei dati – Parte I
Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte I Università di RomaLa Sapienza Dipartimento di Informatica e Sistemistica.
Modelli e Algoritmi della Logistica
Seminario su clustering dei dati – Parte II
Modelli e Algoritmi della Logistica
Modelli e Algoritmi per la Logistica Branch & Bound Prof. Carlo Mannino Prof. Antonio Sassano Dipartimento di Informatica e Sistemistica Università di.
Ottimizzazione Combinatoria
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi per la Logistica
TECNOLOGIE DEI SISTEMI DI CONTROLLO
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi della Logistica
1. ( punti 7 ) Siano dati un insieme di localizzazioni potenziali (nodi grandi) ed un insieme di clienti da servire (nodi piccoli). Il costo di afferenza.
Modelli e Algoritmi per la Logistica
Modelli e Algoritmi per la Logistica
1. ( punti 7 ) Siano dati un insieme di localizzazioni potenziali (nodi grandi) ed un insieme di clienti da servire (nodi piccoli). Il costo di afferenza.
Ottimizzazione nella gestione dei progetti
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Dott.ssa.
Disequazioni Disequazioni di 1° grado Esempio Esempio con x negativo
Algoritmi e Strutture Dati
OPERAZIONI CON TRINOMI DI II° GRADO
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Radix-Sort(A,d) // A[i] = cd...c2c1
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Classificazione (aka Cluster Analysis)
Sistemi compatibili (Il metodo di Fourier-Motzkin)
OPERAZIONI CON TRINOMI DI II° GRADO
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.
Ottimizzazione nella gestione dei progetti Prova scritta del 16/04/2005 COMPITO B Studente: ………………………………… Matricola: ………………………………… (2 punti) Disegnare.
Claudio Arbib Università dell’Aquila Ricerca Operativa Metodo del simplesso per problemi di distribuzione single-commodity.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Programmazione lineare: un esempio Mix produttivo ottimo con risorse vincolate Materiale di studio: M. Fischetti, Lezioni di RO, Cap. 3. Libreria Progetto.
Programmazione lineare: un esempio Mix produttivo ottimo con risorse vincolate Materiale di studio: M. Fischetti, Lezioni di RO, Cap. 3. Libreria Progetto.
Transcript della presentazione:

Seminario su clustering dei dati – Parte II Algoritmi di classificazione e reti neurali Seminario su clustering dei dati – Parte II A.A. 2011-2012 a cura di Silvia Canale contatto e-mail: canale@dis.uniroma1.it Università di Roma“La Sapienza” Dipartimento di Informatica e Sistemistica Corso di Laurea in “Ingegneria Gestionale”

ARGOMENTI DEL SEMINARIO Problema della partizione in clique algoritmo dei piani di taglio esempio algoritmo dei piani di taglio algoritmo euristico Clustering partizionale – Criteri di ottimalità

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)

FORMULAZIONE DI UN PROBLEMA DI PL01 Indichiamo con x* la soluzione ottima del problema di PL01 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 PROCEDURA DI ENUMERAZIONE COMPLETA (ESEMPIO CPP) Genera tutte le partizioni in clique del grafo G(N,A) Per ogni partizione in clique calcola il costo Scegli la partizione in clique che produce la soluzione di costo minimo L’enumerazione completa di tutte le soluzioni in S richiede tempi molto lunghi

SOLUZIONE DI UN PROBLEMA DI PL01 Formulare non implica risolvere un problema di PL0. In generale, la soluzione di un problema di PL01 richiede algoritmi sofisticati e molto efficienti. Gli algoritmi di soluzione possono essere: di tipo esatto: determinano sempre la soluzione ottima approssimati: determinano sempre una soluzione ammissibile Quanto è buona 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

SEMISPAZI E POLIEDRI Ax ≤ b P = { 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 xRm che soddisfano le p disequazioni x ≤ bq del sistema è definito POLIEDRO e viene indicato con la lettera P Ax ≤ b P = { x  Rm : Ax ≤ b } x  P  x ≤ bq per q = 1, …, p

SEMISPAZI E FORMULAZIONI Geometricamente, ogni disequazione del sistema Ax ≤ b individua un semispazio Consideriamo la retta Esempio – m = 2 x2 P = { x  R2 : } x1 Quindi un poliedro P è intersezione di un numero finito q di semispazi. P P = { x  Rp : Ax ≤ b }

FORMULAZIONE DI UN PROBLEMA DI PL01 Sia S l’insieme delle soluzioni di un problema di Programmazione Lineare 0–1. Il poliedro P è una formulazione del problema di Programmazione Lineare 0–1 se e solo se x1 x2 P P  {0,1}m = S contiene tutti i vettori di S: S  P non contiene alcun vettore di S’ ={ 0,1}m \ S: P  S’ =  Ci sono infinite formulazioni dello stesso problema di PL01. Per ognuna vale l’ovvia proprietà: min { cTx: x Î S } = min { cTx: x Î P Ç {0,1}m } = cTx*

FORMULAZIONI E LOWER BOUND Per ogni formulazione P vale inoltre la disuguaglianza min { cTx: x Î P Ç {0,1}m } > min { cTx: x Î P } Il valore LB(P) = min { cTx: x Î P } viene definito lower bound del problema di PL01. 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 }

Argomento trattato nel corso di Ottimizzazione Combinatoria (III anno) FORMULAZIONE OTTIMA Esiste una formulazione P* migliore di tutte le altre? SI Argomento trattato nel corso di Ottimizzazione Combinatoria (III anno) x1 x2 P* P* = conv( S ) Inoltre…. Una disequazione aTx  b si definisce valida per un poliedro P se e solo se è soddisfatta da tutti i punti in P P  { x  Rp : aTx  b } 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*

DISEQUAZIONI TRIANGOLO Consideriamo tre nodi i, j, k N di G(N,A) Si definisce disequazione triangolo relativa ai nodi i, j, k Una disequazione triangolo rappresenta il vincolo logico:

(a) (b) (c) (d) (e) (f) NO (g) (h)

FORMULAZIONE DEL PROBLEMA CPP Consideriamo il poliedro definito dalle disequazioni triangolo relative a tutte le terne di nodi G(N,A) È facile verificare che P’ è una formulazione del problema CPP P  {0,1}m = S

(a) (b) (c) (d) (e) (f) NO NO (g) (h) NO

FORMULAZIONE DEL PROBLEMA CPP Le disequazioni triangolo sono tante. 3 disequazioni per ogni terna ordinata di nodi Consideriamo il rilassamento lineare del problema x  {0,1}m S  P’ Ora sono ammissibili soluzioni non intere ?

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 partizioni (S,T) associata ai sottoinsiemi S e T è S 1 T 2 3 4 Una disequazione a 2 partizioni (S,T) associata ai sottoinsiemi S e T definisce è valida per il poliedro P*. Definisce una faccia di P* se e solo se

DISEQUAZIONI A 2 PARTIZIONI Sia P’’ il poliedro costituito da tutte le disequazioni a 2 partizioni (S,T) con |S|  |T| Osservazione Le disequazioni triangolo sono disequazione a 2 partizioni (S,T) con |S|= 1 e |T| = 2 P’’  P’ Esempio Consideriamo il grafo G(N,A) e la soluzione soddisfa tutte le 12 disequazioni triangolo S 1 T non soddisfa la disequazione a 2 part. S = { 1 } e T = { 2, 3, 4 } 2 P’’  P’ 3 4

DISEQUAZIONI A 2 PARTIZIONI Quindi… P’ x’ P’’ P*  P’’  P’ P* Data una soluzione x’ appartenente a P’ è possibile determinare S e T tali che la disequazione a 2 partizioni (S,T) sia violata da x’ ? PROBLEMA DI SEPARAZIONE delle disequazioni a 2 partizioni (S,T) S 1 come individuare S e T tale che T 2 3 4

EURISTICA DI SEPARAZIONE Sia x’ una soluzione appartenente a P’. Vogliamo determinare, se esiste, una disequazione a 2 partizioni (S,T) con |S|=1 ALGORITMO EURISTICO 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’ T se |T|>1 e x’((S,T))>1, la disequazione a 2 partizioni (S,T) è violata La soluzione dipende dall’ordinamento! complessità O(n3)

EURISTICA DI SEPARAZIONE ESEMPIO Consideriamo la soluzione x’ in figura e applichiamo l’algoritmo euristico di separazione S 1 Iterazione 1 T Sia i = 1 e poniamo S = { 1 } 2 Definiamo W = { 2, 3, 4 } e scegliamo come ordinamento dato dalla permutazione naturale 3 4 Poniamo T = { 2 } e verifichiamo: T = T  { 3 } se x32’ = 0 T = { 2, 3 } T = T  { 4 } se x43’ = 0 e x42’ = 0 T = { 2, 3, 4 } x’(S,T)= 3 / 2 >1

EURISTICA DI SEPARAZIONE 1 Iterazione 2 T Sia i = 2 e poniamo S = { 2 } 2 Definiamo W = { 1 } 3 4 Poniamo T = { 1 } |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 è

FORMULAZIONE OTTIMA P’ P’’ 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 triangolo relative ai nodi i, j, k P’ le disequazioni a 2 partizioni (S,T) associate ai sottoinsiemi S e T P’’

ALGORITMO DEI “PIANI DI TAGLIO” ALGORITMO DI SOLUZIONE P0 Definisci il poliedro P0  P’ definito da un sottoinsieme di disequazioni triangolo Poni h = 0 P’ P* risolvi il problema di PL sia xh la soluzione ottima del problema di PL P0 x0 esiste una disequazione triangolo violata da xh ? P1 P’ SI xh  P’ : aggiungi la disequazione a Ph e definisci il nuovo poliedro Ph+1 P*

ALGORITMO DEI “PIANI DI TAGLIO” ALGORITMO DI SOLUZIONE P0 esiste una disequazione triangolo violata da xh ? P’ NO xh  P’ P* xh  {0,1}m ? SI xh  S : xh è la soluzione ottima STOP x0 NO xh  S : esistono due insiemi S e T tali che la disequazione a 2 partizioni (S,T) sia violata da xh? P0 P’’ P’ SI xh  P’’ : aggiungi la disequazione a Ph e definisci il nuovo poliedro Ph+1 P* x0

ALGORITMO DEI “PIANI DI TAGLIO” di separazione è esatto ALGORITMO DI SOLUZIONE P0 esistono due insiemi S e T tali che la disequazione a 2 partizioni (S,T) sia violata da xh? P’’ P’ P* NO xh  P’’ VERO se l’algoritmo di separazione è esatto x0 xh  {0,1}m ? SI xh  S : xh è la soluzione ottima STOP P0 NO xh  S : applica il metodo del branch and bound per risolvere il problema di PL01 P’’ P’ P* x0 STOP

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 }. D = Sia D la matrice delle distanze 20 10 0.5 0.2 0.3 Risolviamo il problema di partizione in clique con vincolo di dimensione con s = 2.

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 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 P0 = { x [0,1]15: } { x [0,1]15 : }

APPLICAZIONE ALGORITMO risolviamo il problema di PL sia x0 la soluzione ottima del problema di PL di costo 1.8 1 1 1

APPLICAZIONE ALGORITMO per enumerazione o ispezione visiva esiste una disequazione triangolo violata da x0 ? 1 1 1 - x23 + x25 + x35 = 2 > 1 - x34 + x35 + x45 = 2 > 1 SI x0  P’ : aggiungi la disequazione a P0 e definisci il nuovo poliedro P1 = P0{ x [0,1]15: } - x23 + x25 + x35 <= 1 - x34 + x35 + x45 <= 1

APPLICAZIONE ALGORITMO risolviamo il problema di PL sia x1 la soluzione ottima del problema di PL di costo 6.25

APPLICAZIONE ALGORITMO esiste una disequazione triangolo violata da x1 ? NO x1  P’ x1  {0,1}m ? NO x1  S : esistono due insiemi S e T tali che la disequazione a 2 partizioni (S,T) sia violata da x1? applico l’euristica

APPLICAZIONE ALGORITMO esiste una disequazione a 2 partizioni violata da x1 ? Iterazione 1 Sia i = 1 e poniamo S = { 1 } Definiamo W = { 4, 6 } Poniamo T = { 4 } e verifichiamo: T = T  { 6 } se x46 = 0 T = { 4, 6 } x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 1 }

APPLICAZIONE ALGORITMO Iterazione 2 Sia i = 2 e poniamo S = { 2 } Definiamo W = { 5, 6 } Poniamo T = { 5 } e verifichiamo: T = T  { 6 } se x56 = 0 T = { 5, 6 } x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 2 }

APPLICAZIONE ALGORITMO Iterazione 3 Sia i = 3 e poniamo S = { 3 } Definiamo W = { 5, 6 } Poniamo T = { 5 } e verifichiamo: T = T  { 6 } se x56 = 0 T = { 5, 6 } x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 3 }

APPLICAZIONE ALGORITMO Iterazione 4 Sia i = 4 e poniamo S = { 4 } Definiamo W = { 1, 5 } Poniamo T = { 1 } e verifichiamo: T = T  { 5 } se x15 = 0 T = { 1, 5 } x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 4 }

APPLICAZIONE ALGORITMO Iterazione 5 Sia i = 5 e poniamo S = { 5 } Definiamo W = { 2, 3, 4 } S Poniamo T = { 2 } e verifichiamo: T = T  { 3 } se x23 = 0 T = { 2, 3 } T = T  { 4 } se x43 = 0 e x42 = 0 T = { 2, 3, 4 } x’(S,T)= 3 / 2 >1

APPLICAZIONE ALGORITMO Iterazione 6 Sia i = 6 e poniamo S = { 6 } Definiamo W = { 1, 2, 3 } S Poniamo T = { 1 } e verifichiamo: T = T  { 2 } se x12 = 0 T = { 1, 2 } T = T  { 3 } se x13 = 0 e x23 = 0 T = { 1, 2, 3 } x’(S,T)= 3 / 2 >1

APPLICAZIONE ALGORITMO esiste una disequazione a 2 partizioni violata da x1 ? x25 + x35 + x45 - x23 - x24 - x34 <= 1 x16 + x26 + x36 - x12 - x13 - x23 <= 1 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: }

APPLICAZIONE ALGORITMO risolviamo il problema di PL sia x2 la soluzione ottima del problema di PL di costo 7.833

APPLICAZIONE ALGORITMO 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 partizioni (S,T) sia violata da x1? applico l’euristica

APPLICAZIONE ALGORITMO esiste una disequazione a 2 partizioni violata da x2 ? Iterazione 1 Sia i = 1 e poniamo S = { 1 } Definiamo W = { 4, 6 } Poniamo T = { 4 } e verifichiamo: T = T  { 6 } se x46 = 0 T = { 4, 6 } x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 1 }

APPLICAZIONE ALGORITMO Iterazione 2 Sia i = 2 e poniamo S = { 2 } Definiamo W = { 3, 5, 6 } Poniamo T = { 3 } e verifichiamo: T = T  { 5 } se x35 = 0 T = T  { 6 } se x36 = 0 NO NO |T|= 1 Nessuna disequazione a 2 partizioni trovata con S = { 2 }

APPLICAZIONE ALGORITMO Iterazione 3 Sia i = 3 e poniamo S = { 3 } Definiamo W = { 2, 4, 5, 6 } Poniamo T = { 2 } e verifichiamo: T = T  { 4 } se x24 = 0 T = { 2, 4 } T = T  { 5 } se x25 = 0 e x45 = 0 NO T = T  { 6 } se x26 = 0 e x46 = 0 NO x’(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 3 }

APPLICAZIONE ALGORITMO Iterazione 4 Sia i = 4 e poniamo S = { 4 } Definiamo W = { 1, 3, 5 } Poniamo T = { 1 } e verifichiamo: T = T  { 3 } se x13 = 0 T = T  { 5 } se x15 = 0 e x35 = 0 T = { 1, 3 } NO x(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 4 }

APPLICAZIONE ALGORITMO Iterazione 5 Sia i = 5 e poniamo S = { 5 } Definiamo W = { 2, 3, 4 } Poniamo T = { 2 } e verifichiamo: T = T  { 3 } se x23 = 0 T = T  { 4 } se x24 = 0 NO T = { 2, 4 } x(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 5 }

APPLICAZIONE ALGORITMO Iterazione 6 Sia i = 6 e poniamo S = { 6 } Definiamo W = { 1, 2, 3 } Poniamo T = { 1 } e verifichiamo: T = T  { 2 } se x12 = 0 T = { 1, 2 } T = T  { 3 } se x13 = 0 e x23 = 0 NO x(S,T)= 1  1 Nessuna disequazione a 2 partizioni trovata con S = { 6 }

APPLICAZIONE ALGORITMO 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 ? NO x2  S : applica il metodo del branch and bound per risolvere il problema di PL01

APPLICAZIONE ALGORITMO applichiamo il metodo del branch and bound per risolvere il problema di PL01 e ricaviamo la soluzione x3 di costo 10.7 la soluzione x3 è una soluzione 0-1 la soluzione x3 rispetta le disequazioni triangolo x3  P’ STOP la soluzione x3 è la soluzione ottima del problema

Algoritmo euristico di soluzione per determinare un upper bound CONSIDERAZIONI Il costo della soluzione ottima è dTx3 =10.7 Per ogni poliedro Ph indichiamo LB(Ph) = min { dTx: x Î Ph } 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 bound E se P2 {0,1}m avesse avuto dimensioni troppo grandi? Algoritmo euristico di soluzione per determinare un upper bound

ALGORITMO EURISTICO Poni U := N, i := 1 Trova i nodi u e v più lontani in U Ordina le distanze dei nodi in U\{u} da u Sia Ou il vettore dei nodi ordinati Forma un cluster Ci con i primi s-1 elementi in Ou U = U \ Ci Ordina le distanze dei nodi in U \{v} da v Sia Ov il vettore dei nodi ordinati Forma un cluster Ci+1 con i primi s-1 elementi in Ov U = U \ Ci+1 i = i + 2 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

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 }. D = Sia D la matrice delle distanze 20 10 0.5 0.2 0.3 Applichiamo l’algoritmo euristico di soluzione del problema di partizione in clique con vincolo di dimensione con s = 2.

ESEMPIO ALGORITMO EURISTICO Poniamo U := { 1, 2, 3, 4, 5, 6 }, i := 1 Determiniamo i nodi più lontani in U e poniamo u := 1 e v := 2 Ordiniamo le distanze dei nodi in U\{1} da 1 e poniamo O1 = { 6, 5, 4, 3, 2 } Formiamo un cluster C1 con i primi s-1 = 1 elementi in O1 C1:= { 1, 6 } 20 10 0.5 0.2 0.3 D =

ESEMPIO ALGORITMO EURISTICO Ordiniamo le distanze dei nodi in U\{2} da 2 e poniamo O2 = { 5, 4, 3 } Formiamo un cluster C2 con il primo elemento in O2 C2 = { 2, 5 } U = { 3, 4 } i = 3 2 ≤ |U| < 4 C3 = { 3, 4 } C3 C2 La soluzione euristica è P = { C1, C2 , C3 } 10 Il valore della soluzione è c(P) = 0.5 + 0.5 +10 = 11 0.5 0.5 C1

PROBLEMA DI PARTIZIONE DI CLIQUE Risolvere il problema di partizione in clique dei nodi di un grafo significa determinare la soluzione del seguente problema 1 dove l’insieme delle soluzioni è somma delle distanze tra nodi appartenenti allo stesso cluster È l’unico criterio di ottimalità?

CRITERI DI OTTIMALITÀ I criteri di ottimalità sono funzioni che associano un valore numerico ad un cluster I criteri di ottimalità si dividono in due classi: criteri di separazione (da massimizzare) criteri di omogeneità (da minimizzare) I criteri di separazione si basano sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra punti in cluster diversi critero SPLIT: minima distanza tra cluster

CRITERI DI SEPARAZIONE Assegniamo ad ogni arco ij di A il peso Assegniamo ad ogni cluster V  N il minimo dei pesi degli archi in (V) Assegniamo ad ogni partizione P(G)= { V1, V2, …, Vk } del grafo G(N,A) la somma dei costi degli elementi della partizione c(P(G)) = 2 + 2 + 2 = 6

CRITERI DI SEPARAZIONE critero CUT: somma delle distanze tra cluster critero CUT normalizzato:

CRITERI DI OMOGENEITÀ I criteri di omogeneità si basano sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra punti nello stesso cluster critero DIAMETRO: massima distanza nel cluster 20 10 0.5 0.2 0.3 critero RAGGIO: minima tra le distanze massime nel cluster

CRITERI DI OMOGENEITÀ critero STELLA: minima somma delle distanze nel cluster 20 10 0.5 0.2 0.3 D = critero CLIQUE: somma delle distanze nel cluster

CENTRO DI UN CLUSTER Si definisce centro di un cluster la media aritmetica dei punti del cluster X = I criteri di omogeneità basati sui “centri” si riferiscono sull’ottimizzazione delle relazioni (similarità e dissimilarità) tra i punti di un cluster ed il centro del cluster

CRITERI DI OMOGENEITÀ critero SOMMA DEI QUADRATI: somma delle distanze euclidee al quadrato tra i punti di cluster ed il centro X = critero VARIANZA: somma dei quadrati normalizzata

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

MATERIALE DEL SEMINARIO Le slide di questo seminario sono reperibili al seguente link: http://www.dis.uniroma1.it/~canale/didattica/ACRN2.ppt