A solution for producing a dynamic production schedule and allocating tasks from the production schedule
The system addresses inefficiencies in task scheduling by using constraint logic programming to automate real-time optimization and task allocation in dynamic environments, improving efficiency and quality.
Patent Information
- Application Number
- PCT/IS2024/050019
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-11
- Filing Date
- 2024-12-11
- Publication Date
- 2025-06-19
AI Technical Summary
Existing methods for task scheduling and assignment in dynamic and collaborative environments, such as commercial kitchens, are inefficient and prone to errors due to reliance on manual processes and lack of real-time optimization.
A system utilizing constraint logic programming over finite domains with a feedback mechanism to automate the dynamic optimization and allocation of tasks in real-time, ensuring that strong and weak constraints are met.
The system enhances the efficiency and quality of task execution by optimizing task order and assignment, reducing waste and errors, and improving communication and resource allocation.
Smart Images

Figure IS2024050019_19062025_PF_FP_ABST
Abstract
Description
[0001] A solution for producing a dynamic production schedule and allocating tasks from the production schedule.
[0002] FIELD OF INVENTION
[0003] This disclosure relates to just-in-time task assignment. More specifically, it pertains to a system and method for automated task optimization and allocation of tasks to workers using the constraint logic programming over finite domains paradigm with a feedback mechanism for the workers. The invention is useful for controlling and assigning tasks to produce a product or service in highly collaborative environments ofworkers where work conditions require the product or service has to be produced under the conditions of fulfilling a set of strong constraints such as commercial kitchens where kitchen staff is producing a big variety of dishes through interrelated tasks under clearly defined (strong) constraints such as dependency and time-sensitive constraints.
[0004] BACKGROUND
[0005] The production of high-quality products or services typically involves a clearly defined workflow outlined in a production manual (in the context of kitchen also referred to as a recipe or as standard of operation (SOP) guideline. The production manual of a product or service is typically comprising multiple production steps (also referred to as tasks) which are often interdependent on each other, i.e., the tasks may comprise a dependency on another task. Furthermore, a selection of tasks is sensitive to the execution method and time, outlining a series of strong constraints that must be met in order to ensure the quality of the product or service and often paired with a series of weak constraints that are desirable but need not necessarily be met. They can at times be compromised in order to optimise the workflow. Such production lines often involve highly dynamic and collaborative environments of employees, potentially also digital agents or robots (also referred to as workers), wherein each worker may have a particular skillset and / or qualifications and is assigned to execute one or more specific tasks. The production line is usually controlled by a supervisor and the means of communications between the supervisor and workers is most often verbal and / or through snippets of paper. The efficiency and effectiveness of such operations, the skilful timing and assignment of tasks to individual workers by the supervisor and the communication between workers plays a crucial role in the production process to ensure the high-quality of the product and furthermore to reduce the production time and overall enhance the satisfaction level of a customer. Additionally, by optimizing the production and improving communication, the amount of wasted material may be significantly reduced and possibilities of human error at least partially alleviated.
[0006] Prior art methods exist for personalized scheduling for workers in IT or healthcare such as the solution disclosed in W02021012020A1 which provides a solution for generating a personalized work schedule, over long periods of times e.g., days and weeks, based on incoming tasks and / or appointments and history of incoming tasks and / or appointments, i.e., it provides a solution for the generation of work calendars. Such prior art methods use methods such as linear programming, genetic algorithms or machine learning / neural network on large amounts of historic data. Such solutions may be useful for fitting and arranging incoming tasks into a personalized and optimized calendar of a user. However, such solutions are not applicable for real-time and on-the-fly dynamic scheduling and task assignments in rapidly evolving and collaborative environments, where the rapid evolution of the production-line generated by a stream of newly incoming production orders requires a high degree of discipline and flexibility of the work force in order to fulfill the production orders, where time and connectivity of individual tasks for all products within the production orders need to be respected.
[0007] One example of such highly collaborative environment is commercial kitchens, wherein the products may be high-quality dishes ordered on-demand by the customers.
[0008] The traditional way of communication between workers in commercial kitchens is to use paper strips for each dish order that is printed at the restaurant counter and handed over to the kitchen, where the head chef or other leading cooks would assign tasks to their subordinates. In case of more complicated assignments, kitchen staff would even make use of notepads, where they would clearly write down their tasks and then start on executing them. In order to fulfil the crucial (strong) time constraints of their recipe or SOP guideline, kitchen staff make use of very simple digital timers and / or stopwatches for measuring the time of such crucial cooking and / or baking tasks.
[0009] SUMMARY
[0010] The present invention provides a solution to replace the prior art analogue methods of task scheduling and assignment with an enhanced integrated electronic version accompanied by a central planning system that can alleviate pressure from the supervisor by automating the task assignment in real-time and in rapidly evolving environments. This enables the supervisor more time for guidance and supervision of their staff and ensures the high-quality of products produces, while also minimizing the amount of wasted raw materials and products (e.g. due to violations of the standard of operations, e.g. incorrect timing, forgotten production steps etc.).
[0011] In contrast to the solutions known in the art, the present invention provides a solution for real-time task assignments and task allocation from a predefined break up / decomposition scheme of production orders (e.g., recipes of dishes in the context of restaurants) into individual, interconnected and timesensitive tasks, wherein the solution provides an automated and dynamic task optimization and allocation of tasks to workers that respects / fulfills the interconnection and time-sensitivity of the tasks.
[0012] The solution provided by the present invention is highly useful for controlling and assigning tasks to produce a product in highly collaborative and rapidly evolving environments of workers such as commercial kitchens where a plurality of dishes of different types must be finished within a set time limit and of high quality to satisfy customers and with the goal of reducing slips and oversights that might lead to additional waste of raw materials and manpower. One of solutions provided herein involves using constraint logic programming over finite domains paradigm together with a combination of strong and weak constraints and target objectives (with a feedback mechanism forthe workers) to provide a solution for optimization of a plurality of simultaneous tasks in a real-time environment to ensure high quality outcome of tasks within a set time limit.
[0013] In contrast to prior art solutions using methods such as linear programming, genetic algorithms or machine learning I neural network over large amounts of historic data, the present invention models its target objective as a constraint satisfaction problem with a combination of strong and weak constraints upon a large set of discrete input parameters (e.g. number of employees, number of production orders or for each type of product received by the central planning server at any given time). The present invention then employs constraint-logic programming over finite domain paradigm to provide a solution for optimization of a plurality of simultaneous tasks in a real-time environment to ensure high quality outcome of tasks within a set time limit.
[0014] As new information reaches the central planning server (such as new incoming orders, feedback / intermission requests by the employees etc), the constraint satisfaction problem definition is updated (adding, removing or amending constraints) which eventually will lead to an updated solution of the problem.
[0015] One of the solutions provided herein comprises an electronic device (also referred to as a client) and a central planning server comprising a database of product production manuals. In the setting of a restaurant, this database of product production manuals is a database of recipes.
[0016] The central planning server and the at least one electronic device communicate, e.g., wirelessly, informing a worker about the next task, which the worker then executes and signals the central planning server about the execution of the task. The central planning server receives incoming production orders and utilises a symbolic artificial intelligence engine to optimise the assignment of tasks to workers (the task flow) in real time. To fulfil a production order, workers typically must collaborate by executing one or more tasks that often have clear (inter-)dependencies on each other. Contrary to a typical production line, however, where one worker has a very limited set of skills and a very dedicated position on the production line, the present invention, enables employees to be assigned to a broader range of tasks (allowing though exclusions from a certain group of e.g., highly skilled tasks or limitations due to the employee’s work position).
[0017] Furthermore, the dependency constraints can be defined in a very flexible way, in terms of the minimum lag between tasks, the task duration and the work duration required for successfully finishing a task. It is important to stress that these time constraints are strong constraints as very limited tolerance of flexibility can be allowed for certain production steps (e.g., frying, cooking or baking time within a kitchen environment). In contrast when using statistical methods such as semantic networks or machine learning, constraints are typically maintained only approximately. Employing linear programming methods on the other hand are also not practical because the underlying problem contains many integer variables (small number of product orders, limited amount of production resources, such as workers or equipment), and solving integer programming problems are often exponentially more challenging than their linear programming counterparts, leading to very long calculation times impractical for solving real-time problems.
[0018] The use of interdependency and time constraints for certain production steps / tasks, such as frying, cooking or baking time within a kitchen environment, where very limited tolerance is allowed, provides an advantage and solution to fulfill time sensitive tasks and achieve demanding target objectives.
[0019] One of solutions provided herein assists with (micro-)management of humans, the solution needs to be tolerant to human needs and to fulfil legal requirements e.g., on maximum working hours or break time regulations. Therefore, the electronic device comes with a feedback functionality, where workers can for an example confirm the completion of a certain task and receive a new assignment, and a request functionality, where employees can actively request e.g., a break (also referred to as an intermission) from the central planning server, so that the worker is taken out of the planning consideration. The present invention provides a solution being highly useful for the management of kitchens in a restaurant (also referred to as commercial kitchens) where the kitchen head chefs break down recipes of dishes into a sequence of work tasks, a priori. These work tasks may comprise strong time constraints with very limited tolerance when thinking about the time duration of frying, boiling, or baking a certain dish. Furthermore, these tasks are highly inter-dependent on each other.
[0020] For such kitchen management solutions, the kitchen head chefs are required to build up a production manual database comprising the tasks and associated constraints for the available dishes, a priori (typically referred to as SOPs (standard of operation procedures) of each dish). The present invention uses this decomposition of recipes into tasks and constraints along with a symbolic artificial intelligence engine to produce a highly optimized production schedule that aids chefs and other staff members to improve the quality standards of the commercial kitchen and to provide customers with consistent high- quality dishes. While also circumventing the regular problem of having the head chef closely supervising and advising other chefs and the support staff. Furthermore, the situation in a restaurant kitchen may become particularly complex due to high time pressure and the big variety in the incoming flow of orders. Therefore, the present invention may aid in planning and optimally controlling the flow of orders and thus alleviating the high time pressure on the employees and in particular on the head chef. Furthermore, worker regulations, worker skillset and availability may be considered automatically in the present invention, by defining a set of constraints related to regulations, skillset, and availability of the workers. Furthermore, limitations and / or availability of certain equipment or machinery needed to carry out selected tasks may need to be taken into account as well as opportunities of optimisation through batch-processing, e.g. when a limited set of very frequently occurring tasks (or in some cases even dishes or product orders) can be combined together and carried-out almost at once requiring only a limited amount of additional processing time. They can be modelled through respective constraints being formulated and thus be automatically considered by the present invention when producing a production schedule.
[0021] The present invention is based on the principle of expanding the production process of a high-quality product into a series of dependent production steps (tasks) and making use of a symbolic artificial intelligence engine, in order to enforce high quality standards, reduce waste, improve staff allocation and to improve communication between staff members working on a product through the use of strong (and potentially weak) constraints and hence overall improve customer satisfaction.
[0022] The present invention focuses on individually produced high-quality products, wherein the optimisation target is typically minimization of wasted raw materials, worker efficiency and maximization of the quality for the production of a single or several products instead of optimizing the production of large quantities of products. Given these (comparably large variety of products, few workers and small quantities), the Applicant realized that choice of constraint logic programming over finite domains is an improved choice for an artificial intelligence engine. In contrast to other methods (such as but not limited to linear programming methods, genetic algorithms or machine learning methods), constraint logic programming over finite domains deals very well with (NP-complete) small integer domain problems that need to fulfil strong and time-critical constraints.
[0023] According to an aspect of the present invention, a management system for producing a dynamic production schedule and allocating tasks from the production schedule to at least one client assigned to at least one worker, comprising: a first memory device; a first processing device, coupled to the first memory device, configured to: receive a plurality of production orders, expanding the plurality of production orders into a plurality of tasks and associated constraints using a database of production order manuals, dynamically compiling a production schedule by optimizing the order and assignment of plurality of tasks according to a target objective, using a constraint logic programming engine over finite domains and the constraints associated with the plurality of tasks, wherein the associated constraints are enforced in the resulting optimized order and assignment, and, allocating tasks to at least one client according to the production schedule; and, at least one electronic client assigned to at least one worker and communicably coupled to the first processing device, the client comprising a: a second memory device; a second processing device, coupled to the second memory device, configured to: receive the allocated task, output the allocated task to the worker, allow the user to signal completion of a task and / or request an intermission, wherein the signal of completion and / or request an intermission to the first processing device, and wherein the first processing device updates the dynamic production schedule in response thereto.
[0024] According to an aspect of the present invention, a server system is provided, the server system comprising: a memory allocation defined by: a data store storing an executable asset; a working memory allocation; and, a processor allocation configured to load the executable asset from the data store into the working memory allocation to instantiate an instance of a management service configured to: communicably couple to an input device for receiving a plurality of production orders, retrieving an expansion of production order for the plurality of production orders from a production manual database, wherein the production manual database comprises expansions of production orders into a plurality of tasks and constraints associated with each production order and task, expanding the plurality of production orders into a plurality of tasks and associated constraints using the expansion of production orders, dynamically compiling a production schedule by optimizing the plurality of tasks and assignment of the plurality of tasks to one or more workers according to a target objective using a constraint logic programming engine over finite domains and the constraints associated with the plurality of tasks, wherein the associated constraints are enforced in the optimized order and assignment, and, commu- nicably couple to at least one client assigned to a worker configured to receive tasks of the production schedule, wherein the at least one client comprises an output means to display the received tasks and a feedback module to allow the worker to request an intermission and / or signal a completion of a task, and in response the processor allocation signals and / or updates the production schedule.
[0025] In an aspect of the present invention, an integrated system for producing a dynamic production schedule and allocating tasks from the production schedule to at least one device used by at least one worker, is provided. The system comprising: a) an input module configured for receiving a plurality of production orders, b) a central planning module for receiving the plurality of production orders from the input module; c) a production manual database module for expansion of production orders into a plurality of tasks, and wherein the production manual database module further comprises constraints associated with each production order and task, d) a constraint logic programming (engine) module for dynamically compiling a production schedule by optimizing the order and assignment of plurality of tasks according to a target objective and the constraints associated with the plurality of tasks, wherein at least one of the associated constraint is enforced in the optimized order, e) a distribution module for allocating tasks to at least one client according to the production schedule, f) at least one client module assigned to a worker configured to receive tasks from the production schedule, where the at least one client module further comprises an output for displaying received tasks.
[0026] According to an aspect of the present invention, a system for producing a dynamic production schedule and allocating tasks from the production schedule to at least one client assigned to at least one worker, comprising: an input means configured for receiving a plurality of production orders and transferring the plurality of production orders to a central planning server; a central planning server, comprising: a production manual database, wherein the production manual database comprises: an expansion of production orders into a plurality of tasks and constraints associated with each production order and task, a production pipeline configured to: expand the received plurality of production orders into a plurality of tasks and associated constraints using the production manual database, dynamically compiling a production schedule by optimizing the order and assignment of plurality of tasks according to a target objective, using a constraint logic programming engine over finite domains and the constraints associated with the plurality of tasks, wherein the associated constraints are enforced in the resulting optimized order and assignment, and, a distribution module for allocating tasks to at least one client according to the production schedule; and, at least one client assigned to a worker configured to receive tasks from the production schedule, comprising: an output for displaying received tasks, a feedback module configured to communicate with the central planning server and allow the worker to request an intermission and a signal of completion through interactive members, wherein the request for intermission is configured to signal the central planning server of the request for intermission for the worker for updating the production schedule accordingly, and wherein the signal of completion is configured to display a subsequent task to the worker according to the production schedule using the output and inform the central planning server of completed task to update the production schedule.
[0027] The following definitions and embodiments relate to all aspects of methods, systems, computer programs, databases and apparatuses of the invention.
[0028] Herein, the term “production pipeline” may collectively referto any software and / or hardware configured to receive and process one or more, or plurality of, production orders, expand the production orders into a plurality of tasks and constraints associated with the tasks and constraints (e.g., by accessing a data storage comprising a production manual database), optionally preprocessing of the expanded production orders, formulating of a constraint problem and employing a constraint logic programming engine over finite domains and using that engine to search for a valid solution to the constraint problem, i.e., to find an optimized order of plurality of tasks and assignment under the condition that all (strong) constraints associated with the plurality of tasks are met.
[0029] The system may comprise a central planning server for receiving at least one production order, expanding the production order into tasks and associated constraints, and optimizing the order and assignment of tasks using the associated constraints using a symbolic artificial intelligence engine. The tasks may then be allocated to a plurality of workers according to the optimized order and assignment.
[0030] In some embodiments, the system may comprise a means for receiving at least one production order and a means for transferring the at least one received production order to the central planning server.
[0031] In some embodiments, the central planning server may comprise a production manual database comprising an expansion of at least one production order into a plurality of tasks and constraints associated with the plurality of tasks.
[0032] In some embodiments the constraints associated with the plurality of tasks may comprise one or more of the following: dependency related constraints, time related constraints, worker related constraints, batch related constraints and equipment related constraints.
[0033] In some embodiments, the central planning server may comprise a method for compiling a production schedule from receiving at least one production order, wherein the method may carry out an expansion of at least one received production order into a plurality of tasks and constraints associated with each task and using an artificial intelligence engine to optimize the order of the plurality of tasks using the constraints associated with each task to produce a production schedule. In some embodiments, the artificial intelligence engine is a symbolic artificial intelligence engine such as, but not limited to, constraint logic programming in the finite domain.
[0034] In one embodiment, at least one task according to the production schedule (i.e., the optimized order and assignment of tasks) may then be allocated to each worker of the plurality of workers. In such an embodiment, an electronic device, referred to as a client, is assigned to each worker, wherein the client is used to receive and display the at least one task. The client may further provide a feedback module for communication with the central planning server. In some embodiments, the feedback module comprises a request for intermission. In some embodiments, the feedback module comprises a means to indicate availability and / or request a task and / or signal completion of the at least one task.
[0035] In some embodiments, the plurality of production orders may be a plurality of dish orders and the production manual databases comprises recipes for the dish orders and the plurality of tasks and associated constraints of the recipes and the worker is a chef or a kitchen support staff.
[0036] The plurality of received production orders may be in the range of 0 to 30 production orders, or in the range of 0-20, or in the range of 0-10 production orders, for each type of a production order and wherein a numerical value of zero denotes that no production order of a specific type has been received.
[0037] In some embodiments, the means of receiving a production order (herein, also referred to as input means) may be a central booking system, wherein the central booking system transfers at least one production order to the central planning server. In some embodiments, the means of receiving a production order may comprise a direct input of a production order into the central planning server such as through a keyboard connected to the central planning server or through a voice integrated system connected to the central planning server. For an example, in a restaurant, a waiter may receive a production order (i.e., an order for a dish) and input the production order into the central planning server. In some embodiments, the central booking system may be an online booking system, wherein the online booking system communicates to the central planning server.
[0038] The central planning server will compare the production order to production orders stored in a production manual database and verify that the production order exists in the production manual database.
[0039] Herein, the term “constraint” may be associated with a task and / or a production order and refers to a restriction and / or limitation on the execution of the task. Constraints may for example refer to, but not limited to, dependency between tasks, i.e., enforcing a certain order for executing a series of tasks, wherein the tasks may have defined predecessor tasks. Constraints may for example refer to time constraints, i.e., enforcing time limits on the duration of certain tasks and / or the lag between two dependent tasks. Constraints may refer to assignment constraints, i.e., enforcing to whom (a worker) a particular task is assigned to. In some cases, certain workers may not comprise the skillset and / or qualifications to execute the task and are, therefore, excluded from executing such tasks. Constraints may also referto the availability of certain equipment required to execute certain tasks. Constraints may also refer to mandatory break times or the-like set by national regulations.
[0040] The constraints may comprise one or more of the following: maximum allowed time for a production order to be completed, interdependency constraints between two or more tasks of same production order, time constraints of the tasks such as maximum duration for a task and maximum time allowed between tasks, mandatory time delays prior to and / or after completion of the tasks, constraints related to national regulations of mandatory work time and breaks assignment constraints such as constraints related to skillset of worker and constraints related to the qualifications of the worker, equipment related constraints, constraints related to combining requests for the same product type across production orders (or even only sub-sequence of tasks) for parallel processing of production orders and / or tasks.
[0041] In some embodiments, some constraints may be defined as strong / hard constraints that have to be met in order for the product to be considered of good quality such as, but not limited to, time constraints or the dependency between tasks. Some other constraints may be defined as weak / soft constraints that are desirable to be fulfilled but are allowed to be compromised in particular when they stand in direct competition with strong constraints. Accordingly, in some embodiments, the constraints may further comprise weak constraints, and wherein the compilation of the production schedule enforces at least some of the weak constraints.
[0042] In some embodiments, the weak constraints may be implemented by the constraint logic programming engine in at least one of the following ways: as strong constraints and compiling a production schedule, and automatically dismissing, one-by-one or in groups or altogether, the weak constraints implemented as strong constraints if no valid, or undesirable, production schedule is obtained in the compilation; by compiling an initial production schedule without weak constraints, adding in the weak constraints, one- by-one or in groups or altogether, and recompiling the production schedule; and, by adding penalty points for each violation of a weak constraints and directing the constraint logic programming engine to find a production schedule minimizing a score or accumulation of penalty points.
[0043] In some embodiments, the system may comprise a data store comprising the list of workers, wherein the list of workers may comprise list of available workers.
[0044] It is an assumption that each task allocated to and received by a client assigned to a worker (from the central planning server) is executed solely by the worker assigned to the client.
[0045] In some embodiments, a single worker may receive (through the client and from the central planning server) and work on multiple tasks simultaneously, in particular if a single task comprises mandatory delays and the timespan of human interaction required is comparably short. As an example, if a worker receives a task with a 1 -minute work time followed by a mandatory delay of 10 minutes, the worker may begin a second received task (also displayed by the client) right away after his work is completed and does not need to wait until the end of the 10 minute delay. In some embodiments, a single worker may execute two or more tasks belonging to two or more production orders simultaneously, if the two or more tasks are equivalent. For example, if two received productions order comprise a task that is the same for both received production orders, the two tasks may be combined into one and distributed to the single worker, i.e., batch processing of certain tasks. Accordingly, in some embodiments, certain tasks may be referred to and / or labelled as batch tasks.
[0046] In some embodiments, the production pipeline may further comprise a prerequisite module for determining whether a received production order can be completed prior to transmitting the received production order to the production pipeline, wherein the prerequisite module may be configured to compare the amount of material and / or qualifications of the workers to the received production order and then determine whether to add the production order to the production pipeline. In some embodiments, the prerequisite module may further check whether there exists an expansion of the received production order into tasks and dependencies, as well as check whether there are defined constraints for the tasks in the production manual database. In some embodiments, the prerequisite module may further check the availability of workers, in particular, the availability of specialist workers qualified to handle specific specialized tasks in the expansion of the received production order. Finally, after verification that all prerequisites are fulfilled, the prerequisite module may add / transmit the received product order into the production pipeline.
[0047] The present invention uses declarative constraint logic programming engine (CLP) in finite domains CLP(FD) to produce a production schedule. In such embodiments, the artificial engine may be implemented using the finite domain constraint solver as provided within the SWI-Prolog system and developed by Markus Triska (The Finite Domain Constraint Solver of SWI-Prolog, FLOPS proceeding, 307-316, 2012).
[0048] The artificial intelligence engine / constraint logic programming engine may be configured to produce the optimized order and assignment of tasks (i.e., the production schedule) by using a target objective while enforcing all specified strong constraints and preferably, yet not necessarily, the majority of the specified weak constraints. In some embodiments, the target objective may be to optimize the throughput of the plurality of workers, while enforcing the constraints associated with the plurality of tasks. In additional or the same embodiments, the target objective may comprise one or more of the following: to minimize (food) waste, keep up high product (service) quality standard by reminding and alerting workers of crucial time-restricted tasks that must be handled immediately in order to fulfil required strong constraints, to minimize lag between subsequent tasks, to minimize task duration and to minimize the time required to complete a production order.
[0049] Herein, the terms “artificial intelligence engine”, “symbolic artificial intelligence engine” and “constraint logic programming in finite domains” may be used interchangeably. In one embodiment, the present invention collects all tasks within the production pipeline, assigns unbound timestamps to relevant tasks (in particular begin and end-times of each task) and feeds them with the associated time and / or dependency constraints (as defined within the production manual database) and in some embodiments other relevant constraints associated with employees or orders into the CLP(FD) solver. The CLP(FD) solver then tries to bind each of the unbound timestamps to a fixed integer value with the goal of optimising the production capacity of at least one available worker. This binding process (also called labelling process) is a search where eligible values are assigned to one unbound timestamp one after the other, each time checking on whether the assignment would still lead to a valid solution fulfilling at least all strong constraints specified in the given problem. The order in which the timestamps are selected forthe binding process bound to fixed values is called the labelling strategy and several pre-existing strategies (algorithms) are offered within the CLP(FD) solver. As soon as a timestamp is labelled, constraint propagation is used to further prune the search space. In case a binding of a particular timestamp and the triggered constraint propagation detects a problem, wherein the problem formulated by the production pipelines becomes unsolvable (in accordance with the given constraints), backtracking is applied.
[0050] In some embodiments, one or more labelling strategies (also referred to as heuristics) may be defined and implemented in the central planning server to facilitate targeted searches for solutions. In some embodiments, such labelling strategies are defined by the CLP(FD). In some embodiments, such labelling strategies are self-determined and added to the artificial intelligence engine.
[0051] Contrary to the strong constraints that are always enforced by the CLP(FD) solver, in some embodiments, weak constraints may be initially modelled as strong constraints and only dismissed, e.g., one-by-one or in groups or altogether, in case the labelling process does not yield any valid solution (i.e., a solution that satisfies all constraints) or highly undesirable solutions (e.g., in terms of work schedule).
[0052] In some embodiments, weak constraints might initially be excluded from the CLP(FD) solver in order to produce at least one initial valid work plan that can then be improved by adding in weak constraints and re-running the solver trying to find solutions that also fulfil these weak constraints.
[0053] In some embodiments, weak constraints might be modelling by adding penalty points for violating these weak constraints and the CLP(FD) solver is directed to find solutions with a low score of penalty points.
[0054] In the overall process the handling of weak constraints during the solution finding process is designed to be automatic and decided by an algorithm rather than by a human invention in order to satisfy the just-in-time nature of the present invention.
[0055] In some embodiments, specifically selected received production orders may be assigned a priority status, wherein tasks corresponding to the selected received production order are assigned a priority constraint such that the artificial intelligence engine prioritizes the tasks over other tasks of different received production orders to expedite the production of the selected received production order. In some embodiments, the prioritizing of the selected received production orders may be given to frequent customers requesting the production order. Alternatively, the prioritizing of the selected received production orders may be given to customers paying additional (expedition) fees for the received production order. Accordingly, in one embodiment the target objective of the artificial intelligence engine may be to optimize the revenue of the production facility by allowing to prioritize certain production orders in the production schedule against additional expedition payment.
[0056] In some embodiments, the artificial intelligence engine may be configured to employ a backtracking strategy in case an unbound timestamp cannot be assigned a valid numerical value any longer because any value would violate one of the constraints connected to that unbound timestamp.
[0057] The artificial intelligence engine may employ different binding strategies (heuristics) of timestamps to obtain different solutions for the optimized order and assignment of the plurality of tasks. Additionally, the artificial intelligence engine may employ different binding strategies of timestamps to reach a solution, i.e., all timestamps can be assigned eligible values in accordance with the associated constraints.
[0058] In some embodiments, the system may further comprise a database configured to store historical performance data about workers’ performance on specific tasks. In some embodiments, the historical performance data may be stored along with the worker constraints. In some embodiments, the historical performance data may be stored in the production manual database. In some embodiments, the historical performance data may be stored in an additional database in the central planning server.
[0059] In some embodiments, the system may be configured to dynamically update to the time constraints associated with the plurality of tasks according to the historical performance data.
[0060] In some embodiments, dynamic compiling of the production schedule may be carried out for one or more of the following: at regular time intervals, when a fixed number of new production orders are received, at the request of an intermission from a worker, when a fixed number of tasks has been completed.
[0061] In some embodiments, the system may compile an initial production schedule upon receiving the first production order. In some embodiments, the system may compile an initial production schedule upon receiving a fixed amount of production orders such as, but not limited to, two production orders, or three production orders, or four production orders, or five production orders, or ten production orders. The fixed value may be determined based on various factors such as, but not limited to, the capabilities of the workers, the number of workers, the average number of production orders and the time of day, as well as the weekday. In some embodiments, the workers may be automated robots (e.g., robotic arm) configured to complete a specific task (e.g., boiling or frying) and / or digital agents programmed to complete a specific task (e.g., a software application) and / or human employees hired / instructed to complete a specific task. In some embodiments, the workers may be a combination of one or more of the foregoing.
[0062] In some embodiments, the system may be configured to compile or update a production schedule at regular time intervals. In such embodiments, the regular time intervals may be selected as 5 seconds, or 10 seconds, 30 seconds, or 1 minute, or 5 minutes, or 10 minutes, or 30 minutes, or 1 hour. Alternatively, the time interval may selected in a range from 1 second, or from 5 seconds, or from 10 seconds, or from 30 seconds, or from 1 minute or from 10 minutes, or from 30 minutes to 5 seconds, or to 10 seconds, or to 30 seconds, or to 1 minute, or to 5 minutes, or to 10 minutes, or to 30 minutes, or to 1 hour. Different regular time intervals or ranges of time intervals may be used for different situations. In one such embodiment, the regular time interval or range of time interval may vary depending on the time of day.
[0063] In some embodiments, the compilation or update of a production schedule comprises already partly processed product orders and / or already granted intermissions.
[0064] In some embodiments, the distribution module is configured to transfer data through a wireless or wired connection to at least one client, wherein the transferred data may comprise tasks according to the optimized order and assignment of tasks (i.e., the production schedule), or data thereof.
[0065] In some embodiments, the worker may request an intermission through the feedback module of the client. In some embodiments, the production pipeline may be recompiled after the request of intermission. In some embodiments, the request of intermission may comprise one or more of the following options: standard intermission, long intermission, and emergency intermission.
[0066] In some embodiments, the request for standard intermission and / or long intermission may be configured in the production pipeline as tasks.
[0067] In some embodiments, intermissions according to national law may be configured in the production pipeline as tasks and / or as constraints.
[0068] The compilation of a production pipeline is configured to not interrupt a worker executing a current task. In some embodiments, the compilation of the production pipeline may interrupt a worker executing a current task if the worker explicitly requests an emergency intermission.
[0069] In one embodiment, the emergency intermission may be configured to assign the current task of the worker requesting an emergency intermission to the next available worker, i.e., the next worker to indicate availability and / or signal completion of a task. In some embodiments, the system may be configured to start assigning tasks of unfulfilled or incomplete product orders in accordance with an optimized order and assignment of tasks (i.e., the production schedule) to a worker, when the worker indicates completion of a task through the feedback module.
[0070] In some embodiments, the client displays the current task to be executed by the worker. In some embodiments, the client may further display one or more of the following: expected time to complete task, dependencies of task and delivery of product once task is completed and next task to be executed.
[0071] In some embodiments, the client is a small and durable electronic device specifically designed for challenging environments such as, but not limited to, commercial kitchens, wherein the electronic device may be subject to heat gradients, liquid spills, grease, dirt and other contaminants. In other embodiments, the client may be a computer and / or a tablet and / or wearable virtual reality glasses and / or a smart watch.
[0072] In some embodiments, the client and the central planning server may communicate by wireless communication such as through a local wireless network (WIFI). Alternatively, in some embodiments, the client and the central planning server may communicate through a wired connection such as, but not limited to, ethernet.
[0073] In one embodiment, the system may further comprise a central information display. In some embodiments the central information display comprises a connection means to the central planning server for receiving information from the central planning server. The central information display may display various information about the production pipeline and / or production schedule. In some embodiments, the central information display may display one or more of the following: the current tasks of the production schedule being executed and by which worker, the upcoming tasks and predicted assignment of the tasks, if a worker requests an intermission, it may be displayed and upcoming scheduled intermissions.
[0074] In some embodiments, the production order is a recipe to produce a product, wherein the recipe comprises a sequence of tasks, wherein the tasks may be interdependent.
[0075] In some embodiments, the recipe is a food recipe and the plurality of workers are at least one chef and / or at least one kitchen support staff. In such an embodiment, the system may be configured in a commercial kitchen.
[0076] In some embodiments, the production order is a workflow comprising a sequence of tasks, wherein the tasks may be interdependent. According to an aspect of the present invention, a system for automatically optimizing and distributing a plurality of tasks derived from at least one production order to a plurality of workers is provided, the system comprising: an input means for receiving at least one production order and transferring the at least one received production order to a central planning server, a central planning server, wherein the central planning server comprises: a production manual database, wherein the production manual database comprises: an expansion of at least one production order into a plurality of tasks and constraints associated with the plurality of tasks, a production pipeline for compiling a production schedule from received at least one production order, wherein the production pipeline comprises: a list of workers, an expansion of at least one received production order into a plurality of tasks and constraints associated with each task using the production manual database, an artificial intelligence engine for optimizing the order of the plurality of tasks to produce a production schedule for the plurality of workers; and, distribution module for allocating tasks from the production schedule to at least one client, a client assigned to each worker, wherein the client comprises: a communication module for communicating with the central planning server, wherein the communication comprises: receiving at least one task, a feedback module allowing userto request intermission and / or signal completion of the at least one task; and, an output for displaying the received at least one task.
[0077] In one aspect of the invention, a client assigned to a worker for communicating with a central planning server is provided. The client may comprise a housing unit. The client may comprise a communication module disposed within the housing, for receiving and transmitting data from and to the central planning server, respectively. In some embodiments, the received data comprises at least one task to be executed by the worker and the transmitted data comprises: signal of task completion and / or request for an intermission. In an embodiment, the client may comprise a display screen integrated into the housing for displaying received data or portion thereof. Moreover, the client may comprise at least two interactive members, wherein the members may be for signalling task completion and / or requesting intermission.
[0078] In some embodiments, the at least two interactive members are buttons arranged on the housing. In some embodiments, the at least two interactive members are buttons arranged on a touch screen.
[0079] In some embodiments, the client is a small electronic device comprising a display screen and graphical user interface. The client comprises at least two buttons for transferring data to the central planning server, wherein the transferred data may be to signal the completion of a task (and hence request next task) and to request an intermission.
[0080] In one embodiment, the display screen may be configured to display at least one task to be executed by the worker. In some embodiments, the display screen may additionally display at least one subsequent task to be executed.
[0081] In some embodiments, the client is easily transportable. In some embodiments, the display screen may be an e-ink display screen. In some embodiments, the display screen may be an LCD display screen.
[0082] In some embodiments, the display screen may be 1 inch, or 2 inches, or 3 inches, or 4 inches, or 5 inches, or 6 inches, or 7 inches, or 8 inches, or 9 inches, or 10 inches or any range therebetween. In some the size of the display screen is in the range of 3 inches to 5 inches.
[0083] In some embodiments, the client is durable and can withstand being subjected to liquid spills, temperature changes, humidity, grease and / or other contaminants.
[0084] In one embodiment, the housing is configured to keep all the components of the client firmly together inside a protective shell.
[0085] In one embodiment the housing may be configured to protect the display screen and housing from humidity, steam, dirt and grease and / or other contaminants. In one embodiment, the housing comprises a synthetic shell.
[0086] In one embodiment, the client may be a computer, in such an embodiment it may be a small transportable and durable computer. In some embodiments, the client may be a smartphone. In some embodiments, the client may be a tablet. In another embodiment the client may be augmented reality glasses. In yet another embodiment, the client may be a smart watch. However, in the context of a busy work schedule there are, however, many drawbacks to such a setup, because mobile phones and tablets typically are not as sturdy against damage caused by water, heat, steam, grease, dust etc. In fact, they are usually much more distracting and significantly less handy to use, i.e., easier to slip, getting dirty, more expensive to replace etc.
[0087] In some embodiments, the client may comprise a power source such as, but not limited to, a battery. In some embodiments, the client may comprise an inlet for charging the battery. In some embodiments, the inlet for charging the battery may be, but not limited to, of type micro type B. Alternatively, in some embodiments, the client may be connected to an external power source.
[0088] In some embodiments, the client may comprise an anti-slip area, wherein the anti-slip area prevents the client to slip from the hand of the assigned worker when the worker is holding / carrying the client, i.e., to provide a secure grip for the worker.
[0089] In some embodiments, the anti-slip area may comprise a material of high friction to prevent slipping or sliding when the anti-slip area is placed in a hand. In some embodiments, the material may comprise rubber, plastic polymers, silicone, or any combination thereof. In some embodiments, the housing may be coated with the material of high friction.
[0090] In some embodiments, additionally or alternatively, the anti-slip area may comprise patterns or roughness to enhance the grip such as, but not limited to, dotted pattern, ridged pattern or honeycomb pattern.
[0091] In one embodiment, the client may comprise: a processor and / or a microprocessor configured to execute instructions related to task reception and processing. In some embodiments, the client may comprise a microcontroller board such as, but not limited to, a raspberry Pi Pico.
[0092] In some embodiments, the client comprises a graphical user interface (GUI). In such embodiments, the GUI may be configured to display text to the assigned worker / user, wherein the text may comprise one or more of the following: assigned worker name, date, clock, timer, task to be executed, one or more subsequent tasks to be executed, the production order which the tasks to be executed belong to, information about mandatory delays and where the completed task is to be delivered to, signal of completion button, request for intermission button and settings button.
[0093] In one embodiment, the client may comprise a memory-storage unit configured to store tasks to be performed.
[0094] In one embodiment, the client may comprise a communication means for communication with the central planning server, in particular, for receiving data from a central planning server and / or transferring data to a central planning server, wherein the received data may be at least one task assigned to the worker according to the optimized order and assignment and wherein the transferred data may be signal of completion of a task and / or request for an intermission and / or indication of availability.
[0095] In one embodiment, a client for allowing worker to electronically communicate with a central planning server may be provided, wherein the client comprises: a housing unit comprising a synthetic shell, wherein the housing unit comprises at least two interactive buttons and a settings button, a power supply unit disposed within the housing unit and configured to provide electrical power to the electronic client, a microprocessor unit disposed within the housing unit and configured to execute instructions related to task reception and processing, a display screen integrated into the housing unit and connected to the processor unit for displaying tasks to be performed, the display screen connected to the microprocessor, a memory-storage unit configured to store task to be performed and coupled to the microprocessor, a wireless communication module coupled to the microprocessor for receiving data from a central planning server and transferring data to a central planning server, wherein the received data comprises tasks to be performed and the transferred data signals the central planning server about availability of the worker and / or the worker requesting an intermission. In one embodiment, the housing comprises a fastener mechanism for fastening the housing to an object such as, but not limited to, surfaces. In one embodiment, the housing may comprises a magnetic strip, wherein the magnetic strip is configured on the back of the housing for mounting the housing on metal surfaces. In some embodiments, the fastener may be, but not limited to, a screw or a combination of at least one bolt and at least one nut, wherein the housing is then fastened to a wall or a surface.
[0096] In some embodiments, the fastener may be, but not limited to, a clip, a hook or a loop. In such embodiments, the client may be a wearable device with a clip to attach the client to a person’s belt, shirt or coat pocket. Alternatively, the fastener may be used strap to a worker’s arm wrist.
[0097] In some embodiments, the fastener may be readily attachable and / or detachable from the housing unit.
[0098] In one embodiment, the client may comprise an alarm mechanism for notifying the assigned worker about important notifications and / or an incoming task and / or sudden change in the production schedule and / or end of an intermission. In some embodiments, the alarm mechanism may be a buzzer and / or a vibrating means integrated into the electronic client.
[0099] In some embodiments, the at least one client module assigned to a worker may further comprise a feedback module configured to communicate with the central planning module to allow the worker to request an intermission and a signal of completion through interactive members.
[0100] In some embodiments, the request for the intermission is configured to initiate a recompilation in the central planning module to adjust the production schedule.
[0101] In some embodiments, the signal of completion is configured to display a subsequent task the worker according to the production schedule using the output and inform the central planning to update the production schedule.
[0102] In an aspect of the present invention, a method for constructing a production manual database for a process to form at least one product is provided, wherein the process comprises a series of tasks, wherein the tasks of the series of tasks may be interdependent on each other and / or be associated with time constraints.
[0103] In some embodiments, the process may be a workflow.
[0104] In some embodiments, the process may be a food recipe to produce a food product.
[0105] In some embodiments, the process describing the production of a product or dish may be laid out in a special data sheet referred to as Standard of Operations (SOP) comprising all the individual steps for producing such product or dish In some embodiments, the tasks have constraints associated with each task. In such embodiments, the constraints may be dependency constraints, i.e., the interdependency between tasks. Additionally, the constraints may be time-related constraints. In some embodiments, the constraints may comprise worker related constraints such as, but not limited to, qualifications required to execute the tasks. In some embodiments, the constraints may comprise equipment related constraints such as, but not limited to, required equipment to execute the task.
[0106] In some embodiments, the tasks may be associated with constraints that may be classified as weak constraints (i.e., comprisable constraints) and / or strong constraints.
[0107] In one embodiment, the method for creating a production manual database for a process to form at least one product may comprise the steps of: dividing a process of forming at least one product into a sequence of tasks, defining mandatory delay times prior to and or following a task in the process, identification of dependency constraints between tasks in the process, defining a time constraint for at least one task in the process, identification of the final task in the process for forming the product and storing the sequence of tasks, mandatory wait times, dependency constraints, time constraints and the identification of the final task to produce the product through the process in the production manual database.
[0108] In one embodiment, the method may further comprise the steps of defining and storing one or more of the following: worker related constraints, equipment related constraints and time constraints due to national regulations. In one embodiment, the worker related constraints may be constraints on each task according to the skillset and / or qualification of the worker. In one embodiment, the time constraints due to national regulations may be mandatory work time and break / intermission times due to national regulations.
[0109] In one aspect of the present invention, a data processing apparatus comprising means for carrying out the method of creating a production manual database according to the abovementioned embodiments is provided.
[0110] In one aspect of the present invention, a computer program is provided, the computer program comprising instructions which, when the program is executed by a computer, cause the computer to create a production manual database according to the abovementioned embodiments.
[0111] In one aspect of the present invention, the production manual database may be stored on a computer- readable medium.
[0112] In an aspect of the present invention, a method of requesting a new task by a worker may be provided, wherein the method may comprise steps of: activating the personal client assigned to a specific worker, connecting the client to the central planning server, receiving at least one data from the central planning server, wherein the at least one data may comprise: what take the specific worker needs to perform and one or more of the following: how much time the specific worker is supposed to complete the given task in (time constraint) and where the specific worker should deliver the product of the task to after completing his work task (i.e., who to report to or which worker would take over the production process of that particular product), confirming completion of the task by pressing an interactive member on the client signalling the central planning server that the work task will be removed from the production pipeline such that this task is omitted from the compilation of a subsequent production schedule.
[0113] In some embodiments, completed tasks may be moved to a retrospect “actual schedule database” storing actual beginning timestamp, end timestamp and executing worker info.
[0114] In another aspect of the invention, a method of requesting an intermission (also referred to as breaks) by a worker may be provided, the method comprising steps of: pressing an interactive member of the electronic device assigned to the worker, wherein the interactive button signals a request for intermission, acknowledging to still complete another current work task and potentially few additional requests within a short time period (typically within 10 minutes but up to 1 hour depending on the organisation’s and / or legal regulations), notifying the central planning server about the intermission request, verifying within the central planning server’s production schedule on whether break request would render the completion of certain products impossible (e.g. due to lack of qualified staff) and notifying the management about this fact, adding the break request as a “white” task assignment into the production pipeline, making sure that the worker will soon be able to go on his requested break. With the next planned recompilation to the production schedule, the actual start of the break will be assigned, displaying at the electronic device assigned to the requesting worker once break time is starting and foreseen end of the break.
[0115] In one embodiment, signalling a request for intermission request may comprise selecting a standard break and / or a long break and / or an emergency break.
[0116] In one embodiment, if the worker selects an emergency break, then the requesting worker is released immediately from all duties, next available worker will be assigned to take over the current task of leaving worker.
[0117] In one aspect of the present invention, a computer-implemented method for compiling a production schedule and transferring plurality of tasks from the production schedule to at least one client is provided, wherein the method may comprise the steps of: expanding a received at least one production order into a plurality of tasks and constraints associated with the plurality of tasks, optimizing the order of the plurality of tasks using an artificial intelligence engine to produce a production schedule and transferring the plurality of tasks according to the production schedule to at least one client. In one aspect of the present invention, a computer-implemented method for producing a dynamic production schedule and allocating tasks from the production schedule to at least one client assigned to at least one worker is provided. The method comprising: constructing a production order manuals database for at least one production order, wherein the the production manual database comprises: an expansion of production orders into a plurality of tasks and constraints associated with each production order and task; receiving, by a processing unit, a plurality of production orders; expanding, by a processing unit, the plurality of production orders into a plurality of tasks and associated constraints using the database of production order manuals; dynamically compiling, by a processing unit, a production schedule by optimizing the order and assignment of the plurality of tasks according to a target objective, using constraint logic programming engine over finite domains and the constraints associated with the plurality of tasks, wherein the associated constraints are enforced in the optimized order and assignment; and, allocating, by a processing unit, tasks to at least one client according to the production schedule.
[0118] In some embodiments, the computer-implemented method may advantageously use the embodiments of the system and / or the client as described above.
[0119] In some embodiments, the method may use the above described method for creating a production manual database to create a production manual database.
[0120] In some embodiments, the method may further comprise a step of inputting and transferring, by an input means, the plurality of production orders to a central planning server for processing of the plurality of production orders.
[0121] In some embodiments, the method may further comprise steps of receiving, by the at least one client, the allocated tasks and displaying, by the at least one client, the received tasks.
[0122] In some embodiments, the method may further comprise a step of requesting an intermission, by the at least one client, wherein the request for the intermission initiates an update of the production schedule.
[0123] In some embodiments, the method may further comprise a step of signalling a completion of a task, by the at least one client, wherein the signal of completion initiates outputting of a subsequent task to the client, and updating the production schedule.
[0124] In some embodiments, the constraints may further comprise weak constraints, and wherein dynamic compilation of the production schedule enforces substantially all the strong constraints and preferably at least some of the weak constraints.
[0125] In some embodiments, the target objective may comprise one or more of the following: minimizing food waste, keep up high service quality standards, minimize time lag between subsequent tasks, minimize task duration, minimize time required to complete a production order and to increase throughput of delivering the plurality of production orders. In some embodiments, the dynamic compiling of the production schedule is carried out for one or more of the following: at regular time intervals, when a fixed number of new production orders are received, at the request of an intermission from a worker, when a fixed number of tasks has been completed.
[0126] In some embodiments, the method may further comprise a step of storing historical performance data about workers’ performance on specific tasks and dynamically updating the production manual database according to the historical performance data.
[0127] In some embodiments, the constraints associated with the plurality of tasks comprises one or more of the following: maximum allowed time for a production order to be completed, interdependency constraints between the tasks of same production order, time constraints of the tasks such as maximum duration for a task and maximum time allowed between tasks, mandatory time delays prior to and / or after completion of the tasks, constraints related to skillset of worker, constraints related to the qualifications of the worker, equipment related constraints and constraints related to national regulations of mandatory work time and breaks.
[0128] In some embodiments, the method may comprise a step of checking whether a set of contradicting constraints has been defined in the production manual database.
[0129] In one embodiment, the artificial engine may comprise the step of backtracking in the binding process of unbound timestamps if no solution is found for at least one unbound timestamp. In other words, if an eligible solution for the binding process is unable to be found according to the associated constraints, backtracking of timestamp assignment is used to assign a different value to a chosen unbound variable or if all possible values had already been tested backtrack to the variable that has previously been labelled in a depth-first-search manner. Otherwise, if an eligible solution exists and all variables can be assigned values, a valid production schedule may be compiled and distributed to the clients.
[0130] In some embodiments, if an eligible solution for the binding process is unable to be found according to the associated constraints, a different binding strategy may be automatically selected, and the binding process started again until an eligible solution is found. The constraint logic programming engine in the finite domain enumerate on a depth first search strategy (with backtracking). Therefore, the order in which unbound variables are chosen (how they are sorted) during the labelling process can greatly impact the search time until a valid solution is found and in some other aspect also the quality of efficient staff allocation. The artificial intelligence engine provides different strategies (heuristics) which determine the order in which the variables are chosen, typically based on the cardinality of the domain of potential values that can be assigned to a yet unbound variable, but also based on the numerical values within the domain, e.g., the minimum or maximum value of that domain. It is thus beneficial in terms of reliability and quality of the provided production schedule, to execute different strategies in parallel and eventually choosing the best one as the newly established solution. Alternatively, or additionally, if an eligible solution forthe binding process is unable to be found, the number of constraints may be reduced. In such an embodiment, a suboptimal solution may be found using only a few carefully selected, strong, constraints, and then adding more constraints to tighten the search space and run the binding process again on the suboptimal solution. This is iteratively continued until an acceptable solution is obtained.
[0131] In some embodiments, the method may be executed at regular time intervals to compile and / or update a production schedule factoring in all updates or changes to the ongoing schedule since the last prior compilation of the schedule (e.g. newly incoming production orders, completed or delayed tasks, intermission requests, etc).
[0132] In some embodiments, at least one task from the production schedule is transferred from the central planning server to the at least one client.
[0133] In one aspect of the present invention, a data processing apparatus comprising means for carrying out the computer-implemented method for optimizing and transferring a plurality of tasks to at least one client may be provided as specified in the above embodiments.
[0134] In one aspect of the present invention, a computer program may be provided, wherein the computer program may comprise instructions which, when the program is executed by a computer, cause the computer to carry out the computer-implemented method for optimizing and transferring a plurality of tasks to at least one client as specified in the above embodiments.
[0135] In one aspect of the present invention, a computer-readable medium may be provided, wherein the computer-readable medium comprises instructions which, when executed by a computer, cause the computer to carry out the computer-implemented method for optimizing and transferring a plurality of tasks to at least one client as specified in the above embodiments and / or the method for producing a dynamic production schedule and allocating tasks from the production schedule to at least one client assigned to at least one worker as specified in the above embodiments.
[0136] The person skilled in the art will readily understand that embodiments, or combination of embodiments, of the systems, and different variants thereof, and of the methods, and different variants thereof, may be equally applicable to embodiments, or combination of embodiments, of the methods and systems. The aspects are all closely related, sharing e.g., similar procedural steps and structural / functional features. The skilled person will be able to adapt embodiments from one aspect or an embodiment to another based on the disclosure, recognizing how the underlying technical features translate between e.g., procedural steps in a method and structural or functional features of a system. This flexibility ensures that the scope of the invention covers all aspects and all combinations of embodiments thereof.
[0137] BRIEF DESCRIPTION OF FIGURES
[0138] The foregoing aspects, embodiments, features and advantages of the invention will be apparent from the following more particular description of particular embodiments of the invention, as illustrated in the accompanying drawings. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
[0139] FIG. 1 shows a schematic drawing of an implementation in a restaurant with a kitchen and at least one table to be served, in accordance with the present invention.
[0140] FIG. 2 shows a schematic component diagram of an embodiment in accordance with the present invention. In FIG. 2(a), one type of network is used for the communication between the input means, the central planning server (also referred to as management service) and the at least one clients. In FIG. 2(b), two separate types of networks are used, e.g., an external network such as the internet and an internal network.
[0141] FIG. 3 shows a drawing of hypothetical expansions of two production orders, referred to as A and B, to form two products P1 and P2, respectively. The expansions comprises both the individual tasks and constraints associated with the tasks and production orders.
[0142] FIG. 4 shows a hypothetical (and simplified) drawing illustrating the compiled production schedule from FIG. 3 for the two production orders, wherein the tasks in the production schedule are allocated to two workers.
[0143] FIG. 5 shows a perspective drawing of an embodiment of a client, in accordance with the present invention, illustrating the information relevant to a received task from the central planning server and outputted by the client to an assigned worker.
[0144] FIG. 6 shows a perspective drawing of an embodiment of a client, in accordance with the present invention, showing the different functions and features of the client.
[0145] FIG. 7 shows a schematic flowchart of an embodiment of a method in accordance with the present invention.
[0146] FIG. 8 shows a flowchart of an embodiment for adding received production orders to a production pipeline.
[0147] FIG. 9 shows a flowchart of an embodiment, in accordance with the present invention, for a compilation of a production schedule, wherein the compilation is carried out every t seconds.
[0148] FIG. 10 shows a flowchart for a communication of a client assigned to a worker and a central planning server.
[0149] DETAILED DESCRIPTION
[0150] In the following, exemplary embodiments of the invention will be described. These embodiments are provided to provide further understanding of the invention, without limiting its scope.
[0151] In the following description, a series of steps are or may be described. The skilled person will appreciate that unless required by the context, the order of steps is not critical for the resulting configuration and its effect. Further, it will be apparent to the skilled person that irrespective of the order of steps, the presence or absence of time delay between steps, can be present between some or all the described steps.
[0152] As used herein, including in the claims, singular forms of terms are to be construed as also including the plural form and vice versa, unless the context indicates otherwise. Thus, it should be noted that as used herein, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise.
[0153] Throughout the description and claims, the terms “comprise”, “including”, “having”, and “contain” and their variations should be understood as meaning “including but not limited to” and are not intended to exclude other components.
[0154] The present invention also covers the exact terms, features, values, and ranges etc. are used in conjunction with terms such as about, around, generally, substantially, essentially, at least etc. (i.e., "about 3" shall also cover exactly 3 or "substantially constant" shall also cover exactly constant).
[0155] The term “at least one” should be understood as meaning “one or more”, and therefore includes both embodiments that include one or multiple components. Furthermore, dependent claims that refer to independent claims that describe features with “at least one” have the same meaning, both when the feature is referred to as “the” and “the at least one”.
[0156] It will be appreciated that variations to the foregoing embodiments of the invention can be made while still falling within the scope of the invention. Features disclosed in the specification, unless stated otherwise, can be replaced by alternative features serving the same, equivalent, or similar purpose. Thus, unless stated otherwise, each feature disclosed represents one example of a generic series of equivalent or similar features.
[0157] Use of exemplary language, such as “for instance”, “such as”, “for example” and the like, is merely intended to better illustrate the invention and does not indicate a limitation on the scope of the invention unless so claimed. Any steps described in the specification may be performed in any order or simultaneously unless the context clearly indicates otherwise.
[0158] All the features and / or steps disclosed in the specification can be combined in any combination, except for combinations where at least some of the features and / or steps are mutually exclusive. The features of the invention are applicable to all aspects of the invention and may be used in any combination.
[0159] FIG. 1 shows one embodiment of the present invention implemented in a restaurant comprising a commercial kitchen (1). A waiter (2) receives at least one production order, i.e., at least one dish order, from at least one client to be served, or in particular from four clients to be served (3), (3’) , (3”) and (3”’) sat at a table (4). The waiter (2) communicates the order to a central planning server (5) (also referred to as a management service), for an example through a central booking system (one type of an input means) that communicates the at least one production order to the central planning server (5). The central planning server (5) comprises a production manual database (6) that stores the different production orders and their expansions into tasks and associated constraints, i.e., constraints associated with the tasks and the production orders. In some embodiments, the production manual database may further comprise constraints associated with at least one worker working in the kitchen (1), i.e., worker related constraints. The central planning server (5) compares the at least one received production order to production orders stored in the production manual database (6) and expands them into a plurality of tasks and associated constraints as defined in the database (6). The central planning server (5) is then configured to compile a production schedule through a production pipeline (not shown) using an artificial intelligence engine, in particular a symbolic artificial intelligence engine, and allocate tasks from the at least one received production order to electronic devices (herein, also referred to as clients), such as those illustrated by (7), (7’), (7”) and (7”’) each assigned to a worker (8), (8’), (8”) and (8”’), respectively. The electronic devices will then display information about at least one task to be executed by the workers. An assumption of the present invention is that a single task is preferably executed by a single worker. In some embodiments, the central planning server may re-compile (or update) the production schedule in the production pipeline at regular time intervals and transfer tasks according to the updated production schedule to the electronic clients (7, 7’, 7”, 7”’). Alternatively or additionally, the central planning server may update the production schedule in the production pipeline after receiving new production orders and / or after a worker (8, 8’, 8”, 8”’) requests an intermission. However, the system is preferably configured such that an update to the production schedule does not interrupt a worker in a current task. However, in some embodiments, an emergency intermission requested by a worker may interrupt a worker in a current task and assign the current task to next available worker.
[0160] FIG. 2 illustrates a schematic diagram of an embodiment of the present invention comprising a central planning server (5), wherein the central planning server is connected, through a network (19), to an input means (20) and, through the same network (19), to one or more electronic devices / clients (7).
[0161] The central planning server (5) may be a computing device comprising a first memory device, or a memory allocation comprising a data store and a working memory allocation, and a first processing device, or a processing allocation, coupled to the first memory device / memory allocation.
[0162] The central planning server may comprise a communication interface (21) for communicating with the input means (20) and / or with the one or more clients (7). The communication may be carried out through one or more networks such as, but not limited to, local area network, WIFI, Bluetooth or the Internet.
[0163] Referring to FIG. 2(a), the communication from the input means (20) to the central planning server (5) and the communication between the central planning server (5) is carried out through a single network as specified above. While, referring to FIG. 2(b), the communication from the input means (20) to the central planning server may use one type of network such as, but not limited to, the internet and the communication between the central planning server and the one or more electronic clients / devices may use a second type of network such as, but not limited to, the local area network.
[0164] The communication may be carried out through the use of application programming interface (API), as would be recognized by a person skilled in the art. The communication interface may be configured to receive production orders from the input means (20). The communication interface may be configured to transfer a production schedule, or a portion thereof, to the one or more clients (7), e.g., for allocation of one or more tasks of the production schedule to the one or more clients (7) or the workers / agents assigned thereto. The communication interface may further be configured to receive data from the one or more clients (7), e.g., data signalling the completion of a task or a request for intermission such as standard intermission or an emergency intermission. In some embodiments, the part of the communication interface (21) communicating with the one or more clients (7) may be referred to herein as a distribution module / part.
[0165] The central planning server comprises a production pipeline (22). The production pipeline is responsible for dynamically compiling a production schedule. In some embodiments, the production schedule may be dynamically compiled at regular time intervals, e.g., every t seconds, wherein t typically is a short time period such as t=10 seconds, or t=20 seconds, or t=30 seconds or t=60 seconds.
[0166] The production pipeline may comprise preprocessing of production orders, e.g., remove completed product orders from the pipeline, check for disruptions, freeze and unfreeze tasks, sort and filter product orders.
[0167] The production pipeline comprises expanding received production orders into a plurality of tasks and constraints associated with the plurality of tasks and production orders, by using a production manual database (6). In some embodiments, the constraints may be strong constraints. Additionally, in some embodiments, the constraints may further comprise weak constraints. In some embodiments, the production manual database (6) may be hosted, on-site, within the central planning server (5).
[0168] The central planning server may further comprise data storage for worker data (24) such as data regarding the availability of workers and their qualifications and skillsets.
[0169] The central planning server may comprise data storage for historic data (25) such as data regarding past performances and execution times of specific tasks of the workers. Such historic data may be used to dynamically update and improve the constraints.
[0170] The production pipeline further comprises a symbolic artificial intelligence engine, namely, a constraint logic programming in finite domains (23) which is applied to the expanded plurality of tasks and associated constraints to find a solution for an optimized order and assignment of plurality of tasks and assignment, i.e., to find a valid solution enforcing all the strong constraints and preferably some of the weak constraints.
[0171] The central planning server may comprise data storage for labelling strategies of the binding process (i.e., the search for a valid solution) with the constraint logic programming engine (23). Accordingly, if a valid solution with one labelling strategy is not found, the production pipeline may attempt to use a second, different, labelling strategy to bind variables to the different domains of the constraints to find a valid solution. This process may be repeated until a valid solution (i.e., a production schedule) is produced. The execution of different labelling strategies can, furthermore, be executed in parallel making use of parallel processing techniques, such as the use of multi-core architectures and threads. As evident in these embodiments, the input means (20) may be a device which allows for a user to input received production orders to the central planning server (5), e.g., through a network (19). In other embodiments, the input means (20) may simply be a device such as a keyboard for inputting the production orders directly into the central planning server.
[0172] The one or more electronic clients (7) may receive information of the production schedule, or portions thereof, from the central planning server (5). They may also further communicate with the central planning server, e.g., by signalling the completion of a task and or for requesting an intermission such as, but not limited to, short / long intermission, standard intermission or an emergency intermission. The one or more electronic clients (7) may request tasks to be received from the central planning server. The one or more electronic clients (7) may comprise one or more interactive members that enable a user to request a task and / or signal a completion of a task and / or request an intermission. The one or more interactive members may e.g., be user-pressable buttons or buttons implemented on a touch screen. Once, the central planning server (5) receives such communication from the one or more electronic clients, the production schedule may be updated accordingly.
[0173] For clarity and understanding of the reader, FIG. 3 shows in a simplistic manner, how a received production order for two products, referred to as product A and product B (and labelled by 11 and 11 ’), may be expanded into plurality of tasks (12) and (12’), respectively, using the production manual database.
[0174] In this example, the received production order for product A comprises seven tasks, some of which are interdependent, wherein the interdependency between tasks is shown by dashed lines. This interdependency between tasks is incorporated into the production manual database as dependency constraints. The production order A comprises precursor tasks T1 , T2 and T3. T1 , T2 and T3 are then used collectively to start task T4. Tasks T4 and T5 are precursors task to T6 and need to be completed prior to T6 being carried out. T6 is then a precursor to carry out task T7. After task T7 is completed, the final product P1 (13) of production order (11) is ready and may be delivered to the customer that placed the production order for product A.
[0175] For each task (T1 , T2, T3, T3, T4, T5, T6, T7) there is at least one associated time constraint (14). In some embodiments, each task may be assigned a plurality of constraints (time related constraints, dependency related constraints, worker related constraints (e.g., qualification of the worker), equipment-related constraints. In one embodiment, such a time constraint may give the duration of a task to be completed. For example, for T1 , the duration of the task should be below a time limit, t1 , denoted by t < ti. In some embodiments, a time constraint may be placed on the maximum allowed production time (ttotai) of the production order, i.e., for product A (15) to be completed after receiving the relevant production order. Furthermore, specific tasks in a production order may comprise mandatory delays prior to carrying out a task and / or after the completion of the task, such constraints are incorporated into the production manual database as mandatory delay constraints. For example, in the production order for product A, T6 comprises a mandatory delay (16) after completion of task T6. In some embodiments, such mandatory delays will allow a worker to initiate and / or carry out a different task e.g., from a different production order for the duration of the mandatory delay.
[0176] In an analogous manner for product B, the received production order for product B may be expanded into a plurality of tasks (12’) denoted by T1 T2’, T3’, T4’, T5’, wherein each task is associated with dependency constraints (shown by the dashed lines) and time constraint for the duration of the respective tasks, namely, t < tr, t < t2', t < ts , t < t4' and t < ts'. Additional constraint may be placed on the overall production time of the production order for product B (15’). After completion of task T5’, product P2 (13’) is ready to be served to the ordering customer.
[0177] FIG. 4 shows how the two production orders for products A and B to produce products P1 and P2, respectively, may be (hypothetically) compiled in the production pipeline to produce a (hypothetical) production schedule, wherein the tasks of the production schedule may be allocated to two workers, namely (8) and (8’). The symbolic artificial intelligence engine may begin by assigning at least one timestamp to each task, then it begins to assign unbound timestamps to a fixed integer value with the goal of optimising the production capacity of at least one available worker. This binding process (also called labelling) is a search where integer values are assigned to one timestamp after the other, each time checking on whether the assignment would still lead to a valid solution fulfilling all the constraints specified in the given problem. As soon as a timestamp is labelled, constraint propagation is used to further prune the search space. In case a binding of a particular timestamp and the triggered constraint propagation detects a problem to becomes unsolvable (under the given constraints), backtracking may be applied.
[0178] FIG. 5 shows an embodiment for an electronic client assigned to a worker. The client comprises a housing (98) and a display screen (99) integrated into the housing (98). The housing (98) may comprise a synthetic shell to protect the internal components of the client such as, but not limited to, an acrylic material. In some embodiments, the display screen (99) covers the centre of the client. The information that is displayed within the display screen (99) may comprise: the clock time (100), the owner of the device (i.e., the worker that the electronic client is assigned to) (101), the signal strength of the WIFI network (102), a battery power monitor (103). Moreover, the information displayed in the display screen (99) may further comprise: key information about the production order and / or product such as, but not limited to, the production order (104), the task the worker is currently assigned to (105), the time the current task is due to be completed (106), to what worker (if any) the (pre-)product should be delivered to for further processing (107) and the subsequent task that the worker will most likely be assigned to once the current task is completed (108). However, note that in some embodiments and / or scenarios, the next task (108) may change if the production schedule is recompiled. However, the current task (105) is frozen during the recompilation and will thus not be changed / be interrupted during the recompilation.
[0179] FIG. 6 shows an embodiment of the electronic client with an emphasis on the interactive and input possibilities of the device. In this embodiment, the client comprises three interactive members, namely, a power and settings button (111) configured on the top of the device. This button is used for turning on and / or turning off the device by pressing the button and holding it down for a specific amount of time , such as, for more than 3 seconds If the device is turned on and the button is only pressed for a shorter duration, the client is configured to enter into a settings dialogue. The settings dialogue may for example be used to connect the electronic client to the wireless network and assign the client to a specific worker.
[0180] The other two interaction buttons can be found on the right-hand side of the device. The upper one (112) is the „Request“ button allowing the assigned worker to request a break / intermission of their work shift. The lower button (113) also referred to as „DONE“ button is used to confirm that a certain task has been completed and the assigned worker is ready to be assigned a new work task and / or ready to start the next task. The two buttons (112) and (113) furthermore hold a second functionality as „up“ and „down“, respectively, selector during the settings mode or when specifying the nature of a request.
[0181] Alternatively the power button may also be implemented as a sliding button to turn the device on or off, while the settings menu might be activated by pressing the upper button (112) for longerthan 3 seconds.
[0182] On the left-hand side of the client an anti-slip holding area (114) is installed in order to easily grab the device and prevent slipping of the client from hand. In this embodiment, the anti-slip holding area comprises a dotted pattern. In some embodiments, a magnet (not shown) may be configured on the backside of the client for sticking the client to a holding surface. In such an embodiment, the anti-slip holding area aids a worker in gripping the client and detaching the backside magnet from the holding surface. The magnet may be a bit outstanding from the backside of the device in order remove the device more easily from the working area board or surface.
[0183] In some embodiments, a display screen (99) may cover a substantial portion of the centre of the client. In embodiments, the display screen may cover about 50%, or about 60%, or about 70%, or about 80%, or even about 90% of the total area of the front side of the client. The display screen (99) is configured to display key information to the assigned worker (as described in FIG. 5). In some embodiments, the display screen is an e-ink display screen. The e-ink display reduces the power consumption of the client in comparison to traditional display screens. Nevertheless, other display screen types are also encompassed by the present invention such as, but not limited to, an LCD screen. The choice of the screen type may depend on the application area.
[0184] In some embodiments, the client may comprise an alarm mechanism (115) to alert worker on important notifications. In one such embodiment, the alarm mechanism (115) may be arranged on top of the device and / or directly above the display screen. In some embodiments, the alarm mechanism (115) may be an alarm buzzer and / or a vibrator. In some embodiments, the alarm mechanism (115) may be integrated into the device. The alarm mechanism (115) is configured to send important notifications to the assigned worker such as, but not limited to, signal the end of an intermission, signal last second changes to the plan due to unforeseen disruptions or delays.
[0185] The client further comprises a power inlet (not shown) for charging the battery of the client and / or for connecting to a computer to configure the client and / or to update the client software. In some embodiments, the power inlet is a Micro Type B USB port or - alternatively - a USB C port, particularly, when the client comprises a microcontroller such as a raspberry Pi Pico controller. FIG. 7 shows an embodiment of the present invention comprising a step of receiving a plurality of production orders (320), expanding the plurality of production orders (307), compiling a production schedule (300) and allocating tasks to at least one client (240), wherein the at least one client may be assigned to a worker.
[0186] Referring to FIG. 8, which shows an embodiment comprising steps for receiving one or more, or a plurality of, production orders (i.e., orders for products or dishes in the context of restaurants) and then inserting the new, and received, production order(s) into the production pipeline to be later processed by the schedule update process or compiling of a production schedule as described in FIG. 9.
[0187] Upon receiving a production order of one or more products (dishes in the context of restaurants) (320), the system may be configured to or the method comprise a step of consulting a product manual database to verify whether the current order can be produced with the available resources (in terms of workers and / or required raw materials) (321). If the order passes the verification, all product orders are timestamped and inserted into the production pipeline (322) ending the insertion process.
[0188] FIG. 9 shows one embodiment for compiling a production schedule (300) dynamically every t seconds, as shown in step (301). In this embodiment, the step of expanding one or more, or plurality, of received (and confirmed) production orders (307) into a plurality of tasks and associated constraints by referring to the production order manual database is contained within step (300) of dynamically compiling a production schedule. The embodiment of FIG. 9 comprises steps for compiling and constantly updating (re-compiling) a production schedule. This process is constantly ongoing during the operation of the system. It starts at (301) in regular time intervals, referred to as “t”. In some embodiments, t may range between 5 seconds and 1 hour and can only be stopped by sending a termination request to the process from the central planning server. If there already exists a production schedule (general case, only during startup of the process there is no schedule available) (302) the process starts by removing already completed product orders from the production pipeline (303), then verifying the currently active production schedule “S” for disruptions or delays (304) in tasks that are currently under execution or have just been marked completed within the previous time interval t and that could violate constraints defined in the production manual of a product. These are trying to be resolved automatically (e.g., by stretching the tolerances, predefined rules to sort out the product or will be brought to the attention of a supervisor for manual intervention).
[0189] Next the process needs to take precautions for a smooth transition between the production schedule that is in place and the newly composed, updated production schedule. Therefore, changes to a production schedule can only be allowed for tasks scheduled for starting later than the current timestamp + t (beyond the current update interval). Therefore, the timestamps of tasks that are not yet active or completed but are due to start within the ongoing time interval are declared as frozen (305), meaning their start timestamps are no longer allowed to be amended.
[0190] In a subsequent step all active orders within the production pipeline are sorted in accordance with the preference policy of the user (typically first-come-first serve but also priorities for certain products may be specified) (306). In the case of very long production backlogs in the pipeline which might cause very time-consuming re-calculation of the schedule update exceeding time interval t, certain orders might be disregarded for this round of schedule update. Following this sorting and filtering process (307) the orders are expanded into tasks (by making use of the product manual database), generating a new production schedule N, where initially all task timestamps (begin and end) remain unbound variables (variables without clearly defined value). In a next step, constraints are assigned to these timestamps (308). For all completed tasks - who are no longer subject to change - begin and end timestamps are directly copied from the existing schedule S. The same applies to active and frozen tasks, despite their completion time might yet (a-posteriori) be due to change (when recording actual evidence).
[0191] Once all constraints are assigned, the timestamp variables within new schedule N yet unbound are passed to the artificial intelligence engine (309). The artificial intelligence engine (309) tries to assign actual values to these variables referring to the process as labelling. Different labelling strategies might be applied in parallel in order to produce a new valid schedule that can replace existing schedule S. The process then suspends until the time threshold t has been reached (301) and the update process starts again.
[0192] If there already does not exists a production schedule (e.g., during startup of the process there is no production schedule available) (302), then the process may start by checking the production pipeline; sorting and potentially filtering (received) production orders based on order timestamps (311). Then, the productions orders may be expanded into a plurality of tasks and constraints associated with the plurality of tasks and production orders by consulting the production manual database (311 ). For all tasks in the new production schedule (denoted by N) constraints are loaded and assigned and added to begin / complete the binding of time variables (312). Analogous to the updating of the production schedule, once all constraints are assigned, the timestamp variables within new schedule N yet unbound are passed to the artificial intelligence engine (309). The artificial intelligence engine (309) tries to assign actual values to these variables referring to the process as labelling. Different labelling strategies might be applied in parallel in order to produce a new valid schedule that can replace existing schedule S. The process then suspends until the time threshold t has been reached (301) and the update process starts again.
[0193] Referring back to Fig. 7, once a production schedule as been produced, or updated, at least one task may be assigned to the one or more clients (240).
[0194] Tasks may be assigned to at least one client on request, or at regular intervals, or at regular intervals after a request by the client has been made.
[0195] FIG. 10 shows an embodiment for communication between a client assigned to a worker and the central planning server. It starts with pressing the ON / OFF button (111) , or alternatively by sliding a sliding button, after which the device is configured to power on and initialize the internal software, the client connects to the local WIFI and login into the users account (401) owned by the worker assigned to the client. The information (i.e., login and password) may be stored on the device and can be changed within the settings dialogue if necessary or can be uploaded via the USB port via a firmware update Once the device is operating, the assigned worker may receive a first assignment once he / she is ready by pressing the done button for more than three seconds (402), i.e., activating the device by signalling availability or completion. This device signals the central planning server that the worker is now active and ready to receive the first work task (403). The server consults the currently active production schedule and retrieves the next two scheduled tasks that are then assigned to the client (404). If there is currently no task available to be assigned to workers or worker operating the device had requested a break or the planning server determined that it was time for the staff member to take a break, then the server would provide a break information.
[0196] In the case there was an actual task to be assigned to the worker (405), then the device first checks whether the worker had been on a break. If, he / she were on a break, the device sends a notification to its owner by activating the buzzer and / or vibrator telling the owner that the break is over (406). Upon acknowledgement by the user (pressing the „DONE“ button) the buzzer is turned off again and the planning server records the exact start time and sets the newly assigned task active (407). If the worker did not have a break step (406), the buzzer step can be skipped (no notification is sent) and the server automatically records the start time of the new task and declares it active. Right afterwards the information about the new task is distributed, on one hand to the supervision monitor (i.e., central information display) for review by the manager or head chef, on the other hand to the actual client device (408) assigned to the worker designated to execute the task. The device then displays the new task assignment on its screen together with its due time (and potentially person to report to / deliver the result of the task to (409). Being informed on his next task, the worker can now focus on executing on his task assignment. Once he has completed the task he simply notifies the system by pressing the „DONE“ button on his device (410). The device then informs the planning server, and it records the actual completion time of the assigned task (411) and requesting the next work task from the server (403). This loop is continued until the worker sends a request of shift termination or simply shutting down the device.
[0197] Going back to step (405) in case the received task „NT“ is a break, then the planning server sends this information to the client (420), informing him about the nature and duration of the break (scheduled break or only suspending work due to limited assignments) (421). The worker can then simply enjoy a time on a break (422) until the device automatically requests a new task from the planning server (403). The device owner will also be notified by the buzzer / vibrator on the device once a new task is assigned to him / her (407).
Claims
CLAIMS1 . A system for producing a dynamic production schedule and allocating tasks from the production schedule to at least one client assigned to at least one worker, comprising: a. an input means configured for receiving a plurality of production orders and transferring the plurality of production orders to a central planning server; b. a central planning server, comprising: i. a production manual database, wherein the production manual database comprises: an expansion of production orders into a plurality of tasks and constraints associated with each production order and task, ii. a production pipeline configured to:1 . expand the received plurality of production orders into a plurality of tasks and associated constraints using the production manual database,2. dynamically compiling a production schedule by optimizing the order and assignment of plurality of tasks according to a target objective, using a constraint logic programming engine over finite domains and the constraints associated with the plurality of tasks, wherein the associated constraints are enforced in the resulting optimized order and assignment, and,Hi. a distribution module for allocating tasks to at least one client according to the production schedule; and, c. at least one client assigned to a worker configured to receive tasks from the production schedule, comprising: i. an output for displaying received tasks, ii. a feedback module configured to communicate with the central planning server and allow the worker to request an intermission and a signal of completion through interactive members, wherein the request for intermission is configured to signal the central planning server of the request for intermission for the worker for updating the production schedule accordingly, and wherein the signal of completion is configured to display a subsequent task to the worker according to the production schedule using the output and inform the central planning server of completed task to update the production schedule.
2. The system according to claim 1 , wherein the plurality of production orders is a plurality of dish orders and the production manual databases comprises recipes for the dish orders and the plurality of tasks and associated constraints of the recipes and the worker is a chef or a kitchen support staff.
3. The system according to either claim 1 or 2, wherein the plurality of received production orders is in the range of 0 to 30 production orders, or in the range of 0-20, or in the range of 0-10 production orders, for each type of a production order and wherein a numerical value of zero denotes that no production order of a specific type of product (or dish) has been received.
4. The system according to any of the preceding claims, wherein the constraints comprise one or more of the following: maximum allowed time for a production order to be completed, interdependency constraints between two or more tasks of same production order, time constraints of the tasks such as maximum duration for a task and maximum time allowed between tasks, mandatory time delays prior to and / or after completion of the tasks, constraints related to national regulations of mandatory work time and breaks assignment constraints such as constraints related to skillset of worker and constraints related to the qualifications of the worker, equipment related constraints, constraints related to combining requests for the same product type across production orders (or even only sub-sequence of tasks) for parallel processing of production orders and / or tasks.
5. The system according to any of the preceding claims, wherein the constraints further comprise weak constraints, and wherein the compilation of the production schedule enforces at least some of the weak constraints.
6. The system according to the preceding claim, wherein the weak constraints are implemented by the constraint logic programming engine in at least one of the following ways: a. as strong constraints and compiling a production schedule, and automatically dismissing, one-by-one or in groups or altogether, the weak constraints implemented as strong constraints if no valid, or undesirable, production schedule is obtained in the compilation; b. by compiling an initial production schedule without weak constraints, adding in the weak constraints, one-by-one or in groups or altogether, and recompiling the production schedule; and, c. by adding penalty points for each violation of a weak constraints and directing the constraint logic programming engine to find a production schedule minimizing a score or accumulation of penalty points.
7. The system according to any of the preceding claims, wherein the target objective comprises one or more of the following: minimize wasted materials (such as food waste), keep up high service quality standards, minimize time lag between subsequent tasks, minimize task duration, minimize time required to complete a production order and to increase throughput of finishing the plurality of production orders.
8. The system according to any of the preceding claims, wherein the dynamic compiling of the production schedule is carried out for one or more of the following: at regular time intervals, when a fixed number of new production orders are received, at the request of an intermission from a worker, when a fixed number of tasks has been completed.
9. The system according to the preceding claim, wherein the dynamic compiling of the production schedule at regular interval is carried out every 5 seconds, or every 10 seconds, or every 20 seconds, or every 30 seconds, or every 60 seconds.
10. The system according to any of the preceding claims, wherein the client is an electronic device, or a computer, or a tablet, or virtual reality glasses, or a smart watch, or a smart phone.
11. The system according to the preceding claim, wherein the client comprises at least two interactive members, wherein the members are configured for signalling task completion and / or requesting an intermission, and wherein the at least two members are preferably buttons.
12. A computer-implemented method for producing a dynamic production schedule and allocating tasks from the production schedule to at least one client assigned to at least one worker, comprising: a. constructing a production order manuals database for at least one production order, wherein the production manual database comprises: an expansion of production orders into a plurality of tasks and constraints associated with each production order and task; b. receiving, by a processing unit, a plurality of production orders; c. expanding, by a processing unit, the plurality of production orders into a plurality of tasks and associated constraints using the database of production order manuals; d. dynamically compiling, by a processing unit, a production schedule by optimizing the order and assignment of the plurality of tasks according to a target objective, using constraint logic programming engine over finite domains and the constraints associated with the plurality of tasks, wherein the associated constraints are enforced in the optimized order and assignment; and, e. allocating tasks to at least one client according to the production schedule.
13. The method according to claim 12, wherein the method further comprises a step of inputting and transferring, by an input means, the plurality of production orders to a central planning server for processing of the plurality of production orders.
14. The method according to any of claims 12 to 13, wherein the method further comprises steps of receiving, by the at least one client, the allocated tasks and displaying, by the at least one client, the received tasks.
15. The method according to any of claims 12-14, wherein the method further comprises a step of requesting an intermission, by the at least one client, wherein the request for the intermission initiates an update of the production schedule.
16. The method according to any of claims 12-15, wherein the method further comprises a step of signalling a completion of a task, by the at least one client, wherein the signal of completion initiates outputting of a subsequent task to the client, and updating the production schedule.
17. The method according to any of claims 12 or 16, wherein the constraints further comprise weak constraints, and wherein dynamic compilation of the production schedule enforces substantially all the strong constraints and preferably at least some of the weak constraints.
18. The method according to any of claims 12 to 17, wherein the target objective comprises one or more of the following: minimizing food waste, keep up high service quality standards, minimize time lag between subsequent tasks, minimize task duration, minimize time required to complete a production order and to increase throughput of delivering the plurality of production orders.
19. The method according to any of claims 12-18, wherein the dynamic compiling of the production schedule is carried out for one or more of the following: at regular time intervals, when a fixed number of new production orders are received, at the request of an intermission from a worker, when a fixed number of tasks have been completed.
20. The method according to any of 12 to 19, wherein the method may further comprise a step of storing historical performance data about workers’ performance on specific tasks and dynamically updating the production manual database according to the historical performance data.
21. A server system comprising: a. a memory allocation defined by: i. a data store storing an executable asset; ii. a working memory allocation; and, b. a processor allocation configured to load the executable asset from the data store into the working memory allocation to instantiate an instance of a management service configured to: i. communicably couple to an input device for receiving a plurality of production orders, ii. retrieving an expansion of production order for the plurality of production orders from a production manual database, wherein the production manual databasecomprises expansions of production orders into a plurality of tasks and constraints associated with each production order and task,Hi. expanding the plurality of production orders into a plurality of tasks and associated constraints using the expansion of production orders, iv. dynamically compiling a production schedule by optimizing the plurality of tasks and assignment of the plurality of tasks to one or more workers according to a target objective using a constraint logic programming engine over finite domains and the constraints associated with the plurality of tasks, wherein the associated constraints are enforced in the optimized order and assignment, and, v. communicably couple to at least one client assigned to a worker configured to receive tasks of the production schedule, wherein the at least one client comprises an output means to display the received tasks and a feedback module to allow the worker to request an intermission and / or signal a completion of a task, and in response the processor allocation signals and / or updates the production schedule.
Citation Information
Patent Citations
User-centric system for dynamic scheduling of personalised work plans
WO2021012020A1
Resource-task network (RTN)-based templated production schedule optimization (PSO) framework
US20230297089A1
Exploitation of workflow solution spaces to account for changes to resources
US8180658B2
Cited By
Modular integrated control system of agricultural product deep processing production line
CN122044112A