I want to figure out what problem I'm dealing with so I can move in the right direction of research. I'm still at the very beginning of formulating the problem. What I've done so far is figure out just enough to understand how little I know about optimization problems. So for me it is also about the bascis.
The problem is probably a combination of several.
The minimization goal: I want to minimize the total time $t$, or the costs, for the process.
Details:
- There is one vehicle.
- The vehicle has limited capacity.
- The vehicle moves from point / node to another to complete a task. So I think that nodes are equivalent to tasks in this problem?
- There is a distance between nodes. This is part of the costs, since this means travel time.
- A task $T_n$ takes a certain amount of time $t_T$, e.g. $t_{T_n}=3\text{minutes}$.
- Material is consumed per task.
- The vehicle starts fully loaded and can recharge the material at any station.
- There are at least two stations.
Why I am not making progress in my research: The complexity comes from the fact that a task has to happen twice in one place. Let's call them two types of tasks, "prepare" and "finish".
- Two task types. Both have to be done per location.
- There must be a certain amount of time between "prepare" $T_{pn}$ and "finish" $T_{fn}$, e.g. 10 minutes.
- However, only a certain amount of time may elapse, not more, e.g. $t_{max} = 30\text{minutes}$.
I had the feeling that this is about time windows, but what I find difficult is the fact that the task must be done twice in the same place or same node, but then with the different time windows. That means there are dependencies and they specify the starting points. So the start of $T_{f1}$ will be determined by $T_{p1}$. At the same time I do not really care when a time window starts to begin with $T_{p1}$, work just has to be done. It is OK, when $T_{p5}$ is done before $T_{p1}$, this is flexible. And also, when $T_{p1..7}$ have been done, $T_{f1..7}$ can be done afterwards sequentially but do not have to. Tasks just need to be fulfilled within the time frame that is made up by $T_{pn}$.
So I think the only hard dependency is the point of time $tp$ after $T_{pn}$ has been done:
So, $T_{fn}^{tp}$ lies within $[ ( T_{pn}^{tp} + 10\text{minutes} ) , ( T_{pn}^{tp} + 30\text{minutes} ) ]$
ps. Sorry, but I am not very sure about how to express all of this in the correct mathematical way w.r.t. optimization problems, this is something I would like to catch on in the near future, as soon as I know in which direction I should head now.
So by what I know so far this is some kind of vehicle routing problem VRP with time windows TW. But TW is not very strict, so is this more about scheduling?
And when I would start to implement a solution, what tools could I use for that?