Which mathematical programming method is good for solving the described problem?

84 Views Asked by At

I need to solve the following problem.

Let's say that there are 3 clients with different time windows. For simplicity let's say that travel distance is always 10 minutes and service time is 30 minutes. It is necessary to detect the best departure time from a depot such that the arrival time to clients fits time window constraints and waiting time is minimized.

For example:

Client 1:
Time window 1: 7:00 - 9:00
Time window 2: 10:00 - 12:00

Client 2:
Time window 1: 7:00 - 8:00
Time window 2: 9:00 - 10:00

Client 3:
Time window 1: 9:00 - 10:00
Time window 2: 11:00 - 14:00
Time window 3: 15:00 - 16:00

Solution 1: If a vehicle departs from a depot at 6:50, then it will arrive to Client 1 at 7:00. Then it will come to Client 2 at 7:40. And finally it will come to Client 3 at around 8:20 and it will need to wait 40 minutes till 9:00 (first time window). So, the waiting time of this solution is 40 minutes, but all time windows constraints are fitted (solution is feasible).

Solution 2: If a vehicle departs from a depot at 9:50, then it will arrive to Client 1 at around 10:00. Then it will come to Client 2 at around 10:40. But Client 2 is closed after 10:00. So, this solution is infeasible.

Solution 3: The vehicle departs form a depot at 8:30...

Solution n: ...

Could someone give me an idea how to formulate the mathematical programming model and which method would be good to solve this model?

2

There are 2 best solutions below

4
On BEST ANSWER

I assume the order of visiting clients is fixed. Then you can write this as a mixed integer linear programming problem. Let $x_i$ be the time of starting service of client $i$. To model the windows you need boolean variables $b_{ij}$, where $b_{ij} = 1$ if client $i$ is serviced in its $j$'th window (which is, let's say, $s_{ij}$ to $t_{ij}$). Thus we get constraints $ \sum_j b_{ij} = 1$, $x_i \ge \sum_j s_{ij} b_{ij}$ and $x_i \le \sum_j t_{ij} b_{ij}$, as well as $x_{i+1} \ge x_{i} + 40$.

0
On

I guess you should search the Internet for "vehicle routing with time windows". It is a fairly common application of integer linear programming.