Ensure routes generate as solution are a proper loop

Hi there,

Just wondering if anyone has any tips on ensuring that the routes will be a logical loop. For example, my solution currently will return routes that will head north, then south, and then north again. The stops will be on either side of the city.

Would it be best to implement a hard or soft constraint? Each stop can have a time window or can be delivered anytime of day, depending on the job. So from my solutions, I am looking into whether its the time window causing the order of stops to be one side of the city then the next on the other side.

In a way, I want it to be like the greedy algorithm, but I still want it to take into account time windows and return back to depot at the end of the day (all trucks do this now).

Thanks!