## 5 Experimental Results
### Graphical Representation of the Results  
In this section, we present two different sets of figures with three different bar charts for each set. Each figure concerns a different subset of the total experiments, sorted according to the optimal value. In the first set (Figures 1-3), each benchmark problem is represented with four different bars, one for each method. Specifically, one represents the NN algorithm, one the optimal value, and another two depict GVNS (best and first improvement). It can be easily seen that our implementation achieves results very close to optimal, unlike the NN algorithm, which does not provide efficient solutions. A notable example of Figure 1 is _ch130_. We can see that GVNS (using either FI or BI) is much closer to the optimal value, compared to NN. \begin{table}
\begin{tabular}{c c c c} \hline
**Benchmark** & **OV** & **GVNS FI** & **GVNS BI** \\ \hline ho14473 & 177,105 & 484,812 & 484,812 \\ \hline ei8246 & 206,171 & 258,889 & 258,889 \\ \hline ja9847 & 491,924 & 612,304 & 612,304 \\ \hline kz9976 & 1,061,882 & 1,358,247 & 1,358,247 \\ \hline lu980 & 11,340 & 23,688 & 12,388 \\ \hline mo14185 & 427,377 & 529,729 & 529,729 \\ \hline nu3496 & 96,132 & 221,920 & 108,639 \\ \hline mu1979 & 86,891 & 120,908 & 95,413 \\ \hline qa194 & 9352 & 9727 & 9717 \\ \hline rw1621 & 26,051 & 58,148 & 28,866 \\ \hline tz6117 & 394,718 & 501,184 & 483,082 \\ \hline uy734 & 79,114 & 86,022 & 86,201 \\ \hline wi29 & 27,603 & 27,603 & 27,603 \\ \hline ym7663 & 238,314 & 308,747 & 308,747 \\ \hline zi929 & 95,345 & 112,775 & 103,557 \\ \hline ca4663 & 1,290,319 & 1,646,889 & 1,463,565 \\ \hline it16862 & 557,315 & 706,069 & 706,069 \\ \hline \end{tabular}
\end{table} 
Table 6: _Cont._  
Figure 1: NN vs. GVNS vs. OV (1/3). It is clear from Figure 2 that, in _IroC100_, _KroA100_, _KroD100_, _KroE100_, _KroB100_, _KroB150_, _KroA150_, _KroA200_, and _KroB200_, the gap between the NN method and both variants of the GVNS is too high. We can also observe some cases in Figure 2, where the GVNS achieves the optimal value. These are _berlin52_, _hk48_, and _att48_. We observe that, in most benchmarks, in Figure 3, GVNS using FI or using BI comes close to the optimal value, while the NN bar is further away from the optimal value. Examples include _lin318_, _pr124_, _gr137 pr76_, _bier127_. In the next set of figures (i.e., Figures 4-6), each benchmark is represented with five different bars; one for the improved NN algorithm, one for the repeated NN algorithm, one for the optimal value, and another two for our implementation (best and first improvement). A close examination  
Figure 3: NN vs. GVNS vs. OV (3/3). Figure 2: NN vs. GVNS vs. OV (2/3). reveals that GVNS is once again very close to optimal values, whereas the improved and repeated NN algorithms fail to provide equally good solutions. Looking at Figure 4, we infer that, when it comes to medium benchmark problems, GVNS significantly approximates the optimal value, unlike both variants of NN, which are far from the optimal. We can particularly see this with _kroB100, lin105, kroB150_ and kroB200. In general, Figures 4-6 show that the improved NN appears to be a better method than repeated NN. However, in all cases, both GVNS variants outperform the two NN variants. Figure 4: NN variants vs. GVNS vs. OV (1/3). Figure 5: NN variants vs. GVNS vs. OV (2/3). Figure 6 demonstrates once again the superiority of GVNS. Let us consider benchmark _pr76_, where GVNS touches the optimal point, while both the repeated and improved NN have a much lower performance. In addition, in Figures 4-6, we can see for a different set of benchmarks that again GVNS outperforms the NN variants, significantly closer to the optimal value in each case. To sum up, the graphical results allow us to conclude that GVNS with BI or FI produces results that are appreciably close to the OV in most benchmark tests, whereas the NN algorithm is far from being close (for every case). Previously, we provided the analytical results in tabular form.