Some optimisations to 2opt