Improved particle swarm optimization for multi-compartment vehicle routing problem