# Online Social Space Identification. A Computational Tool for Optimizing Social Recommendations
## 6 Numerical Experiments
### Distributed Learning  
In this case, fitness promoted the identification of large networks by weighting the chromosomes with the estimation of the number of feasible pairs (Case 2 fitness) observed in the corresponding chromosome representation. We coded the procedures with the \"Multiprocessing\" Python package, working on local concurrency with four cores (i.e., the cascade model used four starting sites). The R and Python interfaces were managed by the rpy2 ([[https://rpy2.readthedocs.io/en/version_2.8.x](https://rpy2.readthedocs.io/en/version_2.8.x)]([https://rpy2.readthedocs.io/en/version_2.8.x](https://rpy2.readthedocs.io/en/version_2.8.x))) utility. Experiments were executed on Apple OSX 10.12.6, system type MacBook Pro Retina, processor Intel(R), Core(TM) i5-6360U 2.00 GHz, 3.100 GHz, 2 core(s), 4 logical processors; installed physical memory (RAM) 8.00 GB. Results are given in Tables 2 and 3. In particular, we compared the results with \"centralized\" (not distributed) executions. The following attributes were used. \begin{table}
\begin{tabular}{l c c c c c c c c c} \hline \hline
**Models** & **AvInD** & **AvOutD** & **OutN** & **T1** & **T2** & **HTS** & **HVS** & **TI** & **FeasA** \\ \hline ER(50,0.15) & 3.33 & 2 & 14 & 169 & 3.31 & 0.51 & 0.6 & 1 & 0.123 \\ ER(100,0.15) & 3 & 2 & 26 & 401 & 6.53 & 0.62 & 0.757 & 1 & 0.283 \\ ER(200,0.15) & 3 & 1 & 15 & 233 & 2.89 & 0.66 & 0.755 & 0.3 & 0.12 \\ ER(300,0.15) & 3 & 2 & 249 & 3510 & 5.40 & 0.67 & 0.989 & 1 & 0.359 \\ \hline ER(50,0.3) & 3 & 2 & 39.7 & 684 & 6.87 & 0.65 & 0.93 & 1 & 0.42 \\ ER(100,0.3) & 2 & 2 & 42.7 & 1553 & 7.2 & 0.67 & 0.92 & 1 & 0.30 \\ ER(150,0.3) & 2 & 2 & 147 & 1750 & 4.17 & 0.67 & 0.95 & 1 & 0.32 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Performances: Models (Erdos–Renyi); average input diameter (AvInD); average diameter (AvOutD); output nodes (OutN); user (T1) and system Time (T2) in seconds; average entropy of \(f_{Y}\) (HTS); average entropy of \(f_{S}\) (HVS); target included, average number (TI); Avnumber of feasible vertices (%) w.r.t. the number of vertices in the final solution (FeasA). * Input/Output diameters: the input graph diameter and output graph diameter proposed by the best chromosome solutions. * Output vertices: the number of final vertices obtained in the chromosome solution. * Fitness value: as described in Section 4. * Ratio between the number of input vertices and the number of vertices within the two-club represented by the chromosome solution. * Average CPU user time: for a single processing unit, i.e., standard GA evolution, this quantity corresponded to the (GA) execution time; when applying distributed learning, the whole execution time was averaged over the number of (framework) levels. * Early stopping: the number of consecutive generations without improvement of the fitness value; the GA execution was stopped after the \"early stopping\". * Max number of generations: the maximum number of iterations before the GA search was halted. * Final generation number: the iteration number associated with the final solution. Notice that, in our case (i.e., distributed evolution), this number corresponded to the iterations of the lowest site. The following observations can be given. * All models, except \(ER(500,0.1)\), returned correct two-clubs. This was an interesting result when large input graphs (e.g., more than 1000 vertices in our table) were considered.