/**
*
*/
package vrp2013.util;
import java.util.ListIterator;
import vroom.common.modeling.dataModel.IRoute;
import vroom.common.modeling.dataModel.IVRPInstance;
import vroom.common.modeling.dataModel.RouteBase;
import vroom.common.modeling.dataModel.Solution;
/**
* <code>VRPSolution</code> is an extension of {@link Solution} using {@link RouteBase} as {@link IRoute} implementation
* used to simplify code
* <p>
* Creation date: 30/04/2013 - 5:08:45 PM
*
* @author Victor Pillac, <a href="http://www.nicta.com.au">National ICT Australia</a>, <a
* href="http://www.victorpillac.com">www.victorpillac.com</a>
* @version 1.0
*/
public class VRPSolution extends Solution<RouteBase> {
public VRPSolution(IVRPInstance parentInstance) {
super(parentInstance);
}
/**
* Remove empty routes from this solution
*/
public void removeEmptyRoutes() {
// Remove empty routes
ListIterator<RouteBase> solIt = iterator();
while (solIt.hasNext())
if (solIt.next().length() < 3)
solIt.remove();
}
@Override
public VRPSolution clone() {
VRPSolution clone = new VRPSolution(getParentInstance());
for (RouteBase route : this) {
clone.addRoute(route.clone());
}
return clone;
}
}