Hi guys,
I have a question that has had me stumped for the past couple of weeks so I'm hoping one of you will be able to point me in the right dircetion.
I need to match people to activities, using the following information:
there are three activities (A,B,C)
there are 4 skill levels per activity ( 0 - 3 ), but these can be split into two groups: 0-2 and 3
there are 6 tools.
activities are assigned priorities, with 1 being most important.
For each activity the number of people with what skill level is known.
the skill table looks like this:
person activity tool1 tool2 tool3 tool4 tool5 tool6 mask
X A 0 2 3 1 2 2 A023122
NOW the tricky part is that, obviously, most people have multiple ratings on different tools but only one activity ( ie A012300 would mean a person with acitivity A and level 1 for tool 2 etc)
Now because of this there is a lot of overlap. I have created a mask for searching for specifc skill levels using for...loop loops but this would lead to 3888 iterations per activity (3888 possible masks)
The problem I have is that I count how many people are, say skill level 3 for tool 1 activity A for priority 1. If this number already exceeds the number required, I need the lower number as the people assigned. Now for the same skill and tool 2 and activity priority 2 i need to assign people to it as well.The is where the aforementioned overlap comes into play as I need Access to assign the number of people required by first looking at only 'tool 2' people and then those that have an overlap with tool 1 until the required number is reached. And also to tell me who will be doing what.
The aim of this whole excercise is to assign people in such a way that as many required skill levels are assigned as possible and, here comes another tricky bit, to tell me how many people are unassigned ( = available), and who they are.
I realize (now) that is is slightly beyond my current level of expertise so please point me in the right direction.
Thanks for your help!
Mark
I have a question that has had me stumped for the past couple of weeks so I'm hoping one of you will be able to point me in the right dircetion.
I need to match people to activities, using the following information:
there are three activities (A,B,C)
there are 4 skill levels per activity ( 0 - 3 ), but these can be split into two groups: 0-2 and 3
there are 6 tools.
activities are assigned priorities, with 1 being most important.
For each activity the number of people with what skill level is known.
the skill table looks like this:
person activity tool1 tool2 tool3 tool4 tool5 tool6 mask
X A 0 2 3 1 2 2 A023122
NOW the tricky part is that, obviously, most people have multiple ratings on different tools but only one activity ( ie A012300 would mean a person with acitivity A and level 1 for tool 2 etc)
Now because of this there is a lot of overlap. I have created a mask for searching for specifc skill levels using for...loop loops but this would lead to 3888 iterations per activity (3888 possible masks)
The problem I have is that I count how many people are, say skill level 3 for tool 1 activity A for priority 1. If this number already exceeds the number required, I need the lower number as the people assigned. Now for the same skill and tool 2 and activity priority 2 i need to assign people to it as well.The is where the aforementioned overlap comes into play as I need Access to assign the number of people required by first looking at only 'tool 2' people and then those that have an overlap with tool 1 until the required number is reached. And also to tell me who will be doing what.
The aim of this whole excercise is to assign people in such a way that as many required skill levels are assigned as possible and, here comes another tricky bit, to tell me how many people are unassigned ( = available), and who they are.
I realize (now) that is is slightly beyond my current level of expertise so please point me in the right direction.
Thanks for your help!
Mark