I have a system with discrete time, that sends periodic signals with the following periods: [10, 20, 30, 40, 50, 100, 200, 500, 1000, 5000]. The number of signals belonging to each period is as follows [44, 10, 13, 22, 13, 21, 42, 3, 9, 1]
For example, 44 signals have the period 10 and are sent in the time cycles 0, 10, 20 and so on.
Problem description:
I want to give all signals having the same period (called as "signal class") a certain offset (ranging anywhere from 0 to period/2), so that at any given time the number of signals sent together is the lowest (compared to other offsets). Note that all signals having the same period will also have the same offset.
My original approach:
I used Python and tried a brute force approach to simulate each scenario and calculate the minimum number of parallel transmissions in each case. However, if you consider all possible offsets of all classes, there are 585937500000000000 different combinations to calculate. And that is not feasible. Even with a working brute force approach, more collisions can occur in arbitrary future, and the final result is not mathematically proven.
Can someone please help me to find a feasible approach to solve the problem? A solution in the form of pseudo-code or Python is also very welcome.