A New Clustering Boids Algorithm
Giovanni Apruzzese
Lorenzo Dodi
Scopo
 Scopo del nostro Caso-Studio era
ottenere un algoritmo per effettuare il
Clustering di un gruppo di dati in un
modo autonomo e dinamico.
Boids Algorithm
 Algoritmo basato sui concetti delle
Swarm Intelligence, che simula il
comportamento degli stormi di uccelli.
 Si basa sull’applicazione di tre regole
caratteristiche:
1. Separazione: evitare la collisione con altri
elementi;
2. Allineamento: allineare la propria
direzione a quella degli elementi vicini;
3. Coesione: muoversi verso il centro del
gruppo di uccelli in cui ci si trovi.
cBoids Algorithm
 Algoritmo prodotto dal nostro Caso-
Studio, basato sulle regole del Boids
Algorithm, orientato al Clustering.
 Alle tre regole di Separazione,
Allineamento e Coesione, si
affiancano due nuove regole
probabilistiche:
1. Fusione;
2. Scissione.
cBoids Algorithm
 Per le due regole di Fusione e
Scissione viene impiegata l’Affinità:
più due elementi saranno simili,
maggiore sarà la loro Affinità.
 Intuitivamente:
1. P(Fusione) ~ Affinità
2. P(Scissione) ~ 1/Affinità
cBoids Algorithm
 Ogni agente dell’ambiente viene visto
come un “centroide”, ossia il prototipo
di un cluster.
 Supponendo un database di 100
oggetti, in fase di setup, l’algoritmo
avrà 100 centroidi.
 Una volta avviato l’algoritmo, le regole
di Fusione e Scissione si occuperanno
di unire o scindere i vari centroidi.
cBoids Algorithm
 La regola di Fusione viene applicata
quando due centroidi sono
sufficientemente vicini tra di loro.
 La regola di Scissione viene applicata
ad ogni iterazione dell’algoritmo,
tenendo in considerazione due
grandezze:
1. Current Group Affinity (cgaf);
2. Greatest Group Affinity (ggaf).
cBoids Algorithm
 L’algoritmo termina di essere eseguito
al raggiungimento di un determinato
numero di iterazioni in cui non si sono
verificate modifiche dei Centroidi.
cBoids Algorithm
 Overview del cBoids Algorithm
Risultati Caso-Studio
 Utilizzando un database (Animals
Dataset) contenente 16 elementi con
13 attributi binari ciascuno, il cBoids
Algorithm ha mostrato una precisione
media di Clustering pari al 94%
Il nostro Progetto
 Scopo del nostro progetto era ricreare
una simulazione di Netlogo che
riproponga l’algoritmo cBoids.
 Per fare ciò, ci siamo basati sul
modello, presente di default nella
libreria di Netlogo, del Flocking, che
riproponeva l’algoritmo standard dei
Boids.
Il nostro Progetto
 Ruolo fondamentale del nostro
algoritmo è costituito dalle procedure
che gestiscono le Fusioni e le
Scissioni, assieme a quelle relative al
calcolo di del cgaf e ggaf.
Il nostro Progetto
 Le formule relative al calcolo delle
probabilità di Fusione e Scissione sono
state create appositamente da noi, e
sono le seguenti:


 Dove: α, ɛm, ɛl sono dei parametri da
impostare in fase di setup; (dst) è la
distanza tra due elementi.
Il nostro Progetto
 Nel nostro algoritmo di Netlogo è
possibile impostare diversi parametri:
Il nostro Progetto
 Contrariamente all’algoritmo su cui ci
siamo basati, le tre regole di
Separazione, Coesione, Allineamento
non sono presenti nel nostro algoritmo:
gli elementi si muovono in maniera del
tutto casuale.
Test Effettuati
 I nostri test utilizzavano il medesimo
campione utilizzato nel Caso-Studio: un
numero di 12 “animali”, ciascuno con 13
attributi binari. I test terminavano dopo
1500 cicli senza cambiamenti;
Inoltre: ɛm=0.01 ɛl=0.1
 L’ambiente era di tipo toroidale con una
superficie di 4900 unità. Ciascun
elemento aveva una dimensione di 1.5
unità.
Test Effettuati
 Sono stati effettuati 65 test, divisi in 5
casi. Ogni caso prevedeva diversi
valori di Vision e di α
 L’obiettivo che ci siamo posti era
trovare il caso che garantiva la
Clusterizzazione più accurata nel
minor numero di cicli.
Caso I
Vision=3
Main-Leaving-Coefficent=1*10^-4
2528
4298
2743 2613
7143
2780
4174 4188
2780
3852
2032 2073
6116
3640
0
1000
2000
3000
4000
5000
6000
7000
8000
1 2 3 4 5 6 7 8 9 10 11 12 13 media
clusterizzazione totale
clusterizzazione parziale
media
Caso II
Vision=3
Main-Leaving-Coefficent=2*10^-4
2308
3289
4896
2321
2850 2794
3999
2446
2625 2759
4263
2287
2024
2989.307692
0
1000
2000
3000
4000
5000
6000
1 2 3 4 5 6 7 8 9 10 11 12 13 media
clusterizzazione totale
clusterizzazione parziale
media
Caso III
Vision=3
Main-Leaving-Coefficent=1*10^-5
2470 2309 2226
3469
3142
2845
2419
3488
2757
3224
4451
3294
4842
3148.923077
0
1000
2000
3000
4000
5000
6000
1 2 3 4 5 6 7 8 9 10 11 12 13 media
clusterizzazione totale
clusterizzazione parziale
media
Caso IV
Vision=1
Main-Leaving-Coefficent=1*10^-4
4818
3725
2941
4491
2475
4995
6251
4470
3400 3424
4849
7624
4601
5000
3000
5000
5000
4000
3000
4000 4000 4000
5000 5000
4466.461538
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
1 2 3 4 5 6 7 8 9 10 11 12 13 media
clusterizzazione totale
clusterizzazione parziale
Elementi rimasti * 1000
media
Caso V
Vision=7
Main-Leaving-Coefficent=1*10^-4
2151
2920
1943
2087
1997
2131
1762
2065
2158
2878
2182
2802
1825
1000 1000
2000
2223.153846
0
500
1000
1500
2000
2500
3000
3500
1 2 3 4 5 6 7 8 9 10 11 12 13 media
clusterizzazione totale
clusterizzazione parziale
Elementi rimasti * 1000
media
Osservazioni
 La Randomness può portare a risultati
anomali;
 (non presente nei test) Per α>2*10^-4,
la simulazione assumeva un
andamento perpetuo;
 Tempo di esecuzione (in cicli)
inversamente proporzionale a Vision;
 Valore di α non determinante per il
tempo di esecuzione, ma importante
per la qualità della Clusterizzazione.
Possibile Lavoro Futuro
 Ingrandire le dimensioni dei centroidi
in base al numero di elementi
contenuti.
 Sperimentare l’algoritmo con il
Database Ruspini e Iris.
Conclusioni
 Si è sviluppato un algoritmo di Netlogo
basato sul cBoids Algorithm per la
Clusterizzazione dei dati.
 I dati ottenuti mostrano che, impostando in
modo ponderato i parametri, l’algoritmo
funzioni con una ottima efficienza.
 Sebbene sia necessario la creazione di
formule “ad-hoc” per il tipo di dato utilizzato,
riteniamo che l’algoritmo sia sufficientemente
flessibile da poter essere impiegato anche su
database più ampi.

A new clustering boids algorithm

  • 1.
    A New ClusteringBoids Algorithm Giovanni Apruzzese Lorenzo Dodi
  • 2.
    Scopo  Scopo delnostro Caso-Studio era ottenere un algoritmo per effettuare il Clustering di un gruppo di dati in un modo autonomo e dinamico.
  • 3.
    Boids Algorithm  Algoritmobasato sui concetti delle Swarm Intelligence, che simula il comportamento degli stormi di uccelli.  Si basa sull’applicazione di tre regole caratteristiche: 1. Separazione: evitare la collisione con altri elementi; 2. Allineamento: allineare la propria direzione a quella degli elementi vicini; 3. Coesione: muoversi verso il centro del gruppo di uccelli in cui ci si trovi.
  • 4.
    cBoids Algorithm  Algoritmoprodotto dal nostro Caso- Studio, basato sulle regole del Boids Algorithm, orientato al Clustering.  Alle tre regole di Separazione, Allineamento e Coesione, si affiancano due nuove regole probabilistiche: 1. Fusione; 2. Scissione.
  • 5.
    cBoids Algorithm  Perle due regole di Fusione e Scissione viene impiegata l’Affinità: più due elementi saranno simili, maggiore sarà la loro Affinità.  Intuitivamente: 1. P(Fusione) ~ Affinità 2. P(Scissione) ~ 1/Affinità
  • 6.
    cBoids Algorithm  Ogniagente dell’ambiente viene visto come un “centroide”, ossia il prototipo di un cluster.  Supponendo un database di 100 oggetti, in fase di setup, l’algoritmo avrà 100 centroidi.  Una volta avviato l’algoritmo, le regole di Fusione e Scissione si occuperanno di unire o scindere i vari centroidi.
  • 7.
    cBoids Algorithm  Laregola di Fusione viene applicata quando due centroidi sono sufficientemente vicini tra di loro.  La regola di Scissione viene applicata ad ogni iterazione dell’algoritmo, tenendo in considerazione due grandezze: 1. Current Group Affinity (cgaf); 2. Greatest Group Affinity (ggaf).
  • 8.
    cBoids Algorithm  L’algoritmotermina di essere eseguito al raggiungimento di un determinato numero di iterazioni in cui non si sono verificate modifiche dei Centroidi.
  • 9.
    cBoids Algorithm  Overviewdel cBoids Algorithm
  • 10.
    Risultati Caso-Studio  Utilizzandoun database (Animals Dataset) contenente 16 elementi con 13 attributi binari ciascuno, il cBoids Algorithm ha mostrato una precisione media di Clustering pari al 94%
  • 11.
    Il nostro Progetto Scopo del nostro progetto era ricreare una simulazione di Netlogo che riproponga l’algoritmo cBoids.  Per fare ciò, ci siamo basati sul modello, presente di default nella libreria di Netlogo, del Flocking, che riproponeva l’algoritmo standard dei Boids.
  • 12.
    Il nostro Progetto Ruolo fondamentale del nostro algoritmo è costituito dalle procedure che gestiscono le Fusioni e le Scissioni, assieme a quelle relative al calcolo di del cgaf e ggaf.
  • 13.
    Il nostro Progetto Le formule relative al calcolo delle probabilità di Fusione e Scissione sono state create appositamente da noi, e sono le seguenti:    Dove: α, ɛm, ɛl sono dei parametri da impostare in fase di setup; (dst) è la distanza tra due elementi.
  • 14.
    Il nostro Progetto Nel nostro algoritmo di Netlogo è possibile impostare diversi parametri:
  • 15.
    Il nostro Progetto Contrariamente all’algoritmo su cui ci siamo basati, le tre regole di Separazione, Coesione, Allineamento non sono presenti nel nostro algoritmo: gli elementi si muovono in maniera del tutto casuale.
  • 16.
    Test Effettuati  Inostri test utilizzavano il medesimo campione utilizzato nel Caso-Studio: un numero di 12 “animali”, ciascuno con 13 attributi binari. I test terminavano dopo 1500 cicli senza cambiamenti; Inoltre: ɛm=0.01 ɛl=0.1  L’ambiente era di tipo toroidale con una superficie di 4900 unità. Ciascun elemento aveva una dimensione di 1.5 unità.
  • 17.
    Test Effettuati  Sonostati effettuati 65 test, divisi in 5 casi. Ogni caso prevedeva diversi valori di Vision e di α  L’obiettivo che ci siamo posti era trovare il caso che garantiva la Clusterizzazione più accurata nel minor numero di cicli.
  • 18.
    Caso I Vision=3 Main-Leaving-Coefficent=1*10^-4 2528 4298 2743 2613 7143 2780 41744188 2780 3852 2032 2073 6116 3640 0 1000 2000 3000 4000 5000 6000 7000 8000 1 2 3 4 5 6 7 8 9 10 11 12 13 media clusterizzazione totale clusterizzazione parziale media
  • 19.
    Caso II Vision=3 Main-Leaving-Coefficent=2*10^-4 2308 3289 4896 2321 2850 2794 3999 2446 26252759 4263 2287 2024 2989.307692 0 1000 2000 3000 4000 5000 6000 1 2 3 4 5 6 7 8 9 10 11 12 13 media clusterizzazione totale clusterizzazione parziale media
  • 20.
    Caso III Vision=3 Main-Leaving-Coefficent=1*10^-5 2470 23092226 3469 3142 2845 2419 3488 2757 3224 4451 3294 4842 3148.923077 0 1000 2000 3000 4000 5000 6000 1 2 3 4 5 6 7 8 9 10 11 12 13 media clusterizzazione totale clusterizzazione parziale media
  • 21.
    Caso IV Vision=1 Main-Leaving-Coefficent=1*10^-4 4818 3725 2941 4491 2475 4995 6251 4470 3400 3424 4849 7624 4601 5000 3000 5000 5000 4000 3000 40004000 4000 5000 5000 4466.461538 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 1 2 3 4 5 6 7 8 9 10 11 12 13 media clusterizzazione totale clusterizzazione parziale Elementi rimasti * 1000 media
  • 22.
  • 23.
    Osservazioni  La Randomnesspuò portare a risultati anomali;  (non presente nei test) Per α>2*10^-4, la simulazione assumeva un andamento perpetuo;  Tempo di esecuzione (in cicli) inversamente proporzionale a Vision;  Valore di α non determinante per il tempo di esecuzione, ma importante per la qualità della Clusterizzazione.
  • 24.
    Possibile Lavoro Futuro Ingrandire le dimensioni dei centroidi in base al numero di elementi contenuti.  Sperimentare l’algoritmo con il Database Ruspini e Iris.
  • 25.
    Conclusioni  Si èsviluppato un algoritmo di Netlogo basato sul cBoids Algorithm per la Clusterizzazione dei dati.  I dati ottenuti mostrano che, impostando in modo ponderato i parametri, l’algoritmo funzioni con una ottima efficienza.  Sebbene sia necessario la creazione di formule “ad-hoc” per il tipo di dato utilizzato, riteniamo che l’algoritmo sia sufficientemente flessibile da poter essere impiegato anche su database più ampi.