# How can we allocate when we have 150 open slots every day (5 days a week) for those 200 arrivals every day

My question is to solve a very basic problem related to the allocation of slots. Say there are 20 teams with 10 persons in each team.

I have 150 open slots every day (5 days a week) for those 20 teams but I cannot accommodate 200 arrivals every day.

1. But, I need to accommodate everyone in the team in the open slot at least for 3 days and a maximum of 5 days.
2. Accommodation should not be biased by allocating more people from one single team (say 10 people from team 1, 2 people from team 2). But it should be balanced say 10 people from team 1, 8 people from team 2, 7 people from team 3. But should not be less than 6.

Any mathematical or probabilistic or stochastic model is preferred. Even if the simple solution to this problem is also much appreciated.

• Please indicate whether the three days for an individual must be consecutive. Nov 29, 2021 at 19:40
• Not necessarily be consecutive but at least 3 days in a week Nov 29, 2021 at 20:12
• Are you trying to minimize the number of days? Nov 29, 2021 at 20:15
• @RobPratt, No I am not trying to minimize the number of days. Say I will allocate the balance of 50 people every day at different location slot( venue 2). Venue 1 will be with 150 slot Nov 29, 2021 at 20:20
• @Ian MacDonald, Not necessarily be consecutive but at least 3 days in a week. Nov 29, 2021 at 20:20

If I understood you correctly, this general method will guarantee an optimal result regardless of the number of teams, participants, or available slots, as long as all the teams are of the same size:

1. Name the teams A, B, C ...
2. Number each team member with 1, 2, 3 ..
3. Make a list of every participant, starting with A1, B1, C1 .. , A2, B2, C2 .. and so on.
4. Whenever you need to fill a slot, allocate that slot to the first participant on the list, and move that person to the end of the list

With this method,

• On any given day, the team with most slots has (at most) 1 slot more than the team with the fewest slots.
• Over time, the difference in the number of slots given to the teams will tend towards equality
• The person that has appeared the most often will have (at most) one appearance more than the person with fewest appearances
• Over time, the number of times each person has been awarded a slot will tend toward equality
• Because of the above points, the worst case scenario for a person tends towards the best case scenario
• Because of the point above, everyone gets to participate as much as possible, given the available resources
• All of this holds even if the number of available slots changes from day to day

This approach is called round-robin scheduling.

You can use up all 150 slots, with either 7 or 8 people per team per day, as follows:

Day 1:
Team 1 {1,2,5,6,7,8,9,10}
Team 2 {1,2,3,4,5,6,8,10}
Team 3 {1,2,4,6,7,9,10}
Team 4 {1,2,3,4,6,8,9}
Team 5 {1,2,3,4,5,7,8,9}
Team 6 {2,3,4,5,6,8,9,10}
Team 7 {1,2,3,5,6,7,8,9}
Team 8 {1,3,4,6,7,8,10}
Team 9 {1,3,4,5,6,7,8,9}
Team 10 {1,3,4,5,7,8,9}
Team 11 {1,3,4,5,6,7,8,10}
Team 12 {3,4,5,6,7,8,9,10}
Team 13 {1,2,4,6,7,9,10}
Team 14 {2,3,5,6,7,8,9,10}
Team 15 {1,2,3,6,7,9,10}
Team 16 {1,4,5,7,8,9,10}
Team 17 {1,2,3,5,6,7,9,10}
Team 18 {3,4,5,6,7,8,10}
Team 19 {2,3,4,5,7,8,10}
Team 20 {1,2,5,7,8,9,10}

Day 2:
Team 1 {1,3,5,6,7,8,9,10}
Team 2 {1,3,4,5,7,9,10}
Team 3 {1,3,4,7,8,9,10}
Team 4 {3,4,5,6,7,9,10}
Team 5 {3,4,5,6,7,8,9}
Team 6 {1,2,3,4,5,6,8,10}
Team 7 {1,2,3,4,5,7,8,10}
Team 8 {1,3,4,5,8,9,10}
Team 9 {1,2,4,5,6,9,10}
Team 10 {1,4,5,6,7,8,9,10}
Team 11 {2,3,5,6,8,9,10}
Team 12 {1,2,3,4,6,7,8,9}
Team 13 {1,2,4,5,6,7,10}
Team 14 {1,3,4,5,6,7,8,9}
Team 15 {1,2,3,4,5,6,7,8}
Team 16 {1,2,3,4,7,8,9,10}
Team 17 {1,2,4,5,6,8,9,10}
Team 18 {1,2,3,4,5,8,9}
Team 19 {1,2,3,4,6,7,9}
Team 20 {1,2,3,4,6,7,8,10}

Day 3:
Team 1 {1,2,3,4,6,7,9,10}
Team 2 {1,3,5,6,7,8,10}
Team 3 {1,3,4,5,7,8,9}
Team 4 {1,2,3,4,5,6,9,10}
Team 5 {1,2,4,5,6,9,10}
Team 6 {1,2,3,5,6,7,9,10}
Team 7 {1,2,3,4,5,6,8}
Team 8 {1,2,4,5,7,8,9}
Team 9 {2,3,5,6,7,8,10}
Team 10 {1,2,4,5,6,8,10}
Team 11 {1,3,4,5,6,7,8,10}
Team 12 {1,2,3,5,7,8,9,10}
Team 13 {1,2,3,4,5,6,8,9}
Team 14 {1,2,3,4,5,6,7,10}
Team 15 {1,2,3,4,6,8,10}
Team 16 {1,3,4,6,7,8,9,10}
Team 17 {1,2,4,5,7,8,10}
Team 18 {1,4,5,6,7,8,9,10}
Team 19 {1,3,5,6,7,8,10}
Team 20 {1,3,4,5,6,8,9,10}

Day 4:
Team 1 {1,2,3,4,5,6,9,10}
Team 2 {2,3,4,6,7,8,9}
Team 3 {1,2,5,6,7,8,10}
Team 4 {1,4,5,6,7,8,9,10}
Team 5 {1,3,4,5,6,7,9,10}
Team 6 {1,2,3,7,8,9,10}
Team 7 {1,2,5,6,7,8,9,10}
Team 8 {2,5,6,7,8,9,10}
Team 9 {1,3,4,5,7,8,9,10}
Team 10 {1,2,3,4,7,9,10}
Team 11 {1,2,4,7,8,9,10}
Team 12 {1,2,3,4,6,8,9,10}
Team 13 {3,4,6,7,8,9,10}
Team 14 {1,2,3,4,5,7,8,10}
Team 15 {1,2,4,5,7,8,9,10}
Team 16 {1,2,3,4,5,6,9}
Team 17 {1,3,4,5,6,7,10}
Team 18 {2,3,4,5,6,7,8}
Team 19 {2,4,5,6,7,8,9,10}
Team 20 {1,2,4,5,6,7,9,10}

Day 5:
Team 1 {1,2,3,4,5,7,8,10}
Team 2 {1,2,3,5,6,7,8,9}
Team 3 {2,3,4,5,6,7,8,10}
Team 4 {2,3,4,7,8,9,10}
Team 5 {2,3,5,6,8,9,10}
Team 6 {1,3,4,5,6,7,9,10}
Team 7 {1,3,4,5,6,9,10}
Team 8 {1,2,3,4,5,6,7,8}
Team 9 {1,2,4,5,6,7,10}
Team 10 {1,2,3,5,6,8,9}
Team 11 {1,2,5,6,7,8,9,10}
Team 12 {1,2,5,6,7,8,9,10}
Team 13 {1,2,3,5,6,7,8}
Team 14 {2,3,4,5,6,8,9,10}
Team 15 {1,2,5,6,7,8,9,10}
Team 16 {1,2,5,6,8,9,10}
Team 17 {1,2,3,5,7,8,9,10}
Team 18 {1,2,3,5,7,9,10}
Team 19 {1,2,3,5,7,9,10}
Team 20 {1,2,3,5,6,8,9}


I obtained the solution via integer linear programming, and $$8-7=1$$ is the minimum range of team member counts per day.

• I think it may not be satisfying my first condition here. I need to accommodate everyone in the team in the slot for at least 3 days and a maximum of 5 days. For example, if you see team 20 in the output, person 8 and 9 are not allocated in any of the days. Nov 29, 2021 at 20:55
• OK, so your second condition applies for each day separately? Nov 29, 2021 at 20:58
• I updated my answer to satisfy your clarification of your first condition and my new interpretation of your second condition. Nov 29, 2021 at 21:10