in src/genetic_algorithm.py [0:0]
def displacement_mutation(candidate):
num_stops = len(candidate.path)
stop_to_move = random.randint(0, num_stops - 1)
insert_at = random.randint(0, num_stops - 1)
# make sure it's moved to a new index within the path, so it's really different
while insert_at == stop_to_move:
insert_at = random.randint(0, num_stops - 1)
stop_index = candidate.path[stop_to_move]
del candidate.path[stop_to_move]
candidate.path.insert(insert_at, stop_index)