How do I optimize program allocation for employee training?

In summary, the conversation is about finding the most cost-effective way to allocate training programs to different employee classes based on the skills they need, taking into account the cost of each program, the number of days it will run, and the salary of each employee class. The suggested method is to calculate the dot product of the employee vector and the program vector to determine how many skills are covered by each program for a particular employee class. However, this method does not account for the possibility of one program having a high cost for a particular skill that is not accounted for in the model.
  • #1
operationsres
103
0
Hi. I really need help with a problem I've been given @ university regarding optimisation. I have little idea how to solve it.

We are given an employee class, say "Senior Manager", and the skills that need training, given as a vector:
0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1

or perhaps "Assistant Manager"
1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0

Then we are given numerous different programs that cover different skills, some that will obviously overlap with the ones we need to cover, and each program has a different cost.

e.g "Program 1", $500.
0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1

Then we're given
1) the number of days each program will run for
2) the salary of each employee class and the number of days in a work year (250).
i know 1 & 2 lead to the opportunity cost of undertaking a given program.

how the heck do I go about optimally allocating program to employee class?
 
Mathematics news on Phys.org
  • #2
operationsres said:
Hi. I really need help with a problem I've been given @ university regarding optimisation. I have little idea how to solve it.

We are given an employee class, say "Senior Manager", and the skills that need training, given as a vector:
0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1

or perhaps "Assistant Manager"
1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0

Then we are given numerous different programs that cover different skills, some that will obviously overlap with the ones we need to cover, and each program has a different cost.

e.g "Program 1", $500.
0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1

Then we're given
1) the number of days each program will run for
2) the salary of each employee class and the number of days in a work year (250).
i know 1 & 2 lead to the opportunity cost of undertaking a given program.

how the heck do I go about optimally allocating program to employee class?
No one has responded so far, so here are my thoughts, FWIW.

One way to measure how useful a program is for a particular class of employees is to calculate the dot product of the employee vector with the program vector. The larger the value of the dot product, the more the program aligns with the skills needed by the particular employee class.

For example, the assistant manager vector dotted with the program 1 vector gives
<1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0> "dot"
<0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1> = 2

This means that program 1 provides training in 2 skills needed by assistant managers.

The sr. manager vector dotted with the program 1 vector gives
<0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1>
<0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1> = 4,
meaning that the training in program 1 is applicable to 4 skills needed by sr. managers.

You can further quantify how beneficial the training is by calculating the time lost to training (in days) and the dollar amount of productivity (salary per day times number of days). You might apply this information as a tie-breaker if two different employee classes end up with identical dot products for the same training.
 
  • #3
Thanks a lot for the response. I had a similar idea in the last day, and have been running this in excel. I've come up with an equation for employee class --> program to find the cost:


[Cost(of program) + (Days of program/250 * Yearly Salary)]/DOT


This should give the cost per skill of a program as matched to an employee class. The Smallest cost/skill for employee class --> program will be the one I pick, then I have to run the iteration again for the same employee class to find the second program that covers the remainder of the skills.

Note: There's 250 working days in a year.
-------------------------------------------
This model looks so beautiful. But there's something we're not internalizing...

Let's say program 1 matches 10 skills with Senior Manager, and program 2 matches 11 skills with Senior Manager.
Let's consider the equation outputs a lower cost per skill for program 1. But, how do we know that the 11th skill doesn't have some huge cost in some other program --- that's not accounted for by the model?
 
Last edited:
  • #4
On your last question, can you be more specific?
 
  • #5
Yeah sure.

What I mean is, if we figure out that the lowest Cost Per Skill is with Program 1, but if we were to pick Program 1 over Program 2, Program 2 might have an extra skill that program 1 doesn't have that is SUPER expensive in any other program, but by picking the 'optimal' program 1, we have this huge cost burden by having to go with program 3 that has the super expensive extra skill that program 1 doesn't have.

This isn't accounted for in the model.
 
Last edited:
  • #6
Another way to say this:

P1 is optimal vs. P2, based on cost per skill assessment. P1 has skills A-D, P2 has skills A-E. P1 has a cost per skill of $1, P2 has a cost per skill of $1.01.
Senior Manager needs skills A-E. We determine that P1 is optimal, given this formula that we're using. However, skill E is only covered by P2 and P3, and P3 is extremely expensive, and purchasing P1 + P2 is stupid when we could've just purchased P2.

Thus, this model would've told us to pick P1, but picking P2 is a superior strategy.

We can manually sieve the database for the occurance of this problem, but that isn't very "scientific", which is what OR methodology demands.
 
Last edited:
  • #7
Another way of looking at it:

P1 is optimal vs. P2, based on cost per skill assessment. P1 has skills A,B,C,X - $1 per skill, P2 has skills A,B,C,Y. - $1.01 per skill.

However, P3 has skill Y at $5,000
P4 has skill X at $0.10.


We should've picked P2 in the first iteration, but the problem is our first iteration is BLIND to future iterations, and thus cannot make an optimal allocation!>!>!>!?>??
 
  • #8
Isn't all that taken care of in your formula? Cost(of program) + ...
 
  • #9
------------------------------------
HERE'S A FORMULATION THAT MAKES SENSE.

Let's say these are our thingys:
Senior Manager needs... : 1 1 1 1 1 0 1 1 1 1 1 0 1
Program 1(($1/dot-skill))..: 1 1 1 1 1 0 0 0 0 0 0 0 0
Program 2($1.50/dot-skill): 1 1 1 1 1 0 0 0 0 0 0 0 1
Program 3($999/dot-skill).: 0 0 0 0 0 0 0 0 0 0 0 0 1
Program 4($50/dotskill)...: 1 0 0 0 0 0 0 0 0 0 0 0 1


If we follow the model, we'd pick Program 1, THEN program 2 ASWELL, when we should just be picking Program 2!


How do we fix this dilemma ><
 
Last edited:
  • #10
I get the sense that you didn't understand what I said back in post #2 about dot products. What I wrote "dot" that meant the dot product of two vectors.

For example, I had
The sr. manager vector dotted with the program 1 vector gives
<0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1> [itex]\cdot[/itex] <0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1> = 4.

I'm assuming you knew what I meant by the dot product, but I'm not sure that you do.

In post #3 you have
[Cost(of program) + (Days of program/250 * Yearly Salary)]/DOT

What do you mean by DOT?

In post #9 you have
Program 3($999/dot-skill).: 0 0 0 0 0 0 0 0 0 0 0 0 1
What do you mean by dot-skill?
 
  • #11
Mark44 said:
I get the sense that you didn't understand what I said back in post #2 about dot products. What I wrote "dot" that meant the dot product of two vectors.

For example, I had
The sr. manager vector dotted with the program 1 vector gives
<0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1> [itex]\cdot[/itex] <0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1> = 4.

I'm assuming you knew what I meant by the dot product, but I'm not sure that you do.

In post #3 you have
[Cost(of program) + (Days of program/250 * Yearly Salary)]/DOT

What do you mean by DOT?

In post #9 you have
Program 3($999/dot-skill).: 0 0 0 0 0 0 0 0 0 0 0 0 1
What do you mean by dot-skill?

Yeah I did get what you meant :)

The reason why I said $$$/dot-skill is that I thought $$$/skill would be misleading, because that could've been interpreted as the cost per all skills the program offers, not just the skills that are matched up with what the Senior Manager needs (which I what I was intending to convey with /dot-skill).

Let's say that for the example I provided,
Senior Manager needs...: 1 1 1 1 1 0 1 1 1 1 1 0 1
{Program 1(($1/dot-skill))..: 1 1 1 1 1 0 0 0 0 0 0 0 0
{Program 2($1.50/dot-skill): 1 1 1 1 1 0 0 0 0 0 0 0 1
{Program 3($999/dot-skill).: 0 0 0 0 0 0 0 0 0 0 0 0 1
{Program 4($50/dotskill)...: 1 0 0 0 0 0 0 0 0 0 0 0 1
the rows 2-5 (i.e. Programs 1-4) are dot products of row 1.

So the dot-value that I'd be inputing into my equation for Program 4 would be "2", as long as no programs before it have been assigned that cover skill 1 or skill 13.

_______________________________________________


My use of "/" when saying "$50/dot-skill" or whatever is NOT a divided sign, it's simply saying $50 per dot-skill.



------------------------------------------------------

If we run our formula on the 4 programs provided, we get a suboptimal allocation, right?
 
Last edited:
  • #12
imiyakawa said:
Yeah I did get what you meant :)
I'm glad that one of us does!
imiyakawa said:
The reason why I said $$$/dot-skill is that I thought $$$/skill would be misleading, because that could've been interpreted as the cost per all skills the program offers, not just the skills that are matched up with what the Senior Manager needs (which I what I was intending to convey with /dot-skill).
$/skill conveys to me the amount of dollars per (one) skill, not for all skills. When someone writes km/hr they mean kilometers per each hour, not the number of kilometers for all the hours.
imiyakawa said:
Let's say that for the example I provided,

the rows 2-5 (i.e. Programs 1-4) are dot products of row 1.
Senior Manager needs...: 1 1 1 1 1 0 1 1 1 1 1 0 1
{Program 1(($1/dot-skill))..: 1 1 1 1 1 0 0 0 0 0 0 0 0
{Program 2($1.50/dot-skill): 1 1 1 1 1 0 0 0 0 0 0 0 1
{Program 3($999/dot-skill).: 0 0 0 0 0 0 0 0 0 0 0 0 1
{Program 4($50/dotskill)...: 1 0 0 0 0 0 0 0 0 0 0 0 1
The 2nd through 5th rows are NOT dot products. They are vectors!


So the dot-value that I'd be inputing into my equation for Program 4 would be "2", as long as no programs before it have been assigned that cover skill 1 or skill 13.

_______________________________________________


My use of "/" when saying "$50/dot-skill" or whatever is NOT a divided sign, it's simply saying $50 per dot-skill.
Please, no more "dot-skill." That's terrible! It adds complexity and reduces understandability!
imiyakawa said:
------------------------------------------------------

If we run our formula on the 4 programs provided, we get a suboptimal allocation, right?
Then you need to examine the formula you came up with. You can build the per-skill costs into the program vectors by using the cost, rather than just a 1. E.g., here is program 4 revised: Program 4($50/skill)...: 50 0 0 0 0 0 0 0 0 0 0 0 50
 
  • #13
Mark44 said:
Then you need to examine the formula you came up with. You can build the per-skill costs into the program vectors by using the cost, rather than just a 1. E.g., here is program 4 revised: Program 4($50/skill)...: 50 0 0 0 0 0 0 0 0 0 0 0 50

How would one output a solution though?
 
Last edited:
  • #14
Since you are doing this in Excel, you could have some logic that chooses the optimal plan and displays the decision results in some cell.
 
  • #15
Thankyou so much for your help Mark.

Mark44 said:
Since you are doing this in Excel, you could have some logic that chooses the optimal plan and displays the decision results in some cell.

Perhaps there's a way, but I can't fathom a way of incorporating future iterations into the current iteration without some kind of mass simulation.

Oh well, I guess I could try and formulate the problem in LINGO, somehow...

What do you think of this, for Senior Manager, where x1, x3, x8, x10, x12 are the skills he needs to be covered, his salary is $250,000, 250 working days. Of course, in the constraints we can ignore the extra skills that the senior manager doesn't need.

MINIMIZE z = x1+x3+x8+x10+x12;

s.t.

(500 - program cost) + (2 - number of days running)(250000 - salary)/(250) = x1 + x3 + x8
600 + (3)(250000)/(250) = x1 + x8
(800) + (4)(250000)/(250) = x10 + x12
(1000) + (2)(250000)/(250) = x1 + x3 + x12
.
.


I haven't got LINGO on this computer so I haven't had a chance to try it out xD

The left side of the constraints are the total cost of the program, and the right side are the skills it covers that matches with the senior managers skills.

Will this work?
 
Last edited:
  • #16
^^^
Nope, that model's totally wrong.
 
  • #17
Define Xij = 1 if employee class i is assigned to program j, 0 otherwise.
Let Ai be the cost of program i.
Let Bi be the salary of employee i.
Let Di be the length of program i.
Let Kij = 1 if employee i's jth skill must be trained.
Let Qij = 1 if program i trains the jth skill.

minimize [tex]\Sigma[/tex] [tex]\Sigma[/tex]Xij(Aj+DjBi/250)

subject to

XijQjk>= Kij for all i,k
Xij= 0 or 1
 
Last edited:
  • #18
- Use the dual simplex method to solve the following LP:
Max Z = -2X1 - X3
s.t. X1 + X2 – X3 >= 5
X1 - 2X2 + 4X3 >=8
X1, X2, X3 >=0
 

What is operations research?

Operations research is a field of study that uses mathematical and analytical methods to help make better decisions. It involves the use of techniques such as optimization, simulation, and statistical analysis to improve processes and solve complex problems.

What are the applications of operations research?

Operations research has a wide range of applications in various industries such as transportation, healthcare, finance, and manufacturing. It can be used to optimize supply chain management, improve production processes, and make more efficient use of resources.

How is operations research different from other fields of study?

Operations research is an interdisciplinary field that combines concepts from mathematics, engineering, and management to solve complex problems. It differs from other fields in that it focuses on finding optimal solutions rather than just acceptable ones.

What skills are required to work in operations research?

To work in operations research, one needs to have strong analytical and problem-solving skills. Knowledge of mathematics, statistics, and computer science is also important, as well as the ability to communicate complex ideas effectively.

What are the benefits of using operations research?

The use of operations research can lead to more efficient processes, cost savings, and improved decision making. It can also help identify potential risks and provide insights for strategic planning and resource allocation.

Similar threads

  • General Math
Replies
13
Views
1K
  • General Math
Replies
28
Views
2K
Replies
7
Views
1K
  • Precalculus Mathematics Homework Help
Replies
4
Views
572
Replies
6
Views
909
  • Programming and Computer Science
Replies
8
Views
1K
  • Programming and Computer Science
Replies
3
Views
831
Replies
1
Views
794
Replies
9
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
18
Views
2K
Back
Top