Scheduling problem



A real world problem my wife gave me.

There are four groups, R Y O G. Each is assigned to one of six workstations
(1-6) in each of two time slots per day. A one week schedule is needed,
where there are five days in a week. Therefore, each group has 10 slots to
fill in the schedule.

The conditions are as follows:

1. No two groups can be at the same workstation at the same time.
2. No group can be at the same workstation in both slots in the same day.
3. No group can be at workstations 1 and 3 in the same day.
4. Each group must have at least two slots per week at station 2.
5. Each group must have at least two slots per week at station 5.
6. Each group must have exactly one slot per week at station 4.
7. Group R must have at least one slot per day at either station 1 or
station 3.
8. Groups Y O G must have at least two slots per week at station 1 or
station 3.
9. Station 3 must be occupied for exactly 3 slots per week.
10. No group can be at Station 6 more than once in a week.

There will therefore be 10 slots used by stations 1,2,5, three slots used by
stations 3,6, and four slots used by station 4. What I've done is use
randperm and reshape to generate a 10x4 matrix containing exactly those
numbers of 1,2,3,4,5,6 (one row for each of the 10 time slots, and one
column for each group). I then feed that into a function which checks it
against each of the rules above and signals if it is valid or not. Valid
schedules are written to a file.

My problem is that I've run millions of cases, and yet to find one that
works this way. Is the probability of a successful case when constructed
like this really that small? If so, can someone suggest a better way?

BTW, I can prove that there are a number of cases which will actually work:
R=[1 2 1 5 1 5 1 2 1 4];
G=[2 1 3 4 5 2 6 1 5 1];
Y=[4 5 2 1 2 6 2 5 3 2];
O=[5 4 5 2 6 1 5 3 2 5];

This is one valid case, I think. I can make a lot more valid cases by
switching the GYO vectors (R is different, since it needs more 1s [or 3s but
I used 1s]), or by switching the entries for any two days for all groups
(e.g. columns 1&2, with columns 3&4), or by inverting the columns for any
given day, for all groups (e.g., switch columns 1 with 2). I found this one
case by playing around by hand.

I know this test cases passes my check function, so I think that function is
working properly. But the random approach has not yet found any successful
cases.

Any ideas?

Thanks,

-Paul


.



Relevant Pages

  • Re: Application Fonts on SBS Server rather than workstations
    ... Just trying to get ideas to make these design workstations be instant rather ... >> Is it possible to have these workstation installed fonts migrated to the ... > access is local to each station, at local disk I/O speeds. ...
    (microsoft.public.windows.server.sbs)
  • RE: Slow file copy from XP station
    ... The copy speed from the server to the stations ... > I was trying about 4 types of hardware workstations, ... > HP, Old ones, different type of net cards, connect the station directly to ... > All of these none help to solve the strange problem. ...
    (microsoft.public.windows.server.networking)
  • Re: seeing other xp machines on network
    ... an SBS2008 system moving the 10 workstations to a server based network ... from a peer to peer network. ... accounting department requires two XP SP3 workstations to connect to ... now the two stations cannot "see" the main station. ...
    (microsoft.public.windowsxp.network_web)
  • seeing other xp machines on network
    ... a peer to peer network. ... department requires two XP SP3 workstations to connect to another XP SP3 ... stations cannot "see" the main station. ...
    (microsoft.public.windowsxp.network_web)
  • Re: Astronauts should speak up
    ... Isnt this what the CAIB pointed too as the underlying accident cause? ... The forthcoming launch has nothing to do with schedule pressure. ... shuttle is as safe as it can be made at the moment. ... even more people stuck at station only making things worse:( ...
    (sci.space.shuttle)