Business organizations with a large number of employees may engage in workforce resource or allocation planning, such as to ensure adequate staffing and to increase the efficiency of workforce allocation among various projects undertaken by the organization. One approach to workforce allocation planning involves a manual process in which a user or manager makes their own determinations as to which of their resources or employees are best suited to perform a particular task or demand. Employees are simply assigned tasks using individual judgment and subjective information, thus resulting in suboptimal solutions.
In an effort to efficiently utilize the available workforce and to improve employee and customer satisfaction, many companies invest significant amounts of time and money in workforce optimization solutions. Such solutions often use a mathematical model to represent the resources of the company and the demand for those resources. By solving such a model in a manner that optimizes one or more variables, the company may determine a plan for assigning employees or resources to particular tasks or demands.
a is a bipartite graph illustrating a first set of employee resource pairings having a user's resource or pre-allocation preferences for allocating employee resources to demands for the employee resources.
b is a bipartite graph illustrating a second set of employee resource pairings having predetermined resource preferences for optimizing allocations of employee resources to demands for the employee resources, with each of the resource pairings belonging to an optimal solution.
c is a bipartite graph illustrating the workforce allocation plan of a minimum cost having the optimal solution with the maximum number the user's resource preferences.
A workforce allocation plan is associated with resource data that includes data that represents employee resources available to an organization, as well as data associated with a set of opportunities that each represents a demand for the employee resources. A workforce allocation plan may be generated, for example, by any appropriate computational method. A workforce allocation plan may be generated by a workforce allocation planning tool or system, the functionality of which may be embodied in executable code in a computer readable medium. The objective function may include optimizing a tradeoff between predetermined resource preferences, as determined by a set of constraints and variables associated with a particular task or demand, and a user's resource preferences for assigning employee resources to a set of opportunities that represent the demand for the employee resources. Further, the computational method used to generate the workforce allocation plan may be configurable, such that one or more mathematical models used in the generation of the plan may be optimized, for example in light of an evaluation performed on the workforce allocation plan. The workforce allocation plan may include a workforce allocation plan that maps employees to tasks or demands associated with one or more opportunities. For example, a workforce allocation plan may favor minimizing workforce cost to total demand fulfillment.
One method to optimize allocations in a workforce allocation plan uses a program having executable computer-readable instructions that factors in subjective information from a user in the form of a user's resource preferences. In the example, a user may represent any one that could provide input in the form of the user's resource preferences or pre-allocation preferences, for example, the user may be a manager or management at a business or organization.
In an example method, resource data is received. The resource data includes data that relates to employee resources and to a set of opportunities that represent the demand for the employee resources. A first set of employee resource pairings is established using the user's resource preferences to assign the employee resources to the set of opportunities that represent the demand for the employee resources. In the example, a user's resource preferences or pre-allocation preferences, are the employee resources a user or manager would prefer to be assigned to a task or demand for the employee resource. A second set of employee resource pairings is established using predetermined resource preferences to assign the employee resources to the set of opportunities that represent the demand for the employee resources. The predetermined resource preferences may be based on various business rules or constraints captured in an objective function. Variables associated with the predetermined resource preferences may be restricted by constraints that may be equalities or inequalities that the variables have to satisfy. The second set of all employee resource pairings further defines each of the employee resource pairings that belong to an optimal solution as determined by a mathematical model. The first and second sets of employee resource pairings are compared to provide the workforce allocation plan having the optimal solution with the maximum number of the user's resource preferences to optimize allocations in the workforce allocation plan. As such, the workforce allocation plan allows for an optimal solution that factors in allowable user's resource preferences.
The optimization process for the workforce allocation plan assigns employees to a particular task by factoring in a user's resource preferences to optimize workforce allocations in resource planning. The optimization process factors in not only the resources available and the cost associated with each resource performing a particular task, but may include subjective input from a user or management as to what resources are preferred to perform a particular task or demand.
The example may use a mathematical model to produce the first set of employee resource pairings, in the form of a first biparite graph showing all the tasks a particular employee could be assigned, that takes into account the user's resource preferences. The mathematical model further produces the second set of employee resource pairings, in the form of a second biparite graph showing all the tasks a particular employee could be assigned, that takes into account the predetermined resource preferences that belong each of the potential optimal solutions. The workforce allocation plan is generated, taking into account the first and second sets of employee resource pairings from the first and second bipartite graphs, to develop the workforce allocation plan that includes the optimal solution with the maximum number of the user's resource preferences. That is, the workforce allocation plan includes the maximum number of the user's resource preferences to optimize allocations in the workforce allocation plan.
A system of optimizing allocations in a workforce allocation plan by factoring in a user's resource preference may include a data storage subsystem to store a dataset including resource data having data that relates to employee resources and data that relates to a set of opportunities that represents demand for the employee resources. The system may further include a processing subsystem in communication with the data storage subsystem to perform the method of optimizing allocations in a workforce allocation plan described herein.
These principles are discussed herein with respect to example processes, methods, system, and apparatus, and with reference to various diagrams. The example embodiments are shown and described as a series of blocks, but are not limited by this depiction, as the actions, steps, concepts, and principles associated with the illustrated blocks may occur in different orders than as described, and/or concurrently, and fewer or more than the illustrated number of blocks may be used to implement an example method. Blocks may be combined or include multiple components or steps.
Also, many of the functional units described herein as steps, methods, processes, systems, subsystems, routines, modules, executors, data transformers, and so forth, may be implemented by one or more processors executing software. Executable code may include physical and/or logical blocks of computer instructions that may be organized as a procedure, function, and so forth. The executables associated with an identified process or method need not be physically collocated, but may include disparate instructions stored in different locations which, when joined together, collectively perform the method and/or achieve the purpose thereof. Executable code may be a single instruction or many, may be distributed across several different code segments, among different programs, across several memory devices, and so forth. Methods may be implemented on a computer, with the term “computer” referring herein to one or more computers and/or a computer network, or otherwise in hardware, a combination of hardware and software, and so forth.
Referring now to the drawings,
The processor 110 may be a central processing unit (CPU), a semiconductor-based microprocessor, or any other hardware device suitable for retrieval and execution of instructions stored in the machine-readable storage medium 120. The machine-readable storage medium 120 may be an electronic, magnetic, optical, or other physical device that contains or stores executable instructions 122, 124. Thus, the processor 110 may fetch, decode, and execute accessing instructions 122, and bipartite graph mapping instructions 124, each described in further detail below.
The workforce allocation system 100 includes an input function 130 in communication with the accessing instruction 122 to introduce input data. The input data used in the workforce allocation plan may include resource data that describes a number of employee resources. An employee resource may be any person, service, object, commodity, or other entity to be matched to a corresponding demand. For example, when the workforce allocation plan relates to a workforce allocation problem, the resource data may identify a number of employees and their qualifications for specific jobs or tasks. Other suitable sets of resource data will be apparent to those of skill in the art depending on the particular problem to be solved.
The input data may also include demand data describing a set of opportunities that represent the demand for the employee resources. A demand may be any need that may be fulfilled by a corresponding employee resource. Referring again to an example of a workforce allocation plan, the demand data may identify specific jobs or tasks for which employees are needed and a number of employees needed for each job or task. Again, corresponding demand data will be apparent to those of skill in the art depending on the particular problem to be solved.
In one embodiment, the demand data may include a number of jobs needed by a project opportunity, a duration for a job needed by the project opportunity, a set of skills associated with a job of the project opportunity, and so on. In one embodiment, the set of skills includes a job management level, a job proficiency, an industry type, a job skill set, a job title, and so on. The demand data may be used as a cost in an equation to be solved for a minimum cost. The demand data may also be used as a constraint for a variable. Thus, the demand data may describe values or constraints in a set of equations used in the workforce allocation plan.
Lastly, the input data may further include the user's resource preferences. Again, the users resource preferences or pre-allocation preferences, are the employee resources a user or manager would prefer to be assigned to a task or demand for the employee resource.
In the example, mapping instructions 124 may create a graph that contains two sets of nodes, one set that corresponds to the employee resources and another set that corresponds to the set of opportunities that represent demands for employee resources or demand instances. Mapping instructions 124 may then create multiple edges, with each edge extending between a node in the set of employee resources and a node in the set of demand instances. Each of the created edges may represent a potential allocation of an employee resource to a corresponding demand instance that may be satisfied by that employee resource. In other words, each demand instance may be expressed as either satisfied or not and mapping instructions 124 may create an edge for each such instance.
In addition, in some embodiments, mapping instructions 124 may assign a cost to each edge in the bipartite graph. Such a cost may be based on a plurality of predetermined constants, with one or more constants used for each edge. For example, when the graph relates to assignment of a particular employee to a given job, the costs for an edge may be proportionate to a cost of assigning an employee, a cost of training the employee, if necessary, and the like.
During the example mapping, the Resources/Positions (RP) instance is transformed into a feasible symmetric instance of the assignment problem, given by a bipartite graph G=(X∪Y,E) and the cost function c:E→Z, where X represents the resources, Y represents the positions and E represents the set of feasible pairs {resource,position}, with n=|X|=|Y|. Thus, considering the pre-allocated pairs Mpre⊂E, the objective is to find an optimal solution Msol⊂E, expressing the user's resource preferences, that maximizes |Msol∩Mpre|, i.e. finds an optimal solution that respects the maximum number of the user's resource preferences. In the example, to achieve the optimal solution, an ε-scaling auction model is used to get a perfect matching M and a price vector (price function) pY:Y→R that satisfy the ε-complementary slackness condition, for some ε≦1/n2. Using the given matching M, the given price vector pY and the given ε, the sub-graph Gε(M,pY)=(X∪Y, Eε) is constructed with an associated cost function cpre. The associated cost function cpre is a function from the edges {0,−1}, with 0 for non-preallocated edges and 1 for preallocated edges. The ε-scaling auction model is further used to find a perfect matching Msol of minimum cost in the instance {Gε(M,pY), cpre}. The perfect matching Msol is the solution to the pre-allocation problem in graph form.
After mapping instructions 124 have created a bipartite graph and assigned any associated costs, any of a number of methods may be used to find a minimum-cost (or maximum-cost) matching for the graph, which may comprise a plurality of edges without common vertices. Examples of suitable methods include the Kuhn-Munkres Algorithm (or Hungarian method), the simplex method or interior point method to solve Linear Programming problems genetic algorithms, or any other method for solving such problems.
In the example, a pre-allocation mathematical model, that expresses a user's resource preferences as to which of its employee resources are preferred to perform a particular task, may be factored into the workforce allocation plan. The mathematical model will consider all the subjective information and utilize the user's resource preferences if the preferences do not violate any of the conditions of the optimization model. That is, the workforce allocation plan would have to allow for an employee to perform a given task in order to take into account the user's resource preferences. If an employee does not meet requirements or constraints to perform a given task, they will not be assigned that task even if the user prefers that the employee is assigned the task. If two workers are equally qualified to perform a particular task, the user's resource preferences will be factored into determining the optimal workforce allocation plan and the user's resource preference will be assigned the given task or demand.
The matching criteria 236 encapsulated in the objective function of the RP Optimization Engine 200 may not produce a solution due to multiple workforce allocations that satisfy the known constrains. Therefore, there is a need to include a mechanism that can help to extend constraints to aim the optimization to minimize the number of optimal solutions determined by including user's resource preferences.
The comparison of the first and second sets of employee resource pairings to provide the workforce allocation plan having an optimal solution with the maximum number of the user's resource preferences may result in a gap in the workforce allocation plan. A gap is defined as the demand for the employee resource having no employee resource allocated thereto. The workforce allocation plan may be modified to account for the gap by using the user's resource preferences 234 to reassign the employee resources to the set of opportunities that represent the demand for the employee resources to fill the gap. That is, the example further allows for unfilled positions due to data incompleteness to be filled following a reallocation of available employee resources based on a user's resource preferences. The workforce allocation plan may find shortages of employee resource capacity due to availability or qualifications. For example, the employee resources may be allocated to other positions with higher priority, or the employee resources are not available during the dates needed. When there are specific project and manager needs, those needs have to be addressed in the workforce allocation plan. Therefore, the optimal solution should reflect these requirements as additional constraints and the solution can be totally different.
In this sense, the workforce allocation plan has included a mechanism in which the objective function can give prioritization of managers allocations considered as “critical allocations”. For example, considering that Resources={A, B}, and Positions={p1, p2, p3}. After running the optimization with a set of pre-defined and standardized constraints, the RP optimization engine found two optimal solutions with gaps: [{A-p1, B-p2, gap-p3}, and {B-p1, A-p2, gap-p3}]. With this information, the optimization has found gap for p3 and there is not enough information to identify how to fulfill a gap. Using the critical allocation mechanism the resource A is allocated to P3 by the user or manager, then optimal solution can change to {Gap-p1, B-p2, A-p3} or {B-p1, Gap-p2, A-p3}.
If the optimal solution is found, the optimization engine can produce a solution that satisfies both optimality and user input. In an example, the input includes Resources={A, B, C} and Positions={p1, p2, p3}. After running the RP optimization engine with a set of pre-defined and standardized constraints, the RP optimization engine found two symmetric optimal solutions: [{A-p1, B-p2, C-p3}, and {B-p1, A-p2, C-p3}]. In the example solution, resource A can be equally allocated to p1 or p2 and the optimal allocation is not impacted. The new mechanism includes the user's resource preferences defined as Pre-allocation={A-p1, B-p3}, which helps to discriminate the possible solutions. Since the user's resource preference fits within the found solutions, the RP optimization engine generates an optimal solution={A-p1, B-p2, C-p3}. This solution is generated automatically for the user to capture the user's resource preferences but at the same time preserve the optimal solution. While the optimal solution contains a maximum number of preferences, it may be the case that none or not all the user's resource preferences can be represented in an optimal solution. For example, if an employee does not meet requirements or constraints of the predetermined resource preferences to perform a given task, they will not be assigned that task even if the user prefers that the employee is assigned the task.
a-c shows a series of biparite graphs.
b is an example second bipartite graph that illustrates a second set of employee resource pairings having predetermined resource preferences to optimize allocations of employee resources to demands for the employee resources, with each of the resource pairings belonging to an optimal solution.
c is an example third bipartite graph that illustrate the workforce allocation plan of a minimum cost having the optimal solution with the maximum number the user's resource preferences.
Lastly, the input data may further include the user's resource preferences. Again, the user's resource preferences or pre-allocation preferences, are the employee resources a user or manager would prefer to be assigned to a task or demand for the employee resource.
After receipt of the resource data, method 500 may then proceed to block 520, where a first set of employee resource pairings is established using the user's resource preferences to assign the employee resources to the set of opportunities that represent the demand for the employee resources. The first set of employee resource pairings is mapped to the first bipartite graph, as shown in
After establishing the first set of employee resource pairings, method 500 may proceed to block 530, where a second set of employee resource pairings is established using the predetermined resource preferences to assign the employee resources to the set of opportunities that represent the demand for the employee resources. The second set of all employee resource pairings further defines each of the potential optimal solutions. That is, the second set of employee resource pairings includes all employee resource pairings that belong to an optimal solution. The second set of employee resource pairings is mapped to a second bipartite graph that defines the predetermined resource preferences to assign the employee resources to the set of opportunities that represent the demand for the employee resources and each of the optimal solutions. A predetermined edge extends between each predetermined node in the set of second predetermined nodes and each predetermined node in the set of first predetermined nodes to indicate the workforce allocation plan having the optimal solution with the maximum number of the user's resource preferences. As seen in
After establishing the second set of employee resource pairings, method 500 may then proceed to block 540, where the first and second sets of employee resource pairings are compared to provide the workforce allocation plan having the optimal solution with the maximum number of the user's resource preferences. In particular, a third bipartite graph is mapped from the first and second bipartite graphs to provide the workforce allocation plan having the optimal solution with the maximum number of the user's resource preferences. An optimization edge extends between each optimization node in the set of second optimization nodes and each optimization node in the set of first optimization nodes to indicate which of the corresponding employee resources are available for allocation to the demands of the employees resources to satisfy the workforce allocation plan. The optimal cost is determined by assigning the optimal cost to each optimization edge that extends between one of the first optimization nodes and one of the second optimization nodes. Method 500 may then proceed to block 545, where method 500 may stop.
Method 500 may also include, at 540, minimizing a workforce cost. Minimizing a workforce cost at 540 may be performed by solving the objective function in light of the set of cost constraints. Solving the objective function may include optimizing a tradeoff between labor utilization and project demand fulfillment. Minimizing the optimal cost may be achieved by comparing the pre-allocation cost from the first bipartite graph and predetermined cost from the second bipartite graph to provide the workforce allocation plan in the form of the third bipartite graph having the lowest optimal cost.
The embodiment provided herein provides many advantages. The example method provides for multiple optimal solutions for resource-position matching due to missing unique allocation details. The optimization method defines a set of known constraints that will standardize resource planning across business units. These constraints can produce multiple optimal solutions that require human judgment to infer a possible unique solution. The example method takes into account the user's resource preferences thus expanding the vision of optimization as a black-box tool. The example method captures more information that can help to discriminate symmetric optimal solutions or non-implemented solutions. In addition, the example method enhances optimal solutions. By adding pre-allocation or user's resource preferences, the optimization can still produce an optimal solution and itself also represents an enhanced solution due to the user input. With this approach, the user can execute their plan aligned to their requirements, and at the same time aligned to the other user requirements helped by the optimization model. In addition, the example method produces feasible solutions that can be implemented by users. By adding critical allocations, the optimization can freeze resources that are key elements for the staffing execution. This information is considered in the optimization model to adjust the optimal solutions that can be implemented by the user and are aligned to the project needs.