Tried adding precomputed distances to speed up 2-opt but it actually just makes it slower. Is there a space locality problem? Since we need distances from many random places in the graph the relevant part of the matrix might have to be fetched from memory frequently