Hi,
I've got a dataset of respondents in the format of:
Respondent 1 - Choice 1 - Choice 2 - Choice 3 etc.
Respondent 2 - Choice 1 - Choice 2 - Choice 3 etc.
[for 100s of respondents]
I am trying to allocate choices so that each respondent gets as many of their choices as possible
The issue is I have several constraints I need to address:
Has anyone tackled a problem like this before and has any advice where to start? Best I can think of is picking a schedule, then allocating respondents (e.g. in time-slot 1 give them one of their events they chose, then in time-slot 2 give them another one of their events they chose). However, this has a couple of issues: (1) does not optimize schedule, (2) depending on the order I write events within a time-slot the ones towards the end have virtually no attendees (since I'm doing a "if respondent has chosen first event listed in time-slot and it does not breach constraints, allocate here, if not move on to second event listed in time-slot and check if they chose this..."
Thanks!
I've got a dataset of respondents in the format of:
Respondent 1 - Choice 1 - Choice 2 - Choice 3 etc.
Respondent 2 - Choice 1 - Choice 2 - Choice 3 etc.
[for 100s of respondents]
I am trying to allocate choices so that each respondent gets as many of their choices as possible
The issue is I have several constraints I need to address:
- Choices are events to attend. Some events will run concurrently so some choice sets are incompatible
- However, I can decide on schedule, so can try and schedule to minimize the # of sets that are incompatible
- There is a limit to how many people can attend one event at once
- Some events can run twice. Where this is the case, to the extent possible I want broadly similar numbers at each run of the event
Has anyone tackled a problem like this before and has any advice where to start? Best I can think of is picking a schedule, then allocating respondents (e.g. in time-slot 1 give them one of their events they chose, then in time-slot 2 give them another one of their events they chose). However, this has a couple of issues: (1) does not optimize schedule, (2) depending on the order I write events within a time-slot the ones towards the end have virtually no attendees (since I'm doing a "if respondent has chosen first event listed in time-slot and it does not breach constraints, allocate here, if not move on to second event listed in time-slot and check if they chose this..."
Thanks!