WO2020086109A1 - Receding horizon planning for logistics - Google Patents

Receding horizon planning for logistics Download PDF

Info

Publication number
WO2020086109A1
WO2020086109A1 PCT/US2019/018384 US2019018384W WO2020086109A1 WO 2020086109 A1 WO2020086109 A1 WO 2020086109A1 US 2019018384 W US2019018384 W US 2019018384W WO 2020086109 A1 WO2020086109 A1 WO 2020086109A1
Authority
WO
WIPO (PCT)
Prior art keywords
tasks
system resources
subset
planning
graph
Prior art date
Application number
PCT/US2019/018384
Other languages
French (fr)
Inventor
Michael JÃNTSCH
Ulrich Münz
Mathias HAKENBERG
Original Assignee
Siemens Aktiengesellschaft
Siemens Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft, Siemens Corporation filed Critical Siemens Aktiengesellschaft
Publication of WO2020086109A1 publication Critical patent/WO2020086109A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management

Definitions

  • the present invention relates generally to methods, systems, and apparatuses for receding horizon planning for logistics related to complex systems.
  • the technology described herein may be applied, for example, to plan the operation of automated guided vehicles in a factory system.
  • Embodiments of the present invention address and overcome one or more of the above shortcomings and drawbacks by providing methods, systems, and apparatuses related to the use of a receding horizon optimization for resource planning of complex system logistics.
  • Each iteration of the scheduling loop comprises generating a graph of system states.
  • Each node of the graph corresponds to one or more possible assignments of a subset of tasks on the master listing to the system resources.
  • Each edge between two nodes of the graph corresponds to a step.
  • Each step corresponds to an assignment of one task in the subset of tasks to one system resource.
  • a directed search is performed on the graph to identify an optimal path in the graph corresponding to an optimal assignment of the subset of tasks on the system resources.
  • the subset of tasks is assigned to the system resources according to the optimal path in the graph; execution of the subset of tasks on the system resources is scheduled.
  • the master listing of tasks to be executed is updated by removing completed tasks included in the subset of tasks.
  • the scheduling loop may then be re-executed until the master listing of tasks is empty.
  • a system comprises a plurality of system resources and a planning computer.
  • the planning computer is configured to execute a scheduling loop.
  • Each iteration of the scheduling loop comprises receiving a plurality of tasks to be executed using the system resources, and identifying an optimal subset of the tasks executable by the system resources for a finite time planning horizon. The optimal subset of tasks may then be assigned to the system resources.
  • a method for logistics planning a complex system comprising a plurality of system resources is performed as follows.
  • a planning computer receives a plurality of tasks to be executed using the system resources and identifies an optimal subset of the tasks executable by the system resources for a finite time planning horizon.
  • the planning computer assigns the optimal subset of tasks to the system resources.
  • the system resources can then execute the optimal subset of tasks.
  • FIG. 1 illustrates a system for applying a receding horizon planner to logistics planning, according to some embodiments
  • FIG. 2 provides two more complex examples of skills in the public transportation and healthcare application domains
  • FIG. 3 shows an example method for planning logistics for a complex system comprising a plurality of automated guided vehicles
  • FIG. 4 shows an example implementation of a branch and bound algorithm for a receding horizon planner
  • FIG. 5 illustrates an exemplary computing environment within which a planning computer may be implemented.
  • system resource generally refers to any component of the complex system whose use can be programmatically scheduled.
  • the system resources comprise automated guided vehicles that can be assigned tasks.
  • the RHP does not solve the problem of assigning all system resources to tasks in a single planning step. Instead, the RHP is executed during operation (i.e., online) and resources are assigned to tasks optimally for a given period of time into the future. This period of time is referred to herein as the“planning horizon.”
  • the “planning horizon” This period of time is referred to herein as the“planning horizon.”
  • re-planning can be performed whenever a certain number of operations have been executed or a major change has occurred. Usually the number of tasks that are executed before re-planning is significantly shorter than the planning horizon.
  • FIG. 1 illustrates a system 100 for applying a RHP to logistics planning, according to some embodiments.
  • one or more Manufacturing System Computers 125 send input parameters to a Planning Computer 130 via a Network 135 (e.g., a private intranet or the Internet).
  • these input parameters comprise Model of Factory (MOF) Data 101, a Bill of Materials (BOM) Data 102, and Bill of Process (BOP) Data 103, and Other Data 104.
  • Examples of the information that may be included in the parameters include a list of transportation tasks (e.g., specified with a start time and a due date).
  • the Planning Computer 130 uses receding optimization to assign the tasks to a group of Automated Guided Vehicles 140A, 140B, 140C based on the input parameters. It should be noted that, although the
  • Automated Guided Vehicles 140 A, 140B, 140C are the only system resources shown in FIG. 1 ; the method of planning described below, in general, may be applied to planning the use of any type of system resources. It should be noted that the architecture presented in FIG. 1 is only exemplary. For example, in some embodiments, the Manufacturing System Computers 125 and the Planning Computer 130 are the same machine.
  • the MOF Data 101 may include an identification of all system resources present in a complex system (e.g., a manufacturing plant) as well as an indication of their respective capabilities (also referred to herein as skills).
  • a complex system e.g., a manufacturing plant
  • skills also referred to herein as skills.
  • an automated guided vehicle may have a skill that it can transport loads up to a certain weight.
  • FIG. 2 provides two more complex examples of skills in the public transportation and healthcare application domains.
  • the MOF Data 101 may also include
  • the execution times may be empirically determined or may be system resource-learned.
  • the Planning may be empirically determined or may be system resource-learned. For example, the Planning
  • the MOF Data 101 may also include an indication of relative locations and connections between system resources.
  • the MOF Data 101 may identify the relative ordering, connections, and locations of system resources forming part of a production line in a conveyor belt system.
  • the MOF Data 101 may be collected from various physical systems (e.g., factory devices, individual agents), for example, using a factory engineering, commissioning, or simulation tool.
  • the BOP Data 103 may include a model of the tasks to be executed, including possible priorities or dependencies between individual tasks. This model may also include information about how the individual tasks can be split up into sub-tasks and the required skills to execute these sub-tasks.
  • the BOP Data 103 includes, for each product, a respective graph that describes the manufacturing tasks required to transform raw materials (e.g., as identified in the BOM Data 102) to the end product.
  • the edges of such a graph may represent intermediate products in the manufacture of an end product and the nodes may represent potential successive manufacturing tasks.
  • a node in a graph may represent an assembly operation and two edges pointing to the node may represent two intermediate products combined via the assembly operation.
  • a graph associated with a product may be indicative of all possible combinations of manufacturing steps that can be performed to transform raw materials into the product.
  • the representation of the nodes and edges may be reversed such that the nodes represent intermediate products and the edges representing manufacturing steps.
  • updates may be made to any of the MOF Data 101, the BOM Data 102, and/or the BOP Data 103.
  • the MOF Data 101 may be updated.
  • the MOF Data 101 may be modified accordingly.
  • the raw materials used to create a product or their pricing, availability, location, or the like may change, in which case, the BOM Data 102 may be updated accordingly.
  • the BOP Data 103 may be updated to reflect this. It should be appreciated that the above examples are merely illustrative and not exhaustive.
  • the Other Data 104 may include, for example, data indicative of receding horizon execution plans that have been generated in the past.
  • the Other Data 104 may also include data indicative of the execution horizon that has been selected.
  • the Other Data 104 may include data indicative of deviations between planned manufacturing steps and manufacturing steps that are actually executed (e.g., a manufacturing step requires much more time to complete than expected).
  • the Other Data 104 may also include data relating to cost parameters against which planning may be optimized (e.g., speed of a system resource, load capacity of a system resource, etc.).
  • the Planning Computer 130 performs the 4 steps shown in FIG. 1 to execute the tasks specified in the input parameters (e.g., BOP Data 103) provided by the Manufacturing System Computers 125.
  • the RHP determines the skills of the available resources.
  • the planning computer also determines the cost for executing the task. This cost can be, for example, the required time or energy that the resource requires to perform the task.
  • the planning computer obtains the best possible matches between task/sub-task skills and the skills of available resources at step 110.
  • the planning computer schedules tasks for a given horizon under constraints of possible dependencies.
  • N the number of tasks to be scheduled within a horizon.
  • the cost which shall be optimized can be defined by a number of different parameters or an assortment of several parameters including, without limitation, energy consumption, monetary cost, time, or lateness with respect to a due date.
  • the planning computer assigns tasks to the Automated Guided Vehicles 140A-140C according to the schedule. It should be noted that, although automated guided vehicles are used in the example of FIG. 1, the general concept described herein may be utilized to the planning of any type of resource-task allocation.
  • the schedule is executed for a given time which is either determined by a number of tasks l ⁇ N or a time span, before the re-planning (i.e., re-executing the loop of steps 105 - 120).
  • One of the main challenges of the receding horizon planning approach is to avoid dead-locks or suboptimal solutions within the limited horizon (because of the limited horizon cannot be avoided, just mitigated by choosing sufficiently long horizons). With the techniques described herein, this issue is addressed by increasing the horizon and estimating the terminal cost from the end of the horizon until all tasks are completed. The quality of the estimate of this terminal cost is crucial to the performance of the RHP. Further details on using terminal cost are described below with reference to FIG. 3.
  • the Planning Computer 130 can also handle stochastic execution times (e.g., when it is not exactly known how long a task takes to complete).
  • An example is the time it takes for an operation or for picking up a passenger at a certain location.
  • execution times could be stated with a Gaussian distribution and the optimization algorithm can take those distributions into account.
  • One way to solve it is to determine costs (and terminal costs) along with a standard deviation and take both mean and standard deviation into account when computing the overall cost function. Hence a weighting between risk (high standard deviation) and low estimated cost (mean) can be taken into account.
  • the costs to execute the skills of the (sub) tasks on a resource may not be known in advance (e.g., the required time for transporting a patient from the operation room to his hospital bed).
  • the Planning Computer 130 can send a query to the system resource to estimate this cost.
  • the resource can estimate the costs based on local information (e.g., local motion planning algorithms). This way, the RHP approach can be extended to hierarchical, coordinated decentralized planning for large numbers of components.
  • FIG. 3 shows an example method 300 for planning logistics for a complex system comprising a plurality of automated guided vehicles.
  • this method 300 can be used for any complex system where automated guided vehicles are tasked with operations. Examples of complex systems include, without limitation, factories, hospitals, hotels, vertical farming systems, and warehouses. This method may be executed, for example, by a planning computer as described above with respect to FIG. 1.
  • the planning computer receives a master listing of tasks to be executed by the complex system.
  • This master listing may be provided, for example, in the form of a graphical model of the tasks to be executed provided in the BOP Data 103 (as described above).
  • a scheduling loop is executed.
  • the loop is executed at pre-determined intervals.
  • the scheduling loop could be executed after a user-specified number of minutes.
  • the intervals are load-based.
  • the scheduling loop may be executed based on the current number of available resources, or the number of resources that will be available once the scheduling loop finishes execution.
  • the loop may be re-executed upon the occurrence of a certain event (e.g., a change in the task list).
  • the scheduling loop begins at step 310 where the planning computer determines a list of required skills needed to complete tasks on the master listing of tasks.
  • the planning computer includes a rules-based system that helps to derive skills from tasks. For example, placing a box on a conveyor belt in a factory may require a “transportation” skill as well as a“lifting” or“elevation” skill. This concept can similarly be implemented with a machine learning model to provide a more robust decoding system. Based on past task assignments, the model can be trained so that it determines the skills most likely to be needed to complete a task.
  • the planning computer identifies a list of available skills provided by the automated guided vehicles in the complex system.
  • the planning computer is pre-configured knowledge of all the available skills for the automated guided vehicles in the operating environment.
  • the system may be more dynamic to allow new automated guided vehicles to be added without reconfiguring the planning computer.
  • the automated guided vehicles may periodically notify the planning computer of their skills.
  • an automated guided vehicle may register itself with the planning computer and provide a list of its skills.
  • the task scheduling problem can be formulated as a mixed integer linear program (MILP) which can then be solved using techniques generally known in the art.
  • MILP mixed integer linear program
  • a branch and bound algorithm is applied on a graph of possible system states which can be reached by scheduling tasks on resources.
  • the planning computer generates a graph of system states.
  • Each node of the graph corresponds to a possible assignment of the tasks on the master listing to the automated guided vehicles.
  • Clearly searching the full graph is not an option, as the number of possibilities grows exponentially.
  • the full graph of the possible system states is not generated; rather a graph-search is used to explore the (unknown) graph.
  • This graph search is not looking for an optimal state, but an optimal sequence of task-resource assignments amongst the set of all possible assignments.
  • a directed search is performed at step 325 where the graph is explored to a maximum depth defined by the planning horizon.
  • the estimated terminal cost for each state is computed as well. If the estimation is a guaranteed lower bound to the terminal cost, branches which are guaranteed to have a worse solution than any previously found solution can be bounded, i.e., not explored.
  • the criterion for bounding may be specified as follows:
  • tc best and tc current are the estimated terminal costs for the best and the current state, respectively.
  • c best and c current are the costs for getting to the best and the current state. That means that a good estimate of the terminal cost leads to an earlier bounding of suboptimal branches and therefore to faster convergence of the optimization.
  • terminal cost is determined by summing up all remaining tasks at the minimal possible cost (i.e. using the fastest resource for each task). Depending on the problem at hand, an estimation procedure can be chosen for best overall performance. Additionally, other factors of interest may be used to constrain the search of the graph. For example, in some embodiments, each task is associated with a load requirement and the directed search of the graph is constrained to exclude system states where an assignment of a task to an automated guided vehicle would exceed a maximum load associated with the automated guided vehicle. [41] Continuing with reference to FIG.
  • the planning computer assigns an optimal subset of tasks from the master listing to the automated guided vehicles according to the optimal system state determined at step 325. For example, in one embodiment, the planning computer transmits instructions for performing one or more of the tasks to each of the automated guided vehicles. This transmission can be performed wirelessly or over a wired transmission medium. These instructions may be pushed to the automated guided vehicles or, alternatively the automated guided vehicles may periodically request task assignments.
  • each automated guided vehicle executes its respective tasks.
  • the planning computer may then monitor the automated guided vehicles to ensure task completion. Alternatively, the automated guided vehicle may transmit a message to the planning computer upon task completion.
  • the master listing of tasks to be executed can be updated by removing completed tasks included in the subset of tasks. Furthermore, if new tasks are received during execution of the scheduling loop, the master listing of tasks can be updated accordingly to include the new tasks. Thus, when the scheduling loop is re-executed, it will operate on the tasks that still need to be performed.
  • the master listing of tasks is updated in response to receiving an indication that a system resource is defective and cannot execute any additional tasks.
  • the defective system resource itself may send a message notifying other system components of the defect, or other devices in the system may take note of the defect (e.g., because the system resource is not responsive).
  • the update may be, for example, adding the tasks previously assigned to the defective system resource back to the master list.
  • the master listing can be updated (e.g., with new tasks that were not previously performable by the system).
  • the master listing can be updated in response to receiving new orders.
  • FIG. 5 illustrates an exemplary computing environment 500 within which the Planning Computer 130 may be implemented.
  • the computing environment 500 includes computer system 510, which is one example of a computing system upon which embodiments of the invention may be implemented.
  • Computers and computing environments, such as computer system 510 and computing environment 500, are known to those of skill in the art and thus are described briefly herein.
  • the computer system 510 may include a communication mechanism such as a bus 521 or other communication mechanism for communicating information within the computer system 510.
  • the computer system 510 further includes one or more processors 520 coupled with the bus 521 for processing the information.
  • the processors 520 may include one or more central processing units (CPUs), graphical processing units (GPUs), or any other processor known in the art.
  • the computer system 510 also includes a system memory 530 coupled to the bus 521 for storing information and instructions to be executed by processors 520.
  • the system memory 530 may include computer readable storage media in the form of volatile and/or nonvolatile memory, such as read only memory (ROM) 531 and/or random access memory (RAM) 532.
  • the system memory RAM 532 may include other dynamic storage device(s) (e.g., dynamic RAM, static RAM, and synchronous DRAM).
  • the system memory ROM 531 may include other static storage device(s) (e.g., programmable ROM, erasable PROM, and electrically erasable PROM).
  • the system memory 530 may be used for storing temporary variables or other intermediate information during the execution of instructions by the processors 520.
  • a basic input/output system (BIOS) 533 contains the basic routines that help to transfer information between elements within computer system 510, such as during start-up, may be stored in ROM 531.
  • BIOS basic input/output system
  • RAM 532 may contain data and/or program modules that are immediately accessible to and/or presently being operated on by the processors 520.
  • System memory 530 may additionally include, for example, operating system 534, application programs 535, other program modules 536 and program data 537.
  • the application programs 535 may include, for example, the one or more executable applications corresponding to the method 300 for planning logistics described above with reference to FIG. 3.
  • the computer system 510 also includes a disk controller 540 coupled to the bus 521 to control one or more storage devices for storing information and instructions, such as a hard disk 541 and a removable media drive 542 (e.g., compact disc drive, solid state drive, etc.).
  • the storage devices may be added to the computer system 510 using an appropriate device interface (e.g., a small computer system interface (SCSI), integrated device electronics (IDE), Universal Serial Bus (USB), or FireWire).
  • SCSI small computer system interface
  • IDE integrated device electronics
  • USB Universal Serial Bus
  • FireWire FireWire
  • the computer system 510 may also include a display controller 565 coupled to the bus 521 to control a display 566, such as a liquid crystal display (LCD), for displaying information to a computer user.
  • the computer system includes an input interface 560 and one or more input devices, such as a keyboard 562 and a pointing device 561, for interacting with a computer user and providing information to the processors 520.
  • the pointing device 561 may be, for example, a mouse or a pointing stick for communicating direction information and command selections to the processors 520 and for controlling cursor movement on the display 566.
  • the display 566 may provide a touch screen interface which allows input to supplement or replace the communication of direction information and command selections by the pointing device 561.
  • the computer system 510 may perform a portion or all of the processing steps of embodiments of the invention in response to the processors 520 executing one or more sequences of one or more instructions contained in a memory, such as the system memory 530.
  • a memory such as the system memory 530.
  • Such instructions may be read into the system memory 530 from another computer readable medium, such as a hard disk 541 or a removable media drive 542.
  • the hard disk 541 may contain one or more datastores and data files used by embodiments of the present invention. Datastore contents and data files may be encrypted to improve security.
  • the processors 520 may also be employed in a multi-processing arrangement to execute the one or more sequences of instructions contained in system memory 530.
  • hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.
  • the computer system 510 may include at least one computer readable medium or memory for holding instructions programmed according to embodiments of the invention and for containing data structures, tables, records, or other data described herein.
  • the term“computer readable medium” as used herein refers to any medium that participates in providing instructions to the processor 520 for execution.
  • a computer readable medium may take many forms including, but not limited to, non-volatile media, volatile media, and transmission media.
  • Non-limiting examples of non-volatile media include optical disks, solid state drives, magnetic disks, and magneto-optical disks, such as hard disk 541 or removable media drive 542.
  • Non-limiting examples of volatile media include dynamic memory, such as system memory 530.
  • Non-limiting examples of transmission media include coaxial cables, copper wire, and fiber optics, including the wires that make up the bus 521.
  • Transmission media may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
  • computer system 510 may include modem 572 for establishing communications with an Automated Guided Vehicle 580 or a remote computing system over a network 571, such as the Internet. Modem 572 may be connected to bus 521 via user network interface 570, or via another appropriate mechanism. It should be noted that, although the Automated Guided Vehicle 580 is illustrated as being connected to the computer system 510 over the network 571 in the example presented in FIG. 5, in other embodiments of the present invention, the computer system 510 may be directly connected to the Automated Guided Vehicle 580. For example, in one embodiment the computer system 510 and the Automated Guided Vehicle 580 are co-located in the same room or in adjacent rooms, and the devices are connected using any transmission media generally known in the art.
  • Network 571 may be any network or system generally known in the art, including the Internet, an intranet, a local area network (LAN), a wide area network (WAN), a
  • LAN local area network
  • WAN wide area network
  • the network 571 may be wired, wireless or a combination thereof. Wired connections may be implemented using Ethernet, Universal Serial Bus (USB), RJ-l 1 or any other wired connection generally known in the art. Wireless connections may be implemented using Wi-Fi, WiMAX, and Bluetooth, infrared, cellular networks, satellite or any other wireless connection methodology generally known in the art. Additionally, several networks may work alone or in communication with each other to facilitate communication in the network 571. [52] The embodiments of the present disclosure may be implemented with any combination of hardware and software.
  • the embodiments of the present disclosure may be included in an article of manufacture (e.g., one or more computer program products) having, for example, computer-readable, non-transitory media.
  • the media has embodied therein, for instance, computer readable program code for providing and facilitating the mechanisms of the embodiments of the present disclosure.
  • the article of manufacture can be included as part of a computer system or sold separately.
  • terms such as“applying,”“generating,”“identifying,”“determining,” “processing,”“computing,”“selecting,” or the like may refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
  • Embodiments of the methods described herein may be implemented using computer software. If written in a programming language conforming to a recognized standard, sequences of instructions designed to implement the methods can be compiled for execution on a variety of hardware platforms and for interface to a variety of operating systems. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement embodiments of the present invention.
  • An executable application comprises code or machine readable instructions for conditioning the processor to implement predetermined functions, such as those of an operating system, a context data acquisition system or other information processing system, for example, in response to user command or input.
  • An executable procedure is a segment of code or machine readable instruction, sub-routine, or other distinct section of code or portion of an executable application for performing one or more particular processes. These processes may include receiving input data and/or parameters, performing operations on received input data and/or performing functions in response to received input parameters, and providing resulting output data and/or parameters.

Abstract

According to some embodiments, a method for logistics planning of a complex system comprising system resources includes receiving a master listing of tasks to be executed by the complex system and executing a scheduling loop. Each iteration of the scheduling loop comprises generating a graph of system states. A directed search is performed on the graph to identify an optimal path in the graph corresponding to an optimal assignment of the subset of tasks on the system resources. The subset of tasks is assigned to the system resources according to the optimal path in the graph, execution of the subset of tasks on the system resources is scheduled. The master listing of tasks to be executed is updated by removing completed tasks included in the subset of tasks. The scheduling loop may then be re-executed until the master listing of tasks is empty.

Description

RECEDING HORIZON PLANNING FOR LOGISTICS
CROSS-REFERENCE TO RELATED APPLICATIONS
[1] This application claims the benefit of U.S. Provisional Application Serial No.
62/751,090 filed October 26, 2018, which is incorporated herein by reference in its entirety.
TECHNICAL FIELD
[2] The present invention relates generally to methods, systems, and apparatuses for receding horizon planning for logistics related to complex systems. The technology described herein may be applied, for example, to plan the operation of automated guided vehicles in a factory system.
BACKGROUND
[3] Planning the execution of tasks in a dynamic environment is a tedious task. For example, in manufacturing settings, automated guided vehicles are used to transport and perform other tasks on the factory floor. The performance of these tasks is generally very time-sensitive because the tasks are part of a manufacturing plan that needs to be executed according to a specific schedule. In the context of public transportation systems, routing decisions and timetables need to be formulated to handle varying numbers of passengers that need to be transported from different starting to destination points with a range of transportation means. As another example, some airports have started using autonomous carts to transport luggage from the check-in counter to the planes. These task assignments and routing of these carts needs to be managed to ensure that all transportation needs are met in the most efficient manner.
[4] Existing task planning solutions today rely heavily on manual planning. Where dynamic planning is used, it is typically based on a“greedy approach” where the action selected at each step of the plan is selected in terms of what provides the most immediate benefit. In the manufacturing example, this may entail assigning transportation tasks to the automated guided vehicle that is closest to the object that needs to be transported. However, as scenarios become more and more complex, this approach will not provide a close-to-optimal solution in reasonable time. Moreover, while the greedy approach provides an immediate solution (even for large systems), it is usually far from optimal with respect to the overall problem (i.e., in the long-term view).
[5] In the manufacturing context and the other complex operating environments described above, robust resource planning has to be performed under uncertainty, as environment conditions might change, new requests may come in during operation, resources can fail, or priorities might shift. The main difficulty of the problem lies in the scalability, as problems easily become computationally intractable with the number of resources to plan (i.e., such a planning problem is NP hard).
SUMMARY
[6] Embodiments of the present invention address and overcome one or more of the above shortcomings and drawbacks by providing methods, systems, and apparatuses related to the use of a receding horizon optimization for resource planning of complex system logistics.
[7] According to some embodiments, a method for logistics planning of a complex system comprising a plurality of system resources includes receiving a master listing of tasks to be executed by the complex system and executing a scheduling loop. Each iteration of the scheduling loop comprises generating a graph of system states. Each node of the graph corresponds to one or more possible assignments of a subset of tasks on the master listing to the system resources. Each edge between two nodes of the graph corresponds to a step. Each step corresponds to an assignment of one task in the subset of tasks to one system resource. A directed search is performed on the graph to identify an optimal path in the graph corresponding to an optimal assignment of the subset of tasks on the system resources. The subset of tasks is assigned to the system resources according to the optimal path in the graph; execution of the subset of tasks on the system resources is scheduled. The master listing of tasks to be executed is updated by removing completed tasks included in the subset of tasks. The scheduling loop may then be re-executed until the master listing of tasks is empty.
[8] According to other embodiments, a system comprises a plurality of system resources and a planning computer. The planning computer is configured to execute a scheduling loop. Each iteration of the scheduling loop comprises receiving a plurality of tasks to be executed using the system resources, and identifying an optimal subset of the tasks executable by the system resources for a finite time planning horizon. The optimal subset of tasks may then be assigned to the system resources.
[9] According to other embodiments, a method for logistics planning a complex system comprising a plurality of system resources is performed as follows. A planning computer receives a plurality of tasks to be executed using the system resources and identifies an optimal subset of the tasks executable by the system resources for a finite time planning horizon. The planning computer assigns the optimal subset of tasks to the system resources. The system resources can then execute the optimal subset of tasks.
[10] Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments that proceeds with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[11] The foregoing and other aspects of the present invention are best understood from the following detailed description when read in connection with the accompanying drawings. For the purpose of illustrating the invention, there are shown in the drawing exemplary embodiments that are presently preferred, it being understood, however, that the invention is not limited to the specific instrumentalities disclosed. Included in the drawings are the following Figures:
[12] FIG. 1 illustrates a system for applying a receding horizon planner to logistics planning, according to some embodiments;
[13] FIG. 2 provides two more complex examples of skills in the public transportation and healthcare application domains;
[14] FIG. 3 shows an example method for planning logistics for a complex system comprising a plurality of automated guided vehicles; [15] FIG. 4 shows an example implementation of a branch and bound algorithm for a receding horizon planner; and
[16] FIG. 5 illustrates an exemplary computing environment within which a planning computer may be implemented.
DETAILED DESCRIPTION
[17] The following disclosure describes the present invention according to several embodiments directed at methods, systems, and apparatuses related to a using a Receding Horizon Planner (RHP) for planning the use of system resources in a complex system. The term “system resource” generally refers to any component of the complex system whose use can be programmatically scheduled. For example, in some embodiments, the system resources comprise automated guided vehicles that can be assigned tasks. The concepts discussed herein build upon the methods and systems disclosed in International Patent Publication No.
WO2018/174940, filed September 26, 2017 and entitled“Flexible Product Manufacturing Planning,” the entirety of which is incorporated herein by reference.
[18] In short, the RHP does not solve the problem of assigning all system resources to tasks in a single planning step. Instead, the RHP is executed during operation (i.e., online) and resources are assigned to tasks optimally for a given period of time into the future. This period of time is referred to herein as the“planning horizon.” Using RHP, re-planning can be performed whenever a certain number of operations have been executed or a major change has occurred. Usually the number of tasks that are executed before re-planning is significantly shorter than the planning horizon.
[19] One point of novelty of the RHP approach is that the complex problem of planning tasks and system resources in a dynamic environment is broken down into a much smaller problem. Traditionally, tasks are planned either ad hoc (i.e., only for the next step), or for the infinite horizon (i.e., until the task is completed). This first approach is usually very suboptimal, the second one computationally prohibitive on large networks and, moreover, not reasonable in very uncertain environments. The smaller problem considered with the RHP approach only considers the near future. In such a dynamic environment it is assumed that less information is available for events that lie further in the future. Hence, they do not need to be considered at this point in time. Additionally, the smaller problem can be solved much faster. By continuously re planning during operation, measures for correcting changes in the environment or wrong assumptions can be specifically planned, and are inherently included. This leads to a planner which can perform robustly in dynamic environments.
[20] FIG. 1 illustrates a system 100 for applying a RHP to logistics planning, according to some embodiments. Briefly, in this example, one or more Manufacturing System Computers 125 send input parameters to a Planning Computer 130 via a Network 135 (e.g., a private intranet or the Internet). In FIG. 1 these input parameters comprise Model of Factory (MOF) Data 101, a Bill of Materials (BOM) Data 102, and Bill of Process (BOP) Data 103, and Other Data 104. Examples of the information that may be included in the parameters include a list of transportation tasks (e.g., specified with a start time and a due date). The Planning Computer 130 uses receding optimization to assign the tasks to a group of Automated Guided Vehicles 140A, 140B, 140C based on the input parameters. It should be noted that, although the
Automated Guided Vehicles 140 A, 140B, 140C are the only system resources shown in FIG. 1 ; the method of planning described below, in general, may be applied to planning the use of any type of system resources. It should be noted that the architecture presented in FIG. 1 is only exemplary. For example, in some embodiments, the Manufacturing System Computers 125 and the Planning Computer 130 are the same machine.
[21] The MOF Data 101 may include an identification of all system resources present in a complex system (e.g., a manufacturing plant) as well as an indication of their respective capabilities (also referred to herein as skills). As a simple example, in a factory setting, an automated guided vehicle may have a skill that it can transport loads up to a certain weight. FIG. 2 provides two more complex examples of skills in the public transportation and healthcare application domains.
[22] In certain example embodiments, the MOF Data 101 may also include
processing/execution times for various system resources. The execution times may be empirically determined or may be system resource-learned. For example, the Planning
Computer 130 may learn the execution time of a system resource for a range of input tasks or the system resource may be queried for its execution time during manufacturing. In addition, in certain example embodiments, the MOF Data 101 may also include an indication of relative locations and connections between system resources. For example, the MOF Data 101 may identify the relative ordering, connections, and locations of system resources forming part of a production line in a conveyor belt system. The MOF Data 101 may be collected from various physical systems (e.g., factory devices, individual agents), for example, using a factory engineering, commissioning, or simulation tool.
[23] The BOP Data 103 may include a model of the tasks to be executed, including possible priorities or dependencies between individual tasks. This model may also include information about how the individual tasks can be split up into sub-tasks and the required skills to execute these sub-tasks. For example, in one embodiment, the BOP Data 103 includes, for each product, a respective graph that describes the manufacturing tasks required to transform raw materials (e.g., as identified in the BOM Data 102) to the end product. The edges of such a graph may represent intermediate products in the manufacture of an end product and the nodes may represent potential successive manufacturing tasks. For example, a node in a graph may represent an assembly operation and two edges pointing to the node may represent two intermediate products combined via the assembly operation. A graph associated with a product may be indicative of all possible combinations of manufacturing steps that can be performed to transform raw materials into the product. In certain example embodiments, the representation of the nodes and edges may be reversed such that the nodes represent intermediate products and the edges representing manufacturing steps.
[24] As changes occur within the manufacturing environment, updates may be made to any of the MOF Data 101, the BOM Data 102, and/or the BOP Data 103. For example, if a system resource is modified to enhance or otherwise modify its skills, the MOF Data 101 may be updated. As another example, if a new system resource is added to the manufacturing environment or an existing system resource is removed, the MOF Data 101 may be modified accordingly. In other scenarios, the raw materials used to create a product or their pricing, availability, location, or the like may change, in which case, the BOM Data 102 may be updated accordingly. As yet another example, if a new manufacturing step is added to a manufacturing process for creating a product, an existing step is eliminated or modified, an ordering of manufacturing steps is changed, or the like, the BOP Data 103 may be updated to reflect this. It should be appreciated that the above examples are merely illustrative and not exhaustive.
[25] The Other Data 104 may include, for example, data indicative of receding horizon execution plans that have been generated in the past. The Other Data 104 may also include data indicative of the execution horizon that has been selected. In addition, the Other Data 104 may include data indicative of deviations between planned manufacturing steps and manufacturing steps that are actually executed (e.g., a manufacturing step requires much more time to complete than expected). The Other Data 104 may also include data relating to cost parameters against which planning may be optimized (e.g., speed of a system resource, load capacity of a system resource, etc.).
[26] At each planning step, the Planning Computer 130 performs the 4 steps shown in FIG. 1 to execute the tasks specified in the input parameters (e.g., BOP Data 103) provided by the Manufacturing System Computers 125. During step 105, the RHP determines the skills of the available resources. In addition to the skills themselves, during step 105, the planning computer also determines the cost for executing the task. This cost can be, for example, the required time or energy that the resource requires to perform the task.
[27] Once the available skills have been determined, the planning computer obtains the best possible matches between task/sub-task skills and the skills of available resources at step 110. During step 115, the planning computer schedules tasks for a given horizon under constraints of possible dependencies. We define the number of tasks to be scheduled within a horizon as N. The cost which shall be optimized can be defined by a number of different parameters or an assortment of several parameters including, without limitation, energy consumption, monetary cost, time, or lateness with respect to a due date. Finally, during tasks 120, the planning computer assigns tasks to the Automated Guided Vehicles 140A-140C according to the schedule. It should be noted that, although automated guided vehicles are used in the example of FIG. 1, the general concept described herein may be utilized to the planning of any type of resource-task allocation.
[28] Once the tasks have been assigned to the Automated Guided Vehicles 140A-140C, the schedule is executed for a given time which is either determined by a number of tasks l<N or a time span, before the re-planning (i.e., re-executing the loop of steps 105 - 120). One of the main challenges of the receding horizon planning approach is to avoid dead-locks or suboptimal solutions within the limited horizon (because of the limited horizon cannot be avoided, just mitigated by choosing sufficiently long horizons). With the techniques described herein, this issue is addressed by increasing the horizon and estimating the terminal cost from the end of the horizon until all tasks are completed. The quality of the estimate of this terminal cost is crucial to the performance of the RHP. Further details on using terminal cost are described below with reference to FIG. 3.
[29] In an alternative implementation, the Planning Computer 130 can also handle stochastic execution times (e.g., when it is not exactly known how long a task takes to complete). An example is the time it takes for an operation or for picking up a passenger at a certain location. In this case, execution times could be stated with a Gaussian distribution and the optimization algorithm can take those distributions into account. One way to solve it is to determine costs (and terminal costs) along with a standard deviation and take both mean and standard deviation into account when computing the overall cost function. Hence a weighting between risk (high standard deviation) and low estimated cost (mean) can be taken into account.
[30] In another alternative implementation, the costs to execute the skills of the (sub) tasks on a resource may not be known in advance (e.g., the required time for transporting a patient from the operation room to his hospital bed). In this case, the Planning Computer 130 can send a query to the system resource to estimate this cost. The resource can estimate the costs based on local information (e.g., local motion planning algorithms). This way, the RHP approach can be extended to hierarchical, coordinated decentralized planning for large numbers of components.
[31] The implementation of the Planning Computer 130 with respect to how terminal costs are computed, how long the planning horizon should be, and how often re-planning needs to occur, may vary based on the field of operation. For example, it may depend on how fast the Planning Computer 130 should react to changes is the environment and how short term choices affect future operation in the long run [32] FIG. 3 shows an example method 300 for planning logistics for a complex system comprising a plurality of automated guided vehicles. In general, this method 300 can be used for any complex system where automated guided vehicles are tasked with operations. Examples of complex systems include, without limitation, factories, hospitals, hotels, vertical farming systems, and warehouses. This method may be executed, for example, by a planning computer as described above with respect to FIG. 1.
[33] Starting at step 305, the planning computer receives a master listing of tasks to be executed by the complex system. This master listing may be provided, for example, in the form of a graphical model of the tasks to be executed provided in the BOP Data 103 (as described above). Following this initial step, at steps 310 - 330 a scheduling loop is executed. In some embodiments, the loop is executed at pre-determined intervals. For example, the scheduling loop could be executed after a user-specified number of minutes. In other embodiments, the intervals are load-based. For example, the scheduling loop may be executed based on the current number of available resources, or the number of resources that will be available once the scheduling loop finishes execution. In other embodiments, the loop may be re-executed upon the occurrence of a certain event (e.g., a change in the task list).
[34] The scheduling loop begins at step 310 where the planning computer determines a list of required skills needed to complete tasks on the master listing of tasks. In some embodiments, the planning computer includes a rules-based system that helps to derive skills from tasks. For example, placing a box on a conveyor belt in a factory may require a “transportation” skill as well as a“lifting” or“elevation” skill. This concept can similarly be implemented with a machine learning model to provide a more robust decoding system. Based on past task assignments, the model can be trained so that it determines the skills most likely to be needed to complete a task.
[35] Once, the required skills for the tasks are determined, at step 315, the planning computer identifies a list of available skills provided by the automated guided vehicles in the complex system. In some embodiments, the planning computer is pre-configured knowledge of all the available skills for the automated guided vehicles in the operating environment. In other embodiments, the system may be more dynamic to allow new automated guided vehicles to be added without reconfiguring the planning computer. For example, the automated guided vehicles may periodically notify the planning computer of their skills. Alternatively, an automated guided vehicle may register itself with the planning computer and provide a list of its skills.
[36] During the remainder of the scheduling loop, tasks are scheduled for the given planning horizon. There are various ways that this scheduling can be achieved. For example, in some embodiments, the task scheduling problem can be formulated as a mixed integer linear program (MILP) which can then be solved using techniques generally known in the art. In other embodiments, including the one shown in FIG. 3, a branch and bound algorithm is applied on a graph of possible system states which can be reached by scheduling tasks on resources.
[37] It is important to note that for realizing a RHP we do not define a goal state for the planning horizon but rather choose a number of actions which yield the best performance within the horizon. Therefore, classic planning algorithms cannot be utilized directly. By using branch and bound on a graph of system states, this form of planning can be realized in a straightforward formulation. For this purpose the system state is defined by (1) the completion state of each task and (2) current assignment of tasks to resources. From this initial state, possible actions can be chosen which transform this state into a successor state, where an action corresponds to assigning a task to a resource. By formulating the problem this way, it is straight forward to check for constraints like maximum number of passengers, etc. Each of the actions is associated with a cost which is defined as the cost of executing the task with the assigned resource. The resulting graph is explored to a maximum depth of the planning horizon N as shown in FIG. 4.
[38] Returning to FIG. 3, at step 320 the planning computer generates a graph of system states. Each node of the graph corresponds to a possible assignment of the tasks on the master listing to the automated guided vehicles. Clearly searching the full graph is not an option, as the number of possibilities grows exponentially. Thus, the full graph of the possible system states is not generated; rather a graph-search is used to explore the (unknown) graph. This graph search is not looking for an optimal state, but an optimal sequence of task-resource assignments amongst the set of all possible assignments. More specifically, a directed search is performed at step 325 where the graph is explored to a maximum depth defined by the planning horizon. For this purpose, apart from computing the cost for reaching each state, the estimated terminal cost for each state is computed as well. If the estimation is a guaranteed lower bound to the terminal cost, branches which are guaranteed to have a worse solution than any previously found solution can be bounded, i.e., not explored. In this case, the criterion for bounding may be specified as follows:
Figure imgf000013_0001
where tcbest and tccurrent are the estimated terminal costs for the best and the current state, respectively. Similarly, cbest and ccurrent are the costs for getting to the best and the current state. That means that a good estimate of the terminal cost leads to an earlier bounding of suboptimal branches and therefore to faster convergence of the optimization.
[39] By first exploring the branch which is expected to yield the best result (smallest tc current + Ccurrent X it can be guaranteed that a good solution is found fast. From that point, time can be spent to improve the solution within the graph. Additionally, the optimization procedure can be stopped at any time to return the current best solution. This is an important feature for an online scheduler. When it is not crucial to find the optimal solution for the planning horizon, it is also possible to learn terminal costs from previous executions. However, such a data driven approach cannot guarantee a lower bound. This means that branches might be bounded which could possibly yield the optimal solution.
[40] There are several ways to determine estimates for the terminal cost. For example, in some embodiments, terminal cost is determined by summing up all remaining tasks at the minimal possible cost (i.e. using the fastest resource for each task). Depending on the problem at hand, an estimation procedure can be chosen for best overall performance. Additionally, other factors of interest may be used to constrain the search of the graph. For example, in some embodiments, each task is associated with a load requirement and the directed search of the graph is constrained to exclude system states where an assignment of a task to an automated guided vehicle would exceed a maximum load associated with the automated guided vehicle. [41] Continuing with reference to FIG. 3, at step 330, the planning computer assigns an optimal subset of tasks from the master listing to the automated guided vehicles according to the optimal system state determined at step 325. For example, in one embodiment, the planning computer transmits instructions for performing one or more of the tasks to each of the automated guided vehicles. This transmission can be performed wirelessly or over a wired transmission medium. These instructions may be pushed to the automated guided vehicles or, alternatively the automated guided vehicles may periodically request task assignments.
[42] Finally, at step 335, each automated guided vehicle executes its respective tasks.
The planning computer may then monitor the automated guided vehicles to ensure task completion. Alternatively, the automated guided vehicle may transmit a message to the planning computer upon task completion. Following completion of all of the assigned tasks, the master listing of tasks to be executed can be updated by removing completed tasks included in the subset of tasks. Furthermore, if new tasks are received during execution of the scheduling loop, the master listing of tasks can be updated accordingly to include the new tasks. Thus, when the scheduling loop is re-executed, it will operate on the tasks that still need to be performed. In some embodiments, the master listing of tasks is updated in response to receiving an indication that a system resource is defective and cannot execute any additional tasks. For example, the defective system resource itself may send a message notifying other system components of the defect, or other devices in the system may take note of the defect (e.g., because the system resource is not responsive). In this case the update may be, for example, adding the tasks previously assigned to the defective system resource back to the master list. Similarly, if a system resource acquires a new skill (e.g., as a result of a hardware or software update), the master listing can be updated (e.g., with new tasks that were not previously performable by the system). Additionally, in the context of a manufacturing system, the master listing can be updated in response to receiving new orders.
[43] FIG. 5 illustrates an exemplary computing environment 500 within which the Planning Computer 130 may be implemented. The computing environment 500 includes computer system 510, which is one example of a computing system upon which embodiments of the invention may be implemented. Computers and computing environments, such as computer system 510 and computing environment 500, are known to those of skill in the art and thus are described briefly herein.
[44] As shown in FIG. 5, the computer system 510 may include a communication mechanism such as a bus 521 or other communication mechanism for communicating information within the computer system 510. The computer system 510 further includes one or more processors 520 coupled with the bus 521 for processing the information. The processors 520 may include one or more central processing units (CPUs), graphical processing units (GPUs), or any other processor known in the art.
[45] The computer system 510 also includes a system memory 530 coupled to the bus 521 for storing information and instructions to be executed by processors 520. The system memory 530 may include computer readable storage media in the form of volatile and/or nonvolatile memory, such as read only memory (ROM) 531 and/or random access memory (RAM) 532.
The system memory RAM 532 may include other dynamic storage device(s) (e.g., dynamic RAM, static RAM, and synchronous DRAM). The system memory ROM 531 may include other static storage device(s) (e.g., programmable ROM, erasable PROM, and electrically erasable PROM). In addition, the system memory 530 may be used for storing temporary variables or other intermediate information during the execution of instructions by the processors 520. A basic input/output system (BIOS) 533 contains the basic routines that help to transfer information between elements within computer system 510, such as during start-up, may be stored in ROM 531. RAM 532 may contain data and/or program modules that are immediately accessible to and/or presently being operated on by the processors 520. System memory 530 may additionally include, for example, operating system 534, application programs 535, other program modules 536 and program data 537. The application programs 535 may include, for example, the one or more executable applications corresponding to the method 300 for planning logistics described above with reference to FIG. 3.
[46] The computer system 510 also includes a disk controller 540 coupled to the bus 521 to control one or more storage devices for storing information and instructions, such as a hard disk 541 and a removable media drive 542 (e.g., compact disc drive, solid state drive, etc.). The storage devices may be added to the computer system 510 using an appropriate device interface (e.g., a small computer system interface (SCSI), integrated device electronics (IDE), Universal Serial Bus (USB), or FireWire).
[47] The computer system 510 may also include a display controller 565 coupled to the bus 521 to control a display 566, such as a liquid crystal display (LCD), for displaying information to a computer user. The computer system includes an input interface 560 and one or more input devices, such as a keyboard 562 and a pointing device 561, for interacting with a computer user and providing information to the processors 520. The pointing device 561 may be, for example, a mouse or a pointing stick for communicating direction information and command selections to the processors 520 and for controlling cursor movement on the display 566. The display 566 may provide a touch screen interface which allows input to supplement or replace the communication of direction information and command selections by the pointing device 561.
[48] The computer system 510 may perform a portion or all of the processing steps of embodiments of the invention in response to the processors 520 executing one or more sequences of one or more instructions contained in a memory, such as the system memory 530. Such instructions may be read into the system memory 530 from another computer readable medium, such as a hard disk 541 or a removable media drive 542. The hard disk 541 may contain one or more datastores and data files used by embodiments of the present invention. Datastore contents and data files may be encrypted to improve security. The processors 520 may also be employed in a multi-processing arrangement to execute the one or more sequences of instructions contained in system memory 530. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.
[49] As stated above, the computer system 510 may include at least one computer readable medium or memory for holding instructions programmed according to embodiments of the invention and for containing data structures, tables, records, or other data described herein. The term“computer readable medium” as used herein refers to any medium that participates in providing instructions to the processor 520 for execution. A computer readable medium may take many forms including, but not limited to, non-volatile media, volatile media, and transmission media. Non-limiting examples of non-volatile media include optical disks, solid state drives, magnetic disks, and magneto-optical disks, such as hard disk 541 or removable media drive 542. Non-limiting examples of volatile media include dynamic memory, such as system memory 530. Non-limiting examples of transmission media include coaxial cables, copper wire, and fiber optics, including the wires that make up the bus 521. Transmission media may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
[50] When used in a networking environment, computer system 510 may include modem 572 for establishing communications with an Automated Guided Vehicle 580 or a remote computing system over a network 571, such as the Internet. Modem 572 may be connected to bus 521 via user network interface 570, or via another appropriate mechanism. It should be noted that, although the Automated Guided Vehicle 580 is illustrated as being connected to the computer system 510 over the network 571 in the example presented in FIG. 5, in other embodiments of the present invention, the computer system 510 may be directly connected to the Automated Guided Vehicle 580. For example, in one embodiment the computer system 510 and the Automated Guided Vehicle 580 are co-located in the same room or in adjacent rooms, and the devices are connected using any transmission media generally known in the art.
[51] Network 571 may be any network or system generally known in the art, including the Internet, an intranet, a local area network (LAN), a wide area network (WAN), a
metropolitan area network (MAN), a direct connection or series of connections, a cellular telephone network, or any other network or medium capable of facilitating communication between computer system 510 and other computers (e.g., robot controller 150). The network 571 may be wired, wireless or a combination thereof. Wired connections may be implemented using Ethernet, Universal Serial Bus (USB), RJ-l 1 or any other wired connection generally known in the art. Wireless connections may be implemented using Wi-Fi, WiMAX, and Bluetooth, infrared, cellular networks, satellite or any other wireless connection methodology generally known in the art. Additionally, several networks may work alone or in communication with each other to facilitate communication in the network 571. [52] The embodiments of the present disclosure may be implemented with any combination of hardware and software. In addition, the embodiments of the present disclosure may be included in an article of manufacture (e.g., one or more computer program products) having, for example, computer-readable, non-transitory media. The media has embodied therein, for instance, computer readable program code for providing and facilitating the mechanisms of the embodiments of the present disclosure. The article of manufacture can be included as part of a computer system or sold separately.
[53] While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and
embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
[54] Unless stated otherwise as apparent from the following discussion, it will be appreciated that terms such as“applying,”“generating,”“identifying,”“determining,” “processing,”“computing,”“selecting,” or the like may refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Embodiments of the methods described herein may be implemented using computer software. If written in a programming language conforming to a recognized standard, sequences of instructions designed to implement the methods can be compiled for execution on a variety of hardware platforms and for interface to a variety of operating systems. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement embodiments of the present invention.
[55] An executable application, as used herein, comprises code or machine readable instructions for conditioning the processor to implement predetermined functions, such as those of an operating system, a context data acquisition system or other information processing system, for example, in response to user command or input. An executable procedure is a segment of code or machine readable instruction, sub-routine, or other distinct section of code or portion of an executable application for performing one or more particular processes. These processes may include receiving input data and/or parameters, performing operations on received input data and/or performing functions in response to received input parameters, and providing resulting output data and/or parameters.
[56] The functions and process steps herein may be performed automatically or wholly or partially in response to user command. An activity (including a step) performed automatically is performed in response to one or more executable instructions or device operation without user direct initiation of the activity.
[57] The system and processes of the figures are not exclusive. Other systems, processes and menus may be derived in accordance with the principles of the invention to accomplish the same objectives. Although this invention has been described with reference to particular embodiments, it is to be understood that the embodiments and variations shown and described herein are for illustration purposes only. Modifications to the current design may be
implemented by those skilled in the art, without departing from the scope of the invention. As described herein, the various systems, subsystems, agents, managers and processes can be implemented using hardware components, software components, and/or combinations thereof. No claim element herein is to be construed under the provisions of 35 U.S.C. 112(f) the element is expressly recited using the phrase“means for.”

Claims

CLAIMS We claim:
1. A method for logistics planning of a complex system comprising a plurality of system resources, the method comprising: receiving a master listing of tasks to be executed by the complex system; executing a scheduling loop, wherein each iteration of the scheduling loop comprises: generating a graph of system states, wherein (a) each node of the graph corresponds to one or more possible assignments of a subset of tasks on the master listing to the system resources, (b) each edge between two nodes of the graph corresponds to a step, and (c) each step corresponds to an assignment of one task in the subset of tasks to one system resource; performing a directed search on the graph to identify an optimal path in the graph corresponding to an optimal assignment of the subset of tasks the system resources; assigning the subset of tasks to the system resources according to the optimal path in the graph, and scheduling execution of the subset of tasks on the system resources; updating the master listing of tasks to be executed by removing completed tasks included in the subset of tasks; and re-executing the scheduling loop until the master listing of tasks is empty.
2 The method of claim 1, further comprising: determining a list of required skills needed to complete tasks on the master listing of tasks; identifying a list of available skills provided by the system resources in the complex system, wherein the graph of system states is generated in part based on the list of required skills and the list of available skills.
3. The method of claim 1, wherein the graph has a maximum depth equal to a
predetermined number of steps corresponding to a planning horizon.
4. The method of claim 1, wherein the master listing of tasks is updated in response to receiving an indication from a system resource that a task is completed.
5. The method of claim 1, wherein the master listing of tasks is updated in response to receiving an indication that a system resource is defective and cannot execute any additional tasks.
6. The method of claim 1, wherein the master listing of tasks is updated in response to receiving an indication a system resource has acquired a new skill.
7. The method of claim 1, wherein the master listing of tasks is updated in response to receiving one or more new orders to the complex system.
8. The method of claim 1, wherein assigning the subset of tasks to the system resources comprises: transmitting, to each system resource, instructions for performing one or more assigned tasks from the subset of tasks.
9. The method of claim 1, further comprising: executing, by each system resource, the assigned tasks corresponding to the instructions transmitted to the system resource.
10. The method of claim 1, wherein the directed search is guided by a total cost estimation heuristic indicative of a remaining cost of executing all remaining tasks in the master listing of tasks.
11. The method of claim 10, wherein the total cost estimation heuristic is determined by: for each remaining task in the master listing of tasks, determining a cost to complete the remaining task; and summing the cost to complete each remaining task to determine the total cost estimation heuristically.
12. The method of claim 11, wherein the cost to complete the remaining task assumes that the system resource that will be used for execution of each task is capable of performing the task fastest among the plurality of system resources.
13. The method of claim 11, wherein the cost to complete the remaining task is the mean of a Gaussian distribution of possible times for completing the remaining task.
14. The method of claim 1, wherein each task is associated with a load requirement for at least some of the system resources and the directed search of the graph is constrained to exclude system states where an assignment of a task to a system resource would exceed a maximum load associated with the system resource.
15. The method of claim 1, further comprising: receiving one or more new tasks during execution of the scheduling loop; and updating the master listing of tasks to include the new tasks during execution of the scheduling loop.
16. The method of claim 1, wherein the system resources comprise one or more automated guided vehicles.
17. A system comprising: a plurality of system resources; a planning computer configured to execute a scheduling loop, wherein each iteration of the scheduling loop comprises: receiving a plurality of tasks to be executed using the system resources, identifying an optimal subset of the tasks executable by the system resources for a finite time planning horizon, and assigning the optimal subset of tasks to the system resources.
18. The system of claim 17, wherein the optimal subset of the tasks is identified using a graph of system states, each system state comprising an assignment of the tasks on the system resources.
19. The system of claim 17, wherein the optimal subset of the tasks is identified by applying a branch and bound algorithm with bounding criterion based on a terminal cost for completing tasks according to a given system state.
20. The system of claim 19, wherein the terminal cost for completing tasks corresponds at least in part to a time required for completing tasks according to the given system state.
21. The system of claim 20, wherein the time required for completing tasks according to the given system state is determined by querying the system resources for an estimated execution time.
22. The system of claim 17, wherein the system resources comprise one or more automated guided vehicles.
23. A method for logistics planning a complex system comprising a plurality of system resources, the method comprising: receiving, by a planning computer, a plurality of tasks to be executed using the system resources; identifying, by the planning computer, an optimal subset of the tasks executable by the system resources for a finite time planning horizon; assigning, by the planning computer, the optimal subset of tasks to the system resources; and executing, by the system resources, the optimal subset of tasks.
PCT/US2019/018384 2018-10-26 2019-02-18 Receding horizon planning for logistics WO2020086109A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862751090P 2018-10-26 2018-10-26
US62/751,090 2018-10-26

Publications (1)

Publication Number Publication Date
WO2020086109A1 true WO2020086109A1 (en) 2020-04-30

Family

ID=65529858

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2019/018384 WO2020086109A1 (en) 2018-10-26 2019-02-18 Receding horizon planning for logistics

Country Status (1)

Country Link
WO (1) WO2020086109A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112001064A (en) * 2020-07-29 2020-11-27 浙江大学 Full-autonomous water transport scheduling method and system between container terminals
CN112183834A (en) * 2020-09-18 2021-01-05 国网福建省电力有限公司龙岩供电公司 Online generation and execution method and equipment for power grid accident handling plan
EP4095772A1 (en) * 2021-05-28 2022-11-30 Siemens Aktiengesellschaft Optimization of a production system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080010357A1 (en) * 2006-06-23 2008-01-10 Jian Ye System, computer-implemented method, and software for vessel scheduling for product distribution
GB2494047A (en) * 2012-08-22 2013-02-27 Bae Systems Plc Method and system for determining actions to be performed
US20130077496A1 (en) * 2010-09-07 2013-03-28 Bae Systems Plc Assigning resources to resource-utilising entities
US20170308411A1 (en) * 2016-04-20 2017-10-26 Samsung Electronics Co., Ltd Optimal task scheduler
WO2018174940A1 (en) 2017-03-24 2018-09-27 Siemens Aktiengesellschaft Flexible product manufacturing planning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080010357A1 (en) * 2006-06-23 2008-01-10 Jian Ye System, computer-implemented method, and software for vessel scheduling for product distribution
US20130077496A1 (en) * 2010-09-07 2013-03-28 Bae Systems Plc Assigning resources to resource-utilising entities
GB2494047A (en) * 2012-08-22 2013-02-27 Bae Systems Plc Method and system for determining actions to be performed
US20170308411A1 (en) * 2016-04-20 2017-10-26 Samsung Electronics Co., Ltd Optimal task scheduler
WO2018174940A1 (en) 2017-03-24 2018-09-27 Siemens Aktiengesellschaft Flexible product manufacturing planning

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112001064A (en) * 2020-07-29 2020-11-27 浙江大学 Full-autonomous water transport scheduling method and system between container terminals
CN112001064B (en) * 2020-07-29 2022-08-23 浙江大学 Full-autonomous water transport scheduling method and system between container terminals
CN112183834A (en) * 2020-09-18 2021-01-05 国网福建省电力有限公司龙岩供电公司 Online generation and execution method and equipment for power grid accident handling plan
EP4095772A1 (en) * 2021-05-28 2022-11-30 Siemens Aktiengesellschaft Optimization of a production system
WO2022248551A1 (en) * 2021-05-28 2022-12-01 Siemens Aktiengesellschaft Optimization of a production system

Similar Documents

Publication Publication Date Title
Nunes et al. A taxonomy for task allocation problems with temporal and ordering constraints
Skobelev Multi-agent systems for real-time adaptive resource management
US8606386B2 (en) Multi-agent system for distributed manufacturing scheduling with Genetic Algorithms and Tabu Search
Frantzén et al. A simulation-based scheduling system for real-time optimization and decision making support
Du et al. Minimizing total tardiness on one machine is NP-hard
Lenstra et al. Complexity of scheduling under precedence constraints
Leung et al. Competitive two-agent scheduling and its applications
Lou et al. Multi-agent-based proactive–reactive scheduling for a job shop
Novas et al. Reactive scheduling framework based on domain knowledge and constraint programming
Mendez et al. An MILP framework for batch reactive scheduling with limited discrete resources
US20140142998A1 (en) Method and System for Optimized Task Assignment
WO2014031917A1 (en) Method and system for optimized scheduling of workflows
WO2020086109A1 (en) Receding horizon planning for logistics
Albey et al. A hierarchical approach to FMS planning and control with simulation-based capacity anticipation
Taghaddos et al. Simulation-based auction protocol for resource scheduling problems
Selcuk et al. The effect of updating lead times on the performance of hierarchical planning systems
US9792573B2 (en) System for modeling production of a product
Furlan et al. BFO: a hybrid bees algorithm for the multi-level capacitated lot-sizing problem
Caraballo et al. The block-information-sharing strategy for task allocation: A case study for structure assembly with aerial robots
Berghman et al. Practical solutions for a dock assignment problem with trailer transportation
Snyman et al. Real-time scheduling in a sensorised factory using cloud-based simulation with mobile device access
Skobelev et al. Practical approach and multi-agent platform for designing real time adaptive scheduling systems
US20210365872A1 (en) A system and method for management of project portfolios
Cayo et al. A shifting bottleneck procedure with multiple objectives in a complex manufacturing environment
Borreguero Sanchidrián et al. Large neighborhood search for an aeronautical assembly line time-constrained scheduling problem with multiple modes and a resource leveling objective

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19708740

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19708740

Country of ref document: EP

Kind code of ref document: A1