I have to find a way to create a schedule for a fleet of service vehicles which serve a few thousands customers over a week. If I had to serve each point once a week, the solution was easy (by multiplying the number of vehicles in the number of days in a week), but my problem is that some customers (let's say 15%), have to be served twice a week. An extra complication is that the twice a week must not be consecutive (for example- Monday + Thursday or Tuesday + Friday).
As far as I remember, this kind of things were available in the Arc Logistics which is no longer exist.
You are right in that the VRP Solver does not currently directly do periodic routing as you describe it of specifying twice a week. There are two options for this.
1. You can solve this problem on a daily bases where you have all of the orders available every day and then change the revenue values to match your needs for that day. So on day one you could use a revenue of 50,000 for the customers that need to be visited twice a week and 30,000 for customers only needing to be visited once a week. After the day's routes are created. The revenue is adjusted to reflect which customers were visited so if a once a week customer was visited the revenue goes to zero and will stay there for the rest of the week. A twice a week customer would go to zero for the next day since they can't be consecutive and then up to 40,000 the following day. This method would take post and pre processing of the orders daily but that could be automated. The revenues might also need to be tweaked to give values that are big enough to make a difference in the model based on other costs. This method will tend to favor the twice a week customers at the beginning of the week because of the higher revenue value.
2. The other option is to model the whole week at once and use specialties to indicate what days the customers can be visited. The customers that are twice a week customers would also have to have two orders, one for each day they are to be visited. One of them would have a specialty of say Mon/Tue and the other a specialty of Thr/Fri. The customers only needing to be visited once a week would not be given a specialty since they can be visited any day of the week. The routes are then duplicated for each day of the week and the week day included in the route name for easy recognition. For routes the specialties indicate which orders they can accommodate so both the Monday routes and the Tuesday Routes would have the specialty Mon/Tue. This method doesn't give the complete flexibility of the twice a week but just not consecutive days requirement but does allow for a lot of flexibility in the solver still and allows for the whole week to be solved at once. The break up of days for the twice a week customers could be specified differently then the example above or changed up for just some of the orders.
Hope this helps and let me know if you have more questions.
Thank you very much for responding.
I must admit that the second option is better understood, and looks much simple to apply as well.
Unfortunately, the whole project got into a small delay.
Anyhow, I promise to update you as soon as I will get the chance to work on it.