Most of our simulation models run for a year or two in simulated time. When operators are assigned in the model, their schedules do not change throughout the duration of the simulation. We would like the ability to assess the affect of adding new operators that start out not fully productive, but become more productive over time. We also would like to assess the affect of current operators being less productive as they train new operators.
For example, Operator 2 would start out in January at 25% productive, then in April they would become 50% productive, in July they become 75% productive, and finally by October they are 100% productive. Likewise, Operator 1 will be training Operator 2 and is therefore 75% productive until Operator 2 is fully proficient. Our team has devised two potential options for implementing this, but we are uncertain of the code necessary to accomplish either one:
- Create time tables to represent each level of productivity (25%, 50%, 75% and 100% of full time). Then, have code running during the simulation that periodically checks the clock and swaps out the tree entry for the operator's time table.
- Assign a productivity label to operators, with a number such as 0.25, 0.5, 0.75 or 1.0. Then divide each processor setup and process time that uses an operator by that label value. That way the process times would scale as a function of operator proficiency. This would also involve adding a fail-safe so that if no label were present on the operator, it would divide by 1.0. There would also be code required to check the clock and update the operator's proficiency label value at periodic intervals.
We are thinking that option 1 may not be as effective as option 2. We are also open to other suggestions. More than anything, we would need to know what code can be used to check the clock (without bogging down the model too much) and change the operator's label value or time table. Thanks in advance for any help you can provide.