2-opt algorithm