SlideShare a Scribd company logo
1 of 33
Analisi VertexCover
RecursiveVC VS BruteForce
Capaldo Giuseppe 0522500498
Guastaferro Sergio 0522500500
Descrizione del Problema
VertexCover
 Che cos’è?
 Dato un grafo 𝐺 = 𝑉, 𝐸 un insieme 𝑆 ⊂ 𝑉 è un insieme di vertici che ricopre 𝐺 se
ogni arco 𝑒 ∈ 𝐸 ha almeno un dei suoi vertici in 𝑆
 Esempio di Applicazione
 Eseguire flooding efficiente in una Rete Ad Hoc composta da nodi mobili
 Trovare un insieme di nodi (MPRSet) a distianza 1-hop che riesce a coprire tutti i
nodi a distanza 2-hop
 Come si risolve?
 È un problema NP-HARD, nella pratica si usa un algoritmo approssimato
Obiettivi del Progetto
 Analizzare le complessità di VertexCover
 BruteForce
 RecursiveVC
 Creare una Test Suite per fare il benchmarking sui tempi
 Commentare i risultati ottenuti
Complessità del VertexCover
BruteForce
Complessità
 𝑂 𝑘 ∗ 𝑛 𝑘
 K chiamate
 Ognuna ha complessità 𝑂(𝑛 𝑘
)
Algoritmo
Come trattare l’intrattabile
Riflessioni sul problema
1. Se 𝐺 = (𝑉, 𝐸) ha un insieme ricoprente di taglia 𝑘 allora 𝐸 ≤ 𝑘(𝑛 − 1),
dove 𝑛 = |𝑉|
2. Sia 𝑒 = (𝑢, 𝑣) un arco di 𝐺. Il grafo 𝐺 ha un insieme ricoprente di taglia
𝑘 se e solo se almeno uno dei grafi 𝐺/{𝑢} e 𝐺/ 𝑣 ha un insieme
ricoprente di taglia 𝑘 − 1
Complessità del VertexCover
RecursiveVC
Complessità
 𝑂 2 𝑘
∗ 𝑘 ∗ 𝑛
 2 𝑘
chiamate ricorsive
 Ognuna ha complessità 𝑂(𝑘 ∗ 𝑛)
Algoritmo
Test Suite – 1
 Per poter effettuare l’analisi dei tempi consideriamo i fattori:
 |V| : Numero di nodi
 K : Dimensione del VertexCover
 |E| : Numero di archi, al variare della densità del grafo
 Abbiamo generato un dataset di 9 grafi per ogni |V| fissata
 25 – 30 – 35 nodi
0.1 0.4 0.7
0.2 0.5 0.8
0.3 0.6 0.9
 numero di archi al variare della densità 𝐷𝑖
 𝐷𝑖 =
2 |𝐸|
|𝑉|( |𝑉|−1 )
 𝐸 = 𝐷𝑖
|𝑉|( 𝑉 −1)
2
Istanze
Densità
 Definite le istanze, lanciamo l’algoritmo verificando l’esistenza di un
VertexCover di taglia :
 K piccolo = 𝐾𝑝 =
1
5
|𝑉|
 K medio = 𝐾 𝑚 =
1
2
|𝑉|
 K grande = 𝐾𝑔 =
4
5
|𝑉|
Istanze
Piccola Media Grande
Dp Dm Dg Dp Dm Dg Dp Dm Dg
K
0.1 0.4 0.7 0.1 0.4 0.7 0.1 0.4 0.7
0.2 0.5 0.8 0.2 0.5 0.8 0.2 0.5 0.8
0.3 0.6 0.9 0.3 0.6 0.9 0.3 0.6 0.9
K piccolo K medio K grande
Schema Progettazione Test Suite
Test Suite – 2
 Fissiamo 𝑛 = |𝑉|
 Per i=0 fino a 9
 Calcoliamo m = 𝐸 = 𝐷 𝑥
|𝑉|( 𝑉 −1)
2
con 𝐷 𝑥 = {0.1, 0.2, … 0.9}
 Generiamo un grafo random avente n nodi e m archi
 Esporta su file «dataset_i.mtx»
Test Suite – 3
Generazione del dataset
%%%%%% Dataset_3 %%%%%%
30 30 120 %% n n m
1 1 %% e=(i, j)
2 5
5 8
2 6
12 5
21 6
16 30
…
Esempio dataset_3.mtx
BruteForce – 25 Nodi
Risultati Misure Bruteforce VC su 25 nodi
NOME-FILE NUM-EDGE K
Tempi Esperimenti
Tmedio
Esp0 Esp1 Esp2 Esp3 Esp4 Esp5 Esp6 Esp7 Esp8 Esp9
dataset_0.mtx 30 5 156 95 95 95 142 102 96 95 110 116 110,2
dataset_0.mtx 30 13 109 110 109 109 109 125 125 110 125 122 115,3
dataset_0.mtx 30 20 110 109 109 109 110 109 109 125 109 121 112
dataset_1.mtx 60 5 914 906 891 907 916 922 922 889 891 969 912,7
dataset_1.mtx 60 13 885 877 879 908 887 894 931 876 937 997 907,1
dataset_1.mtx 60 20 926 892 891 903 891 953 1000 916 892 962 922,6
dataset_2.mtx 90 5 2504 2481 2502 2534 2470 2521 2479 2604 2532 2727 2535,4
dataset_2.mtx 90 13 2472 2581 2534 2565 2487 2486 2471 2563 2481 2764 2540,4
dataset_2.mtx 90 20 2524 2534 2477 2574 2485 2515 2516 2617 2504 2725 2547,1
dataset_3.mtx 120 5 7281 7201 7497 7366 7240 7202 7214 7233 7383 7762 7337,9
dataset_3.mtx 120 13 7220 7216 7841 7356 7184 7184 7421 7274 7431 7764 7389,1
dataset_3.mtx 120 20 7222 7270 7402 7281 7232 7307 7315 7199 7498 7703 7342,9
dataset_4.mtx 150 5 7273 7173 7410 7275 7298 7364 7302 7319 7395 7704 7351,3
dataset_4.mtx 150 13 7347 9044 7423 7485 7244 7304 7458 7284 7408 7751 7574,8
dataset_4.mtx 150 20 7379 8038 7458 7577 7263 7306 7261 7335 7514 7734 7486,5
dataset_5.mtx 180 5 20342 21066 20990 21121 20152 20260 21048 20884 20960 21726 20854,9
dataset_5.mtx 180 13 20264 20269 21194 20653 20204 20074 21118 20987 20811 21665 20723,9
dataset_5.mtx 180 20 20483 20862 21175 20221 20319 20744 20623 20464 20832 21669 20739,2
dataset_6.mtx 210 5 20035 20220 20521 20574 20061 20725 20187 20281 20381 21624 20460,9
dataset_6.mtx 210 13 20211 20365 20577 20439 20129 20364 20401 20260 21707 21534 20598,7
dataset_6.mtx 210 20 20149 20310 20886 20349 20245 20592 20298 20532 21917 21408 20668,6
dataset_7.mtx 240 5 18553 18388 19040 18745 18492 19145 18567 19192 20533 19739 19039,4
dataset_7.mtx 240 13 18365 18479 19060 18525 18425 18614 18715 18908 19925 19979 18899,5
dataset_7.mtx 240 20 18507 18528 18787 18569 18585 18893 18624 18786 19993 19629 18890,1
dataset_8.mtx 270 5 20122 20562 21039 20093 20823 20037 20266 20878 21715 21271 20680,6
dataset_8.mtx 270 13 20068 20528 20465 20111 20232 20027 20290 20615 21897 21302 20553,5
dataset_8.mtx 270 20 19973 20353 20563 20060 20191 20576 20283 20780 21699 21474 20595,2
BruteForce – 25 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 30 5 110,2
K Piccolo
dataset_1.mtx 60 5 912,7
dataset_2.mtx 90 5 2535,4
dataset_3.mtx 120 5 7337,9
dataset_4.mtx 150 5 7351,3
dataset_5.mtx 180 5 20854,9
dataset_6.mtx 210 5 20460,9
dataset_7.mtx 240 5 19039,4
dataset_8.mtx 270 5 20680,6
dataset_0.mtx 30 13 115,3
K Medio
dataset_1.mtx 60 13 907,1
dataset_2.mtx 90 13 2540,4
dataset_3.mtx 120 13 7389,1
dataset_4.mtx 150 13 7574,8
dataset_5.mtx 180 13 20723,9
dataset_6.mtx 210 13 20598,7
dataset_7.mtx 240 13 18899,5
dataset_8.mtx 270 13 20553,5
dataset_0.mtx 30 20 112
K Grande
dataset_1.mtx 60 20 922,6
dataset_2.mtx 90 20 2547,1
dataset_3.mtx 120 20 7342,9
dataset_4.mtx 150 20 7486,5
dataset_5.mtx 180 20 20739,2
dataset_6.mtx 210 20 20668,6
dataset_7.mtx 240 20 18890,1
dataset_8.mtx 270 20 20595,2
0
5000
10000
15000
20000
25000
30 60 90 120 150 180 210 240 270
T
Medio
|E|
BruteForce(|E| e K-piccolo)
BruteForce – 25 Nodi
0
5000
10000
15000
20000
25000
30 60 90 120 150 180 210 240 270
T
Medio
|E|
BruteForce(|E| e K-medio)
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 30 5 110,2
K Piccolo
dataset_1.mtx 60 5 912,7
dataset_2.mtx 90 5 2535,4
dataset_3.mtx 120 5 7337,9
dataset_4.mtx 150 5 7351,3
dataset_5.mtx 180 5 20854,9
dataset_6.mtx 210 5 20460,9
dataset_7.mtx 240 5 19039,4
dataset_8.mtx 270 5 20680,6
dataset_0.mtx 30 13 115,3
K Medio
dataset_1.mtx 60 13 907,1
dataset_2.mtx 90 13 2540,4
dataset_3.mtx 120 13 7389,1
dataset_4.mtx 150 13 7574,8
dataset_5.mtx 180 13 20723,9
dataset_6.mtx 210 13 20598,7
dataset_7.mtx 240 13 18899,5
dataset_8.mtx 270 13 20553,5
dataset_0.mtx 30 20 112
K Grande
dataset_1.mtx 60 20 922,6
dataset_2.mtx 90 20 2547,1
dataset_3.mtx 120 20 7342,9
dataset_4.mtx 150 20 7486,5
dataset_5.mtx 180 20 20739,2
dataset_6.mtx 210 20 20668,6
dataset_7.mtx 240 20 18890,1
dataset_8.mtx 270 20 20595,2
BruteForce – 25 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 30 5 110,2
K Piccolo
dataset_1.mtx 60 5 912,7
dataset_2.mtx 90 5 2535,4
dataset_3.mtx 120 5 7337,9
dataset_4.mtx 150 5 7351,3
dataset_5.mtx 180 5 20854,9
dataset_6.mtx 210 5 20460,9
dataset_7.mtx 240 5 19039,4
dataset_8.mtx 270 5 20680,6
dataset_0.mtx 30 13 115,3
K Medio
dataset_1.mtx 60 13 907,1
dataset_2.mtx 90 13 2540,4
dataset_3.mtx 120 13 7389,1
dataset_4.mtx 150 13 7574,8
dataset_5.mtx 180 13 20723,9
dataset_6.mtx 210 13 20598,7
dataset_7.mtx 240 13 18899,5
dataset_8.mtx 270 13 20553,5
dataset_0.mtx 30 20 112
K Grande
dataset_1.mtx 60 20 922,6
dataset_2.mtx 90 20 2547,1
dataset_3.mtx 120 20 7342,9
dataset_4.mtx 150 20 7486,5
dataset_5.mtx 180 20 20739,2
dataset_6.mtx 210 20 20668,6
dataset_7.mtx 240 20 18890,1
dataset_8.mtx 270 20 20595,2
0
5000
10000
15000
20000
25000
30 60 90 120 150 180 210 240 270
T
Medio
|E|
BruteForce(|E| e K-grande)
RecursiveVC – 25 Nodi
Risultati Misure RecursiveVC su 25 nodi
NOME-FILE NUM-EDGE K
Tempi Esperimenti
Tmedio
Esp0 Esp1 Esp2 Esp3 Esp4 Esp5 Esp6 Esp7 Esp8 Esp9
dataset_0.mtx 30 5 0 0 0 0 0 0 0 0 0 0 0
dataset_0.mtx 30 13 32 1 1 1 1 1 1 1 2 2 4,3
dataset_0.mtx 30 20 156 110 109 110 118 125 109 109 109 111 116,6
dataset_1.mtx 60 5 0 0 0 0 0 0 0 0 0 0 0
dataset_1.mtx 60 13 16 15 16 15 0 0 16 16 16 15 12,5
dataset_1.mtx 60 20 768 797 797 767 810 812 781 812 780 769 789,3
dataset_2.mtx 90 5 0 0 0 0 0 0 0 0 0 0 0
dataset_2.mtx 90 13 3 0 0 16 0 16 0 16 0 0 5,1
dataset_2.mtx 90 20 1390 1399 1430 1375 1434 1401 1474 1408 1422 1439 1417,2
dataset_3.mtx 120 5 0 0 0 1 0 0 0 0 0 0 0,1
dataset_3.mtx 120 13 0 2 2 1 1 1 3 2 1 1 1,4
dataset_3.mtx 120 20 1036 1013 1031 1021 1028 1014 1089 995 1022 1010 1025,9
dataset_4.mtx 150 5 0 0 0 0 0 0 0 0 0 0 0
dataset_4.mtx 150 13 1 0 1 1 1 1 1 1 1 1 0,9
dataset_4.mtx 150 20 1110 1143 1139 1132 1165 1187 1114 1134 1243 1093 1146
dataset_5.mtx 180 5 0 0 0 0 0 0 0 0 0 0 0
dataset_5.mtx 180 13 0 0 1 1 1 0 1 1 1 1 0,7
dataset_5.mtx 180 20 375 377 341 344 366 344 375 391 344 334 359,1
dataset_6.mtx 210 5 0 0 0 0 0 0 0 0 0 0 0
dataset_6.mtx 210 13 0 0 0 0 0 0 0 0 0 0 0
dataset_6.mtx 210 20 287 281 281 281 297 312 297 313 300 339 298,8
dataset_7.mtx 240 5 0 0 0 0 0 0 0 0 0 0 0
dataset_7.mtx 240 13 0 0 0 0 0 0 0 0 0 1 0,1
dataset_7.mtx 240 20 220 219 234 212 219 225 219 219 219 211 219,7
dataset_8.mtx 270 5 0 0 0 0 0 0 0 0 0 0 0
dataset_8.mtx 270 13 0 0 0 0 0 0 0 0 0 0 0
dataset_8.mtx 270 20 156 161 141 157 156 141 161 172 141 161 154,7
RecursiveVC – 25 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 30 5 0
K Piccolo
dataset_1.mtx 60 5 0
dataset_2.mtx 90 5 0
dataset_3.mtx 120 5 0,1
dataset_4.mtx 150 5 0
dataset_5.mtx 180 5 0
dataset_6.mtx 210 5 0
dataset_7.mtx 240 5 0
dataset_8.mtx 270 5 0
dataset_0.mtx 30 13 4,3
K Medio
dataset_1.mtx 60 13 12,5
dataset_2.mtx 90 13 5,1
dataset_3.mtx 120 13 1,4
dataset_4.mtx 150 13 0,9
dataset_5.mtx 180 13 0,7
dataset_6.mtx 210 13 0
dataset_7.mtx 240 13 0,1
dataset_8.mtx 270 13 0
dataset_0.mtx 30 20 116,6
K Grande
dataset_1.mtx 60 20 789,3
dataset_2.mtx 90 20 1417,2
dataset_3.mtx 120 20 1025,9
dataset_4.mtx 150 20 1146
dataset_5.mtx 180 20 359,1
dataset_6.mtx 210 20 298,8
dataset_7.mtx 240 20 219,7
dataset_8.mtx 270 20 154,7
0
0.02
0.04
0.06
0.08
0.1
0.12
30 60 90 120 150 180 210 240 270
T
Medio
|E|
RecursiveVC (|E| e K-piccolo)
RecursiveVC – 25 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 30 5 0
K Piccolo
dataset_1.mtx 60 5 0
dataset_2.mtx 90 5 0
dataset_3.mtx 120 5 0,1
dataset_4.mtx 150 5 0
dataset_5.mtx 180 5 0
dataset_6.mtx 210 5 0
dataset_7.mtx 240 5 0
dataset_8.mtx 270 5 0
dataset_0.mtx 30 13 4,3
K Medio
dataset_1.mtx 60 13 12,5
dataset_2.mtx 90 13 5,1
dataset_3.mtx 120 13 1,4
dataset_4.mtx 150 13 0,9
dataset_5.mtx 180 13 0,7
dataset_6.mtx 210 13 0
dataset_7.mtx 240 13 0,1
dataset_8.mtx 270 13 0
dataset_0.mtx 30 20 116,6
K Grande
dataset_1.mtx 60 20 789,3
dataset_2.mtx 90 20 1417,2
dataset_3.mtx 120 20 1025,9
dataset_4.mtx 150 20 1146
dataset_5.mtx 180 20 359,1
dataset_6.mtx 210 20 298,8
dataset_7.mtx 240 20 219,7
dataset_8.mtx 270 20 154,7
0
2
4
6
8
10
12
14
30 60 90 120 150 180 210 240 270
T
Medio
|E|
RecursiveVC(|E| e K-medio)
RecursiveVC – 25 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 30 5 0
K Piccolo
dataset_1.mtx 60 5 0
dataset_2.mtx 90 5 0
dataset_3.mtx 120 5 0,1
dataset_4.mtx 150 5 0
dataset_5.mtx 180 5 0
dataset_6.mtx 210 5 0
dataset_7.mtx 240 5 0
dataset_8.mtx 270 5 0
dataset_0.mtx 30 13 4,3
K Medio
dataset_1.mtx 60 13 12,5
dataset_2.mtx 90 13 5,1
dataset_3.mtx 120 13 1,4
dataset_4.mtx 150 13 0,9
dataset_5.mtx 180 13 0,7
dataset_6.mtx 210 13 0
dataset_7.mtx 240 13 0,1
dataset_8.mtx 270 13 0
dataset_0.mtx 30 20 116,6
K Grande
dataset_1.mtx 60 20 789,3
dataset_2.mtx 90 20 1417,2
dataset_3.mtx 120 20 1025,9
dataset_4.mtx 150 20 1146
dataset_5.mtx 180 20 359,1
dataset_6.mtx 210 20 298,8
dataset_7.mtx 240 20 219,7
dataset_8.mtx 270 20 154,7
0
200
400
600
800
1000
1200
1400
1600
30 60 90 120 150 180 210 240 270
T
Medio
|E|
RecursiveVC (|E| e K-grande)
Esplosione Del Problema
 Eravamo partiti con l’intento di fare un confronto, tra il problema risolto
usando il puro BruteForce e RecursiveVC Ricorsivo
 Ci siamo subito scontrati con la complessità esponenziale dell’algoritmo.
 Sull’istanza da 30 nodi non siamo riusciti per questioni di tempo a fare lo stesso
livello di testing.
 Abbiamo ristretto il numero di test eseguiti (fino al dataset_4.mtx)
BruteForce – 30 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 3 10 1
K Piccolo
dataset_1.mtx 51 10 4986
dataset_2.mtx 99 10 43906
dataset_3.mtx 147 10 229590
dataset_4.mtx 195 10 460698
dataset_0.mtx 3 17 0
K Medio
dataset_1.mtx 51 17 4933
dataset_2.mtx 99 17 44274
dataset_3.mtx 147 17 230899
dataset_4.mtx 195 17 460356
dataset_0.mtx 3 25 0
K Grande
dataset_1.mtx 51 25 4911
dataset_2.mtx 99 25 44094
dataset_3.mtx 147 25 229867
dataset_4.mtx 195 25 461246
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
3 51 99 147 195
T
|E|
BruteForce(|E| e K-piccolo)
BruteForce – 30 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 3 10 1
K Piccolo
dataset_1.mtx 51 10 4986
dataset_2.mtx 99 10 43906
dataset_3.mtx 147 10 229590
dataset_4.mtx 195 10 460698
dataset_0.mtx 3 17 0
K Medio
dataset_1.mtx 51 17 4933
dataset_2.mtx 99 17 44274
dataset_3.mtx 147 17 230899
dataset_4.mtx 195 17 460356
dataset_0.mtx 3 25 0
K Grande
dataset_1.mtx 51 25 4911
dataset_2.mtx 99 25 44094
dataset_3.mtx 147 25 229867
dataset_4.mtx 195 25 461246
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
3 51 99 147 195
T
|E|
BruteForce(|E| e K-medio)
BruteForce – 30 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 3 10 1
K Piccolo
dataset_1.mtx 51 10 4986
dataset_2.mtx 99 10 43906
dataset_3.mtx 147 10 229590
dataset_4.mtx 195 10 460698
dataset_0.mtx 3 17 0
K Medio
dataset_1.mtx 51 17 4933
dataset_2.mtx 99 17 44274
dataset_3.mtx 147 17 230899
dataset_4.mtx 195 17 460356
dataset_0.mtx 3 25 0
K Grande
dataset_1.mtx 51 25 4911
dataset_2.mtx 99 25 44094
dataset_3.mtx 147 25 229867
dataset_4.mtx 195 25 461246
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
3 51 99 147 195
T
|E|
BruteForce(|E| e K-grande)
RecursiveVC – 30 Nodi
Risultati Misure RecursiveVC su 30 nodi
NOME-FILE NUM-EDGE K
Tempi Esperimenti
Tmedio
Esp0 Esp1 Esp2 Esp3 Esp4 Esp5 Esp6 Esp7 Esp8 Esp9
dataset_0.mtx 3 10 0 0 0 0 0 0 0 0 0 0 0
dataset_0.mtx 3 17 0 0 0 0 0 0 0 0 0 0 0
dataset_0.mtx 3 25 0 0 0 0 0 0 0 0 0 0 0
dataset_1.mtx 51 10 0 1 1 1 1 1 1 2 1 1 1
dataset_1.mtx 51 17 265 232 237 232 219 215 234 248 225 232 233,9
dataset_1.mtx 51 25 4978 4967 4908 4988 4783 4839 4938 5041 4868 4930 4924
dataset_2.mtx 99 10 0 0 0 1 0 0 1 0 0 0 0,2
dataset_2.mtx 99 17 125 123 131 129 109 109 126 127 109 127 121,5
dataset_2.mtx 99 25 36307 36612 35599 37673 35505 35507 35759 36176 35066 35772 35997,6
dataset_3.mtx 147 10 0 0 1 1 0 1 0 0 1 0 0,4
dataset_3.mtx 147 17 62 70 68 69 64 67 64 65 67 63 65,9
dataset_3.mtx 147 25 52648 52402 52196 54064 51516 51903 51579 52144 52359 51665 52247,6
dataset_4.mtx 195 10 0 0 0 0 0 0 0 0 0 0 0
dataset_4.mtx 195 17 16 16 19 16 20 20 18 17 17 18 17,7
dataset_4.mtx 195 25 29301 29448 29310 29379 29240 29413 29076 29174 28991 29317 29264,9
dataset_5.mtx 243 10 0 0 0 0 0 0 0 0 0 0 0
dataset_5.mtx 243 17 15 13 14 14 14 15 14 1 2 13 11,5
dataset_5.mtx 243 25 19625 20201 20087 20089 20029 20007 20035 20113 20353 20550 20108,9
dataset_6.mtx 291 10 0 0 0 0 0 0 0 0 0 0 0
dataset_6.mtx 291 17 0 5 5 0 0 0 6 5 1 1 2,3
dataset_6.mtx 291 25 16930 17138 17113 17052 16766 16823 16891 16938 17256 17498 17040,5
dataset_7.mtx 339 10 0 0 0 0 0 0 0 0 0 0 0
dataset_7.mtx 339 17 0 4 2 3 0 0 2 0 0 3 1,4
dataset_7.mtx 339 25 17640 17427 17617 17459 17353 16911 17566 17319 17693 17761 17474,6
dataset_8.mtx 387 10 0 0 0 0 0 0 0 0 0 0 0
dataset_8.mtx 387 17 0 0 1 0 0 0 0 0 0 0 0,1
dataset_8.mtx 387 25 7702 7753 7604 7581 7482 7443 7690 7556 7655 7614 7608
RecursiveVC – 30 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TMedio
dataset_0.mtx 3 10 0
K Piccolo
dataset_1.mtx 51 10 1
dataset_2.mtx 99 10 0,2
dataset_3.mtx 147 10 0,4
dataset_4.mtx 195 10 0
dataset_5.mtx 243 10 0
dataset_6.mtx 291 10 0
dataset_7.mtx 339 10 0
dataset_8.mtx 387 10 0
dataset_0.mtx 3 17 0
K Medio
dataset_1.mtx 51 17 233,9
dataset_2.mtx 99 17 121,5
dataset_3.mtx 147 17 65,9
dataset_4.mtx 195 17 17,7
dataset_5.mtx 243 17 11,5
dataset_6.mtx 291 17 2,3
dataset_7.mtx 339 17 1,4
dataset_8.mtx 387 17 0,1
dataset_0.mtx 3 25 0
K Grande
dataset_1.mtx 51 25 4924
dataset_2.mtx 99 25 35997,6
dataset_3.mtx 147 25 52247,6
dataset_4.mtx 195 25 29264,9
dataset_5.mtx 243 25 20108,9
dataset_6.mtx 291 25 17040,5
dataset_7.mtx 339 25 17474,6
dataset_8.mtx 387 25 7608
0
0.2
0.4
0.6
0.8
1
1.2
3 51 99 147 195 243 291 339 387
T
Medio
|E|
RecursiveVC (|E| e K-piccolo)
RecursiveVC – 30 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TMedio
dataset_0.mtx 3 10 0
K Piccolo
dataset_1.mtx 51 10 1
dataset_2.mtx 99 10 0,2
dataset_3.mtx 147 10 0,4
dataset_4.mtx 195 10 0
dataset_5.mtx 243 10 0
dataset_6.mtx 291 10 0
dataset_7.mtx 339 10 0
dataset_8.mtx 387 10 0
dataset_0.mtx 3 17 0
K Medio
dataset_1.mtx 51 17 233,9
dataset_2.mtx 99 17 121,5
dataset_3.mtx 147 17 65,9
dataset_4.mtx 195 17 17,7
dataset_5.mtx 243 17 11,5
dataset_6.mtx 291 17 2,3
dataset_7.mtx 339 17 1,4
dataset_8.mtx 387 17 0,1
dataset_0.mtx 3 25 0
K Grande
dataset_1.mtx 51 25 4924
dataset_2.mtx 99 25 35997,6
dataset_3.mtx 147 25 52247,6
dataset_4.mtx 195 25 29264,9
dataset_5.mtx 243 25 20108,9
dataset_6.mtx 291 25 17040,5
dataset_7.mtx 339 25 17474,6
dataset_8.mtx 387 25 7608
0
50
100
150
200
250
3 51 99 147 195 243 291 339 387
T
Medio
|E|
RecursiveVC (|E| e K-medio)
RecursiveVC – 30 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TMedio
dataset_0.mtx 3 10 0
K Piccolo
dataset_1.mtx 51 10 1
dataset_2.mtx 99 10 0,2
dataset_3.mtx 147 10 0,4
dataset_4.mtx 195 10 0
dataset_5.mtx 243 10 0
dataset_6.mtx 291 10 0
dataset_7.mtx 339 10 0
dataset_8.mtx 387 10 0
dataset_0.mtx 3 17 0
K Medio
dataset_1.mtx 51 17 233,9
dataset_2.mtx 99 17 121,5
dataset_3.mtx 147 17 65,9
dataset_4.mtx 195 17 17,7
dataset_5.mtx 243 17 11,5
dataset_6.mtx 291 17 2,3
dataset_7.mtx 339 17 1,4
dataset_8.mtx 387 17 0,1
dataset_0.mtx 3 25 0
K Grande
dataset_1.mtx 51 25 4924
dataset_2.mtx 99 25 35997,6
dataset_3.mtx 147 25 52247,6
dataset_4.mtx 195 25 29264,9
dataset_5.mtx 243 25 20108,9
dataset_6.mtx 291 25 17040,5
dataset_7.mtx 339 25 17474,6
dataset_8.mtx 387 25 7608
0
10000
20000
30000
40000
50000
60000
3 51 99 147 195 243 291 339 387
T
Medio
|E|
RecursiveVC (|E| e K-grande)
RecursiveVC – 35 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 60 7 2
K Piccolo
dataset_1.mtx 119 7 0
dataset_2.mtx 179 7 0
dataset_3.mtx 238 7 0
dataset_4.mtx 298 7 0
dataset_5.mtx 357 7 0
dataset_6.mtx 417 7 0
dataset_7.mtx 476 7 0
dataset_8.mtx 536 7 0
dataset_0.mtx 60 18 572
K Medio
dataset_1.mtx 119 18 287
dataset_2.mtx 179 18 129
dataset_3.mtx 238 18 47
dataset_4.mtx 298 18 15
dataset_5.mtx 357 18 0
dataset_6.mtx 417 18 0
dataset_7.mtx 476 18 0
dataset_8.mtx 536 18 0
dataset_0.mtx 60 28 68137
K Grande
dataset_1.mtx 119 28 632165
dataset_2.mtx 179 28 566227
dataset_3.mtx 238 28 371194
dataset_4.mtx 298 28 148300
dataset_5.mtx 357 28 92618
dataset_6.mtx 417 28 78495
dataset_7.mtx 476 28 35361
dataset_8.mtx 536 28 19324
0
0.5
1
1.5
2
2.5
60 119 179 238 298 357 417 476 536
T
|E|
RecursiveVC(|E| e K-piccolo)
RecursiveVC – 35 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 60 7 2
K Piccolo
dataset_1.mtx 119 7 0
dataset_2.mtx 179 7 0
dataset_3.mtx 238 7 0
dataset_4.mtx 298 7 0
dataset_5.mtx 357 7 0
dataset_6.mtx 417 7 0
dataset_7.mtx 476 7 0
dataset_8.mtx 536 7 0
dataset_0.mtx 60 18 572
K Medio
dataset_1.mtx 119 18 287
dataset_2.mtx 179 18 129
dataset_3.mtx 238 18 47
dataset_4.mtx 298 18 15
dataset_5.mtx 357 18 0
dataset_6.mtx 417 18 0
dataset_7.mtx 476 18 0
dataset_8.mtx 536 18 0
dataset_0.mtx 60 28 68137
K Grande
dataset_1.mtx 119 28 632165
dataset_2.mtx 179 28 566227
dataset_3.mtx 238 28 371194
dataset_4.mtx 298 28 148300
dataset_5.mtx 357 28 92618
dataset_6.mtx 417 28 78495
dataset_7.mtx 476 28 35361
dataset_8.mtx 536 28 19324
0
100
200
300
400
500
600
700
60 119 179 238 298 357 417 476 536
T
|E|
RecursiveVC(|E| e K-medio)
RecursiveVC – 35 Nodi
Grafici2(Ordine K)
NOME-FILE NUM-EDGE K TIME
dataset_0.mtx 60 7 2
K Piccolo
dataset_1.mtx 119 7 0
dataset_2.mtx 179 7 0
dataset_3.mtx 238 7 0
dataset_4.mtx 298 7 0
dataset_5.mtx 357 7 0
dataset_6.mtx 417 7 0
dataset_7.mtx 476 7 0
dataset_8.mtx 536 7 0
dataset_0.mtx 60 18 572
K Medio
dataset_1.mtx 119 18 287
dataset_2.mtx 179 18 129
dataset_3.mtx 238 18 47
dataset_4.mtx 298 18 15
dataset_5.mtx 357 18 0
dataset_6.mtx 417 18 0
dataset_7.mtx 476 18 0
dataset_8.mtx 536 18 0
dataset_0.mtx 60 28 68137
K Grande
dataset_1.mtx 119 28 632165
dataset_2.mtx 179 28 566227
dataset_3.mtx 238 28 371194
dataset_4.mtx 298 28 148300
dataset_5.mtx 357 28 92618
dataset_6.mtx 417 28 78495
dataset_7.mtx 476 28 35361
dataset_8.mtx 536 28 19324
0
100000
200000
300000
400000
500000
600000
700000
60 119 179 238 298 357 417 476 536
T
|E|
RecursiveVC(|E| e K-grande)
Stima Crescita Tempi RecursiveVC
RecursiveVC
Numero Nodi O(Tempo)
25 1,4 s
30 52 s
35 632 s
40 8738 s
45 188083 s
50 40,5 giorni
55 694,4 giorni
0
500000
1000000
1500000
2000000
2500000
3000000
3500000
25 30 35 40 45 50
Tempo
(s)
|V|
Andamento dei Tempi RecursiveVC
 Basate su k-grande e densità medio-bassa (0.3/0.4)
 25-30-35 misure basate su medie
 40-45 misure effettuate su singola esecuzione
 50-55 predizioni
Conclusioni
 BruteForce
 K non ha influenza sui tempi
 Esplode su una istanza da 30 nodi
 Dataset_4.mtx : densità di 0,5 ( T ≃ 8 min. )
 RecursiveVC
 Esplode su instanze con K-grande e densità medio-bassa (≃ 0.3)
 Generando opportune istanze
 |V| = 40 -- |E| = 234 –- K = 32 TEMPO : 2,43 ore
 |V| = 45 –- |E| = 297 –- K = 36 TEMPO : 52,24 ore
 |V| = 50 -- |E| = 367 –- K = 40 TEMPO : ? (stima, Ω(40 giorni))
Perche non usare Java?
 Uso tipi primitivi al posto degli oggetti
 Accessi diretti in memoria al posto di Getter/Setter
 Evitato l’uso della creazione/gestione Object
 Evitato il cambio contesto copiando lo stesso codice nella chiamata ricorsiva
 Su una istanza da 40 nodi impiega 4,31 min anzicchè 2,43 ore .
 Stesso linguaggio, JAVA .
RecursiveVC3
Numero Nodi O(Tempo)
25 0 s
30 0 s
35 24,95 s
40 258,75 s
45 800 s
50 2000 s
Perche non usare Java?
Stima Crescita Tempi RecursiveVC3
-500
0
500
1000
1500
2000
2500
25 30 35 40
Tempo
(s)
|V|
Andamento dei Tempi RecursiveVC3
 Basate su k-grande e densità medio-bassa (0.3/0.4)
 Basate su singola esecuzione, DynTestRunningVC3
Grazie per l’attenzione

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Analisi Vertex Cover

  • 1. Analisi VertexCover RecursiveVC VS BruteForce Capaldo Giuseppe 0522500498 Guastaferro Sergio 0522500500
  • 2. Descrizione del Problema VertexCover  Che cos’è?  Dato un grafo 𝐺 = 𝑉, 𝐸 un insieme 𝑆 ⊂ 𝑉 è un insieme di vertici che ricopre 𝐺 se ogni arco 𝑒 ∈ 𝐸 ha almeno un dei suoi vertici in 𝑆  Esempio di Applicazione  Eseguire flooding efficiente in una Rete Ad Hoc composta da nodi mobili  Trovare un insieme di nodi (MPRSet) a distianza 1-hop che riesce a coprire tutti i nodi a distanza 2-hop  Come si risolve?  È un problema NP-HARD, nella pratica si usa un algoritmo approssimato
  • 3. Obiettivi del Progetto  Analizzare le complessità di VertexCover  BruteForce  RecursiveVC  Creare una Test Suite per fare il benchmarking sui tempi  Commentare i risultati ottenuti
  • 4. Complessità del VertexCover BruteForce Complessità  𝑂 𝑘 ∗ 𝑛 𝑘  K chiamate  Ognuna ha complessità 𝑂(𝑛 𝑘 ) Algoritmo
  • 5. Come trattare l’intrattabile Riflessioni sul problema 1. Se 𝐺 = (𝑉, 𝐸) ha un insieme ricoprente di taglia 𝑘 allora 𝐸 ≤ 𝑘(𝑛 − 1), dove 𝑛 = |𝑉| 2. Sia 𝑒 = (𝑢, 𝑣) un arco di 𝐺. Il grafo 𝐺 ha un insieme ricoprente di taglia 𝑘 se e solo se almeno uno dei grafi 𝐺/{𝑢} e 𝐺/ 𝑣 ha un insieme ricoprente di taglia 𝑘 − 1
  • 6. Complessità del VertexCover RecursiveVC Complessità  𝑂 2 𝑘 ∗ 𝑘 ∗ 𝑛  2 𝑘 chiamate ricorsive  Ognuna ha complessità 𝑂(𝑘 ∗ 𝑛) Algoritmo
  • 7. Test Suite – 1  Per poter effettuare l’analisi dei tempi consideriamo i fattori:  |V| : Numero di nodi  K : Dimensione del VertexCover  |E| : Numero di archi, al variare della densità del grafo  Abbiamo generato un dataset di 9 grafi per ogni |V| fissata  25 – 30 – 35 nodi 0.1 0.4 0.7 0.2 0.5 0.8 0.3 0.6 0.9  numero di archi al variare della densità 𝐷𝑖  𝐷𝑖 = 2 |𝐸| |𝑉|( |𝑉|−1 )  𝐸 = 𝐷𝑖 |𝑉|( 𝑉 −1) 2 Istanze Densità
  • 8.  Definite le istanze, lanciamo l’algoritmo verificando l’esistenza di un VertexCover di taglia :  K piccolo = 𝐾𝑝 = 1 5 |𝑉|  K medio = 𝐾 𝑚 = 1 2 |𝑉|  K grande = 𝐾𝑔 = 4 5 |𝑉| Istanze Piccola Media Grande Dp Dm Dg Dp Dm Dg Dp Dm Dg K 0.1 0.4 0.7 0.1 0.4 0.7 0.1 0.4 0.7 0.2 0.5 0.8 0.2 0.5 0.8 0.2 0.5 0.8 0.3 0.6 0.9 0.3 0.6 0.9 0.3 0.6 0.9 K piccolo K medio K grande Schema Progettazione Test Suite Test Suite – 2
  • 9.  Fissiamo 𝑛 = |𝑉|  Per i=0 fino a 9  Calcoliamo m = 𝐸 = 𝐷 𝑥 |𝑉|( 𝑉 −1) 2 con 𝐷 𝑥 = {0.1, 0.2, … 0.9}  Generiamo un grafo random avente n nodi e m archi  Esporta su file «dataset_i.mtx» Test Suite – 3 Generazione del dataset %%%%%% Dataset_3 %%%%%% 30 30 120 %% n n m 1 1 %% e=(i, j) 2 5 5 8 2 6 12 5 21 6 16 30 … Esempio dataset_3.mtx
  • 10. BruteForce – 25 Nodi Risultati Misure Bruteforce VC su 25 nodi NOME-FILE NUM-EDGE K Tempi Esperimenti Tmedio Esp0 Esp1 Esp2 Esp3 Esp4 Esp5 Esp6 Esp7 Esp8 Esp9 dataset_0.mtx 30 5 156 95 95 95 142 102 96 95 110 116 110,2 dataset_0.mtx 30 13 109 110 109 109 109 125 125 110 125 122 115,3 dataset_0.mtx 30 20 110 109 109 109 110 109 109 125 109 121 112 dataset_1.mtx 60 5 914 906 891 907 916 922 922 889 891 969 912,7 dataset_1.mtx 60 13 885 877 879 908 887 894 931 876 937 997 907,1 dataset_1.mtx 60 20 926 892 891 903 891 953 1000 916 892 962 922,6 dataset_2.mtx 90 5 2504 2481 2502 2534 2470 2521 2479 2604 2532 2727 2535,4 dataset_2.mtx 90 13 2472 2581 2534 2565 2487 2486 2471 2563 2481 2764 2540,4 dataset_2.mtx 90 20 2524 2534 2477 2574 2485 2515 2516 2617 2504 2725 2547,1 dataset_3.mtx 120 5 7281 7201 7497 7366 7240 7202 7214 7233 7383 7762 7337,9 dataset_3.mtx 120 13 7220 7216 7841 7356 7184 7184 7421 7274 7431 7764 7389,1 dataset_3.mtx 120 20 7222 7270 7402 7281 7232 7307 7315 7199 7498 7703 7342,9 dataset_4.mtx 150 5 7273 7173 7410 7275 7298 7364 7302 7319 7395 7704 7351,3 dataset_4.mtx 150 13 7347 9044 7423 7485 7244 7304 7458 7284 7408 7751 7574,8 dataset_4.mtx 150 20 7379 8038 7458 7577 7263 7306 7261 7335 7514 7734 7486,5 dataset_5.mtx 180 5 20342 21066 20990 21121 20152 20260 21048 20884 20960 21726 20854,9 dataset_5.mtx 180 13 20264 20269 21194 20653 20204 20074 21118 20987 20811 21665 20723,9 dataset_5.mtx 180 20 20483 20862 21175 20221 20319 20744 20623 20464 20832 21669 20739,2 dataset_6.mtx 210 5 20035 20220 20521 20574 20061 20725 20187 20281 20381 21624 20460,9 dataset_6.mtx 210 13 20211 20365 20577 20439 20129 20364 20401 20260 21707 21534 20598,7 dataset_6.mtx 210 20 20149 20310 20886 20349 20245 20592 20298 20532 21917 21408 20668,6 dataset_7.mtx 240 5 18553 18388 19040 18745 18492 19145 18567 19192 20533 19739 19039,4 dataset_7.mtx 240 13 18365 18479 19060 18525 18425 18614 18715 18908 19925 19979 18899,5 dataset_7.mtx 240 20 18507 18528 18787 18569 18585 18893 18624 18786 19993 19629 18890,1 dataset_8.mtx 270 5 20122 20562 21039 20093 20823 20037 20266 20878 21715 21271 20680,6 dataset_8.mtx 270 13 20068 20528 20465 20111 20232 20027 20290 20615 21897 21302 20553,5 dataset_8.mtx 270 20 19973 20353 20563 20060 20191 20576 20283 20780 21699 21474 20595,2
  • 11. BruteForce – 25 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 30 5 110,2 K Piccolo dataset_1.mtx 60 5 912,7 dataset_2.mtx 90 5 2535,4 dataset_3.mtx 120 5 7337,9 dataset_4.mtx 150 5 7351,3 dataset_5.mtx 180 5 20854,9 dataset_6.mtx 210 5 20460,9 dataset_7.mtx 240 5 19039,4 dataset_8.mtx 270 5 20680,6 dataset_0.mtx 30 13 115,3 K Medio dataset_1.mtx 60 13 907,1 dataset_2.mtx 90 13 2540,4 dataset_3.mtx 120 13 7389,1 dataset_4.mtx 150 13 7574,8 dataset_5.mtx 180 13 20723,9 dataset_6.mtx 210 13 20598,7 dataset_7.mtx 240 13 18899,5 dataset_8.mtx 270 13 20553,5 dataset_0.mtx 30 20 112 K Grande dataset_1.mtx 60 20 922,6 dataset_2.mtx 90 20 2547,1 dataset_3.mtx 120 20 7342,9 dataset_4.mtx 150 20 7486,5 dataset_5.mtx 180 20 20739,2 dataset_6.mtx 210 20 20668,6 dataset_7.mtx 240 20 18890,1 dataset_8.mtx 270 20 20595,2 0 5000 10000 15000 20000 25000 30 60 90 120 150 180 210 240 270 T Medio |E| BruteForce(|E| e K-piccolo)
  • 12. BruteForce – 25 Nodi 0 5000 10000 15000 20000 25000 30 60 90 120 150 180 210 240 270 T Medio |E| BruteForce(|E| e K-medio) Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 30 5 110,2 K Piccolo dataset_1.mtx 60 5 912,7 dataset_2.mtx 90 5 2535,4 dataset_3.mtx 120 5 7337,9 dataset_4.mtx 150 5 7351,3 dataset_5.mtx 180 5 20854,9 dataset_6.mtx 210 5 20460,9 dataset_7.mtx 240 5 19039,4 dataset_8.mtx 270 5 20680,6 dataset_0.mtx 30 13 115,3 K Medio dataset_1.mtx 60 13 907,1 dataset_2.mtx 90 13 2540,4 dataset_3.mtx 120 13 7389,1 dataset_4.mtx 150 13 7574,8 dataset_5.mtx 180 13 20723,9 dataset_6.mtx 210 13 20598,7 dataset_7.mtx 240 13 18899,5 dataset_8.mtx 270 13 20553,5 dataset_0.mtx 30 20 112 K Grande dataset_1.mtx 60 20 922,6 dataset_2.mtx 90 20 2547,1 dataset_3.mtx 120 20 7342,9 dataset_4.mtx 150 20 7486,5 dataset_5.mtx 180 20 20739,2 dataset_6.mtx 210 20 20668,6 dataset_7.mtx 240 20 18890,1 dataset_8.mtx 270 20 20595,2
  • 13. BruteForce – 25 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 30 5 110,2 K Piccolo dataset_1.mtx 60 5 912,7 dataset_2.mtx 90 5 2535,4 dataset_3.mtx 120 5 7337,9 dataset_4.mtx 150 5 7351,3 dataset_5.mtx 180 5 20854,9 dataset_6.mtx 210 5 20460,9 dataset_7.mtx 240 5 19039,4 dataset_8.mtx 270 5 20680,6 dataset_0.mtx 30 13 115,3 K Medio dataset_1.mtx 60 13 907,1 dataset_2.mtx 90 13 2540,4 dataset_3.mtx 120 13 7389,1 dataset_4.mtx 150 13 7574,8 dataset_5.mtx 180 13 20723,9 dataset_6.mtx 210 13 20598,7 dataset_7.mtx 240 13 18899,5 dataset_8.mtx 270 13 20553,5 dataset_0.mtx 30 20 112 K Grande dataset_1.mtx 60 20 922,6 dataset_2.mtx 90 20 2547,1 dataset_3.mtx 120 20 7342,9 dataset_4.mtx 150 20 7486,5 dataset_5.mtx 180 20 20739,2 dataset_6.mtx 210 20 20668,6 dataset_7.mtx 240 20 18890,1 dataset_8.mtx 270 20 20595,2 0 5000 10000 15000 20000 25000 30 60 90 120 150 180 210 240 270 T Medio |E| BruteForce(|E| e K-grande)
  • 14. RecursiveVC – 25 Nodi Risultati Misure RecursiveVC su 25 nodi NOME-FILE NUM-EDGE K Tempi Esperimenti Tmedio Esp0 Esp1 Esp2 Esp3 Esp4 Esp5 Esp6 Esp7 Esp8 Esp9 dataset_0.mtx 30 5 0 0 0 0 0 0 0 0 0 0 0 dataset_0.mtx 30 13 32 1 1 1 1 1 1 1 2 2 4,3 dataset_0.mtx 30 20 156 110 109 110 118 125 109 109 109 111 116,6 dataset_1.mtx 60 5 0 0 0 0 0 0 0 0 0 0 0 dataset_1.mtx 60 13 16 15 16 15 0 0 16 16 16 15 12,5 dataset_1.mtx 60 20 768 797 797 767 810 812 781 812 780 769 789,3 dataset_2.mtx 90 5 0 0 0 0 0 0 0 0 0 0 0 dataset_2.mtx 90 13 3 0 0 16 0 16 0 16 0 0 5,1 dataset_2.mtx 90 20 1390 1399 1430 1375 1434 1401 1474 1408 1422 1439 1417,2 dataset_3.mtx 120 5 0 0 0 1 0 0 0 0 0 0 0,1 dataset_3.mtx 120 13 0 2 2 1 1 1 3 2 1 1 1,4 dataset_3.mtx 120 20 1036 1013 1031 1021 1028 1014 1089 995 1022 1010 1025,9 dataset_4.mtx 150 5 0 0 0 0 0 0 0 0 0 0 0 dataset_4.mtx 150 13 1 0 1 1 1 1 1 1 1 1 0,9 dataset_4.mtx 150 20 1110 1143 1139 1132 1165 1187 1114 1134 1243 1093 1146 dataset_5.mtx 180 5 0 0 0 0 0 0 0 0 0 0 0 dataset_5.mtx 180 13 0 0 1 1 1 0 1 1 1 1 0,7 dataset_5.mtx 180 20 375 377 341 344 366 344 375 391 344 334 359,1 dataset_6.mtx 210 5 0 0 0 0 0 0 0 0 0 0 0 dataset_6.mtx 210 13 0 0 0 0 0 0 0 0 0 0 0 dataset_6.mtx 210 20 287 281 281 281 297 312 297 313 300 339 298,8 dataset_7.mtx 240 5 0 0 0 0 0 0 0 0 0 0 0 dataset_7.mtx 240 13 0 0 0 0 0 0 0 0 0 1 0,1 dataset_7.mtx 240 20 220 219 234 212 219 225 219 219 219 211 219,7 dataset_8.mtx 270 5 0 0 0 0 0 0 0 0 0 0 0 dataset_8.mtx 270 13 0 0 0 0 0 0 0 0 0 0 0 dataset_8.mtx 270 20 156 161 141 157 156 141 161 172 141 161 154,7
  • 15. RecursiveVC – 25 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 30 5 0 K Piccolo dataset_1.mtx 60 5 0 dataset_2.mtx 90 5 0 dataset_3.mtx 120 5 0,1 dataset_4.mtx 150 5 0 dataset_5.mtx 180 5 0 dataset_6.mtx 210 5 0 dataset_7.mtx 240 5 0 dataset_8.mtx 270 5 0 dataset_0.mtx 30 13 4,3 K Medio dataset_1.mtx 60 13 12,5 dataset_2.mtx 90 13 5,1 dataset_3.mtx 120 13 1,4 dataset_4.mtx 150 13 0,9 dataset_5.mtx 180 13 0,7 dataset_6.mtx 210 13 0 dataset_7.mtx 240 13 0,1 dataset_8.mtx 270 13 0 dataset_0.mtx 30 20 116,6 K Grande dataset_1.mtx 60 20 789,3 dataset_2.mtx 90 20 1417,2 dataset_3.mtx 120 20 1025,9 dataset_4.mtx 150 20 1146 dataset_5.mtx 180 20 359,1 dataset_6.mtx 210 20 298,8 dataset_7.mtx 240 20 219,7 dataset_8.mtx 270 20 154,7 0 0.02 0.04 0.06 0.08 0.1 0.12 30 60 90 120 150 180 210 240 270 T Medio |E| RecursiveVC (|E| e K-piccolo)
  • 16. RecursiveVC – 25 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 30 5 0 K Piccolo dataset_1.mtx 60 5 0 dataset_2.mtx 90 5 0 dataset_3.mtx 120 5 0,1 dataset_4.mtx 150 5 0 dataset_5.mtx 180 5 0 dataset_6.mtx 210 5 0 dataset_7.mtx 240 5 0 dataset_8.mtx 270 5 0 dataset_0.mtx 30 13 4,3 K Medio dataset_1.mtx 60 13 12,5 dataset_2.mtx 90 13 5,1 dataset_3.mtx 120 13 1,4 dataset_4.mtx 150 13 0,9 dataset_5.mtx 180 13 0,7 dataset_6.mtx 210 13 0 dataset_7.mtx 240 13 0,1 dataset_8.mtx 270 13 0 dataset_0.mtx 30 20 116,6 K Grande dataset_1.mtx 60 20 789,3 dataset_2.mtx 90 20 1417,2 dataset_3.mtx 120 20 1025,9 dataset_4.mtx 150 20 1146 dataset_5.mtx 180 20 359,1 dataset_6.mtx 210 20 298,8 dataset_7.mtx 240 20 219,7 dataset_8.mtx 270 20 154,7 0 2 4 6 8 10 12 14 30 60 90 120 150 180 210 240 270 T Medio |E| RecursiveVC(|E| e K-medio)
  • 17. RecursiveVC – 25 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 30 5 0 K Piccolo dataset_1.mtx 60 5 0 dataset_2.mtx 90 5 0 dataset_3.mtx 120 5 0,1 dataset_4.mtx 150 5 0 dataset_5.mtx 180 5 0 dataset_6.mtx 210 5 0 dataset_7.mtx 240 5 0 dataset_8.mtx 270 5 0 dataset_0.mtx 30 13 4,3 K Medio dataset_1.mtx 60 13 12,5 dataset_2.mtx 90 13 5,1 dataset_3.mtx 120 13 1,4 dataset_4.mtx 150 13 0,9 dataset_5.mtx 180 13 0,7 dataset_6.mtx 210 13 0 dataset_7.mtx 240 13 0,1 dataset_8.mtx 270 13 0 dataset_0.mtx 30 20 116,6 K Grande dataset_1.mtx 60 20 789,3 dataset_2.mtx 90 20 1417,2 dataset_3.mtx 120 20 1025,9 dataset_4.mtx 150 20 1146 dataset_5.mtx 180 20 359,1 dataset_6.mtx 210 20 298,8 dataset_7.mtx 240 20 219,7 dataset_8.mtx 270 20 154,7 0 200 400 600 800 1000 1200 1400 1600 30 60 90 120 150 180 210 240 270 T Medio |E| RecursiveVC (|E| e K-grande)
  • 18. Esplosione Del Problema  Eravamo partiti con l’intento di fare un confronto, tra il problema risolto usando il puro BruteForce e RecursiveVC Ricorsivo  Ci siamo subito scontrati con la complessità esponenziale dell’algoritmo.  Sull’istanza da 30 nodi non siamo riusciti per questioni di tempo a fare lo stesso livello di testing.  Abbiamo ristretto il numero di test eseguiti (fino al dataset_4.mtx)
  • 19. BruteForce – 30 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 3 10 1 K Piccolo dataset_1.mtx 51 10 4986 dataset_2.mtx 99 10 43906 dataset_3.mtx 147 10 229590 dataset_4.mtx 195 10 460698 dataset_0.mtx 3 17 0 K Medio dataset_1.mtx 51 17 4933 dataset_2.mtx 99 17 44274 dataset_3.mtx 147 17 230899 dataset_4.mtx 195 17 460356 dataset_0.mtx 3 25 0 K Grande dataset_1.mtx 51 25 4911 dataset_2.mtx 99 25 44094 dataset_3.mtx 147 25 229867 dataset_4.mtx 195 25 461246 0 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000 3 51 99 147 195 T |E| BruteForce(|E| e K-piccolo)
  • 20. BruteForce – 30 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 3 10 1 K Piccolo dataset_1.mtx 51 10 4986 dataset_2.mtx 99 10 43906 dataset_3.mtx 147 10 229590 dataset_4.mtx 195 10 460698 dataset_0.mtx 3 17 0 K Medio dataset_1.mtx 51 17 4933 dataset_2.mtx 99 17 44274 dataset_3.mtx 147 17 230899 dataset_4.mtx 195 17 460356 dataset_0.mtx 3 25 0 K Grande dataset_1.mtx 51 25 4911 dataset_2.mtx 99 25 44094 dataset_3.mtx 147 25 229867 dataset_4.mtx 195 25 461246 0 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000 3 51 99 147 195 T |E| BruteForce(|E| e K-medio)
  • 21. BruteForce – 30 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 3 10 1 K Piccolo dataset_1.mtx 51 10 4986 dataset_2.mtx 99 10 43906 dataset_3.mtx 147 10 229590 dataset_4.mtx 195 10 460698 dataset_0.mtx 3 17 0 K Medio dataset_1.mtx 51 17 4933 dataset_2.mtx 99 17 44274 dataset_3.mtx 147 17 230899 dataset_4.mtx 195 17 460356 dataset_0.mtx 3 25 0 K Grande dataset_1.mtx 51 25 4911 dataset_2.mtx 99 25 44094 dataset_3.mtx 147 25 229867 dataset_4.mtx 195 25 461246 0 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000 3 51 99 147 195 T |E| BruteForce(|E| e K-grande)
  • 22. RecursiveVC – 30 Nodi Risultati Misure RecursiveVC su 30 nodi NOME-FILE NUM-EDGE K Tempi Esperimenti Tmedio Esp0 Esp1 Esp2 Esp3 Esp4 Esp5 Esp6 Esp7 Esp8 Esp9 dataset_0.mtx 3 10 0 0 0 0 0 0 0 0 0 0 0 dataset_0.mtx 3 17 0 0 0 0 0 0 0 0 0 0 0 dataset_0.mtx 3 25 0 0 0 0 0 0 0 0 0 0 0 dataset_1.mtx 51 10 0 1 1 1 1 1 1 2 1 1 1 dataset_1.mtx 51 17 265 232 237 232 219 215 234 248 225 232 233,9 dataset_1.mtx 51 25 4978 4967 4908 4988 4783 4839 4938 5041 4868 4930 4924 dataset_2.mtx 99 10 0 0 0 1 0 0 1 0 0 0 0,2 dataset_2.mtx 99 17 125 123 131 129 109 109 126 127 109 127 121,5 dataset_2.mtx 99 25 36307 36612 35599 37673 35505 35507 35759 36176 35066 35772 35997,6 dataset_3.mtx 147 10 0 0 1 1 0 1 0 0 1 0 0,4 dataset_3.mtx 147 17 62 70 68 69 64 67 64 65 67 63 65,9 dataset_3.mtx 147 25 52648 52402 52196 54064 51516 51903 51579 52144 52359 51665 52247,6 dataset_4.mtx 195 10 0 0 0 0 0 0 0 0 0 0 0 dataset_4.mtx 195 17 16 16 19 16 20 20 18 17 17 18 17,7 dataset_4.mtx 195 25 29301 29448 29310 29379 29240 29413 29076 29174 28991 29317 29264,9 dataset_5.mtx 243 10 0 0 0 0 0 0 0 0 0 0 0 dataset_5.mtx 243 17 15 13 14 14 14 15 14 1 2 13 11,5 dataset_5.mtx 243 25 19625 20201 20087 20089 20029 20007 20035 20113 20353 20550 20108,9 dataset_6.mtx 291 10 0 0 0 0 0 0 0 0 0 0 0 dataset_6.mtx 291 17 0 5 5 0 0 0 6 5 1 1 2,3 dataset_6.mtx 291 25 16930 17138 17113 17052 16766 16823 16891 16938 17256 17498 17040,5 dataset_7.mtx 339 10 0 0 0 0 0 0 0 0 0 0 0 dataset_7.mtx 339 17 0 4 2 3 0 0 2 0 0 3 1,4 dataset_7.mtx 339 25 17640 17427 17617 17459 17353 16911 17566 17319 17693 17761 17474,6 dataset_8.mtx 387 10 0 0 0 0 0 0 0 0 0 0 0 dataset_8.mtx 387 17 0 0 1 0 0 0 0 0 0 0 0,1 dataset_8.mtx 387 25 7702 7753 7604 7581 7482 7443 7690 7556 7655 7614 7608
  • 23. RecursiveVC – 30 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TMedio dataset_0.mtx 3 10 0 K Piccolo dataset_1.mtx 51 10 1 dataset_2.mtx 99 10 0,2 dataset_3.mtx 147 10 0,4 dataset_4.mtx 195 10 0 dataset_5.mtx 243 10 0 dataset_6.mtx 291 10 0 dataset_7.mtx 339 10 0 dataset_8.mtx 387 10 0 dataset_0.mtx 3 17 0 K Medio dataset_1.mtx 51 17 233,9 dataset_2.mtx 99 17 121,5 dataset_3.mtx 147 17 65,9 dataset_4.mtx 195 17 17,7 dataset_5.mtx 243 17 11,5 dataset_6.mtx 291 17 2,3 dataset_7.mtx 339 17 1,4 dataset_8.mtx 387 17 0,1 dataset_0.mtx 3 25 0 K Grande dataset_1.mtx 51 25 4924 dataset_2.mtx 99 25 35997,6 dataset_3.mtx 147 25 52247,6 dataset_4.mtx 195 25 29264,9 dataset_5.mtx 243 25 20108,9 dataset_6.mtx 291 25 17040,5 dataset_7.mtx 339 25 17474,6 dataset_8.mtx 387 25 7608 0 0.2 0.4 0.6 0.8 1 1.2 3 51 99 147 195 243 291 339 387 T Medio |E| RecursiveVC (|E| e K-piccolo)
  • 24. RecursiveVC – 30 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TMedio dataset_0.mtx 3 10 0 K Piccolo dataset_1.mtx 51 10 1 dataset_2.mtx 99 10 0,2 dataset_3.mtx 147 10 0,4 dataset_4.mtx 195 10 0 dataset_5.mtx 243 10 0 dataset_6.mtx 291 10 0 dataset_7.mtx 339 10 0 dataset_8.mtx 387 10 0 dataset_0.mtx 3 17 0 K Medio dataset_1.mtx 51 17 233,9 dataset_2.mtx 99 17 121,5 dataset_3.mtx 147 17 65,9 dataset_4.mtx 195 17 17,7 dataset_5.mtx 243 17 11,5 dataset_6.mtx 291 17 2,3 dataset_7.mtx 339 17 1,4 dataset_8.mtx 387 17 0,1 dataset_0.mtx 3 25 0 K Grande dataset_1.mtx 51 25 4924 dataset_2.mtx 99 25 35997,6 dataset_3.mtx 147 25 52247,6 dataset_4.mtx 195 25 29264,9 dataset_5.mtx 243 25 20108,9 dataset_6.mtx 291 25 17040,5 dataset_7.mtx 339 25 17474,6 dataset_8.mtx 387 25 7608 0 50 100 150 200 250 3 51 99 147 195 243 291 339 387 T Medio |E| RecursiveVC (|E| e K-medio)
  • 25. RecursiveVC – 30 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TMedio dataset_0.mtx 3 10 0 K Piccolo dataset_1.mtx 51 10 1 dataset_2.mtx 99 10 0,2 dataset_3.mtx 147 10 0,4 dataset_4.mtx 195 10 0 dataset_5.mtx 243 10 0 dataset_6.mtx 291 10 0 dataset_7.mtx 339 10 0 dataset_8.mtx 387 10 0 dataset_0.mtx 3 17 0 K Medio dataset_1.mtx 51 17 233,9 dataset_2.mtx 99 17 121,5 dataset_3.mtx 147 17 65,9 dataset_4.mtx 195 17 17,7 dataset_5.mtx 243 17 11,5 dataset_6.mtx 291 17 2,3 dataset_7.mtx 339 17 1,4 dataset_8.mtx 387 17 0,1 dataset_0.mtx 3 25 0 K Grande dataset_1.mtx 51 25 4924 dataset_2.mtx 99 25 35997,6 dataset_3.mtx 147 25 52247,6 dataset_4.mtx 195 25 29264,9 dataset_5.mtx 243 25 20108,9 dataset_6.mtx 291 25 17040,5 dataset_7.mtx 339 25 17474,6 dataset_8.mtx 387 25 7608 0 10000 20000 30000 40000 50000 60000 3 51 99 147 195 243 291 339 387 T Medio |E| RecursiveVC (|E| e K-grande)
  • 26. RecursiveVC – 35 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 60 7 2 K Piccolo dataset_1.mtx 119 7 0 dataset_2.mtx 179 7 0 dataset_3.mtx 238 7 0 dataset_4.mtx 298 7 0 dataset_5.mtx 357 7 0 dataset_6.mtx 417 7 0 dataset_7.mtx 476 7 0 dataset_8.mtx 536 7 0 dataset_0.mtx 60 18 572 K Medio dataset_1.mtx 119 18 287 dataset_2.mtx 179 18 129 dataset_3.mtx 238 18 47 dataset_4.mtx 298 18 15 dataset_5.mtx 357 18 0 dataset_6.mtx 417 18 0 dataset_7.mtx 476 18 0 dataset_8.mtx 536 18 0 dataset_0.mtx 60 28 68137 K Grande dataset_1.mtx 119 28 632165 dataset_2.mtx 179 28 566227 dataset_3.mtx 238 28 371194 dataset_4.mtx 298 28 148300 dataset_5.mtx 357 28 92618 dataset_6.mtx 417 28 78495 dataset_7.mtx 476 28 35361 dataset_8.mtx 536 28 19324 0 0.5 1 1.5 2 2.5 60 119 179 238 298 357 417 476 536 T |E| RecursiveVC(|E| e K-piccolo)
  • 27. RecursiveVC – 35 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 60 7 2 K Piccolo dataset_1.mtx 119 7 0 dataset_2.mtx 179 7 0 dataset_3.mtx 238 7 0 dataset_4.mtx 298 7 0 dataset_5.mtx 357 7 0 dataset_6.mtx 417 7 0 dataset_7.mtx 476 7 0 dataset_8.mtx 536 7 0 dataset_0.mtx 60 18 572 K Medio dataset_1.mtx 119 18 287 dataset_2.mtx 179 18 129 dataset_3.mtx 238 18 47 dataset_4.mtx 298 18 15 dataset_5.mtx 357 18 0 dataset_6.mtx 417 18 0 dataset_7.mtx 476 18 0 dataset_8.mtx 536 18 0 dataset_0.mtx 60 28 68137 K Grande dataset_1.mtx 119 28 632165 dataset_2.mtx 179 28 566227 dataset_3.mtx 238 28 371194 dataset_4.mtx 298 28 148300 dataset_5.mtx 357 28 92618 dataset_6.mtx 417 28 78495 dataset_7.mtx 476 28 35361 dataset_8.mtx 536 28 19324 0 100 200 300 400 500 600 700 60 119 179 238 298 357 417 476 536 T |E| RecursiveVC(|E| e K-medio)
  • 28. RecursiveVC – 35 Nodi Grafici2(Ordine K) NOME-FILE NUM-EDGE K TIME dataset_0.mtx 60 7 2 K Piccolo dataset_1.mtx 119 7 0 dataset_2.mtx 179 7 0 dataset_3.mtx 238 7 0 dataset_4.mtx 298 7 0 dataset_5.mtx 357 7 0 dataset_6.mtx 417 7 0 dataset_7.mtx 476 7 0 dataset_8.mtx 536 7 0 dataset_0.mtx 60 18 572 K Medio dataset_1.mtx 119 18 287 dataset_2.mtx 179 18 129 dataset_3.mtx 238 18 47 dataset_4.mtx 298 18 15 dataset_5.mtx 357 18 0 dataset_6.mtx 417 18 0 dataset_7.mtx 476 18 0 dataset_8.mtx 536 18 0 dataset_0.mtx 60 28 68137 K Grande dataset_1.mtx 119 28 632165 dataset_2.mtx 179 28 566227 dataset_3.mtx 238 28 371194 dataset_4.mtx 298 28 148300 dataset_5.mtx 357 28 92618 dataset_6.mtx 417 28 78495 dataset_7.mtx 476 28 35361 dataset_8.mtx 536 28 19324 0 100000 200000 300000 400000 500000 600000 700000 60 119 179 238 298 357 417 476 536 T |E| RecursiveVC(|E| e K-grande)
  • 29. Stima Crescita Tempi RecursiveVC RecursiveVC Numero Nodi O(Tempo) 25 1,4 s 30 52 s 35 632 s 40 8738 s 45 188083 s 50 40,5 giorni 55 694,4 giorni 0 500000 1000000 1500000 2000000 2500000 3000000 3500000 25 30 35 40 45 50 Tempo (s) |V| Andamento dei Tempi RecursiveVC  Basate su k-grande e densità medio-bassa (0.3/0.4)  25-30-35 misure basate su medie  40-45 misure effettuate su singola esecuzione  50-55 predizioni
  • 30. Conclusioni  BruteForce  K non ha influenza sui tempi  Esplode su una istanza da 30 nodi  Dataset_4.mtx : densità di 0,5 ( T ≃ 8 min. )  RecursiveVC  Esplode su instanze con K-grande e densità medio-bassa (≃ 0.3)  Generando opportune istanze  |V| = 40 -- |E| = 234 –- K = 32 TEMPO : 2,43 ore  |V| = 45 –- |E| = 297 –- K = 36 TEMPO : 52,24 ore  |V| = 50 -- |E| = 367 –- K = 40 TEMPO : ? (stima, Ω(40 giorni))
  • 31. Perche non usare Java?  Uso tipi primitivi al posto degli oggetti  Accessi diretti in memoria al posto di Getter/Setter  Evitato l’uso della creazione/gestione Object  Evitato il cambio contesto copiando lo stesso codice nella chiamata ricorsiva  Su una istanza da 40 nodi impiega 4,31 min anzicchè 2,43 ore .  Stesso linguaggio, JAVA .
  • 32. RecursiveVC3 Numero Nodi O(Tempo) 25 0 s 30 0 s 35 24,95 s 40 258,75 s 45 800 s 50 2000 s Perche non usare Java? Stima Crescita Tempi RecursiveVC3 -500 0 500 1000 1500 2000 2500 25 30 35 40 Tempo (s) |V| Andamento dei Tempi RecursiveVC3  Basate su k-grande e densità medio-bassa (0.3/0.4)  Basate su singola esecuzione, DynTestRunningVC3