Optimized-MDVRP
Optimized-MDVRP copied to clipboard
What should I do if after calling `extract_random_route`, a Depot gets empty?
The utils.functional.extract_random_route method looks for a random route then remove it and return the removed random route.
Now if a Depot has only one route, after calling this method, the route will be removed and the Depot will no longer have any Customers in it to construct a route, actually, the Depot will be an empty object.
What is the instruction to deal with this situation?
Possible behaviours:
- If we remove
Depotitself, it means we are not using one of the providedDepots in the dataset or problem itself which means we will use less routes (less vehicles). It seems good but does not mean efficient. Note that creating a newDepotwould be a new challenge for assigning new routes to a non-existanceDepot. -
Having a empty
Depotwon't cost us anything in term of number of routes (vehicles) or the maximum capacity restriction. By the way, adding new routes to theDepotwould be much easier so I think this option is much better to be considered. [PREFERED]
It seems no need to do anything, because insert method will update it and even in the process of cross_over, we may introduce similar situation.