# Repartition of recurrent processes

(I apologize in advance for bad formulation of my problem, please consider english is not my first language).

I have several processes and I want to "optimize" the schedule when to launch them.

A process is periodic, and let's assume the time it takes is not relevant.

For example, process $p_1$ starts every 3 minutes, process $p_2$ starts every 7 minutes and process $p_3$ starts every 18 minutes. Assume they last only a few seconds before stopping. So it is exactly what a computer scientist would call "cron".

The unit of time here is 1 minute.

Now, what I want is that these processes are distributed so that we don't have a moment where many processes starts and then long time interval with no processes at all. For example, if $p_1$ and $p_3$ both starts at time 0, then they will start again together every 18 minutes. It would be better to start process $p_1$ at time 0 and then $p_3$ at time 1, so that they are never launched together.

So the idea is, given a list of process with periodicity, to plan a schedule, so that there is as much time between each process as possible and as few as possible moments when two processes starts together.

Are there some well-known algorithms about such problems?

The real-life application of this problem is: ~ 200 processes. Some of them are launched every 5 or ~10 or ~30 minutes and last very short (few seconds), some (~20 - 25) are launched every 2 hours and last a few minutes. So the idea is also that the big processes are not launched at the same time.

Since this is a computer-related question, I intend to ask it also on computer forums, but I thought this is a "nice" mathematical problem, so I asked it here first.

-