Predicting downstream schedule effects of user task assignments
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- ORACLE INT CORP
- Filing Date
- 2023-09-20
- Publication Date
- 2026-06-24
AI Technical Summary
Existing systems struggle to predict the downstream effects of assigning tasks to users in a manufacturing facility, leading to suboptimal performance and difficulty in improving performance metrics due to complex data collection and analysis, equipment failures, and task reordering challenges.
A machine learning model is used to predict the downstream effects of task assignments by analyzing user, work center, and material attributes, identifying qualified users, and optimizing task schedules to minimize negative performance impacts.
The model effectively predicts and mitigates delays and costs associated with task assignments, improving on-time delivery and equipment utilization by selecting optimal user-task combinations.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical Field]
[0001] Beneficial Claims, Related Applications, Incorporation by Reference This application claims priority to and incorporates by reference the following four U.S. patent applications: U.S. Application No. 18 / 446,375, filed August 8, 2023; U.S. Application No. 63 / 416,504, filed October 15, 2022; U.S. Application No. 18 / 359,930, filed July 27, 2023; and U.S. Application No. 18 / 343,612, filed June 28, 2023.
[0002] Technical Field FIELD OF THE DISCLOSURE This disclosure relates to work center resource network integration. In particular, this disclosure relates to operations and user interfaces for predicting the downstream effects of assigning specific work center tasks to specific users. [Background technology]
[0003] background In a physical facility such as a manufacturing plant, workers at many different workstations interact with equipment to perform tasks on materials, such as product components. Many different events can result in suboptimal performance of the manufacturing facility. For example, a decrease in worker productivity can result in delays to subsequent tasks and a failure to deliver product on time. An equipment failure can cause a work center to be out of service for a period of time, resulting in a delay for any tasks that depend on the work center. Tracking many different performance metrics across an entire manufacturing facility can be a complex data collection and analysis process. Identifying the cause of a problem—i.e., a failure or a failure to meet specified performance metrics—can be even more difficult. Determining how to reorder tasks performed by workers to improve performance metrics based on identified problems adds yet another layer of complexity. Task managers may not have a clear idea of how relocating tasks will affect other tasks or how effective a change will be in improving the performance metrics that concern them most. For example, in the event of a machine failure, the task manager can send materials to another work center to have another worker perform the task. However, task managers may not be able to predict how effective a change will be on overall equipment utilization, labor utilization, or on-time delivery. Task managers may also not be able to predict the impact task reordering may have on additional tasks in other work centers.
[0004] The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Thus, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
[0005] Embodiments are illustrated by way of example, and not by way of limitation, in the accompanying drawings, in which: It should be noted that references to "an" or "one" embodiment in this disclosure do not necessarily refer to the same embodiment, but rather mean at least one. [Brief explanation of the drawings]
[0006] [Figure 1] FIG. 1 illustrates a system according to one or more embodiments. [Figure 2A] FIG. 1 illustrates an example set of operations for predicting downstream effects of assigning tasks to users in a work environment in accordance with one or more embodiments. [Figure 2B] FIG. 1 illustrates an example set of operations for predicting downstream effects of assigning tasks to users in a work environment in accordance with one or more embodiments. [Figure 3] FIG. 1 illustrates an example set of operations for training a machine learning model to predict downstream effects of task assignments according to one or more embodiments. [Figure 4A] FIG. 1 illustrates an exemplary embodiment for implementing entitlement-based task management. [Figure 4B] FIG. 1 illustrates an exemplary embodiment for implementing entitlement-based task management. [Figure 4C] FIG. 1 illustrates an exemplary embodiment for implementing entitlement-based task management. [Figure 5] FIG. 1 is a block diagram illustrating a computer system according to one or more embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0007] Detailed Description In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding. One or more embodiments may be practiced without these specific details. Features described in one embodiment may be combined with features described in a different embodiment. In some instances, well-known structures and devices are described with reference to block diagram form in order to avoid unnecessarily obscuring the present invention. 1. Summary 2. System Architecture 3. Generating predictions for the downstream effects of task assignment to users 4. Training the machine learning model 5. Exemplary Embodiments 6. Computer Networks and Cloud Networks 7. Other, Expansion 8. Hardware Overview
[0008] 1. Summary
[0009] One or more embodiments use a machine learning model to predict the downstream effects of assigning tasks to users. A work environment may have many different work centers. Each work center may be utilized by many different workers at various times, or even at the same time, to perform different tasks. The speed and effectiveness with which a worker can perform a task affects downstream tasks performed by the same worker and by different workers at both the same work center and other work centers. Thus, assigning a particular task to a particular worker affects the worker's task schedule, the task schedule associated with the work center where the task is performed, and the task schedules of other workers performing tasks at other work centers. The machine learning model predicts the downstream effects of assigning tasks to users on task schedules for many workers at many work centers.
[0010] One or more embodiments train a machine learning model using a dataset describing user attributes, work center attributes, and material attributes. For example, the machine learning model identifies the relationship between a user's experience performing a task or using specific equipment and materials and the time required by the user to complete the task. As an example, the system may detect a fault in a piece of equipment. The system may identify two users whose qualifications match the recommended user qualifications for a task to repair the equipment. Based on (a) the users' work history, (b) the users' proficiency levels specified in the users' profiles, and (c) scheduling data for additional tasks to be performed in the work environment, work centers available to perform the tasks, and other users available to perform the tasks, the system predicts the downstream effects of assigning the repair task to a first user and a second user. The predicted downstream effects consider not only which tasks will be performed at various work centers, but also which workers will be assigned to the tasks at the work centers. The system may predict that a first user may perform a task 10% faster than a second user at the same work center. However, the system may further predict that assigning the task to the first user will result in additional delays relative to tasks performed by other users in the work environment. The system may determine that these additional delays will result in a 10% decrease in on-time deliveries for that week from the work environment compared to when the repair task is assigned to the second user. The system may further determine that assigning the task to the first user will result in a 1% increase in financial cost, reflecting overtime pay to the first worker for performing the task. One or more embodiments refrain from assigning a task to a user based on determining downstream costs (or negative performance metrics) of the assignment resulting in a cost above a threshold. Additionally or alternatively, the system may present the administrator with two or more options for assigning a task to a user to allow the administrator to select the user to whom to assign the task.
[0011] One or more embodiments described and / or claimed herein may not be included in this summary section.
[0012] 2. System Architecture
[0013] FIG. 1 illustrates a system 100 according to one or more embodiments. As shown in FIG. 1, the system 100 includes a work environment management platform 110 and a data repository 130. The work environment management platform 110 monitors and manages operations in a work environment 120. As an example, the work environment may be a manufacturing facility. The facility includes work centers 121a-121n. Each work center includes a set of equipment 122a-122n. One work center may be a part assembly work center. In the part assembly work center, workers may assemble parts from materials 123. Parts assembled in one work center may be materials required to perform additional tasks in another work center. Another work center may be a part testing work center. The part testing work center may include equipment for testing parts assembled in the part assembly work center to check for defects or failures in the parts. Another work center may be a quality assurance work center. The quality assurance work center may include equipment for performing tests on parts assembled in the part assembly work center and tested in the part testing work center to ensure the parts meet specifications. One or more workers 124 may be assigned to work at a particular work center 121 a-121 n. When a worker 124 logs into a terminal at a work center, the terminal identifies the tasks to be performed by that worker 124. The terminal may further grant and deny access to the equipment 122 a-122 n at the work center according to the worker's assigned tasks and authorization level.
[0014] According to one or more embodiments, the work environment 120 includes work centers 121 a-121 n associated with various pieces of equipment 122 a-122 n. The work centers may include user terminals, test equipment, manufacturing equipment (e.g., saws, drills, etc.), or any other equipment for manufacturing, assembling, and testing parts. Different types of equipment require different qualifications for workers 124 to operate the equipment. One or more embodiments analyze worker qualifications to manage worker access to equipment associated with the work centers.
[0015] According to one or more embodiments, different workers 124 may access terminals at the same work center 121 a-121 n. When a first worker logs into the terminal, task management engine 112 obtains user identification information, maps the user identification information to stored user credentials, and identifies one or more tasks that the first worker is authorized and / or qualified to perform at the work center. When a second worker logs into the same terminal, task management engine 112 may identify a different set of tasks that the second worker is authorized and / or qualified to perform at the work center.
[0016] In one embodiment, the work environment management platform 110 is implemented on one or more digital devices. The term "digital device" generally refers to any hardware device that includes a processor. A digital device may refer to a physical device or a virtual machine that runs an application. Examples of digital devices include computers, tablets, laptops, desktops, netbooks, servers, web servers, network policy servers, proxy servers, general-purpose machines, special-function hardware devices, hardware routers, hardware switches, hardware firewalls, hardware network address translators (NATs), hardware load balancers, mainframes, televisions, content receivers, set-top boxes, printers, mobile handsets, smartphones, personal digital assistants ("PDAs"), wireless receivers and / or transmitters, base stations, communication management devices, routers, switches, controllers, access points, and / or client devices.
[0017] The work environment management platform 110 includes a work environment monitoring engine 111 to monitor attributes of the work environment 120. The work environment monitoring engine 111 may monitor worker status data, equipment status data, material status data, and other work environment data. Monitoring worker status data may include detecting worker login / logout at a work center terminal, detecting a worker's selection at a work center terminal to start or pause a task or indicate that a particular task is completed, and detecting a notification requesting a particular worker at a particular work center 121a-121n in the work environment 120. Monitoring equipment status data may include monitoring whether a piece of equipment is running or stopped (e.g., in a fault condition), monitoring the calibration status of equipment, and monitoring whether and for how long equipment is in use. Monitoring material data may include detecting the location of materials in the work environment 120 and the amount of material available in the work environment. As an example, a work center may include a container that stores materials for assembling a device. When a user removes material from the container, the sensor may detect a change in the weight of the container, and the work environment monitoring engine 111 may calculate the amount of material in the container based on the weight of the container.
[0018] Monitoring the work environment includes detecting anomalies and faults in the work environment. For example, the work environment monitoring engine 111 may receive a notification from a piece of work equipment 122a at work center 121a that the equipment is not functioning properly. Additionally, the work environment monitoring engine 111 may monitor performance statistics of workers 124 to determine that a particular worker at work center 121n is not performing tasks at an expected rate, causing delays in the work environment 120.
[0019] Task management engine 112 generates and manages the assignment of tasks to workers 124 in work environment 120. Task management engine 112 detects worker logins to work centers 121a-121n. Task management engine 112 analyzes (a) worker data 133 including worker qualifications, (b) equipment data 135 corresponding to equipment available at work center 121a where the worker logged in, and (c) material data 134 of materials available at work center 121a where the worker logged in. Based on worker data 133, equipment data 135, and material data 134, task management engine 112 presents to the worker at work center 121a a subset of tasks from the set of available tasks 131 to be performed by the worker at work center 121a. In one or more embodiments, task management engine 112 generates the subset of tasks taking into account dependencies among the tasks. For example, repairing a faulty piece of equipment 122a may involve two tasks performed by two different specialists, one task occurring after the other. When a second specialist logs into work center 121a, task management engine 112 determines whether a first task in the set of two consecutive tasks has been completed by another specialist. If so, task management engine 112 presents the second task to the second specialist to be performed. If the first task has not yet been completed, task management engine 112 may refrain from presenting the second task to the second specialist. Additionally or alternatively, task management engine 112 may generate a notification to one or both of the first and second specialists indicating that the first task has not yet been completed.
[0020] In one or more embodiments, a manager or administrator may access work environment management platform 110 via interface 117 to view task pools, task assignments, and worker qualifications. In one or more embodiments, interface 117 refers to hardware and / or software configured to facilitate communication between a user and work environment management platform 110. Interface 117 renders user interface elements and receives input via user interface elements. Examples of interfaces include a graphical user interface (GUI) 118, a command line interface (CLI), a tactile interface, and a voice command interface. Examples of user interface elements include check boxes, radio buttons, drop-down lists, list boxes, buttons, toggles, text fields, date and time selectors, command lines, sliders, pages, and forms.
[0021] In one embodiment, different components of interface 117 are specified in different languages. The behavior of user interface elements is specified in a dynamic programming language such as JavaScript. The content of user interface elements is specified in a markup language such as HyperText Markup Language (HTML) or XML User Interface Language (XUL). The layout of user interface elements is specified in a style sheet language such as Cascading Style Sheets (CSS). Alternatively, interface 117 is specified in one or more other languages, such as Java, C, or C++.
[0022] According to one embodiment, the task allocation display engine 113 displays a representation of a task schedule in the GUI 118. For example, the task allocation display engine 113 may generate data for displaying a Gantt chart in the GUI 118. The Gantt chart may include a representation of work centers and (a) tasks that have been performed and (b) tasks that are scheduled to be performed at each work center. The task allocation display engine 113 may generate the Gantt chart based on worker attributes. For example, the task allocation display engine 113 may access a worker schedule to predict which workers will be assigned to work at different work centers. The task allocation display engine 113 may modify the visual representation of the tasks in the GUI 118 based on which workers are assigned or predicted to perform the tasks. For example, the work environment 120 may include a part assembly work center. Two workers may be assigned to work at the part assembly work center. One of the workers may have a higher performance rating than the other. Thus, task placement display engine 113 may display, in a Gantt chart, a first set of tasks completed at a work center by a first worker and a second set of tasks completed at a work center by a second worker. Task placement display engine 113 may display more tasks in the first set of tasks than in the second set of tasks, representing a prediction that the first worker will complete more tasks than the second worker in the same time period based on the first worker's higher performance rating.
[0023] According to one or more embodiments, the performance metrics calculation engine 114 calculates performance characteristic metrics for the work environment 120. The performance metrics include metrics for specific workers 124, metrics for work centers 121 a-n, and metrics for the work environment 120 as a whole. The performance metrics include quantitative measures of the performance of one or more of: (a) workers, (b) work centers, and / or (c) the work environment. Examples of performance metrics include utilization rates, or the percentage of time a piece of equipment is in use, for specific work centers and / or across the work environment as a whole, task completion times for specific tasks, on-time delivery statistics, efficiency statistics, cost assessment statistics, and / or overall equipment effectiveness (OEE) statistics for workers, work centers, and / or the work environment.
[0024] According to one embodiment, task placement display engine 113 displays in GUI 118 a visual representation of a task schedule for tasks to be performed at work centers 121 a-121 n along with one or more worker-task assignment selection tiles corresponding to one or more workers that a manager may select to perform the tasks. Task placement display engine 113 may display a Gantt chart in one area of the graphical user interface and worker-task assignment selection tiles in another area. For example, the worker-task assignment selection tiles may be positioned above, below, or to the side of a view of the work environment.
[0025] According to one exemplary embodiment, the system stores task data for each available task 131, including task parameters and candidate users authorized and / or qualified to perform the task. For example, for task 137, task management engine 112 identifies (a) task parameters 138, including (b) recommended user qualifications 139. Task management engine 112 identifies a pool of candidate users 140 from workers included in worker data 133 whose qualifications match the recommended user qualifications 139 for task 137. Task management engine 112 stores identifying information for candidate users 140 in a data object corresponding to task 137. For example, task management engine 112 may store an employee identification number and / or the employee's name in a field or set of fields in the data object representing task 137.
[0026] The task management engine 112 identifies a set of candidate users 140 for presentation to the administrator in the GUI 118. For example, the task management engine 112 may identify performance metrics and / or qualification matches associated with users and tasks 137 to identify the set of candidate users 140 for presentation to the administrator. As an example, the task 137 may store identification information for four candidate users 140 who are authorized and / or qualified to perform the task 137. Based on the qualification matches and performance metrics associated with the users, the task management engine 112 may identify two users from among the candidate users 140 for presentation to the administrator. The task placement display engine 113 displays two worker-task assignment selection tiles corresponding to the two identified workers in the GUI 118.
[0027] In one or more embodiments, task management engine 112 applies machine learning model 116 to a set of (a) task schedule data 136 and (b) worker data 133 to predict the downstream effects of assigning a particular task to a particular worker. Task schedule data 136 includes information about which tasks are predicted to be performed at different work centers by different workers over a particular time period. Worker data 133 includes worker qualification data, such as the worker's certifications, demonstrated proficiency with specific equipment, and educational background; past task assignments, completed tasks, and task execution results; performance metrics, such as the worker's efficiency in completing tasks, the worker's success rate in completing assigned tasks, recurrence rate (e.g., if a task involved modifying equipment, how long it took before the same task needed to be performed on the same equipment); worker scheduling data, such as the worker's availability; and worker profile data, such as the identity of the worker's manager or supervisor, the worker's position in the organizational chart, and the worker's compensation amount (e.g., base compensation amount and any additional compensation amount, such as whether assigning a task to a worker results in overtime or bonus payment).
[0028] The machine learning engine 115 trains a machine learning model 116 to predict downstream effects associated with assigning a particular task to a particular worker. In some examples, one or more elements of the machine learning engine 115 may use a machine learning algorithm to train the machine learning model 116 using historical task scheduling data and worker performance data. A machine learning algorithm is an algorithm that may be iterated using a set of training data to learn a goal model f that best maps a set of input variables to output variables. A machine learning algorithm may include supervised and / or unsupervised components. Various types of algorithms may be used, such as linear regression, logistic regression, linear discriminant analysis, classification and regression trees, naive Bayes, k-nearest neighbors, learning vector quantization, support vector machines, bagging, random forests, boosting, backpropagation, and / or clustering.
[0029] In one embodiment, the set of training data includes a dataset and associated labels. The dataset is associated with input variables for the goal model f (e.g., worker qualifications, task parameters, historical records of tasks performed by workers, quality scores associated with tasks performed by workers). The associated labels are associated with output variables of the goal model f (e.g., time required to perform downstream tasks by different workers at different work centers in the work environment). The training data can be updated, for example, based on feedback on the accuracy of the current goal model f. The updated training data is fed back to the machine learning algorithm, which then updates the goal model f.
[0030] The machine learning algorithm generates a target model f such that the target model f best matches the dataset of training data to the labels of the training data. Additionally, or alternatively, the machine learning algorithm generates a target model f such that when the target model f is applied to the dataset of training data, the maximum number of results determined by the target model f match the labels of the training data.
[0031] Based on the prediction by the ML model 116, the task placement display engine 113 displays the predicted downstream effects of assigning the task to a particular worker 124. For example, the task placement display engine 113 displays a Gantt chart with specific predicted times for completing the task by the selected worker and other workers at different work centers in the work environment. In addition, the performance metric calculation engine 114 calculates performance metrics associated with the predicted downstream effects. For example, based on the ML model prediction, the task placement display engine may display two worker-task assignment selection tiles corresponding to two workers. The first tile may display the performance metric “Utilization: 80%, On-time delivery 75%.” The second tile may display the performance metric “Utilization 70%, On-time delivery 80%.” Based on detecting that the manager has selected the first tile, the task placement display engine 113 displays a Gantt chart with the task assigned to the first worker. The Gantt chart displays the ML model-predicted downstream effects for tasks performed at different work centers based on assigning the task to the first worker. Based on detecting that the manager has selected the second tile, the task placement display engine 113 displays a Gantt chart showing the assignment of the task to the second worker. The Gantt chart displays the ML model-predicted downstream effects on tasks performed in different work centers based on assigning the task to the second worker. The task GUI 118 may include a task assignment confirmation button to allow the manager to confirm the assignment of the task to the specific worker. Based on the assignment, the work environment management platform 110 generates a set of instructions for assigning the task to the specific worker. The instructions may also include the assignment of other tasks to other workers. For example, if assigning a specific task to a specific worker requires offloading other tasks assigned to the specific worker, the instructions may include the assignment of other tasks to other workers.
[0032] In one or more embodiments, system 100 may include more or fewer components than those shown in Figure 1. The components shown in Figure 1 may be local to one another or remote from one another. The components shown in Figure 1 may be implemented in software and / or hardware. Each component may be distributed across multiple applications and / or machines. Multiple components may be combined into one application and / or machine. Operations described with respect to one component may instead be performed by another component.
[0033] Additional embodiments and / or examples relating to computer networks are described below in Section 6 entitled "Computer Networks and Cloud Networks."
[0034] In one or more embodiments, data repository 130 is any type of storage device and / or device for storing data (e.g., a file system, a database, a collection of tables, or any other storage mechanism). Furthermore, data repository 130 may include multiple different storage devices and / or devices. The multiple different storage devices and / or devices may or may not be of the same type and may or may not be located in the same physical location. Furthermore, data repository 130 may be implemented or executed on the same computing system as work environment management platform 110. Alternatively, or in addition, data repository 130 may be implemented or executed on a computing system separate from work environment management platform 110. Data repository 130 may be communicatively coupled to work environment management platform 110 via a direct connection or via a network.
[0035] Information describing the set of tasks available for execution in work environment 120, task schedule metrics 132, labor data 133, material data 134, equipment data 135, and historical task schedule data 136 may run across any of the components in system 100. However, this information is shown in data repository 130 for clarity and illustration purposes.
[0036] In one or more embodiments, work environment management platform 110 refers to hardware and / or software configured to perform the operations described herein to recommend and implement a task schedule for a work environment. Example operations for recommending and implementing a task schedule for a work environment are described below with reference to FIG.
[0037] 3. Generating predictions for the downstream effects of task assignment to users
[0038] 2A and 2B illustrate an example set of operations for work center task relocation according to one or more embodiments. One or more of the operations illustrated in FIGS. 2A and 2B may be modified, rearranged, or omitted altogether. Thus, the particular order of the operations illustrated in FIGS. 2A and 2B should not be construed as limiting the scope of one or more embodiments.
[0039] The system identifies a set of task parameters associated with tasks to be performed by one or more users at one or more work centers in the work environment (operation 202). The task parameters include equipment required to perform the task, equipment that may need to be put into operation to perform the task, materials needed to correct the fault, such as equipment that is in a faulty state, and user qualifications required to correct the fault.
[0040] For example, a task may include assembling components, and task parameters may include (a) subcomponents required for assembly, (b) machines required to solder the subcomponents, and (c) user qualifications indicating proficiency with operating the machines.
[0041] According to another example, a work environment monitoring platform may identify a fault in a piece of equipment in a work environment. The system may generate a task to correct the fault. Task parameters may include (a) the faulty equipment, (b) the tools or equipment required to correct the fault, and (c) user qualifications indicating proficiency with the faulty equipment and the tools required to correct the fault.
[0042] According to one embodiment, the system identifies task parameters for the task in response to a triggering event. For example, the task may have been assigned to a user or pool of potential users who subsequently becomes unavailable to perform the task. According to an alternative example, the task may be a newly created task. For example, upon detecting a failure in the work environment, the system may create a new task and determine task parameters for the new task. According to yet another example, the task may be an existing task in a task management system, and a manager or administrator may interact with a user interface to reassign the task from one user or pool of users to a different user.
[0043] The system determines whether the task parameters match the user's qualifications (operation 204). According to one embodiment, the system accesses a database to retrieve the user's qualifications. Qualifications may be defined in terms of one or more of certifications, work experience, training, education, and any other expertise recorded in the database.
[0044] If the task parameters do not match the user qualifications for any user identified in the database, the system may (a) refrain from assigning the task to the user, or (b) identify one or more alternative task parameters and / or user qualifications for assigning the task (operation 206). According to one exemplary embodiment, if the system refrains from assigning the task to the user, the system may generate a notification to the administrator that flags the task for the administrator's attention. The administrator may then decide whether to assign the task to the user or modify the task parameters. The system may provide the administrator with a visual representation of available workers and / or a visual representation of recommended task requirements. The system may display a field in the GUI for the administrator to select from among the available workers to assign the task.
[0045] According to one or more embodiments, identifying alternative task parameters for a task may include applying the task parameters to a machine learning model to identify one or more alternative task parameters for the task. For example, when the system identifies a task for which the system does not find a match between recommended qualifications and user qualifications, the system applies the set of task parameters to a machine learning model to identify a user or pool of candidate users to assign the task to. The machine learning model may learn the relationship between the task description and terms in a user profile, past tasks performed by the user, educational information associated with the user, or the user's training. The system may determine that machine "M100" requires maintenance. However, there may be no users with qualifications that include "M100." For example, searching a database for user experience, training, and work history may return no results for "M100." During training, the machine learning model may learn that users qualified to perform maintenance on a "P300" model have a high success rate of repairing the "M100" model. Thus, the machine learning model may generate a recommended qualification that includes the term "P300." When the system searches the database for "P300," the system identifies at least three workers who may be qualified to perform maintenance on the M100 model. Thus, the system adds a new task to the task management platform to perform maintenance on the M100 machine, including the user qualification "P300 Maintenance." As another example, a machine learning model may learn that a particular manager relies on a particular user to perform maintenance on each machine in the manager's organization with a high success rate. Thus, the machine learning model may generate a recommended user qualification for a particular task, such as "Section B, Employee Type: Repair Technician," that includes either the user's name or other identifying information.
[0046] Based on determining that one or more user credentials match the recommended user credentials for performing the task, the system matches the task to the user (operation 208). For example, the system may store one or more tables representing tasks in a database. The system may store user identification information in the tables associated with tasks that match each user's credentials.
[0047] The system selects candidate users from among a set of candidate users associated with a particular task (operation 210). According to one embodiment, the system selects candidate users in response to a triggering event (such as the triggering event described above in connection with operation 202). For example, a task may have been assigned to a user or pool of potential users who subsequently becomes unavailable to perform the task. According to an alternative example, a manager or administrator may interact with a user interface to reassign a task from one user or pool of users to a different user. In embodiments in which the system stores data objects representing tasks in a database, the system may obtain identifying information for the candidates from specific fields in the data objects.
[0048] The system applies the trained machine learning model to the task schedule data and the user data to predict downstream effects of assigning tasks to candidate users for execution (operation 212). Downstream effects include costs associated with assigning tasks to candidate users and benefits derived from assigning tasks to candidate users. Examples of downstream effects include: equipment usage at a work center based on (a) the user performing the task at the work center or (b) the user being moved to another work center to perform a task on equipment at the other work center; (a) the user performing the task using the materials or (b) the user performing a task that does not require materials the user might have used if the task had not been assigned to the user; delays in the set of tasks the user would have performed if the user had not been assigned the task; delays (or improvements in execution time) for the set of tasks dependent on the task assigned to the user; modifications to the user's availability to perform other tasks; modifications to equipment availability based on the user being assigned to the task; modifications to material availability based on the user being assigned to the task. The machine learning model receives as input not only the user's identity but also user attributes (including expertise with a particular device, past success rate in performing tasks, degree of similarity between task parameters and user qualifications, and device attributes such as device location and type that are affected by task assignment to the user).
[0049] Some downstream effects can be measured by performance metrics. Performance metrics include quantitative measurements of the performance of one or more of: (a) workers, (b) work centers, and / or (c) the work environment. Examples of performance metrics include utilization, or the percentage of time a piece of equipment is in use for a particular work center and / or across the work environment, task completion time for a particular task, on-time delivery statistics, efficiency statistics, cost estimate statistics, and / or overall equipment effectiveness (OEE) for workers, work centers, and / or the work environment. Thus, the system can calculate one or more performance metrics based on assigning tasks to users.
[0050] According to one example, a machine learning model learns that, for a particular worker, there is a correlation between a particular attribute and a particular piece of equipment. Based at least in part on the correlation, the machine learning model may predict a set of downstream effects from assigning the worker a task corresponding to the equipment, including (a) increased productivity from the work center where the equipment is located and (b) decreased productivity from the worker's usual work center. The machine learning model may further predict that for a different worker, there will also be increased productivity from the work center where the equipment is located, but the increase will be less than for the first worker, based at least in part on a reduced past success rate for the latter worker.
[0051] According to another example, the machine learning model predicts that assigning a task to a specific worker will result in (a) a delay for the worker to travel from one work center to another to perform the task, (b) a product output delay for a set of components the worker assembles in a corresponding set of component assembly tasks, and (c) a product output improvement for the component output from the work center to which the worker is moved to perform the task, based on the worker reconfiguring a piece of equipment. The system may predict a reduced efficiency performance metric for the worker corresponding to the predicted time for the worker to reconfigure equipment at the new work center during which the worker is not assembling components at the worker's original work center. The system may predict an improved efficiency performance metric for the work center where the worker reconfigured the equipment. The system may further predict an overall improved on-time delivery performance metric for a work environment including two work centers based on the worker's reconfiguration of equipment.
[0052] The system determines whether the calculated performance metrics meet a threshold (operation 216). For example, the system may provide a set of rules specifying that a task should be associated with a user only if the resulting pair corresponds to an improvement in an OEE performance metric or an improvement in on-time delivery across the work environment. As another example, the system may apply a set of rules specifying that a task should be associated with a user only if the resulting pair corresponds to the same or improved equipment utilization performance metric when compared to the equipment utilization performance metric before assigning the task to the user.
[0053] If the system determines that the predicted performance metric does not meet the threshold, the system may not save the candidate / task pair (operation 218). On the other hand, if the system determines that the predicted performance metric meets the threshold, the system saves the candidate / task pair (operation 220).
[0054] The system determines whether there are additional candidates among the candidate users (operation 222). If there are not, the system presents one or more candidates and corresponding performance metrics in a graphical user interface (GUI) for selection by the user (operation 224).
[0055] The system detects whether a selection is made in connection with a task (operation 226). For example, an administrator may access a user interface that provides the administrator with the ability to match users with tasks. The system may detect that the administrator is selecting a user for a task. For example, the administrator may interact with buttons and / or fields in a GUI to select or drag-and-drop an element representing a user to assign the user to the element representing the task.
[0056] According to an alternative embodiment, the system detects the selection without any action from an administrator. For example, a worker logs in to a terminal at a work center to obtain a set of tasks the worker can perform at the work center. Logging in may include manually entering user identification, swiping a user identification card, or detecting the user's identification via a facial recognition application. The worker may be in a pool of candidate users whose qualifications match the recommended user qualifications corresponding to the task. The system may analyze the set of tasks available for the worker to perform at the work center. Based on determining that the worker is in the set of candidate users who can perform the task, the system may select a user from the set of candidate users to pair with the task without further user intervention. If another worker from the pool of users logs in to the work center after the system assigns a task to the worker, the system may refrain from selecting a subsequent worker to perform the task.
[0057] Based on the candidate user's selection to perform the task, the system assigns the selected candidate to the task (operation 228). For example, when the system detects an administrator's selection of a particular user to perform a particular task, the system assigns the task to the user in the task management system. When the user logs into a terminal at a work center, the task appears on the display for the user to perform. When other candidate users log into the work terminal, the task does not appear as an option for the other candidate users to perform.
[0058] In an exemplary embodiment in which the system assigns a task to a pool of candidate users who have qualifications that match the recommended user qualifications for a task, the system may assign the task to a first candidate user who logs into a work center terminal and / or selects the task from among a set of tasks available to perform. For example, when a first candidate logs into a work center terminal first, the system may assign the task to the first candidate user. When a second candidate logs into a work center terminal after the first candidate, the system may not display the task as available for the second candidate to perform. On the other hand, when the second candidate signs into the terminal before the first candidate, the system may assign the task to the second candidate. The system may then refrain from displaying the task as available for the first candidate when the first candidate signs into the work center terminal.
[0059] The system updates the display representing the task schedule for tasks to be performed in the work environment to reflect the downstream effects of assigning tasks to candidates (operation 230). For example, the system may display a Gantt chart for a manager showing work centers in the work environment and the tasks to be performed at the work centers. The display of tasks to be performed at the work centers takes into account which workers are assigned to work at each work center. Based on detecting the assignment of a particular task to a particular worker, the system updates the display representing the task schedule to reflect the assignment. For example, if the task assignment includes moving workers between two work centers, the system modifies the display to show the change in time to complete the task at the two work centers based on the change in workers assigned to complete the task. If the task assignment includes inserting a task into a worker's queue for the task at a work center, the system modifies the display to show the change in time to complete the task at the work center. The system may further recommend offloading one or more tasks to other workers at other work centers.
[0060] According to one embodiment, the system displays a graphical user interface including one or more worker-task assignment selection tiles corresponding to one or more workers that a user can select to perform a task. The system may display a representation of the work environment in one area of the graphical user interface and the worker-task assignment selection tiles in another area. For example, the worker-task assignment selection tiles may be positioned above, below, or to the side of the representation of the work environment. The system may apply a trained machine learning model to determine which worker-task assignment selection tiles to display. Input features for the machine learning model include past task manager selections associated with different configurations of tasks performed by workers at a work center.
[0061] A user may interact with a user interface element in the GUI to indicate selection of the worker-task assignment selection tile. In response to detecting the selection, the system modifies the GUI to display the predicted downstream effects of assigning a particular task to a particular worker. The system may display a Gantt chart with rows representing work centers and line segments or rectangles along the rows representing tasks to be completed at the work centers. The system may display the set of tasks at the source work center with a first set of display characteristics to distinguish among (a) tasks that are unchanged in both the source task configuration and the target task configuration (i.e., performed at the same time at the same work center) and (b) tasks that are modified in the target task configuration (i.e., performed at a different time, a different work center, or both).
[0062] For example, the system may show the set of tasks that are modified between the source configuration (e.g., before assigning tasks to a particular worker) and the target configuration (e.g., after assigning tasks to a particular worker) as (a) a grayed-out box in the source work center row at the source time and (b) a highlighted box in the target work center row at the target time. The system may change the appearance of tasks in the representation of the target configuration to indicate changes in task characteristics. For example, moving a worker from one work center to another to perform a particular task may result in a set of tasks that take longer to perform at the target work center. The system may lengthen the visual representation of the tasks at the target work center to indicate an estimate for the difference in time required to perform the tasks between the source work center / time and the target work center / time. Additionally or alternatively, moving a worker from one work center to another may result in a set of tasks that are performed after the assigned tasks and take a shorter amount of time to complete at the target work center than the amount of time it would take if the tasks at the target work center were not assigned to a worker. The system may shorten the visual representation of the task at the target work center to show an estimate for the difference in time required to perform the task between the source work center / time and the target work center / time. The visual depiction of the difference in time required to complete the task in the alternative task schedule may include a visual representation of a graphical element without corresponding text. Alternatively, the visual representation may include text indicating the change in time required to complete the task.
[0063] Assigning a task to a particular worker may require lead time to reconfigure equipment at the worker's work center. Thus, the system may display an additional task in the portion of the GUI representing the target work center that corresponds to the time required to calibrate equipment at the target work center to perform the assigned task. Similarly, assigning a task to a worker may require diverting material from another location to the target work center. Diverting material may create congestion in the work environment. Thus, the system may modify the start time of the task at the target work center to make up for delays caused by the predicted congestion in the work environment. Additionally, the system may display a depiction of the location of the predicted congestion in the visual representation of the work environment in the GUI.
[0064] The system may modify the display of tasks performed in the work center in response to receiving a selection of a different worker-task assignment selection tile. For example, selecting one worker-task assignment selection tile may result in a preview of the downstream effects of task assignment on tasks performed in the work environment. The manager may then select a different worker-task assignment selection tile to see a different preview of a different set of downstream effects corresponding to the selected worker.
[0065] Based on receiving a selection confirming the assignment of the task to a particular user, the system generates and sends instructions to the work center to implement a corresponding alternative task schedule. Generating instructions to implement the alternative task schedule includes modifying the set of tasks assigned to workers at the workstation. For example, when a task is assigned to one worker, the system may reassign one of the worker's tasks to another worker. If the task requires the worker to travel to a different work center, the system may reassign a different worker to travel to the previous worker's work center. The system may remove a set of tasks from a queue of tasks to be performed by one worker (to whom the task is assigned) at a first work center and add the set of tasks to a queue of tasks to be performed by one or more workers at another set of work centers. If the workers at the latter work centers have other tasks previously assigned to workers, the other tasks may be rescheduled for a different time for the same worker or transferred to another worker at another work center.
[0066] In some embodiments, when a user signs in to a work center terminal, the system provides the user with a set of available tasks for the user to perform. The system starts a particular task based on the user selecting the task in a user interface or based on detecting that the user has started performing the task. In such embodiments, the system (a) may detect that the user has started the task, such as by detecting the user's movement in a video stream corresponding to operations in the task, (b) may assign the task to the user (and may make the task unavailable to other users), and (c) may modify the display to indicate the operations to be performed to complete the task and / or modify work center equipment to facilitate performance of the task.
[0067] In some alternative embodiments, when a user signs in to a work center terminal, the system analyzes the set of tasks available to the user based on the user's entitlements and presents the user with the highest-ranked task among the available tasks. For example, one task may be to assemble a part at a work center. Another task may be to reset the configuration of a piece of equipment at the work center. The system may identify the latter task as having priority over the former task based on the latter task having a greater effect on on-time delivery performance metrics for a particular product. Thus, the system may present the user with the latter task to perform. Upon completion of the repair, the system may then present the user with the part assembly task to perform.
[0068] In some embodiments, the system modifies work center equipment based on detecting that a user has selected a task to perform. The system may record task start and end times. The system may turn on equipment, unlock equipment and / or materials, and modify the display of the user terminal to provide information for performing the task. The information may include step-by-step instructions, diagrams, deadline information, or any other information related to the task. In one or more embodiments, the system generates a notification to another user when a task has started. For example, the system may identify dependent tasks that cannot be performed before a parent task. When a user selects a parent task on the user terminal, the system may generate a notification to the user or set of users associated with the dependent task that the parent task has started.
[0069] According to yet another example, the system may skip operation 224 and assign tasks to particular candidate users from among a pool of candidate users without presenting candidates and / or performance metrics for user or administrator consideration. For example, the system may apply a set of rules to prioritize assignment of tasks to users based on criteria such as user availability, user efficiency, user success rate, match rate of user qualifications to task parameters, user experience level, user training qualification or certification, user experience level with a particular manager or a particular piece of equipment, etc.
[0070] According to one embodiment, the system tracks the time a user spends operating equipment. The system may store the tracked time in an employee database. The tracked time may be used toward completing a qualification on a particular piece of equipment or may be used to demonstrate a particular level of experience the user has with that equipment.
[0071] 4. Training the machine learning model
[0072] 3 illustrates an example set of operations for training a machine learning model to predict the downstream effects of assigning tasks to users, according to one or more embodiments. For example, once the system identifies a task to be performed, the system may generate a prediction of how assigning the task to a different user will affect additional tasks performed by the same user and other users at the same work center and other work centers within the work environment. The system obtains historical work environment performance data (operation 302). The historical work environment performance data includes which users performed the specified task, the equipment used to perform the task, the work center in the work environment where the task was performed, the materials used to perform the task, the user qualifications of the users who performed the task, the users' supervisors, success rates (e.g., whether the task was completed correctly), and recurrence rates (e.g., whether task resolution actually closed the task or whether the task had to be performed again within a specified period of time).
[0073] Once the various data (or a subset thereof) have been identified in operation 302, the system generates a set of training data (operation 304). The training data may include (a) a set of tasks assigned to a respective set of users and / or work centers in the work environment, and (b) at least one label for each set of tasks. Examples of labels include the user qualifications of the user who performed the task, the equipment used to perform the task, the work center in the work environment where the task was performed, the materials used to perform the task, information identifying the supervisor, manager, or other employee associated with the task, and performance metrics such as the time spent performing the task.
[0074] According to one embodiment, the system retrieves historical data and a training dataset from a data repository that stores labeled datasets. The training dataset may be generated and updated by the work environment management platform. Alternatively, the training dataset may be generated and maintained by a third party.
[0075] In some embodiments, generating a training dataset includes generating a set of feature vectors for labeled examples. The feature vector for an example may be n-dimensional, where n represents the number of features in the vector. The number of features selected may vary depending on the specific implementation. Features may be curated in a supervised approach or automatically selected from extracted attributes during model training and / or tuning. Exemplary features include performance metrics for the task, the identity of the worker who performed the task, worker qualifications, worker schedules, equipment data, and material data for the materials used to perform the task. In some embodiments, features in the feature vector are represented numerically by one or more bits. The system may convert categorical attributes to numeric representations using encoding schemes such as one-hot encoding, label encoding, and binary encoding. One-hot encoding generates a unique binary feature for each possible category in the original features. In one-hot encoding, when one feature has a value of 1, the remaining features have a value of 0. For example, if a task attribute has 10 different categories, the system may generate 10 different features for the input dataset. When one category is present (e.g., a value of "1"), the remaining features are assigned a value of "0." According to another example, the system may perform label encoding by assigning a unique numeric value to each category. According to yet another example, the system may perform binary encoding by converting the numeric value to binary and generating a new feature for each digit.
[0076] The system applies a machine learning algorithm to the training dataset (operation 306). The machine learning algorithm analyzes the training dataset to identify data and patterns that indicate relationships between input features, including user attributes of the users who performed the tasks, and downstream effects of the performance of the tasks on additional tasks in the work environment. Types of machine learning models include, but are not limited to, linear regression, logistic regression, linear discriminant analysis, classification and regression trees, naive Bayes, k-nearest neighbors, learning vector quantization, support vector machines, bagging and random forests, boosting, backpropagation, and / or clustering.
[0077] In some embodiments, the system iteratively applies a machine learning algorithm to a set of input data to generate an output set of labels, compares the generated labels to previously generated labels associated with the input data, adjusts the weights and offsets of the algorithm based on the error, and applies the algorithm to another set of input data.
[0078] In some embodiments, the system compares the labels evaluated by one or more iterations of the machine learning model algorithm with the observed labels to determine a prediction error (operation 308). The system may perform this comparison for a test set of examples, which may be a subset of examples in the training dataset that were not used to generate and fit the candidate model. The total prediction error for a particular iteration of the machine learning algorithm may be calculated in terms of the magnitude of the difference and / or the number of examples in which the predicted label was incorrectly predicted. In some embodiments, the system determines whether to adjust weights and / or other model parameters based on the prediction error (operation 310). Adjustments may be made until a candidate model is identified that minimizes the prediction error or otherwise achieves a threshold level of prediction error.
[0079] In some embodiments, the system selects machine learning model parameters based on a prediction error that meets a threshold accuracy level (operation 312). For example, the system may select a set of parameter values for the machine learning model based on determining that the trained model has an accuracy level for predicting that workers will be assigned to at least 98% of the tasks.
[0080] In some embodiments, the system trains the neural network using backpropagation. Backpropagation is the process of updating cell states in a neural network based on gradients determined with respect to estimation error. With backpropagation, nodes are assigned a portion of the estimation error based on their contribution to the output and are adjusted based on that portion. In recurrent neural networks, time is also a factor in the backpropagation process. As previously mentioned, a given set of training data includes tasks previously performed by users and corresponding attributes (user qualifications, equipment used or operated, and time required to complete the task). Each task assigned to a worker can be treated as a separate, individual moment in time. For example, a data set may include performed tasks c1, c2, and c3 corresponding to times t, t+1, and t+2, respectively. Backpropagation through time may perform adjustments by gradient descent, starting at time t+2 and moving backward in time to t+1 and then to t. Additionally, the backpropagation process may adjust the memory parameters of a cell so that the cell remembers the contribution from the previous cost in the sequence of costs. For example, a cell calculating the contribution for e3 may have a memory of the contribution of e2 that has a memory of e1. The memory may act as a feedback connection so that the output of a cell at one time (e.g., t) is used as the input to the next time in the sequence (e.g., t+1). Gradient descent techniques may undo these feedback connections so that the contribution of a set of tasks to a cell's output may influence the contribution of a set of tasks to the cell's output. The contribution of c1 may influence the contribution of c2, and so on. Thus, the model may learn relationships between sequences of tasks performed by a user.
[0081] Additionally or alternatively, the system may train other types of machine learning models. For example, the system may adjust the boundaries of a hyperplane in a support vector machine or node weights in a decision tree model to minimize estimation errors. Once trained, the machine learning model may be used against a recommended user or set of users to perform a task.
[0082] In an example of supervising an ML algorithm, the system may obtain feedback on whether a particular set of downstream effects should be attributed to a particular assignment of a task to a user (operation 314). The feedback may confirm a particular prediction of downstream effects. In another example, the feedback may indicate that a particular downstream effect should not be associated with a particular assignment of a task to a user. Based on the feedback, the machine learning training set may be updated, thereby improving its analytical accuracy (operation 316). Once updated, the system may further train the machine learning model by selectively applying the model to additional training datasets.
[0083] 5. Exemplary Embodiments
[0084] Detailed examples are described below for clarity. The components and / or operations described below should be understood as one particular example that may not be applicable to an embodiment. Therefore, the components and / or operations described below should not be construed as limiting the scope of any claims.
[0085] 4A-4C illustrate graphical user interface displays for selecting users for assignment to tasks and presenting predictions of the downstream effects of the predictions on task schedules, according to one exemplary embodiment.
[0086] As shown in FIG. 4A, GUI 410 includes a Gantt chart 411 that includes tasks 412 scheduled to be completed at work centers 413 within a manufacturing facility. Chart 411 includes a visual representation of tasks that are on-time, late, affected by equipment failure, and rescheduled. For example, if the execution of a task is affected by an equipment failure, the system may display the task in a different color than tasks that are not affected by the equipment failure. Chart 411 shows rows 431-436 of tasks that have been performed, are in the process of being performed, or are scheduled or forecasted to be performed at work centers 421-426, respectively.
[0087] In the exemplary embodiment shown in Figures 4A-4C, work center 421 is an assembly work center for assembling materials into parts. Row 431 shows tasks, represented by rectangles, performed by workers (or users or employees) identified in row 441. For example, rows 431 and 441 show tasks 431a-431c performed by a worker with employee ID number 224, task 431d currently being performed by an employee with EID 413, another task 431e scheduled to be performed by the employee with EID 413, and three more tasks 431f-431h scheduled to be performed by an employee with EID 224. Chart 411 shows tasks 431d and 431e as having longer linear dimensions than tasks 431a-431c based on an expectation that it will take longer for the employee with EID 413 to perform the tasks than it will take for the employee with EID 224 to perform the tasks. In other words, all tasks 431a-431h are the same task for assembling parts. The system analyzes user profile data, including efficiency and productivity data, to predict the time required to complete the task. Based on a determination that it takes longer for employee with EID 413 to perform the task than employee with EID 224, the system modifies the visual attributes of the interface element (e.g., rectangle) representing the task to reflect the difference in predicted time to complete the task for different users.
[0088] In the GUI 410 shown in FIGS. 4A-4C, work centers 413 include assembly work centers 421-423 where workers assemble parts, test-type work centers 424 and 425 where workers test assembled parts, and a quality assurance work center 426 where workers perform quality assurance checks on tested parts. Additionally, the GUI 410 shown in FIGS. 4A-4C shows rows 441-446 indicating which workers have performed / are currently performing / are scheduled or predicted to perform tasks at work centers 421-426. Multiple different workers may be working at the same work center. FIGS. 4A-4C show one worker working at one work center at a time. However, embodiments include multiple workers being able to work at one work center simultaneously. For example, some tasks may require more than one worker to complete. Other work centers may have space for two workers to work on different pieces of equipment simultaneously. Additionally, one or more embodiments track which workers are scheduled or predicted to work at a work center without displaying specific workers in GUI 410. When the system detects different users associated with a work center, the system analyzes user attributes, such as user performance metrics (e.g., how productive the worker is and what the worker's experience level is with the equipment at the work center), to determine (a) which tasks will be performed at the work center and (b) how long the worker will take to perform the tasks. For example, the system may predict or schedule one worker to perform a sequence of tasks A, B, and C at a work center. The system may predict or schedule another worker to perform the same task A, A, A repeatedly at the work center. The system may predict that one user will take 15 minutes to perform task A. The system may predict that another user will take 30 minutes to perform task A.
[0089] 4A-4C, GUI 410 includes task 437 that represents the repair and recalibration of a piece of equipment at test work center 424. For example, the system detects a fault in the equipment, generates a task to repair the equipment, and generates a representation of task 437 in GUI 410.
[0090] The system generates recommendations for assigning task 437 to workers. The system further applies machine learning models to predict the downstream effects of assigning tasks to workers. The system displays two tiles 414 and 415 corresponding to two options for assigning task 437 to workers. According to option 1 (tile 414), the system assigns the task to a worker with EID 413. According to option 2 (tile 415), the system assigns the task to a worker with EID 213. The user can select the tile associated with an option to see how the option affects scheduled tasks in all work centers. Additionally, the user can further customize task rescheduling by selecting and moving individual tasks, sets of tasks, and workers in GUI 410.
[0091] The system displays predicted performance metrics 418 and 419 associated with each option in tiles 414 and 415. For example, the system predicts that option 1 (tile 414) will result in 70% utilization, 70% OEE, no cost increase, and a 75% on-time delivery rate. The system predicts that option 2 (tile 415) will result in 75% utilization, 80% OEE, no cost increase, and an 87% on-time delivery rate. Figure 4A shows an example in which tiles 414 and 415 include the same set of performance metrics, but in one or more embodiments, the system displays the tiles with different performance metrics and / or with costs associated with assigning tasks to different users.
[0092] As shown in Figure 4B, when a user selects tile 414 associated with assigning task 437a to worker with EID 413, the system modifies GUI 410 to provide the user with a preview of the modification. Figure 4B shows bar 447a indicating that worker with EID 413 has been selected to be assigned to perform task 437a. The system displays downstream effects of assigning task 437a to worker with EID 413, including that tasks 431d and 431e may not be performed at work center 422 (as a result of tasks 431d and 431e not being performed to assemble the parts required for tasks 432a and 432b), tasks 433a-433c may not be performed (as a result of worker with EID 413 being unavailable), task 434a being performed (as a result of completion of task 437a), tasks 435a and 435b may not be performed (as a result of failure to perform tasks 433a-433c), and task 436a may not be performed (as a result of downtime at work center 424 during repair and recalibration task 437a). In GUI 410, the system displays a confirmation window 451 that includes a task assignment confirmation button 452 to allow the user to approve the displayed task assignment to the corresponding user (e.g., worker with EID 413).
[0093] As shown in FIG. 4C, when a user selects tile 415 associated with assigning task 437a to worker with EID 213, the system modifies GUI 410 to provide the user with a preview of the modification. FIG. 4C shows bar 447b indicating that worker with EID 213 has been selected to perform task 437a. The system displays downstream effects of assigning task 437a to worker with EID 213, including tasks 434b-434d being performed (resulting from the completion of task 437a). In FIG. 4C, GUI 410 displays task 437a shortened relative to FIGS. 4A and 4B, representing a system prediction based on user attributes indicating that the user has high productivity with respect to the MLRR machine, has a high production rate, and will complete the task faster than the average completion time. The system also displays a representation of task 436a in GUI 410 indicating that the task cannot be performed (resulting from downtime at work center 424 during repair and recalibration task 437a). In GUI 410, the system displays a confirmation window 451 that includes a task assignment confirmation button 452 to allow the user to approve the displayed task assignment to the corresponding user (e.g., worker with EID 413).
[0094] Based on receiving user input selecting button 454, the system assigns the task to the worker having EID 213. The system may send a notification, such as a voice or text message, to the worker indicating the assignment. Alternatively, the system may notify the worker of the assignment to a task in work center 424 when the worker logs into any of work centers 421-426.
[0095] 4A-4C illustrate an exemplary embodiment in which a user or administrator assigns tasks to users using a GUI, one or more embodiments assign tasks to users without using a GUI. For example, the system may apply a set of predetermined rules to identify a set of workers who are (a) qualified to perform the task and (b) authorized to perform the task. The system may apply a machine learning model to the worker attribute data and scheduling data to predict the downstream effects of assigning the task to each of the workers, respectively. Based on the predicted downstream effects, the system calculates corresponding predicted performance metrics for each assignment to each worker. The system compares the predicted performance metrics for the workers with predetermined thresholds to generate a subset of candidate workers to which the system can assign the task. If the system detects that any one of the candidate workers is logged in to a work center terminal, the system may assign the task to the candidate worker without any user or administrator input.
[0096] 6. Computer Networks and Cloud Networks
[0097] In one or more embodiments, a computer network provides connectivity among a set of nodes. The nodes may be local and / or remote from one another. The nodes are connected by a set of links. Examples of links include coaxial cable, unshielded twisted cable, copper cable, optical fiber, and virtual links.
[0098] A subset of nodes implements computer networks. Examples of such nodes include switches, routers, firewalls, and network address translators (NATs). Another subset of nodes uses computer networks. Such nodes (also called "hosts") may run client processes and / or server processes. A client process makes a request for a computing service (such as running a particular application and / or storing a particular amount of data). A server process responds by performing the requested service and / or returning corresponding data.
[0099] A computer network may be a physical network including physical nodes connected by physical links. A physical node is any digital device. A physical node may be a specific function hardware device, such as a hardware switch, a hardware router, a hardware firewall, and a hardware NAT. Additionally or alternatively, a physical node may be a generic machine configured to run various virtual machines and / or applications that perform respective functions. A physical link is a physical medium connecting two or more physical nodes. Examples of links include coaxial cable, unshielded twisted cable, copper cable, and optical fiber.
[0100] A computer network may be an overlay network. An overlay network is a logical network implemented on top of another network (e.g., a physical network). Each node in the overlay network corresponds to a respective node in the underlying network. Thus, each node in the overlay network is associated with both an overlay address (for addressing the overlay node) and an underlay address (for addressing the underlay node that implements the overlay node). An overlay node may be a digital device and / or a software process (e.g., a virtual machine, an application instance, or a thread). The links connecting overlay nodes are implemented as tunnels through the underlay network. The overlay nodes at each end of the tunnel treat the underlay multi-hop path between them as a single logical link. Tunneling is performed by encapsulation and decapsulation.
[0101] In one embodiment, a client may be local to and / or remote from a computer network. A client may access a computer network over a private network or another computer network, such as the Internet. A client may communicate a request to a computer network using a communication protocol, such as Hypertext Transfer Protocol (HTTP). The request is communicated through an interface, such as a client interface (e.g., a web browser), a program interface, or an application programming interface (API).
[0102] In one embodiment, a computer network provides connectivity between clients and network resources. The network resources include hardware and / or software configured to run server processes. Examples of network resources include processors, data storage, virtual machines, containers, and / or software applications. The network resources are shared among multiple clients. The clients request computing services from the computer network independently of each other. The network resources are dynamically allocated to requests and / or clients on an on-demand basis. The network resources allocated to each request and / or client may be scaled up or down based on, for example, (a) the computing services requested by a particular client, (b) the aggregated computing services requested by a particular tenant, and / or (c) the aggregated computing services requested from the computer network. Such a computer network may be referred to as a "cloud network."
[0103] In one embodiment, a service provider offers a cloud network to one or more end users. Various service models can be implemented by the cloud network, including, but not limited to, Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a-Service (IaaS). In SaaS, the service provider offers end users the ability to use the service provider's applications running on the network resources. In PaaS, the service provider offers end users the ability to deploy custom applications on the network resources. The custom applications can be created using programming languages, libraries, services, and tools supported by the service provider. In IaaS, the service provider offers end users the ability to configure the processing, storage, network, and other basic computing resources provided by the network resources. Any arbitrary application, including an operating system, can be deployed on the network resources.
[0104] In one embodiment, various deployment models may be implemented by a computer network, including, but not limited to, private cloud, public cloud, and hybrid cloud. In a private cloud, network resources are configured for exclusive use by a specific group of one or more entities (the term "entity" as used herein refers to a company, organization, person, or other entity). The network resources may be local to and / or remote from the facilities of the specific group of entities. In a public cloud, cloud resources are configured for multiple entities (also called "tenants" or "customers") that are independent of each other. The computer network and its network resources are accessed by clients corresponding to different tenants. Such a computer network may be referred to as a "multi-tenant computer network." Several tenants may use the same specific network resources at different times and / or the same time. The network resources may be local to and / or remote from the tenant's facilities. In a hybrid cloud, the computer network includes a private cloud and a public cloud. An interface between the private cloud and the public cloud enables data and application portability. Data stored in the private cloud and data stored in the public cloud may be exchanged through the interface. Applications implemented in the private cloud and applications implemented in the public cloud may have dependencies on each other, and calls from applications in the private cloud to applications in the public cloud (and vice versa) may be made through interfaces.
[0105] In one embodiment, tenants of a multi-tenant computer network are independent of one another. For example, the business or operations of one tenant may be separate from the business or operations of another tenant. Different tenants require different network requirements for the computer network. Examples of network requirements include processing speed, amount of data storage, security requirements, performance requirements, throughput requirements, latency requirements, resilience requirements, Quality of Service (QoS) requirements, tenant isolation, and / or consistency. The same computer network may need to implement different network requirements required by different tenants.
[0106] In one or more embodiments, in a multi-tenant computer network, tenant isolation is implemented to ensure that applications and / or data of different tenants are not shared with each other. Various tenant isolation approaches may be used.
[0107] In one embodiment, each tenant is associated with a tenant ID. Each network resource in a multi-tenant computer network is tagged with a tenant ID. A tenant is granted access to a particular network resource only if the tenant and the particular network resource are associated with the same tenant ID.
[0108] In one embodiment, each tenant is associated with a tenant ID. Each application implemented by the computer network is tagged with a tenant ID. Additionally or alternatively, each data structure and / or dataset stored by the computer network is tagged with a tenant ID. A tenant is granted access to a particular application, data structure, and / or dataset only if the tenant and the particular application, data structure, and / or dataset are associated with the same tenant ID.
[0109] As one example, each database implemented by a multi-tenant computer network may be tagged with a tenant ID. Only the tenant associated with the corresponding tenant ID may access the data in a particular database. As another example, each entry in a database implemented by a multi-tenant computer network may be tagged with a tenant ID. Only the tenant associated with the corresponding tenant ID may access the data in a particular entry. However, a database may be shared by multiple tenants.
[0110] In one embodiment, the subscription list indicates which tenants are authorized to access which applications. For each application, a list of tenant IDs of tenants authorized to access the application is stored. A tenant is granted access to a particular application only if the tenant's tenant ID is included in the subscription list corresponding to the particular application.
[0111] In one embodiment, network resources (such as digital devices, virtual machines, application instances, and threads) corresponding to different tenants are isolated in tenant-specific overlay networks maintained by a multi-tenant computer network. As an example, packets from any source device in a tenant overlay network can be transmitted only to other devices within the same tenant overlay network. An encapsulation tunnel is used to prevent any transmission from a source device in a tenant overlay network to a device in another tenant overlay network. In particular, a packet received from a source device is encapsulated within an outer packet. The outer packet is transmitted from a first encapsulation tunnel endpoint (communicating with a source device in the tenant overlay network) to a second encapsulation tunnel endpoint (communicating with a destination device in the tenant overlay network). The second encapsulation tunnel endpoint decapsulates the outer packet to obtain the original packet transmitted by the source device. The original packet is transmitted from the second encapsulation tunnel endpoint to a destination device in the same specific overlay network.
[0112] 7. Other; Extensions
[0113] Embodiments are directed to systems comprising one or more devices that include a hardware processor and are configured to perform any of the operations described herein and / or recited in any of the claims below.
[0114] In one embodiment, a non-transitory computer-readable storage medium contains instructions that, when executed by one or more hardware processors, result in the performance of any of the operations described herein and / or recited in any of the claims.
[0115] Any combination of the features and functions described herein may be used in accordance with one or more embodiments. In the foregoing specification, the embodiments are described with reference to numerous specific details that may vary from implementation to implementation. Accordingly, the specification and drawings should be regarded in an illustrative rather than a restrictive sense. The only comprehensive indicator of the scope of the invention, and what is intended by the applicant to be the scope of the invention, is the literal equivalent range of the set of claims issuing from this specification in the specific form in which such claims issue, including any subsequent amendments.
[0116] 8. Hardware Overview
[0117] According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing device may be hardwired to execute the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or network processing units (NPUs) persistently programmed to execute the techniques, or may include one or more general-purpose hardware processors programmed to execute the techniques according to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may combine custom hardwired logic, ASICs, FPGAs, or NPUs with custom programming to achieve the techniques. The special-purpose computing device may be a desktop computer system, a portable computer system, a handheld device, a networking device, or any other device incorporating hardwired and / or program logic to implement the techniques.
[0118] 5 is a block diagram illustrating a computer system 500 in which one embodiment of the invention may be implemented. Computer system 500 includes a bus 502 or other communication mechanism for communicating information, and a hardware processor 504 coupled with bus 502 for processing information. Hardware processor 504 may be, for example, a general-purpose microprocessor.
[0119] Computer system 500 also includes a main memory 506, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 502 for storing information and instructions executed by processor 504. Main memory 506 may also be used for storing temporary variables or other intermediate information during execution of instructions for execution by processor 504. Such instructions, when stored on a non-transitory storage medium accessible to processor 504, render computer system 500 a special-purpose machine customized to perform the operations specified in the instructions.
[0120] Computer system 500 further includes a read-only memory (ROM) 508 or other static storage device coupled to bus 502 for storing static information and instructions for processor 504. A storage device 510, such as a magnetic disk or optical disk, is provided and coupled to bus 502 for storing information and instructions.
[0121] Computer system 500 may be coupled via bus 502 to a display 512, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 514, including alphanumeric and other keys, is coupled to bus 502 for communicating information and command selections to processor 504. Another type of user input device is a cursor control 516, such as a mouse, trackball, or cursor direction keys, for communicating directional information and command selections to processor 504 and for controlling cursor movement on display 512. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allow the device to specify a position in a plane.
[0122] Computer system 500 may implement the techniques described herein using customized hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic that, in combination with the computer system, renders or programs computer system 500 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 500 in response to processor 504 executing one or more sequences of one or more instructions contained in main memory 506. Such instructions may be read into main memory 506 from another storage medium, such as storage device 510. Execution of the sequences of instructions contained in main memory 506 causes processor 504 to perform the process steps described herein. In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions.
[0123] The term "storage medium" as used herein refers to any non-transitory medium that stores data and / or instructions that cause a machine to operate in a specific manner. Such storage media may include non-volatile media and / or volatile media. Non-volatile media include, for example, optical or magnetic disks, such as storage device 510. Volatile media include dynamic memory, such as main memory 506. Common forms of storage media include, for example, floppy disks, flexible disks, hard disks, solid-state drives, magnetic tape, or any other magnetic data storage medium, CD-ROMs, any other optical data storage medium, any physical medium with a pattern of holes, RAM, PROM, and EPROM, flash EPROM, NVRAM, any other memory chip or cartridge, content addressable memory (CAM), and ternary content addressable memory (TCAM).
[0124] Storage media is distinct from but may be used in conjunction with transmission media. Transmission media involves transmitting information between storage media. For example, transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise bus 502. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
[0125] Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 504 for execution. For example, the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 500 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector can receive the data carried in the infrared signal and appropriate circuitry can place the data on bus 502. Bus 502 carries the data to main memory 506, from which processor 504 retrieves and executes the instructions. The instructions received by main memory 506 may optionally be stored on storage device 510 either before or after execution by processor 504.
[0126] Computer system 500 also includes a communication interface 518 coupled to bus 502. The communication interface 518 provides a two-way data communication coupling to a network link 520 that is connected to a local network 522. For example, the communication interface 518 may be an Integrated Services Digital Network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, the communication interface 518 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. A wireless link may also be implemented. In any such implementation, the communication interface 518 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
[0127] Network link 520 typically provides data communication through one or more networks to other data devices. For example, network link 520 may provide a connection through local network 522 to a host computer 524 or to data equipment operated by an Internet Service Provider (ISP) 526. ISP 526 in turn provides data communication services through the world-wide packet data communication network now commonly referred to as the "Internet" 528. Local network 522 and Internet 528 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 520 and through communication interface 518, which carry the digital data to and from computer system 500, are exemplary forms of transmission media.
[0128] Computer system 500 can send messages and receive data, including program code, through the network(s), network link 520 and communication interface 518. In the Internet example, a server 530 might transmit a requested code for an application program through Internet 528, ISP 526, local network 522 and communication interface 518.
[0129] The received code may be executed by processor 504 as it is received, and / or stored in memory device 510, or other non-volatile storage for later execution.
[0130] In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Accordingly, the specification and drawings should be regarded in an illustrative rather than a restrictive sense. The sole and comprehensive indicator of the scope of the invention, and what is intended by the applicant to be the scope of the invention, is the literal equivalent range of the set of claims issuing from this specification in the specific form in which such claims issue, including any subsequent amendments.
Claims
1. A program for causing one or more hardware processors to perform an operation, wherein the operation is: This includes identifying a first task corresponding to a first set of task parameters, wherein the first set of task parameters includes at least one piece of equipment associated with the execution of the first task and a first set of user credentials recommended for performing the first task. The first set of user credentials is further compared with multiple sets of user credentials corresponding to multiple users, In response to comparing a first set of user credentials with a plurality of sets of user credentials corresponding to the plurality of users, the further includes identifying a first user having user credentials that match the first set of user credentials recommended for the first task, The process further includes retrieving first task execution information for the first user, wherein the first task execution information includes at least one of (a) scheduling information and (b) past task completion information for the first user. The process further includes generating a first candidate task schedule for the first user, which includes assigning the first task to the first user, based on the first task execution information. The process further includes applying a machine learning model to the first candidate task schedule to predict a first downstream effect of assigning the first task to the first user, wherein the first downstream effect includes an effect on the execution of one or more tasks in the second task schedule. The first downstream effect is a program that includes a first modification to the second task schedule.
2. The first task execution information is, The program according to claim 1, comprising at least one of scheduling information for the first user, including one or more tasks assigned to the first user, the time when the first user is available to perform the tasks, the success rate of the first user based on previously completed tasks, and the productivity of the first user corresponding to the length of time it takes for the first user to complete the tasks.
3. Applying the machine learning model to the first candidate task schedule is The first candidate task schedule mentioned above, (a) the equipment required to perform the first task, and (b) one or more sets of equipment corresponding to one or more work centers corresponding to the performance of one or more additional tasks in the second task schedule, and The program according to claim 1 or 2, further comprising applying the machine learning model to a set of input data including at least one of the following: (a) materials required to perform the first task, and (b) material properties of one or more sets of materials corresponding to the performance of one or more additional tasks in the second task schedule.
4. The aforementioned operation is In a graphical user interface (GUI), a first digital representation of the second task schedule is generated, Modifying the first digital representation of the second task schedule to include an interface element that displays the first task in order to generate a second digital representation of the third task schedule that includes the first task, It further includes, The program according to claim 1 or 2, wherein the second digital representation represents the first task related to the first user.
5. The second task schedule includes a first configuration of a set of tasks to be performed in multiple work centers in the work environment, The program according to claim 1 or 2, wherein predicting the first downstream effect of assigning the first task to the first user includes predicting delays in executing one or more tasks in the second task schedule resulting from including the first task in the second task schedule.
6. The aforementioned operation is In response to comparing a first set of user credentials with a plurality of sets of user credentials corresponding to the plurality of users, the further includes identifying a filtered set of users, including the first user, who has user credentials that match the first set of user credentials recommended for the first task. The program according to claim 1 or 2, wherein applying the machine learning model to the first candidate task schedule for the first user is performed in response to detecting a selection of the first user from a filtered set of users.
7. The aforementioned operation is The graphical user interface (GUI) further includes displaying a first task assignment selection tile corresponding to the first user and a second task assignment selection tile corresponding to the second user within the filtered set of users, The program according to claim 6, wherein detecting the selection of the first user from the filtered set of users includes detecting user interaction with the first task assignment selection tile.
8. The program according to claim 6, wherein detecting the selection of the first user from the filtered set of users includes detecting a first login by the first user to the first terminal running the task management application, before detecting any logins by any other users in the filtered set of users to any terminal running the task management application.
9. The aforementioned operation is In response to comparing a first set of user credentials with a plurality of sets of user credentials corresponding to the plurality of users, a second user having user credentials that match the first set of user credentials recommended for the first task is identified. Searching for second task execution information for the second user, The process further includes generating a second candidate task schedule for the second user, which includes assigning the first task to the second user based on the second task execution information, The process further includes applying the machine learning model to a second candidate task schedule to predict a second downstream effect of assigning the first task to the second user, wherein the second downstream effect includes an effect on the execution of one or more tasks in the second task schedule. The program according to claim 1 or 2, wherein the second downstream effect includes a second modification to the second task schedule.
10. The aforementioned operation is The process further includes training the machine learning model to predict the downstream effects of assigning tasks to users, wherein the training is performed This includes obtaining training datasets, and each training dataset is: Historical task schedule data describing tasks performed by users in the work center, The work center includes past user data of the user performing the task, wherein the past user data includes past user qualifications, past work history data, past task completion success rate, and past time to complete the task. The program according to claim 1 or 2, further comprising training the machine learning model based on the training dataset.
11. The aforementioned operation is This further includes detecting faults in the work environment, In response to detecting the failure, the method further includes generating a set of task parameters for a new task, the set of task parameters including a first set of user credentials for performing the new task. The program according to claim 1 or 2, wherein comparing a first set of user credentials with a plurality of sets of user credentials corresponding to a plurality of users is performed in response to generating a set of task parameters for the new task.
12. A method performed by one or more hardware processors, This includes identifying a first task corresponding to a first set of task parameters, wherein the first set of task parameters includes at least one piece of equipment associated with the execution of the first task and a first set of user credentials recommended for performing the first task. The aforementioned method, The first set of user credentials is further compared with multiple sets of user credentials corresponding to multiple users, The aforementioned method, In response to comparing a first set of user credentials with a plurality of sets of user credentials corresponding to the plurality of users, the further includes identifying a first user having user credentials that match the first set of user credentials recommended for the first task, The aforementioned method, The process further includes retrieving first task execution information for the first user, wherein the first task execution information includes at least one of (a) scheduling information and (b) past task completion information for the first user. The aforementioned method, The process further includes generating a first candidate task schedule for the first user, which includes assigning the first task to the first user based on the first task execution information, The aforementioned method, The process further includes applying a machine learning model to the first candidate task schedule to predict a first downstream effect of assigning the first task to the first user, wherein the first downstream effect includes an effect on the execution of one or more tasks in the second task schedule. The first downstream effect is a method comprising a first modification to the second task schedule.
13. The first task execution information is, The method according to claim 12, further comprising at least one of the scheduling information for the first user, including one or more tasks assigned to the first user, the time the first user is available to perform the tasks, the success rate of the first user based on previously completed tasks, and the productivity of the first user corresponding to the length of time it takes for the first user to complete the tasks.
14. Applying the machine learning model to the first candidate task schedule is The first candidate task schedule mentioned above, (a) the equipment required to perform the first task, and (b) one or more sets of equipment corresponding to one or more work centers corresponding to the performance of one or more additional tasks in the second task schedule, and The method according to claim 12 or 13, further comprising applying the machine learning model to a set of input data including at least one of the material properties of (a) materials required to perform the first task, and (b) material properties of one or more sets of materials corresponding to the performance of one or more additional tasks in the second task schedule.
15. In a graphical user interface (GUI), a first digital representation of the second task schedule is generated, To generate a second digital representation of a third task schedule including the first task, the first digital representation of the second task schedule is modified to include an interface element representing the first task, It further includes, The method according to claim 12 or 13, wherein the second digital representation represents the first task related to the first user.
16. The second task schedule includes a first configuration of a set of tasks to be performed in multiple work centers in the work environment, The method according to claim 12 or 13, wherein predicting the first downstream effect of assigning the first task to the first user includes predicting delays in performing one or more tasks in the second task schedule resulting from including the first task in the second task schedule.
17. In response to comparing a first set of user credentials with a plurality of sets of user credentials corresponding to the plurality of users, the further includes identifying a filtered set of users, including the first user, that has user credentials matching the first set of user credentials recommended for the first task, The method according to claim 12 or 13, wherein applying the machine learning model to the first candidate task schedule for the first user is performed in response to detecting the user's selection from a filtered set of users.
18. The method according to claim 17, wherein detecting the selection of the first user from the filtered set of users includes detecting a first login by the first user to the first terminal running the task management application, before detecting any logins by any other users in the filtered set of users to any terminal running the task management application.
19. The process further includes training the machine learning model to predict the downstream effects of assigning tasks to users, wherein the training is performed This includes obtaining training datasets, and each training dataset is: Historical task schedule data describing tasks performed by users in the work center, The work center includes past user data of the user performing the task, wherein the past user data includes past user qualifications, past work history data, past task completion success rate, and past time to complete the task. The aforementioned method, The method according to claim 12 or 13, further comprising training the machine learning model based on the training dataset.
20. It is a system, One or more processors, A memory that stores instructions for causing the system to perform an operation when executed by one or more of the aforementioned processors, The operation includes, This includes identifying a first task corresponding to a first set of task parameters, wherein the first set of task parameters includes at least one piece of equipment associated with the execution of the first task and a first set of user credentials recommended for performing the first task. The first set of user credentials is further compared with multiple sets of user credentials corresponding to multiple users, In response to comparing a first set of user credentials with a plurality of sets of user credentials corresponding to the plurality of users, the further includes identifying a first user having user credentials that match the first set of user credentials recommended for the first task, The process further includes retrieving first task execution information for the first user, wherein the first task execution information includes at least one of (a) scheduling information and (b) past task completion information for the first user. The process further includes generating a first candidate task schedule for the first user, which includes assigning the first task to the first user, based on the first task execution information. The process further includes applying a machine learning model to the first candidate task schedule to predict a first downstream effect of assigning the first task to the first user, wherein the first downstream effect includes an effect on the execution of one or more tasks in the second task schedule. The first downstream effect is a system including a first modification to the second task schedule.