Solution for generating dynamic production schedules and allocating tasks from production schedules

CN122804242APending Publication Date: 2026-09-22JORDANDO PTE LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202480086751.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-12-11
Filing Date
2024-12-11
Publication Date
2026-09-22

AI Technical Summary

Technical Problem

然而,此类解决方案不适用于快速演变和协作环境中的实时和即时动态排程及任务分配,其中,由新传入生产订单流生成的生产线的快速演变要求劳动力具备高度的纪律性和灵活性以完成生产订单,其中,所有生产订单中各产品个体任务的时间要求及任务间关联性均需加以遵守

Benefits of technology

[0144]本领域技术人员将容易理解,该系统的实施例或其组合及其各种变型,以及该方法的实施例或其组合及其各种变型,可等同地应用于该方法和系统的实施例或实施例的组合。这些方面都密切相关,共享例如相似的过程步骤和结构/功能特征。本领域技术人员将能够基于本公开内容将一个方面或实施方案的实施例适配到另一方面或实施例,从而认识到例如方法中的过程步骤与系统中的结构或功能特征之间的基础技术特征如何转换。这种灵活性确保了本发明的范围涵盖所有方面及其所有实施例组合。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122804242A_ABST
    Figure CN122804242A_ABST
Patent Text Reader

Abstract

The invention provides a solution for: receiving a plurality of orders (e.g., orders for dishes in a restaurant); decomposing each order into individual steps / tasks according to a predefined database (which includes decomposition data of orders to tasks and associated constraints); dynamically compiling a production schedule (i.e., an optimized order of tasks and task assignments); and assigning tasks to electronic clients according to the production schedule, the electronic clients being assigned to workers designated to perform the assigned at least one task. The dynamic compilation of the production schedule is performed while enforcing the associated constraints. The invention is useful for controlling and assigning tasks to produce products in a highly collaborative and rapidly evolving worker environment (e.g., a commercial kitchen, where multiple different types of dishes must be completed within set time limits, and the goal is to reduce mistakes and oversights and increase efficiency).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to just-in-time task assignment. More specifically, it relates to a system and method that uses a constraint logic programming paradigm over a finite domain and has a feedback mechanism for workers to automate task optimization and assignment to workers. This invention is useful for controlling and assigning tasks to produce products or services in highly collaborative worker environments, where working conditions require the products or services to be produced under a set of strong constraints, such as those in a commercial kitchen where kitchen workers produce multiple dishes under well-defined (strong) constraints (e.g., dependencies and time-sensitive constraints) through interrelated tasks. Background Technology

[0002] The production of high-quality products or services typically involves a well-defined workflow outlined in a production manual (also known as a recipe or Standard Operating Procedure (SOP) guide in the kitchen context). The production manual usually comprises multiple production steps (also known as tasks), which are often interdependent; that is, a task may include a dependency on another task. Furthermore, some tasks are sensitive to execution methods and time, outlining a set of strong constraints that must be met to ensure product or service quality, and often accompanied by a set of weak constraints that are desirable but not required to be met. These weak constraints can sometimes be compromised to optimize the workflow. Such production lines typically involve a highly dynamic and collaborative employee environment and may also include digital agents or robots (also known as workers), where each worker may possess specific skills and / or qualifications and be assigned to perform one or more specific tasks. The production line is typically controlled by a supervisor, and communication between supervisors and workers is usually verbal and / or via notes. The efficiency and effectiveness of such operations, the supervisor's skillful timing and assignment of tasks to individual workers, and communication between workers play a crucial role in the production process to ensure high product quality, further reduce production time, and improve overall customer satisfaction. Furthermore, by optimizing production and improving communication, material waste can be significantly reduced and the possibility of human error can be mitigated at least partially.

[0003] Existing technical methods exist for personalized scheduling of workers in IT or healthcare (e.g., the solution disclosed in WO2021012020A1), which provide solutions for generating personalized work schedules over long time periods (e.g., days and weeks) based on the history of inbound tasks and / or appointments; that is, they provide solutions for generating work calendars. These existing technical methods use methods such as linear programming, genetic algorithms, or machine learning / neural networks, processing large amounts of historical data. Such solutions can be used to adapt and schedule inbound tasks into a user's personalized and optimized calendar. However, such solutions are not suitable for real-time and instantaneous dynamic scheduling and task allocation in rapidly evolving and collaborative environments where the rapid evolution of production lines generated by new inbound production order flows requires a high degree of discipline and flexibility from the workforce to complete production orders, where the time requirements of individual tasks for each product in all production orders and the interrelationships between tasks must be adhered to.

[0004] An example of this highly collaborative environment is a commercial kitchen, where products can be high-quality dishes ordered by customers on demand. The traditional way workers communicate in a commercial kitchen is using slips of paper with each dish order printed at the restaurant counter and handed to the kitchen, where the head chef or other supervising chef assigns the task to their subordinates. For more complex tasks, kitchen staff may even use notebooks where they clearly write down their tasks before starting. To meet the critical (strong) time constraints of their recipes or SOP guidelines, kitchen staff use very simple digital timers and / or stopwatches to measure the time required for such critical cooking and / or baking tasks. Summary of the Invention

[0005] This invention provides a solution that replaces the analog approach to task scheduling and allocation in the prior art with an enhanced integrated electronic version, equipped with a central planning system that reduces supervisory pressure by automatically allocating tasks in a real-time and rapidly evolving environment. This allows supervisors more time for guidance and supervision, ensuring high-quality production while minimizing waste of raw materials and products (e.g., due to violations of operating procedures, such as incorrect timing, missed production steps, etc.).

[0006] Compared to known solutions in the prior art, the present invention provides a solution for real-time task allocation and assignment of production orders (e.g., menus in a restaurant context) from a predefined decomposition scheme, decomposing them into interrelated and time-sensitive tasks. This solution provides automated and dynamic task optimization and task assignment to workers, respecting / satisfying the interrelationships and time sensitivity between tasks.

[0007] The solution provided by this invention is very useful for controlling and allocating tasks to produce products in highly collaborative and rapidly evolving worker environments, such as commercial kitchens, where multiple different types of dishes must be prepared within time constraints, the dishes must be of high quality to satisfy customers, and the goal is to reduce errors and oversights that may lead to additional waste of raw materials and manpower.

[0008] One of the solutions presented in this paper involves using a constraint logic programming paradigm over finite fields, combining strong constraints, weak constraints, and optimization objectives (with worker-oriented feedback mechanisms) to provide a solution for optimizing multiple concurrent tasks in a real-time environment, thereby ensuring high-quality results for tasks within specified time constraints.

[0009] Unlike existing solutions that use methods such as linear programming, genetic algorithms, or machine learning / neural networks and are based on large amounts of historical data, this invention models its optimization objective as a constraint satisfaction problem that combines strong and weak constraints on a set of discrete input parameters, such as the number of employees, the number of production orders, or the quantity of each type of product received by a central planning server at any given time. Subsequently, this invention employs a constraint logic programming paradigm over finite fields to provide a solution for optimizing multiple concurrent tasks in a real-time environment, thereby ensuring high-quality results for the tasks within specified time constraints.

[0010] When new information arrives at the central planning server (such as new incoming orders, employee feedback / interruption requests, etc.), the definition of the constraint satisfaction problem is updated (constraints are added, removed, or modified), which ultimately leads to an updated solution to the problem.

[0011] One solution presented in this article includes electronic devices (also referred to as clients) and a central planning server that includes a product manufacturing manual database. In a restaurant environment, this product manufacturing manual database is a recipe database.

[0012] A central planning server communicates with at least one electronic device (e.g., wirelessly) to inform workers of their next task, which the worker then executes and signals to the central planning server that the task has been completed. The central planning server receives incoming production orders and uses a symbolic artificial intelligence engine to optimize task allocation to workers (task flows) in real time. To complete a production order, workers typically must collaboratively perform one or more tasks that are usually explicitly (interdependent). However, unlike a typical production line (where a worker has a very limited skill set and a very specialized position on the line), this invention allows employees to be assigned to a wider range of tasks (while allowing the exclusion of certain high-skill tasks or limitations imposed by the employee's job position).

[0013] Furthermore, dependency constraints can be defined in a very flexible way, including minimum lag between tasks, task duration, and the work duration required to successfully complete a task. It is important to emphasize that these time constraints are strong constraints because only very limited flexibility tolerance is allowed for certain production steps (e.g., frying, cooking, or baking time in a kitchen setting). In contrast, constraints are often only approximately preserved when using statistical methods such as semantic networks or machine learning.

[0014] On the other hand, linear programming is also impractical because the underlying problem involves many integer variables (a small number of production orders, limited production resources, such as workers or equipment), and solving integer programming problems is usually exponentially more challenging than their linear programming counterparts, resulting in very long computation times and making them unsuitable for solving real-time problems.

[0015] For certain production steps / tasks (such as frying, boiling, or baking times in a kitchen environment where only very limited tolerances are allowed), leveraging interdependencies and time constraints provides an advantage and a solution for accomplishing time-sensitive tasks and achieving stringent optimization goals.

[0016] One solution presented in this paper assists in the (micro)management of personnel, requiring a solution that accommodates human needs and complies with legal regulations (such as those regarding maximum working hours or rest periods). Therefore, electronic devices are equipped with: feedback functions, allowing workers to confirm the completion of a task and receive new assignments; and request functions, allowing employees to proactively request, for example, a break (also known as an interruption) from a central planning server, thus excluding the worker from planning considerations. This invention provides a solution highly useful for kitchen management in restaurants (also known as commercial kitchens), where the head chef pre-decomposes recipes into a series of tasks. These tasks may include strong time constraints with very limited tolerances, such as considering the duration of frying, boiling, or baking a dish. Furthermore, these tasks are highly interdependent.

[0017] For this type of kitchen management solution, the head chef needs to pre-establish a production manual database, which includes tasks for available dishes and associated constraints (often referred to as the Standard Operating Procedure (SOP) for each dish). This invention generates highly optimized production schedules by breaking down recipes into tasks and constraints and incorporating a symbolic AI engine. These schedules help chefs and other staff improve quality standards in commercial kitchens and consistently provide customers with high-quality dishes. This also avoids the common problem of the head chef needing to closely supervise and advise other chefs and support staff. Furthermore, the situation in restaurant kitchens can be particularly complex due to high time pressure and the high diversity of incoming order flows. Therefore, this invention can help plan and optimize the control of order flows, thereby alleviating the high time pressure on staff, especially the head chef. In addition, by defining a set of constraints related to worker specifications, skills, and availability, this invention can automatically take into account worker specifications, skills, and availability. Furthermore, it may be necessary to consider the limitations and / or availability of certain equipment or machinery required to perform selected tasks, as well as opportunities for optimization through batch processing, such as when a limited and frequently occurring set of tasks (or in some cases even dish or product orders) can be combined and executed almost simultaneously, requiring only a limited amount of additional processing time. These can be modeled by setting appropriate constraints, so that they can be automatically taken into account when the invention generates production schedules.

[0018] This invention is based on the following principle: extending the production process of high-quality products into a series of interdependent production steps (tasks), and using a symbolic artificial intelligence engine to enforce high-quality standards, reduce waste, improve personnel allocation, and improve communication among employees working on the product through the use of strong constraints (and possibly weak constraints), thereby improving overall customer satisfaction.

[0019] This invention focuses on high-quality products produced on a single basis, where the optimization objective is typically to minimize raw material waste, improve worker efficiency, and maximize the quality of a single or a few products, rather than optimizing the production of large quantities of products. Given these characteristics (relatively many varieties, few workers, and small output), the applicant recognized that constraint logic programming over finite fields is a superior choice as the artificial intelligence engine. Compared to other methods (such as, but not limited to, linear programming, genetic algorithms, or machine learning methods), constraint logic programming over finite fields excels at handling (NP-complete) small integer field problems that require strong and time-critical constraints.

[0020] According to one aspect of the present invention, a management system is provided for generating dynamic production schedules and allocating tasks from the production schedule to at least one client assigned to at least one worker. The system includes: a first storage device; and a first processing device coupled to the first storage device and configured to: receive multiple production orders; expand the multiple production orders into multiple tasks and associated constraints using a production order manual database; and dynamically compile the production schedule by optimizing the order and allocation of the multiple tasks according to an optimization objective and utilizing a constraint logic programming engine over a finite domain and the constraints associated with the multiple tasks. The associated constraints are in the generated... The optimized sequence and allocation are enforced, and tasks are assigned to at least one client according to the production schedule; and at least one electronic client is assigned to at least one worker and communicatively coupled to a first processing device, the client comprising: a second storage device; a second processing device coupled to the second storage device and configured to: receive the assigned tasks, output the assigned tasks to the worker, allow a user to issue a task completion signal and / or request an interruption, wherein the task completion signal and / or interruption request is sent to the first processing device, and wherein the first processing device updates the dynamic production schedule in response to this.

[0021] According to one aspect of the present invention, a server system is provided, the server system comprising: A memory allocation structure, defined by: a data memory storing executable resources; a working memory allocation structure; and, A processor allocation structure is configured to load executable resources from data memory into a working memory allocation structure to instantiate an instance of a management service. This instance of the management service is configured to: communicatively couple to an input device to receive multiple production orders; retrieve production order extensions of these multiple production orders from a production manual database, wherein the production manual database includes extensions of production orders to multiple tasks and constraints associated with each production order and task; extend the multiple production orders into multiple tasks and associated constraints using the production order extensions; and program the multiple production orders into multiple tasks and associated constraints based on an optimization objective and utilizing a constraint logic programming engine over a finite domain. The production schedule is dynamically compiled by using constraints associated with the tasks to optimize the order of the multiple tasks and their allocation to one or more workers, wherein the associated constraints are enforced in the optimized order and allocation; and, communicatively coupled to at least one client assigned to a worker, the client being configured to receive the tasks of the production schedule, wherein the at least one client includes an output device for displaying the received tasks and a feedback module that allows the worker to request an interruption and / or issue a task completion signal, and in response to the request for interruption and / or the task completion signal, the processor allocation structure signals and / or updates the production schedule.

[0022] In one aspect of the invention, an integrated system is provided for generating dynamic production schedules and allocating tasks from the production schedule to at least one device used by at least one worker. The system includes: a) an input module configured to receive 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 expanding the production orders into a plurality of tasks, wherein the production manual database module further includes constraints associated with each production order and task; d) a constraint logic programming (engine) module for dynamically compiling the production schedule by optimizing the order and allocation of the plurality of tasks according to an optimization objective and constraints associated with the plurality of tasks, wherein at least one of the associated constraints is enforced in the optimized order; e) an allocation module for assigning tasks to at least one client according to the production schedule; and f) at least one client module assigned to workers, the at least one client module configured to receive tasks from the production schedule, wherein the at least one client module further includes output for displaying the received tasks.

[0023] According to one aspect of the present invention, a system is provided for generating dynamic production schedules and allocating tasks from the production schedule to at least one client assigned to at least one worker, the system comprising: An input device is configured to receive multiple production orders and transmit the multiple production orders to a central planning server; A central planning server includes: a production manual database, wherein the production manual database includes extensions of production orders to multiple tasks and constraints associated with each production order and task; a production pipeline configured to: use the production manual database to extend received multiple production orders into multiple tasks and associated constraints, and dynamically compile a production schedule by optimizing the order and allocation of the multiple tasks according to optimization objectives and utilizing a constraint logic programming engine over a finite domain and the constraints associated with the multiple tasks, wherein the associated constraints are enforced in the generated optimized order and allocation; an allocation module for assigning tasks to at least one client according to the production schedule; and At least one client assigned to a worker is configured to receive tasks from a production schedule, including: an output and feedback module for displaying the received tasks, the feedback module being configured to communicate with the central planning server and allow the worker to request an interruption and send a completion signal via an interactive component, wherein the interruption request is configured to send a signal to the central planning server that the worker requests an interruption to update the production schedule accordingly, and wherein the completion signal is configured to use the output to display subsequent tasks according to the production schedule to the worker and to inform the central planning server of completed tasks to update the production schedule.

[0024] The following definitions and embodiments relate to all aspects of the methods, systems, computer programs, databases, and apparatus of the present invention.

[0025] In this document, the term "production pipeline" may refer to any software and / or hardware configured to receive and process one or more production orders, expand the production orders into multiple tasks and constraints associated with the tasks and constraints (e.g., by accessing a data storage device including a production manual database), optionally preprocess the expanded production orders, formulate constraint problems and employ a constraint logic programming engine over a finite domain and use the engine to search for efficient solutions to the constraint problems, i.e., find the optimal order and allocation of the multiple tasks under the condition that all (strong) constraints associated with the multiple tasks are satisfied.

[0026] The system may include a central planning server that receives at least one production order, expands the production order into tasks and associated constraints, and uses a symbolic artificial intelligence engine to optimize the order and assignment of tasks based on the associated constraints. The tasks can then be assigned to multiple workers based on the optimized order and assignment.

[0027] In some embodiments, the system may include means for receiving at least one production order and means for transmitting the received at least one production order to a central planning server.

[0028] In some embodiments, the central planning server may include a production manual database, which includes an extension of at least one production order to multiple tasks and constraints associated with the multiple tasks.

[0029] In some embodiments, the constraints associated with the plurality of tasks may include one or more of the following: dependency-related constraints, time-related constraints, worker-related constraints, batch-related constraints, and device-related constraints.

[0030] In some embodiments, the central planning server may include a method for compiling a production schedule from receiving at least one production order, wherein the method may perform actions such as expanding the received at least one production order into multiple tasks and constraints associated with each task, and using an artificial intelligence engine to optimize the order of the multiple tasks using the constraints associated with each task to generate the production schedule. In some embodiments, the artificial intelligence engine is a symbolic artificial intelligence engine, such as, but not limited to, constraint logic programming over a finite domain.

[0031] In one embodiment, at least one task can then be assigned to each of the plurality of workers according to the production schedule (i.e., the optimized order and allocation of tasks). In such embodiments, 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 also provide a feedback module for communicating with a central planning server. In some embodiments, the feedback module includes an interruption request. In some embodiments, the feedback module includes means for indicating availability and / or requesting a task and / or issuing a completion signal for the at least one task.

[0032] In some embodiments, the plurality of production orders may be a plurality of dish orders, and the production manual database includes the recipes for the dish orders as well as a plurality of tasks and associated constraints for the recipes, and the workers are chefs or kitchen assistants.

[0033] For each type of production order, the number of production orders received can range from 0 to 30, 0 to 20, or 0 to 10, where a value of 0 indicates that no production orders for that specific type of product (or dish) have been received.

[0034] In some embodiments, the means for receiving production orders (also referred to herein as an input means) may be a central reservation system, wherein the central reservation system transmits at least one production order to a central planning server. In some embodiments, the means for receiving production orders may include a direct input terminal from the production order to the central planning server, such as via a keyboard connected to the central planning server or via a voice integration system connected to the central planning server. For example, in a restaurant, a waiter may receive production orders (i.e., food orders) and input them into the central planning server. In some embodiments, the central reservation system may be an online reservation system, wherein the online reservation system communicates with the central planning server.

[0035] The central planning server compares production orders with those stored in the production manual database and verifies that the production order exists in the production manual database.

[0036] In this document, the term "constraint" may be associated with a task and / or production order, referring to restrictions and / or limitations on the execution of a task. Constraints may, for example, involve, but are not limited to, dependencies between tasks, i.e., enforcing a specific order of a series of tasks, where tasks may have defined predecessor tasks. Constraints may, for example, involve time constraints, i.e., enforcing time limits on the duration of certain tasks and / or lags between two dependent tasks. Constraints may involve allocation constraints, i.e., enforcing the assignment of specific tasks to certain individuals (workers). In some cases, certain workers may lack the skills and / or qualifications required to perform a task and are therefore excluded from performing such tasks. Constraints may also involve the availability of specific equipment required to perform certain tasks. Constraints may also involve mandatory rest periods or similar provisions stipulated by national regulations.

[0037] Constraints may include one or more of the following: the maximum allowed time to complete a production order; interdependence constraints between two or more tasks in the same production order; time constraints on tasks (e.g., the maximum duration of a task and the maximum allowed time between tasks); mandatory time delays before and / or after task completion; constraints related to mandatory working and rest times stipulated by the state; allocation constraints (e.g., constraints related to worker skills and worker qualifications); equipment-related constraints; and constraints related to combining requests for the same product type across production orders (or even just task subsequences) for parallel processing of production orders and / or tasks.

[0038] In some embodiments, some constraints can be defined as strong / hard constraints that must be satisfied for a product to be considered to have good quality, such as, but not limited to, time constraints or dependencies between tasks. Some other constraints can be defined as weak / soft constraints that are expected to be satisfied but are allowed to be compromised in specific circumstances (particularly when they directly conflict with strong constraints). Therefore, in some embodiments, constraints may also include weak constraints, and wherein the compilation of the production schedule enforces at least some of these weak constraints.

[0039] In some embodiments, 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 abandoning weak constraints implemented as strong constraints one by one, in groups, or in whole if an invalid or undesirable production schedule is obtained during compilation; by compiling an initial production schedule without weak constraints, then adding weak constraints one by one, in groups, or in whole, and recompiling the production schedule; and by adding a penalty for each weak constraint violation and instructing the constraint logic programming engine to find a production schedule that minimizes the score or cumulative penalty.

[0040] In some embodiments, the system may include a data storage containing a list of workers, wherein the list of workers may include a list of available workers.

[0041] It is assumed that each task received by a client assigned to a worker (from a central planning server) is performed only by the worker assigned to that client.

[0042] In some embodiments, a single worker can receive and process multiple tasks simultaneously (via a client from a central planning server), particularly when a single task includes a mandatory delay and requires relatively short human interaction time. For example, if a worker receives a task with a 1-minute work time followed by a 10-minute mandatory delay, the worker can begin executing a second received task (also displayed by the client) immediately after completing its work, without waiting for the 10-minute delay to end.

[0043] In some embodiments, if two or more tasks are equivalent, a single worker may execute two or more tasks belonging to two or more production orders simultaneously. For example, if two received production orders both include the same tasks for both production orders, the two tasks may be merged into one and assigned to that single worker (i.e., batch processing of certain tasks). Therefore, in some embodiments, certain tasks may be referred to and / or labeled as batch tasks.

[0044] In some embodiments, the production pipeline may further include a prerequisite module for determining whether a received production order is feasible before transferring it to the production pipeline. This prerequisite module may be configured to compare the quantity of materials and / or the qualifications of workers with the received production order and then determine whether to add the production order to the production pipeline. In some embodiments, the prerequisite module may also check whether there are extensions to tasks and dependencies in the received production order, and whether constraints are defined for the task in the production manual database. In some embodiments, the prerequisite module may also check worker availability, particularly the availability of specialized workers qualified to handle specific specialized tasks in the extensions of the received production order. Finally, after verifying that all prerequisites are met, the prerequisite module may add / transfer the received production order to the production pipeline.

[0045] This invention uses a declarative constraint logic programming engine (CLP) to generate production schedules in a finite field CLP (FD). In such an embodiment, the artificial intelligence engine can be implemented using a finite field constraint solver developed by Markus Triska and provided in the SWI-Prolog system (Finite Field Constraint Solver for SWI-Prolog, FLOPS Proceedings, 307-316, 2012).

[0046] The AI ​​engine / constraint logic programming engine can be configured to generate an optimized order and allocation of tasks (i.e., production scheduling) by using optimization objectives, while enforcing all specified strong constraints and preferably (but not necessarily) enforcing most specified weak constraints. In some embodiments, the optimization objective may be to optimize the throughput of multiple workers while enforcing constraints associated with the multiple tasks. In additional or identical embodiments, the optimization objective may include one or more of the following: minimizing (food) waste; maintaining high-quality product (service) standards by reminding and alerting workers to critical time-constrained tasks that must be processed immediately to meet required strong constraints; minimizing lag time between subsequent tasks; minimizing task duration; and minimizing the time required to complete a production order.

[0047] In this article, the terms "artificial intelligence engine," "symbolic artificial intelligence engine," and "constrained logic programming over finite fields" are used interchangeably.

[0048] In one embodiment, the invention collects all tasks within the production pipeline, assigns unbound timestamps (specifically, the start and end times of each task) to the relevant tasks, and feeds them, along with associated time and / or dependency constraints (as defined in the production manual database) and, in some embodiments, other constraints related to employees or orders, into a CLP(FD) solver. The CLP(FD) solver then attempts to bind each unbound timestamp to a fixed integer value, aiming to optimize the productivity of at least one available worker. This binding process (also known as a marking process) is a search in which values ​​that meet certain criteria are assigned one by one to the unbound timestamps, each time checking whether the assignment still yields a valid solution satisfying at least all the strong constraints specified in the given problem. The order in which timestamps are selected for binding to fixed values ​​is called the marking strategy, and several pre-existing strategies (algorithms) are provided within the CLP(FD) solver. Once timestamps are marked, constraint propagation is used to further prune the search space. If the binding of a particular timestamp and the triggered constraint propagation detect a problem where the problem defined by the production pipeline becomes unsolvable (according to the given constraints), backtracking is applied.

[0049] In some embodiments, one or more labeling strategies (also known as heuristics) can be defined and implemented in a central planning server to facilitate targeted solution searching. In some embodiments, such labeling strategies are defined by CLP(FD). In some embodiments, such labeling strategies are determined automatically and added to the artificial intelligence engine.

[0050] In contrast to strong constraints that are always enforced by the CLP(FD) solver, in some embodiments, weak constraints may be initially modeled as strong constraints and are only abandoned, for example, one by one, group by group or all, if the marking process does not generate any valid solutions (i.e., solutions that satisfy all constraints) or produces highly undesirable solutions (e.g., in terms of job scheduling).

[0051] In some embodiments, weak constraints may be initially excluded from the CLP(FD) solver to generate at least one initial valid work plan, which can then be improved by adding the weak constraints and rerunning the solver to try to find solutions that also satisfy those weak constraints.

[0052] In some embodiments, weak constraints can be modeled by adding penalties for violations of these weak constraints, and the CLP(FD) solver is instructed to find solutions with low penalties.

[0053] Throughout the process, the handling of weak constraints in the solution search is designed to be automatic and determined by the algorithm rather than by human intervention, in order to meet the immediacy requirements of this invention.

[0054] In some embodiments, specifically selected received production orders may be assigned a priority status, wherein the task corresponding to the selected received production order is assigned a priority constraint, causing the AI ​​engine to prioritize that task over other tasks of different received production orders to accelerate the production of the selected received production order. In some embodiments, prioritizing the selected received production orders may be given to regular customers who requested the production order. Alternatively, prioritizing the selected received production orders may be given to customers who pay an additional (expedited) fee for the received production order. Thus, in one embodiment, the optimization objective of the AI ​​engine may be to optimize the revenue of the production facility by allowing certain production orders to be prioritized in the production schedule for an additional expedited fee.

[0055] In some embodiments, the AI ​​engine can be configured to employ a backtracking strategy when it is no longer possible to assign a valid value to an unbound timestamp (because any value would violate one of the constraints associated with that unbound timestamp).

[0056] The AI ​​engine can employ different timestamp binding strategies (heuristic strategies) to obtain different solutions for the optimization order and allocation of multiple tasks. Alternatively, the AI ​​engine can use different timestamp binding strategies to achieve a single solution, where all timestamps can be assigned values ​​that meet the associated constraints.

[0057] In some embodiments, the system may further include a database configured to store historical performance data of workers' performance on specific tasks. In some embodiments, historical performance data may be stored along with worker constraints. In some embodiments, historical performance data may be stored in a production manual database. In some embodiments, historical performance data may be stored in an additional database within a central planning server.

[0058] In some embodiments, the system may be configured to dynamically update the time constraints associated with the plurality of tasks based on historical performance data.

[0059] In some embodiments, dynamic compilation of production scheduling may be performed at one or more of the following: at regular time intervals, upon receiving a fixed number of new production orders, upon responding to interruption requests from workers, and upon completing a fixed number of tasks.

[0060] 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 number of production orders (e.g., but not limited to two, three, four, five, or ten production orders). This fixed value may be determined based on various factors, such as, but not limited to, worker capabilities, number of workers, average number of production orders, time of day, and day of the week.

[0061] In some embodiments, a worker may be an automated robot (e.g., a robotic arm) configured to perform a specific task (e.g., cooking or frying), and / or a digital agent programmed to perform a specific task (e.g., a software application), and / or a human employee hired / instructed to perform a specific task. In some embodiments, a worker may be a combination of one or more of the above.

[0062] In some embodiments, the system can be configured to compile or update production schedules at regular time intervals. In such embodiments, the regular time interval can be selected as 5 seconds, 10 seconds, 30 seconds, 1 minute, 5 minutes, 10 minutes, 30 minutes, or 1 hour. Alternatively, the time interval can be selected from the following ranges: 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 time interval ranges can be used in different situations. In one such embodiment, the regular time interval or time interval range can vary with the time of day.

[0063] In some embodiments, compiling or updating the production schedule includes product orders that have been partially processed and / or approved interruptions.

[0064] In some embodiments, the allocation module is configured to transmit data to at least one client via a wireless or wired connection, wherein the transmitted data may include tasks assigned according to the optimized order of tasks and allocation (i.e., production scheduling), or data thereof.

[0065] In some embodiments, workers can request an interruption via the client's feedback module. In some embodiments, the production pipeline can be recompiled after an interruption request. In some embodiments, an interruption request can include one or more of the following options: standard interruption, long-duration interruption, and emergency interruption.

[0066] In some embodiments, requests for standard interruptions and / or long-term interruptions can be configured as tasks in the production pipeline.

[0067] In some embodiments, interruptions in accordance with national laws can be configured as tasks and / or constraints in the production pipeline.

[0068] The compilation of the production pipeline is configured not to interrupt workers currently performing their tasks. In some embodiments, the compilation of the production pipeline may interrupt workers currently performing their tasks if a worker explicitly requests an emergency interruption.

[0069] In one embodiment, an emergency interruption can be configured to assign the current task of the worker requesting the emergency interruption to the next available worker, i.e., the next worker to indicate availability and / or issue a task completion signal.

[0070] In some embodiments, the system may be configured to assign tasks of incomplete or unfinished product orders to workers based on the optimized order and allocation of tasks (i.e., the production schedule) when a worker indicates task completion via a feedback module.

[0071] In some embodiments, the client displays the current task to be performed by the worker. In some embodiments, the client may also display one or more of the following: the expected time to complete the task, the task's dependencies, and the product delivery and the next task to be performed after the task is completed.

[0072] In some embodiments, the client is a small, durable electronic device specifically designed for challenging environments, such as, but not limited to, commercial kitchens, where electronic devices may be subjected to thermal 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 smartwatch.

[0073] In some embodiments, the client and the central planning server can communicate wirelessly (e.g., via a local wireless network (WiFi)). Alternatively, in some embodiments, the client and the central planning server can communicate via a wired connection (e.g., but not limited to Ethernet).

[0074] In some embodiments, the system may further include a central information display. In some embodiments, the central information display includes a connection device connected to a central planning server to receive 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: currently executing production schedule tasks and which worker is performing them; upcoming tasks and their projected assignment; and if a worker requests an interruption, the interruption and any scheduled interruptions may be displayed.

[0075] In some embodiments, a production order is a recipe for producing a product, wherein the recipe includes a sequence of tasks, and the tasks may be interdependent.

[0076] In some embodiments, the recipe is a food recipe, and the multiple workers are at least one chef and / or at least one kitchen helper. In such embodiments, the system can be configured in a commercial kitchen.

[0077] In some embodiments, a production order is a workflow that includes a sequence of tasks, wherein the tasks may be interdependent.

[0078] According to one aspect of the present invention, a system is provided for automatically optimizing multiple tasks derived from at least one production order and distributing the multiple tasks to multiple workers, the system comprising: An input device for receiving at least one production order and transmitting the received production order to a central planning server; A central planning server includes: a production manual database, wherein the production manual database includes an extension of at least one production order to multiple tasks and constraints associated with the multiple tasks; a production pipeline for compiling a production schedule from the received at least one production order, wherein the production pipeline includes a list of workers, steps for extending the received at least one production order to multiple tasks and constraints associated with each task using the production manual database, and an artificial intelligence engine for optimizing the order of the multiple tasks to generate a production schedule for the multiple workers; and an allocation module for allocating tasks from the production schedule to at least one client. A client assigned to each worker, wherein the client includes: a communication module for communicating with a central planning server, wherein the communication includes: receiving at least one task; a feedback module that allows the user to request an interruption and / or issue a completion signal for the at least one task; and displaying the output of the received at least one task.

[0079] In one aspect of the invention, a client is provided for assignment to a worker and for communicating with a central planning server. The client may include a housing unit. The client may include a communication module disposed within the housing for receiving data from and sending data to the central planning server. In some embodiments, the received data includes at least one task to be performed by the worker, and the sent data includes a task completion signal and / or an interruption request. In one embodiment, the client may include a display screen integrated into the housing for displaying the received data or a portion thereof. Furthermore, the client may include at least two interactive components, wherein these components can be used to issue a task completion signal and / or request an interruption.

[0080] In some embodiments, the at least two interactive components are buttons arranged on the housing. In some embodiments, the at least two interactive components are buttons arranged on a touchscreen.

[0081] In some embodiments, the client is a small electronic device including a display screen and a graphical user interface. The client includes at least two buttons for transmitting data to a central planning server, wherein the transmitted data can be used to signal task completion (and thereby request the next task) and request interruption.

[0082] In one embodiment, the display screen may be configured to display at least one task to be performed by a worker. In some embodiments, the display screen may also additionally display at least one follow-up task to be performed.

[0083] In some embodiments, the client is portable.

[0084] 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.

[0085] In some embodiments, the display screen can 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 therein. In some embodiments, the size of the display screen is in the range of 3 inches to 5 inches.

[0086] In some embodiments, the client is durable and can withstand the effects of liquid spills, temperature changes, humidity, grease and / or other contaminants.

[0087] In one embodiment, the housing is configured to securely hold all components of the client within a protective enclosure.

[0088] In one embodiment, the housing may be configured to protect the display and housing from humidity, steam, dust, grease, and / or other contaminants. In one embodiment, the housing comprises a synthetic enclosure.

[0089] In one embodiment, the client can be a computer, which in such an embodiment can be a small, portable, and durable computer. In some embodiments, the client can be a smartphone. In some embodiments, the client can be a tablet computer. In another embodiment, the client can be augmented reality glasses. In yet another embodiment, the client can be a smartwatch. However, in the context of busy work schedules, this configuration has many disadvantages because mobile phones and tablets are generally not resistant to damage from water, heat, steam, grease, dust, etc. In fact, they are often more likely to cause distraction and have significantly reduced ease of use, i.e., they are more prone to slipping, getting dirty, and are more expensive to replace.

[0090] In some embodiments, the client may include a power source, such as, but not limited to, a battery. In some embodiments, the client may include an inlet for charging the battery. In some embodiments, the inlet for charging the battery may be, but is not limited to, a Micro B type. Alternatively, in some embodiments, the client may be connected to an external power source.

[0091] In some embodiments, the client may include an anti-slip area, wherein the anti-slip area prevents the client from slipping from the worker's hand when the assigned worker holds / carries the client, i.e., provides the worker with a secure grip.

[0092] In some embodiments, the anti-slip area may include a high-friction material to prevent slippage or sliding when the anti-slip area is held in the hand. In some embodiments, the material may include rubber, plastic polymer, silicone, or any combination thereof.

[0093] In some embodiments, the housing may be coated with a high-friction material.

[0094] In some embodiments, additionally or alternatively, the anti-slip area may include a pattern or roughness design to enhance grip, such as, but not limited to, dotted patterns, ridged patterns, or honeycomb patterns.

[0095] In one embodiment, the client may include a processor and / or a microprocessor configured to execute instructions related to task reception and processing. In some embodiments, the client may include a microcontroller board, such as, but not limited to, a Raspberry Pi.

[0096] In some embodiments, the client includes 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 include one or more of the following: the name of the assigned worker, date, clock, timer, task to be performed, one or more follow-up tasks to be performed, production order to which the task to be performed belongs, information about mandatory delays and where completed tasks are to be delivered, a completion signal button, an interruption request button, and a settings button.

[0097] In one embodiment, the client may include a memory storage unit configured to store tasks to be performed.

[0098] In one embodiment, the client may include a communication device for communicating with a central planning server, particularly for receiving data from the central planning server and / or transmitting data to the central planning server, wherein the received data may be at least one task assigned to a worker according to an optimized sequence and allocation, and wherein the transmitted data may be a task completion signal and / or an interruption request and / or an availability indication.

[0099] In one embodiment, a client for allowing a worker to communicate electronically with a central planning server may be provided, wherein the client includes: a housing unit comprising a composite shell, wherein the housing unit includes at least two interactive buttons and a setting button; a power supply unit disposed within the housing unit and configured to provide 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 being connected to the microprocessor; a memory storage unit configured to store tasks to be performed and coupled to the microprocessor; and a wireless communication module coupled to the microprocessor for receiving data from and transmitting data to the central planning server, wherein the received data includes tasks to be performed, and the transmitted data sends a worker availability signal and / or a worker request for interruption signal to the central planning server.

[0100] In one embodiment, the housing includes a fastening mechanism for securing the housing to an object (e.g., but not limited to a surface). In one embodiment, the housing may include a magnetic strip disposed on the back of the housing for mounting the housing to a metal surface. In some embodiments, the fastener may be, but is 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 surface.

[0101] In some embodiments, the fastener may be, but is not limited to, a clip, hook, or loop. In such embodiments, the client may be a wearable device with a clip for attaching the client to a person's belt, shirt, or coat pocket. Alternatively, the fastener may serve as a strap to be fastened to a worker's arm or wrist.

[0102] In some embodiments, fasteners can be easily attached to and / or removed from the housing unit.

[0103] In some embodiments, the client may include an alarm mechanism for notifying assigned workers of important notifications and / or sudden changes and / or interruptions in incoming tasks and / or production schedules. In some embodiments, the alarm mechanism may be a buzzer and / or a vibration device integrated into the electronic client.

[0104] In some embodiments, at least one client module assigned to a worker may further include a feedback module configured to communicate with the central planning module to allow the worker to request interruption and send completion signals via interactive components.

[0105] In some embodiments, the interruption request is configured to initiate a recompilation in the central planning module to adjust the production schedule.

[0106] In some embodiments, the completion signal is configured to use the output to display subsequent tasks to workers according to the production schedule and to inform central planning to update the production schedule.

[0107] In one aspect of the invention, a method is provided for constructing a production manual database for a process of forming at least one product, wherein the process includes a series of tasks, wherein the tasks in the series of tasks may be interdependent and / or associated with time constraints.

[0108] In some embodiments, the process may be a workflow.

[0109] In some embodiments, the process can be a food formulation for producing food.

[0110] In some embodiments, the process of producing a product or dish can be arranged in a dedicated data sheet called a Standard Operating Procedure (SOP), which includes all the individual steps involved in producing the product or dish.

[0111] In some embodiments, the task has constraints associated with each task. In such embodiments, the constraints may be dependency constraints, i.e., interdependencies between tasks. Furthermore, the constraints may be time-related constraints. In some embodiments, the constraints may include worker-related constraints, such as, but not limited to, qualifications required to perform the task. In some embodiments, the constraints may include device-related constraints, such as, but not limited to, the equipment required to perform the task.

[0112] In some embodiments, a task may be associated with constraints that can be classified as weak constraints (i.e., compromise constraints) and / or strong constraints.

[0113] In one embodiment, a method for creating a production manual database for a process of forming at least one product may include the following steps: dividing the process of forming at least one product into a sequence of tasks; defining mandatory delay times before and / or after tasks in the process; identifying dependency constraints between tasks in the process; defining time constraints for at least one task in the process; identifying the final task in the process that forms the product; and storing the task sequence, mandatory delay times, dependency constraints, time constraints, and the identification of the final task in the production manual database to produce the product through the process.

[0114] In one embodiment, the method may further include the steps of defining and storing one or more of the following: worker-related constraints, equipment-related constraints, and time constraints generated by national regulations. In one embodiment, worker-related constraints may be constraints on each task based on the worker's skills and / or qualifications. In one embodiment, time constraints generated by national regulations may be mandatory working hours and rest / interval times stipulated by national regulations.

[0115] In one aspect of the invention, a data processing apparatus is provided, comprising means for performing a method for creating a production manual database according to the above embodiments.

[0116] In one aspect of the invention, a computer program is provided that includes instructions that, when executed by a computer, cause the computer to create a production manual database according to the above embodiments.

[0117] In one aspect of the invention, the production manual database may be stored on a computer-readable medium.

[0118] In one aspect of the invention, a method is provided for a worker to request a new task, wherein the method may include the following steps: activating a personal client assigned to a specific worker; connecting the client to a central planning server; receiving at least one piece of data from the central planning server, wherein the at least one piece of data may include: what task the specific worker needs to perform and one or more of the following: how long the specific worker should complete the given task (time constraint), and where the specific worker should deliver the task product after completing their work task (i.e., to whom to report or which worker will take over the production process of the specific product); confirming the completion of the task by pressing an interactive component on the client; and signaling to the central planning server that the work task will be removed from the production pipeline, such that the task is omitted in the compilation of subsequent production schedules.

[0119] In some embodiments, completed tasks may be moved to a retrospective “actual scheduling database” that stores the actual start timestamp, end timestamp, and worker information.

[0120] On the other hand, the present invention provides a method for a worker to request an interruption (also known as a break), the method comprising the steps of: pressing an interactive component on an electronic device assigned to the worker, wherein the interactive button signals an interruption request; confirming that the current work task and possible minor additional requests still need to be completed within a short period of time (typically within 10 minutes, but up to 1 hour depending on organizational and / or legal regulations); notifying a central planning server of the interruption request; verifying within the production schedule of the central planning server whether the break request would make the completion of certain products impossible (e.g., due to a lack of qualified personnel), and notifying management of this situation; adding the break request as a "blank" task assignment to the production pipeline, ensuring that the worker can take their requested break soon. Upon the next planned production schedule recompilation, the actual start time of the break is assigned and displayed on the electronic device assigned to the requesting worker when the break start time and expected end time arrive.

[0121] In one embodiment, issuing an interruption request signal may include selecting a standard rest and / or a long rest and / or an emergency rest.

[0122] In one embodiment, if a worker chooses to take an emergency break, the worker requesting the break is immediately relieved of all duties, and the next available worker is assigned to take over the current task of the departing worker.

[0123] In one aspect of the invention, a computer-implemented method is provided for compiling a production schedule and transferring multiple tasks from the production schedule to at least one client, wherein the method may include the steps of: expanding a received at least one production order into multiple tasks and constraints associated with the multiple tasks; optimizing the order of the multiple tasks using an artificial intelligence engine to generate a production schedule; and transferring the multiple tasks to at least one client according to the production schedule.

[0124] According to one aspect of the invention, a computer-implemented method is provided for generating dynamic production schedules and allocating tasks from the production schedule to at least one client assigned to at least one worker. The method includes: constructing a production order manual database for at least one production order, wherein the production order manual database includes: extensions of the production orders to multiple tasks and constraints associated with each production order and task; receiving the multiple production orders by a processing unit; extending the multiple production orders into multiple tasks and associated constraints by the processing unit using the production order manual database; dynamically compiling the production schedule by the processing unit optimizing the order and allocation of the multiple tasks according to an optimization objective and utilizing a constraint logic programming engine over a finite domain and the constraints associated with the multiple tasks, wherein the associated constraints are enforced in the optimized order and allocation; and allocating the tasks to at least one client according to the production schedule.

[0125] In some embodiments, the computer implementation method may advantageously utilize the above-described system and / or client embodiments.

[0126] In some embodiments, the method described above for creating a production manual database can be used to create the production manual database.

[0127] In some embodiments, the method may further include the step of inputting the plurality of production orders by an input device and transmitting them to a central planning server for processing the plurality of production orders.

[0128] In some embodiments, the method may further include the steps of receiving an assigned task by the at least one client and displaying the received task by the at least one client.

[0129] In some embodiments, the method may further include a step of being interrupted by the at least one client, wherein the interruption request initiates an update to the production schedule.

[0130] In some embodiments, the method may further include the step of the at least one client issuing a task completion signal, wherein the completion signal is used to output subsequent tasks to the client and update the production schedule.

[0131] In some embodiments, the constraints may further include weak constraints, and wherein dynamic compilation of the production schedule enforces substantially all strong constraints, and preferably enforces at least some weak constraints.

[0132] In some embodiments, optimization objectives may include one or more of the following: minimizing food waste, maintaining high service quality standards, minimizing time lag between subsequent tasks, minimizing task duration, minimizing the time required to complete a production order, and increasing the throughput of delivering the multiple production orders.

[0133] In some embodiments, dynamic compilation of production scheduling is performed under one or more of the following conditions: at regular time intervals, when a fixed number of new production orders are received, when a worker's rest request is received, or when a fixed number of tasks have been completed.

[0134] In some embodiments, the method may further include the following steps: storing historical performance data about a worker’s performance on a specific task, and dynamically updating the production manual database based on the historical performance data.

[0135] In some embodiments, the constraints associated with the plurality of tasks include one or more of the following: the maximum allowable time to complete a production order, interdependence constraints between tasks within the same production order, time constraints on tasks (e.g., the maximum duration of a task and the maximum allowable time between tasks), mandatory time delays before and / or after task completion, constraints related to worker skills, constraints related to worker qualifications, equipment-related constraints, and constraints related to mandatory working hours and rest periods stipulated by the state.

[0136] In some embodiments, the method may include a step of checking whether a set of contradictory constraints is defined in the production manual database.

[0137] In one embodiment, if no solution is found for at least one unbound timestamp, the AI ​​engine may include a backtracking step in the binding process for unbound timestamps. In other words, if a suitable solution for the binding process cannot be found based on the associated constraints, backtracking of timestamp assignment is used to assign different values ​​to selected unbound variables, or if all possible values ​​have been tested, backtracking in a depth-first search to previously labeled variables. Otherwise, if a suitable solution exists and all variables can be assigned values, a valid production schedule can be compiled and assigned to the client.

[0138] In some embodiments, if a satisfactory solution to the binding process cannot be found based on the associated constraints, a different binding strategy can be automatically selected, and the binding process can be restarted until a satisfactory solution is found. The constraint logic programming engine over finite domains enumerates based on a depth-first search strategy (with backtracking). Therefore, the order in which unbound variables are selected during the marking process (how they are ordered) can significantly impact the search time to find a valid solution and, in some respects, the quality of human allocation efficiency. The AI ​​engine provides different strategies (heuristic strategies) that determine the order in which variables are selected, typically based on the domain cardinality of potential values ​​that can be assigned to unbound variables, but also on numerical values ​​within the domain, such as the minimum or maximum value of the domain. Therefore, it is beneficial to execute different strategies in parallel and ultimately select the best strategy as the newly established solution in terms of the reliability and quality of the provided production schedule. Alternatively or additionally, if a satisfactory solution to the binding process cannot be found, the number of constraints can be reduced. In such embodiments, a suboptimal solution can be found using only a small number of carefully selected strong constraints, then more constraints are added to narrow the search space, and the binding process is run again on the suboptimal solution. This process is iterated until an acceptable solution is obtained.

[0139] In some embodiments, the method may be executed at regular time intervals to compile and / or update the production schedule, wherein all updates or changes to the ongoing schedule since the last schedule compilation are taken into account (e.g., newly incoming production orders, completed or delayed tasks, interruption requests, etc.).

[0140] In some embodiments, at least one task from the production schedule is transmitted from a central planning server to the at least one client.

[0141] In one aspect of the invention, a data processing apparatus may be provided, comprising means for performing a computer-implemented method according to the above embodiments for optimizing and transmitting a plurality of tasks to at least one client.

[0142] In one aspect of the invention, a computer program may be provided, wherein the computer program may include instructions that, when executed by a computer, cause the computer to perform a computer implementation method according to the above embodiments for optimizing and transmitting multiple tasks to at least one client.

[0143] In one aspect of the invention, a computer-readable medium may be provided, wherein the computer-readable medium includes instructions that, when executed by a computer, cause the computer to perform a computer-implemented method according to the above embodiments for optimizing and transferring multiple tasks to at least one client, and / or a method according to the above embodiments for generating a dynamic production schedule and allocating tasks from the production schedule to at least one client assigned to at least one worker.

[0144] Those skilled in the art will readily understand that embodiments of the system or combinations thereof, and various variations thereof, as well as embodiments of the method or combinations thereof, and various variations thereof, can be equivalently applied to embodiments of the method and system or combinations thereof. These aspects are closely related and share, for example, similar process steps and structural / functional features. Those skilled in the art will be able to adapt embodiments of one aspect or implementation to another aspect or embodiment based on this disclosure, thereby recognizing how fundamental technical features transform between, for example, process steps in a method and structural or functional features in a system. This flexibility ensures that the scope of the invention covers all aspects and all combinations thereof. Attached Figure Description

[0145] The foregoing aspects, embodiments, features, and advantages of the present invention will become apparent from the following more detailed description of specific embodiments of the invention, as illustrated in the accompanying drawings. The drawings are not necessarily drawn to scale, but are intended to illustrate the principles of the invention.

[0146] Figure 1 A schematic diagram of an embodiment of the invention in a restaurant having a kitchen and at least one serving table is shown.

[0147] Figure 2 shows a schematic component diagram according to an embodiment of the present invention. In Figure 2(a), one type of network is used for communication between an input device, a central planning server (also called a management service), and at least one client. In Figure 2(b), two different types of networks are used, such as an external network (e.g., the Internet) and an internal network.

[0148] Figure 3 A hypothetical extended diagram of two production orders (denoted as A and B) is shown to form two products, P1 and P2, respectively. This extension includes the individual tasks and the constraints associated with the tasks and production orders.

[0149] Figure 4 Showing the target Figure 3 The diagram is a hypothetical (and simplified) illustration of the compiled production schedule for two production orders, where tasks in the production schedule are assigned to two workers.

[0150] Figure 5 A perspective view of an embodiment of a client according to the present invention is shown, illustrating information related to a task received from a central planning server and output by the client to the assigning worker.

[0151] Figure 6 A perspective view of an embodiment of a client according to the present invention is shown, illustrating the different functions and features of the client.

[0152] Figure 7A schematic flowchart of an embodiment of the method according to the present invention is shown.

[0153] Figure 8 A flowchart illustrating an embodiment for adding received production orders to the production pipeline is shown.

[0154] Figure 9 A flowchart of an embodiment of the present invention for compiling a production schedule is shown, wherein the compilation is performed once every t seconds.

[0155] Figure 10 The flowchart illustrates the communication between the client assigned to the worker and the central planning server. Detailed Implementation

[0156] Exemplary embodiments of the invention will be described below. These embodiments are provided to further understand the invention and are not intended to limit its scope.

[0157] The following description may depict a series of steps. Those skilled in the art will understand that, unless the context otherwise requires, the order of the steps is not critical to the resulting configuration and its effects. Furthermore, those skilled in the art will appreciate that, regardless of the order of the steps, time delays may or may not exist between the steps, and time delays may be set between some or all of the described steps.

[0158] As used herein, including in the claims, unless the context otherwise indicates, the singular form of a term should be interpreted to include the plural form as well, and vice versa. Therefore, it should be noted that, as used herein, the singular forms “a,” “an,” and “the” include plural references unless the context explicitly specifies otherwise.

[0159] Throughout the specification and claims, the terms “comprising,” “including,” “having,” and “containing,” and variations thereof, shall be understood as “including but not limited to,” and are not intended to exclude other components.

[0160] The present invention also covers the use of precise terms, features, values ​​and ranges with terms such as “about,” “approximately,” “roughly,” “substantially,” “at least” (i.e., “about 3” should also cover the exact 3, or “substantially constant” should also cover the exact constant).

[0161] The term "at least one" should be understood to mean "one or more," and therefore includes embodiments comprising one or more components. Furthermore, dependent claims referencing an independent claim having the feature "at least one" have the same meaning, regardless of whether the feature is referred to as "the at least one" or "the at least one."

[0162] It should be understood that variations can be made to the above embodiments of the invention while still falling within the scope of the invention. Unless otherwise stated, features disclosed in the specification may be replaced by alternative features having the same, equivalent, or similar purpose. Thus, unless otherwise stated, each disclosed feature represents an example of a series of equivalent or similar features.

[0163] The use of exemplary language such as “for example,” “like,” and “for instance” is intended only to better illustrate the invention and, unless specifically required to so, does not imply a limitation on the scope of the invention. Unless the context clearly indicates otherwise, any steps described in the specification may be performed in any order or simultaneously.

[0164] All features and / or steps disclosed in the specification can be combined in any combination (except for combinations in which at least some features and / or steps are mutually exclusive). The features of this invention apply to all aspects of the invention and can be used in any combination.

[0165] Figure 1An embodiment of the invention is shown, implemented in a restaurant including a commercial kitchen (1). A waiter (2) receives at least one production order (i.e., at least one dish order) from at least one customer to be served, particularly from four customers (3), (3'), (3"), and (3'") seated at a table (4). The waiter (2) transmits the order to a central planning server (5) (also called a management service), for example via a central reservation system (an input device). The central planning server (5) includes a production manual database (6) that stores different production orders and their extensions to tasks and associated constraints (i.e., constraints associated with tasks and production orders). In some embodiments, the production manual database may also include constraints associated with at least one worker working in the kitchen (1) (i.e., worker-related constraints). The central planning server (5) compares the received at least one production order with the production orders stored in the production manual database (6) and extends it to multiple tasks and associated constraints defined in the database (6). The central planning server (5) is then configured to compile production schedules using an artificial intelligence engine (particularly a symbolic artificial intelligence engine) through the production pipeline (not shown) and to assign tasks from at least one received production order to electronic devices (also referred to herein as clients, e.g., shown by (7), (7'), (7''), and (7''')), which are then assigned to workers (8), (8'), (8''), and (8'''), respectively. The electronic devices then display information about at least one task to be performed by the worker. One assumption of the invention is that a single task is preferably performed by a single worker. In some embodiments, the central planning server may recompile (or update) the production schedule in the production pipeline at regular time intervals and transmit tasks to the electronic clients (7, 7', 7'', 7''') based on the updated production schedule. Alternatively or additionally, the central planning server may update the production schedule in the production pipeline after receiving a new production order and / or after a worker (8, 8', 8'', 8''') requests an interruption. However, the system is preferably configured such that updating the production schedule does not interrupt the worker's current task. However, in some embodiments, an emergency interruption requested by a worker can interrupt the worker's current task and assign the current task to the next available worker.

[0166] Figure 2 shows a schematic diagram of an embodiment of the present invention, which includes a central planning server (5), wherein the central planning server is connected to an input device (20) via a network (19) and to one or more electronic devices / clients (7) via the same network (19).

[0167] The central planning server (5) may be a computing device that includes a first storage device (or a memory allocation structure that includes a data storage and a working memory allocation structure) and a first processing device (or a processing allocation structure) coupled to the first storage device / memory allocation structure.

[0168] The central planning server may include a communication interface (21) for communicating with an input device (20) and / or with one or more clients (7). Communication may be made through one or more networks, such as, but not limited to, a local area network, Wi-Fi, Bluetooth, or the Internet.

[0169] Referring to Figure 2(a), communication from the input device (20) to the central planning server (5) and communication between the central planning servers (5) are carried out through the single network described above. Referring to Figure 2(b), communication from the input device (20) to the central planning server may use one type of network (e.g., but not limited to the Internet), and communication between the central planning server and one or more electronic clients / devices may use a second type of network (e.g., but not limited to a local area network).

[0170] This communication can be performed using an application programming interface (API), as those skilled in the art will recognize. The communication interface can be configured to receive production orders from the input device (20). The communication interface can be configured to transmit production schedules or portions thereof to one or more clients (7), for example, to assign one or more tasks of the production schedule to one or more clients (7) or to workers / agents of those one or more clients (7). The communication interface can also be configured to receive data from one or more clients (7), such as data signaling task completion or interruption requests (e.g., standard interrupts or emergency interrupts). In some embodiments, the portion of the communication interface (21) that communicates with one or more clients (7) may herein be referred to as an assignment module / part.

[0171] The central planning server includes a production pipeline (22). The production pipeline is responsible for the dynamic compilation of production schedules. In some embodiments, production schedules can be dynamically compiled at regular time intervals, such as every t seconds, where t is typically a short time interval, such as t=10 seconds, or t=20 seconds, or t=30 seconds, or t=60 seconds.

[0172] The production pipeline can include preprocessing of production orders, such as removing completed product orders from the pipeline, checking for interruptions, freezing and unfreezing tasks, and sorting and filtering product orders.

[0173] The production pipeline includes expanding received production orders into multiple tasks and constraints associated with those tasks and production orders using a production manual database (6). In some embodiments, the constraints may be strong constraints. Additionally, in some embodiments, the constraints may also include weak constraints. In some embodiments, the production manual database (6) may be hosted on-site within a central planning server (5).

[0174] The central planning server may also include a data storage for worker data (24), such as data on worker availability and their qualifications and skill sets.

[0175] The central planning server may include data storage for historical data (25), such as data on past worker performance and the execution time of specific tasks. Such historical data can be used to dynamically update and improve constraints.

[0176] The production pipeline also includes a symbolic artificial intelligence engine (i.e., constraint logic programming over finite fields (23)), which is applied to an extended set of tasks and associated constraints to find solutions for the optimized order and allocation of the tasks, i.e., to find efficient solutions that enforce all strong constraints and preferably some weak constraints.

[0177] The central planning server may include data storage for the marking strategies used in the binding process (i.e., searching for valid solutions) of the constraint logic programming engine (23). Therefore, if a valid solution is not found using one marking strategy, the production pipeline can attempt to use a second, different marking strategy to bind variables to different domains of the constraint in order to find a valid solution. This process can be repeated until a valid solution is generated (i.e., production scheduling). Furthermore, the execution of different marking strategies can be performed in parallel, leveraging parallel processing techniques (e.g., using multi-core architectures and threads).

[0178] As is apparent in these embodiments, the input device (20) may be a device that allows a user to input received production orders into a central planning server (5) (e.g., via a network (19)). In other embodiments, the input device (20) may simply be a device such as a keyboard for directly inputting production orders into the central planning server.

[0179] One or more electronic clients (7) can receive information about the production schedule, or a portion thereof, from the central planning server (5). They can also further communicate with the central planning server, for example, by sending task completion signals and / or requesting interruptions (for example, but not limited to short / long interruptions, standard interruptions or emergency interruptions). The one or more electronic clients (7) can request to receive tasks from the central planning server. The one or more electronic clients (7) can include one or more interactive components that enable a user to request tasks and / or send task completion signals and / or request interruptions. The one or more interactive components can be, for example, 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, it can update the production schedule accordingly.

[0180] For the clarity of understanding of the reader, Figure 3 it is illustrated in a simplified manner how to use the production manual database to expand received production orders for two products (referred to as product A and product B, marked as 11 and 11' respectively) into a plurality of tasks (12) and (12') respectively.

[0181] In this example, the received production order for product A includes seven tasks, some of which are interdependent on each other, and the interdependency between tasks is represented by dashed lines. This interdependency between tasks is incorporated into the production manual database as a dependency constraint. Production order A includes preceding tasks T1, T2 and T3. Then T1, T2 and T3 are used together to start task T4. Tasks T4 and T5 are preceding tasks of task T6, which need to be completed before T6 is executed. T6 is then the predecessor for the execution of task T7. After the completion of task T7, the final product P1 (13) of the production order (11) is ready and can be delivered to the customer who placed the production order for product A.

[0182] 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 can be assigned a plurality of constraints (time-related constraints, dependency-related constraints, worker-related constraints (e.g., worker qualifications), equipment-related constraints). In one embodiment, such a time constraint can provide the duration of the task to be completed. For example, for T1, the duration of the task should be less than the time limit t1, expressed as t<t1. In some embodiments, a time constraint can be imposed on the maximum allowable production time (t 总That is, the time to complete product A (15) after receiving the relevant production order. Furthermore, specific tasks in a production order may include mandatory delays before and / or after task completion; such constraints are incorporated into the production manual database as mandatory delay constraints. For example, in a production order for product A, T6 includes a mandatory delay (16) after task T6 is completed. In some embodiments, such mandatory delays will allow workers to initiate and / or perform different tasks, such as tasks from different production orders, during the mandatory delay period.

[0183] Similarly, for product B, the received production order for product B can be expanded into multiple tasks (12'), denoted as T1', T2', T3', T4', and T5', where each task is associated with a dependency constraint (represented by dashed lines) and a time constraint on the duration of each task, i.e., t. <t 1' t <t 2' t <t 3' t <t 4' and t <t 5' Additional constraints can be applied to the total production time of the production order for product B (15'). After task T5' is completed, product P2 (13') is ready to be provided to the ordering customer.

[0184] Figure 4 This demonstrates how (hypothetically) two production orders for products A and B (producing products P1 and P2 respectively) are compiled in a production pipeline to generate a (hypothetical) production schedule, where tasks in the production schedule can be assigned to two workers, namely (8) and (8'). The symbolic AI engine can first assign at least one timestamp to each task, and then begin assigning unbound timestamps to fixed integer values ​​with the goal of optimizing the production capacity of at least one available worker. This binding process (also known as tagging) is a search in which integer values ​​are assigned one by one to timestamps, each time checking whether the assignment still yields a valid solution that satisfies all constraints in the given problem. Once timestamps are tagged, constraint propagation is used to further prune the search space. If the binding of a particular timestamp and the triggered constraint propagation detect that the problem has become unsolvable (under the given constraints), backtracking can be applied.

[0185] Figure 5An embodiment of an electronic client assigned to a worker is shown. The client includes a housing (98) and a display (99) integrated within the housing (98). The housing (98) may include a synthetic shell to protect the internal components of the client (e.g., but not limited to acrylic material). In some embodiments, the display (99) covers the center of the client. Information displayed within the display (99) may include: clock time (100), device owner (i.e., the worker to whom the electronic client is assigned) (101), WIFI network signal strength (102), and battery level monitor (103). In addition, the information displayed in the display (99) may also include: key information about production orders and / or products, such as, but not limited to, production orders (104), the worker's currently assigned task (105), the time when the current task should be completed (106), which worker (if any) the (pre)product should be delivered to for further processing (107), and the next task most likely to be assigned to the worker after the current task is completed (108). However, note that in some embodiments and / or scenarios, the next task (108) may change when the production schedule is recompiled. However, the current task (105) is frozen during recompilation and therefore will not be changed / interrupted during recompilation.

[0186] Figure 6 An embodiment of the electronic client is shown, highlighting the device's interaction and input possibilities. In this embodiment, the client includes three interactive components: a power and settings button (111) configured on the top of the device. This button is used to turn the device on and / or off by pressing and holding it for a specific duration (e.g., more than 3 seconds). If the device is already on and the button is pressed only briefly, the client is configured to enter a settings dialog. This settings dialog can be used, for example, to connect the electronic client to a wireless network and to assign the client to a specific worker.

[0187] Two additional interactive buttons are located on the right side of the device. The upper button (112) is the "Request" button, which allows the assigned worker to request an interruption / break of their shift. The lower button (113) is called the "Complete" button, used to confirm that a task has been completed and that the assigned worker is ready to be assigned a new task and / or ready to start the next task. Both buttons (112) and (113) also have a secondary function as "up" and "down" selectors during setup mode or when specifying the nature of the request.

[0188] Alternatively, the power button can also be implemented as a slide button to turn the device on or off, and the settings menu can be activated by pressing and holding the top button (112) for more than 3 seconds.

[0189] A non-slip grip area (114) is provided on the left side of the client to facilitate easy gripping of the device and prevent the client from slipping from the hand. In this embodiment, the non-slip grip area includes a dotted pattern. In some embodiments, a magnet (not shown) may be configured on the back of the client to adhere the client to a holding surface. In such an embodiment, the non-slip grip area helps the worker grip the client and detach the magnet from the holding surface. The magnet may protrude slightly from the back of the device for easier removal from a workbench or surface.

[0190] In some embodiments, the display screen (99) may cover most of the center of the client. In embodiments, the display screen may cover approximately 50%, approximately 60%, approximately 70%, approximately 80%, or even approximately 90% of the total area of ​​the client's front. The display screen (99) is configured to display key information (such as...) to the assigned worker. Figure 5 (As shown). In some embodiments, the display is an e-ink display. Compared to conventional displays, e-ink displays reduce power consumption for the client. Nevertheless, the present invention also covers other types of displays, such as, but not limited to, LCD screens. The choice of screen type can depend on the application area.

[0191] In some embodiments, the client may include an alarm mechanism (115) to alert workers to important notifications. In one such embodiment, the alarm mechanism (115) may be positioned 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 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, interruption termination signals, last-minute changes to the schedule due to unforeseen interference or delays.

[0192] The client also includes a power input (not shown) for charging the client battery and / or for connecting to a computer to configure the client and / or update the client software. In some embodiments, the power input is a Micro USB Type-B port, or alternatively a USB Type-C port, particularly when the client includes a microcontroller such as a Raspberry Pi Pico controller.

[0193] Figure 7 An embodiment of the invention is shown, which includes the steps of receiving multiple production orders (320), expanding multiple production orders (307), compiling a production schedule (300), and assigning tasks to at least one client (240), wherein the at least one client may be assigned to a worker.

[0194] refer to Figure 8It illustrates one embodiment, including the steps of receiving one or more production orders (i.e., product or dish orders in a restaurant environment), and then inserting the new, received production order into the production pipeline for subsequent processing by a scheduling update process, or as described in the reference. Figure 9 The production schedule is compiled as shown.

[0195] Upon receiving a production order (320) for one or more products (dishes in a restaurant setting), the system may be configured or the method may include the following steps: consulting a product manual database to verify whether the current order can be produced using available resources (in terms of workers and / or required raw materials) (321). If the order passes verification, all product orders are timestamped and inserted into the production pipeline (322), ending the insertion process.

[0196] Figure 9 An example of dynamically compiling the production schedule (300) every t seconds is shown, as illustrated in step (301). In this example, the step of expanding one or more (307) received (and confirmed) production orders (307) into multiple tasks and associated constraints by referring to the production order manual database is included in step (300) of dynamically compiling the production schedule. Figure 9 The implementation includes steps for compiling and continuously updating (recompiling) production schedules. This process continues throughout system operation. It begins at (301) at regular time intervals (referred to as “t”). In some embodiments, t can range from 5 seconds to 1 hour and can only be stopped by sending a termination request to the process from a central planning server. If a production schedule already exists (generally, only when no schedule is available during process initiation) (302), the process first removes completed product orders from the production pipeline (303), then verifies whether the currently valid production schedule “S” is interfering with or delaying (304) tasks that may be currently being executed or were just marked as completed in the previous time interval t, and may violate constraints defined in the product manual. These interferences or delays are attempted to be resolved automatically (e.g., by allowing tolerances, predefined rules for product organization), or will be brought to the supervisor's attention for manual intervention.

[0197] Next, precautions are needed to ensure a smooth transition between the existing production schedule and the newly compiled updated production schedule. Therefore, changes to the production schedule are only permitted for tasks scheduled to start after "current timestamp + t" (i.e., tasks beyond the current update interval). Consequently, the timestamps of tasks that are not yet activated or completed but are about to start within the current time interval are declared frozen (305), meaning their start timestamps are no longer allowed to be modified.

[0198] In subsequent steps, all valid orders in the production pipeline are sorted according to the user's preferred strategy (usually first-in, first-out, but priority can also be specified for certain products) (306). In cases of very long production backlogs in the pipeline, recalculating schedule updates can be very time-consuming and exceed the time interval t, potentially causing some orders to be ignored in the current scheduling update. Following this sorting and filtering process (307), orders are expanded into tasks (using the product manual database), generating a new production schedule N, where initially all task timestamps (start and end) remain unbound variables (undefined variables). In the next step, constraints are assigned to these timestamps (308). For all completed tasks (no longer affected by changes), the start and end timestamps are copied directly from the existing schedule S. The same applies to activated and frozen tasks, although their completion times may change (in retrospect) due to (the actual evidence being recorded).

[0199] Once all constraints are assigned, the timestamp variables that are not yet bound in the new schedule N are passed to the AI ​​engine (309). The AI ​​engine (309) attempts to assign actual values ​​to these variables (this process is called tagging). Different tagging strategies can be applied in parallel to generate new valid schedules that can replace existing schedules S. The process is then paused until a time threshold t (301) is reached, at which point the update process restarts.

[0200] If no production schedule exists (e.g., no production schedule is available during process initiation) (302), the process can first examine the production pipeline; sort and possibly filter (received) production orders based on order timestamps (311). The production order is then expanded into multiple tasks and constraints associated with those tasks and production orders by consulting the production manual database (311). For all tasks in the new production schedule (denoted as N), constraints are loaded and assigned, and added to the bindings of start / finish time variables (312). Similar to the production schedule update, once all constraints are assigned, the timestamp variables not yet bound in the new schedule N are passed to the AI ​​engine (309). The AI ​​engine (309) attempts to assign actual values ​​to these variables (a process called tagging). Different tagging strategies can be applied in parallel to generate new, valid schedules that can replace existing schedules S. The process then pauses until a time threshold t is reached (301), at which point the update process restarts.

[0201] Return to reference Figure 7 Once the production schedule has been generated or updated, at least one task can be assigned to one or more clients (240).

[0202] Tasks can be assigned to at least one client upon request, at regular time intervals, or at regular time intervals after a client makes a request.

[0203] Figure 10 An embodiment of communication between a client assigned to a worker and a central planning server is illustrated. The process begins with pressing the ON / OFF button (111), or alternatively by sliding a button, after which the device is configured to power on and initialize its internal software. The client then connects to the local Wi-Fi and logs into a user account (401) owned by the worker assigned to the client. Information (i.e., login name and password) can be stored on the device and can be changed in a settings dialog or uploaded via a firmware update through a USB port. Once the equipment is operational, the assigned worker can receive their first task assignment by pressing the "Done" button for more than three seconds (402), thus activating the equipment by signaling availability or completion. The equipment signals to the central planning server that the worker is now active and ready to receive their first work task (403). The server checks the currently available production schedule and retrieves the next two planned tasks, then assigns them to the client (404). If there are no tasks currently available to assign to the worker, or if the worker operating the equipment has requested a break, or if the planning server determines that the worker should take a break, the server will provide break information.

[0204] If there is an actual task to be assigned to a worker (405), the device first checks if the worker is on break. If so, the device sends a notification to its owner by activating a buzzer and / or vibrator, informing the owner that the break is over (406). After user confirmation (pressing the "Done" button), the buzzer turns off, the planning server records the exact start time and sets the newly assigned task as active (407). If the worker is not on break (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. Immediately afterwards, information about the new task is distributed, firstly to the supervisory display (i.e., the central information display) for the manager or head chef to view, and secondly to the actual client device of the worker assigned to perform the task (408). The device then displays the new task assignment and its deadline (and the personnel who may need to report / deliver the task results to it) on its screen (409). Knowing their next task, the worker can now focus on performing their assigned task. Once the task is completed, the worker simply presses the "Done" button on the device to notify the system (410). The device then notifies the planning server, which records the actual completion time of the assigned task (411) and requests the next work task from the server (403). This cycle continues until the worker sends a shift termination request or the device is shut down directly.

[0205] Returning to step (405), if the received task "NT" is a rest, the planning server sends this information to the client (420) to inform it of the nature and duration of the rest (planned rest or simply pausing work due to limited tasks) (421). The worker can then enjoy the rest time (422) until the device automatically requests a new task from the planning server (403). Once a new task is assigned to the device owner, the device owner will also be notified via a buzzer / vibrator on the device (407).

Claims

1. A system for generating dynamic production schedules and assigning tasks from the production schedules to at least one client, said at least one client being assigned to at least one worker, said system comprising: a. An input device configured to receive multiple production orders and transmit the multiple production orders to a central planning server; b. A central planning server, said central planning server comprising: i. A production manual database, wherein the production manual database includes: an extension of production orders to multiple tasks and constraints associated with each production order and task. ii. Production pipeline, wherein the production pipeline is configured as follows: 1) Use the aforementioned production manual database to expand the received multiple production orders into multiple tasks and associated constraints. 2) To dynamically compile a production schedule by optimizing the order and allocation of multiple tasks based on an optimization objective and utilizing a constraint logic programming engine over a finite domain and constraints associated with the multiple tasks, wherein the associated constraints are enforced in the generated optimized order and allocation, and iii. An allocation module, configured to allocate tasks to at least one client according to the production schedule; and c. At least one client assigned to a worker, said at least one client configured to receive tasks from the production schedule, and comprising: i. Used to display the output of the received task. ii. A feedback module configured to communicate with the central planning server and allow the worker to request interruption and issue a completion signal via an interactive component, wherein the interruption request is configured to send a signal to the central planning server that the worker requests an interruption in order to update the production schedule accordingly, and wherein the completion signal is configured to use the output to display subsequent tasks to the worker according to the production schedule and to inform the central planning server of completed tasks in order to update the production schedule.

2. The system according to claim 1, wherein, The multiple production orders are multiple dish orders, and the production manual database includes the recipes for the dish orders, as well as the multiple tasks and associated constraints of the recipes, and the workers are chefs or kitchen assistants.

3. The system according to claim 1 or 2, wherein, For each type of production order, the number of multiple production orders received ranges from 0 to 30, or 0 to 20, or 0 to 10, where the value 0 indicates that no production orders for the specific type of product (or dish) have been received.

4. The system according to any one of the preceding claims, wherein, The constraints include one or more of the following: the maximum allowed time to complete a production order; interdependence constraints between two or more tasks in the same production order; time constraints on the tasks (e.g., the maximum duration of a task and the maximum allowed time between tasks); mandatory time delays before and / or after the completion of the task; constraints related to mandatory working and rest times stipulated by the state; allocation constraints (e.g., constraints related to worker skills and constraints related to worker qualifications); equipment-related constraints; and constraints related to combining requests for the same product type across production orders (or even just task subsequences) for parallel processing of production orders and / or tasks.

5. The system according to any one of the preceding claims, wherein, The constraints also include 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 claims, wherein, The weak constraints are implemented by the constraint logic programming engine in at least one of the following ways: a. Compile production schedules as strong constraints, and if invalid or undesirable production schedules are obtained in the compilation, automatically abandon the weak constraints implemented as strong constraints one by one, in groups, or in whole. b. By compiling the initial production schedule without weak constraints, adding weak constraints one by one, in groups, or all at once, and then recompiling the production schedule; and c. By adding penalty points for each weak constraint violation and instructing the constraint logic programming engine to find a production schedule that minimizes the score or cumulative penalty points.

7. The system according to any one of the preceding claims, wherein, The optimization objectives include one or more of the following: minimizing material waste (e.g., food waste), maintaining high service quality standards, minimizing time lag between subsequent tasks, minimizing task duration, minimizing the time required to complete production orders, and increasing the throughput of completing the multiple production orders.

8. The system according to any one of the preceding claims, wherein, The dynamic compilation of the production schedule is performed at one or more of the following: at regular time intervals; when a fixed number of new production orders are received; in response to interruption requests from workers; when a fixed number of tasks are completed.

9. The system according to the preceding claims, wherein, The dynamic compilation of the production schedule, according to the prescribed time intervals, is performed 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 one of the preceding claims, wherein, The client is an electronic device, such as a computer, tablet, virtual reality glasses, smartwatch, or smartphone.

11. The system according to the preceding claims, wherein, The client includes at least two interactive components, wherein the components are configured to issue a task completion signal and / or request an interruption, and wherein the at least two components are preferably buttons.

12. A computer-implemented method for generating dynamic production schedules and assigning tasks from the production schedules to at least one client, said at least one client being assigned to at least one worker, the computer-implemented method comprising: a. Construct a production order manual database for at least one production order, wherein the production order manual database includes: production orders to multiple tasks and an extension of constraints associated with each production order and task; b. The processing unit receives multiple production orders; c. The processing unit uses the production order manual database to expand the multiple production orders into multiple tasks and associated constraints; d. The processing unit optimizes the order and allocation of the plurality of tasks according to the optimization objective and utilizes a constraint logic programming engine over a finite domain and constraints associated with the plurality of tasks to dynamically compile a production schedule, wherein the associated constraints are enforced in the optimized order and allocation; and e. Assign tasks to at least one client according to the production schedule.

13. The method according to claim 12, wherein, The method further includes the step of inputting the plurality of production orders by an input device and transmitting them to a central planning server for processing the plurality of production orders.

14. The method according to any one of claims 12 to 13, wherein, The method further includes the steps of receiving the assigned task by the at least one client and displaying the received task by the at least one client.

15. The method according to any one of claims 12 to 14, wherein, The method further includes a step of requesting an interruption by the at least one client, wherein the interruption request initiates an update to the production schedule.

16. The method according to any one of claims 12 to 15, wherein, The method further includes the step of having the at least one client issue a task completion signal, wherein the completion signal is used to output subsequent tasks to the client and update the production schedule.

17. The method according to any one of claims 12 or 16, wherein, The constraints also include weak constraints, and wherein the dynamic compilation of the production schedule enforces substantially all strong constraints and preferably at least some weak constraints.

18. The method according to any one of claims 12 to 17, wherein, The optimization objectives include one or more of the following: minimizing food waste, maintaining high service quality standards, minimizing time lag between subsequent tasks, minimizing task duration, minimizing the time required to complete a production order, and increasing the throughput of delivering the multiple production orders.

19. The method according to any one of claims 12 to 18, wherein, The dynamic compilation of the production schedule is performed at one or more of the following: at regular time intervals; when a fixed number of new production orders are received; in response to interruption requests from workers; when a fixed number of tasks are completed.

20. The method according to any one of claims 12 to 19, wherein, The method may further include the steps of storing historical performance data about workers’ performance on specific tasks and dynamically updating the production manual database based on the historical performance data.

21. A server system, comprising: a. A memory allocation structure, wherein the memory allocation structure is defined by the following: i. A data storage device for storing executable resources; ii. Working memory allocation structure; as well as b. A processor allocation structure configured to load the executable resource from the data memory into the working memory allocation structure to instantiate an instance of the management service, wherein the instance of the management service is configured as follows: i. It can be communicatively coupled to an input device to receive multiple production orders. ii. Retrieve production order extensions from the production manual database, wherein the production manual database includes extensions from production orders to multiple tasks and constraints associated with each production order and task. iii. Expand the multiple production orders into multiple tasks and associated constraints using production order extensions. iv. To dynamically compile a production schedule by optimizing the plurality of tasks and their allocation to one or more workers based on an optimization objective and utilizing a constraint logic programming engine over a finite domain and constraints associated with the plurality of tasks, wherein the associated constraints are enforced in the optimized order and allocation, and v. Communicatively coupled to at least one client assigned to a worker, the at least one client being configured to receive tasks from the production schedule, wherein the at least one client includes an output device for displaying the received tasks and a feedback module allowing the worker to request an interruption and / or issue a task completion signal, and in response to the requested interruption and / or the task completion signal, the processor allocation structure signals and / or updates the production schedule.

Citation Information

Patent Citations

  • User-centric system for dynamic scheduling of personalised work plans

    WO2021012020A1