added depth first search 2 opt algorithm