Patent Publication Number: US-2022226994-A1

Title: Heterogeneous graph attention networks for scalable multi-robot scheduling

Description:
RELATED APPLICATIONS 
     This application claims priority to, and the benefit of, U.S. Provisional Patent Application No. 63/053,954, filed Jul. 20, 2020, entitled “LEARNING SCHEDULING POLICIES FOR MULTI-ROBOT COORDINATION WITH GRAPH ATTENTION NETWORKS,” and U.S. Provisional Patent Application No. 63/053,958, filed Jul. 20, 2020, entitled “HETEROGENEOUS GRAPH ATTENTION NETWORKS FOR SCALABLE MULTI-ROBOT SCHEDULING WITH TEMPOROSPATIAL CONSTRAINTS,” each of which is incorporated by reference herein in its entirety. 
    
    
     STATEMENT OF GOVERNMENT INTEREST 
     This invention was made with government support under GR10006659 awarded by the Office of Naval Research. The government has certain rights in the invention. 
    
    
     There is a benefit to make multi-robot scheduling more robust and scalable. 
     BACKGROUND 
     Robot teams are increasingly being deployed in environments such as manufacturing facilities and warehouses to improve the speed of operation, save cost, and/or improve productivity. To efficiently coordinate multi-robot teams, fast, high-quality scheduling algorithms are essential to satisfy the temporal and spatial constraints imposed by the dynamic task specification and robot availability. Traditional scheduling solutions are based on exact methods, which are intractable for large-scale problems, or application-specific heuristics, which require expert domain knowledge to develop. 
     SUMMARY 
     An exemplary scheduler system and method are disclosed that can schedule a plurality of heterogenous robots to perform a set of tasks using heterogeneous graph attention network models (also referred to herein as “ScheduleNet”). The exemplary scheduler system and method can outperform other work in multi-robot scheduling both in terms of schedule optimality and the total number of feasible schedules found and also in a scalable framework that can be trained via imitation-based Q-learning operations. The exemplary scheduler system and method can autonomously learn scheduling policies on multiple application domains. 
     The term “robot”, as well as the term “heterogeneous robot” as used herein, can refer to robotic equipment, manufacturing equipment, transport equipment, and/or people with assignable tasks in manufacturing, assembling, distributing environment, e.g., in a production line, assembly line, distribution line. Examples of such operation included, but are not limited to, aircraft assembly and/or manufacturing plant productions, automotive assembly and/or manufacturing plant productions, medical device assembly or manufacturing plant productions, semiconductor fabrication and/or assembly plant productions, consumer goods manufacturing and/or assembling plant productions, textile processing, paper manufacturing or printing, warehouses and distribution sites. In some embodiments, the exemplary scheduler system and method may be employed for a call center. 
     In an aspect, a method is disclosed to generate a schedule for a plurality of heterogenous robots (e.g., robotic equipment, manufacturing equipment, transport equipment, people with assigned tasks in manufacturing, assembling, distributing environment) performing a set of tasks using a scheduler executing instructions, wherein the plurality of heterogenous robots includes a first robot of a first type, and a second robot of a second type, wherein the first type and the second type are different (e.g., in being configured for different tasks or can perform the same tasks at different proficiencies). 
     The method includes at each of a plurality of schedule-able time steps, the scheduler collecting a list of available robots into a set of available robots; and the scheduler performing a plurality of simulations to iteratively select a robot from the set of available robots and attempting to assign one or more tasks to the robot using a Q-network (of states and action), wherein each simulated assignment comprises: building a heterogeneous graph g from states in a graph model (e.g., a simple temporal network (STN)-based model); generating input features for nodes in the heterogeneous graph; and predicting the Q-network using the heterogeneous graph; and selecting the robot using two or more policies selected from the group consisting of a first policy associated with first availability, a second policy associated with a minimum average time on unscheduled tasks, a third policy associated with a minimum time on any one unscheduled task, a fourth policy associated with a minimum average time on all tasks. 
     In some embodiments, the first policy associated with first availability comprises selecting a first robot in the set of available robots according to an index associated with the set of available robots; the second policy associated with the minimum average time on unscheduled tasks comprises (i) computing an average time for each of the set of available robots to complete an unscheduled task and (ii) selecting a given robot with a smallest average time from the computed average time; the third policy associated with the minimum time on any one unscheduled task comprises (i) computing a minimum time for each of the set of available robots to complete any one unscheduled task and (ii) selecting a given robot with a smallest minimum time from the computed minimum time; and wherein the fourth policy associated with the minimum average time on all tasks comprises (i) computing an average time for each of the set of available robots to complete all tasks (both scheduled and unscheduled) and (ii) selecting a given robot with the smallest average time from the computed average time. 
     In some embodiments, the graph model comprises a simple temporal network (STN)-based model that encodes temporal constraints and spatial constraints (e.g., 2D or 3D spatial constraints) into a heterogeneous graph. 
     In some embodiments, the graph model comprises a simple temporal network (STN)-based model that encodes temporal and/or spatial constraints and at least one constraint associated with available robots, robot locations, task locations, and shared resources (e.g., tools), into the heterogeneous graph in a convolutional manner. 
     In some embodiments, a Q-function of the Q-network in the heterogeneous graph is estimated based on state-action pairs. 
     In some embodiments, the heterogeneous graph comprises a plurality of nodes, each of the plurality of nodes, including a first node and second node, wherein the first node and the second node each comprise multi-tuple data (e.g., srcName; edgeName; dstName) that specify an edge type and relation that connects to each other. 
     In some embodiments, the heterogeneous graph is built by generating a first graph comprising a plurality of task nodes comprising a start time node and a finish time node; and generating a second graph as the heterogeneous graph by removing the finish time node. 
     In some embodiments, the heterogeneous graph is built by generating a base graph comprising a minimum distance graph; adding a plurality of robot nodes to the base graph, wherein each robot node of the plurality of robot nodes is connected to an assigned task node, and wherein each robot node of the plurality of robot nodes is connected to other robot nodes of the plurality of robot nodes; adding a plurality of location nodes to the base graph, wherein each location node of the plurality of location nodes is connected to an assigned task node, and wherein each location node of the plurality of location nodes is connected to other location nodes of the plurality of location nodes; and adding a plurality of state summary nodes to the base graph, wherein each state summary node of the plurality of state summary nodes is connected to a task node, a robot node, and a location node. 
     In some embodiments, the method further includes adding a plurality of Q-value nodes to the base graph, where each of the Q-value nodes of the plurality of Q-value odes is connected to a task node, a robot node, and a location node 
     In some embodiments, the input features for the nodes comprise: a minimum expected time to complete an unscheduled task, a maximum expected time to complete the unscheduled task, a mean expected time to complete the unscheduled task, and a standard deviation of an expected time to complete the unscheduled task. 
     In some embodiments, the heterogeneous graph is generated in part using the Johnson algorithm or Floyd Warshall algorithm to generate a minimum distance graph as a structure for the heterogeneous graph. 
     In some embodiments, the method further includes training the Q-network using an imitation learning operation. 
     In some embodiments, the plurality of heterogenous robots comprise at least one of robotic equipment, manufacturing equipment, and transport equipment. 
     In some embodiments, the plurality of heterogenous robots comprise one or more human workers with assigned tasks in manufacturing, assembling, distributing workflow. 
     In another aspect, a scheduler system is disclosed comprising a processor, and a memory operatively coupled to the processor, the memory having instructions stored therein, wherein execution of the instructions by the processor cause the processor to generate a schedule for a plurality of heterogenous robots (e.g., robotic equipment, manufacturing equipment, transport equipment, people with assigned tasks in manufacturing, assembling, distributing environment) performing a set of tasks, wherein the plurality of heterogenous robots includes a first robot of a first type, and a second robot of a second type, wherein the first type and the second type are different (e.g., in being configured for different tasks or can perform the same tasks at different proficiencies). 
     The schedule is generated by, at each of a plurality of schedule-able time steps, the scheduler collecting a list of available robots into a set of available robots (e.g., rj); and the scheduler performing a plurality of simulations to iteratively select a robot from the set of available robots and attempting to assign one or more tasks to the robot using a Q-network (of states x, and action u), wherein each simulated assignment comprises: building a heterogeneous graph g from states (x) in a graph model (e.g., a simple temporal network (STN)-based model) generating input features for nodes in the heterogeneous graph (g); and selecting the robot using i) the heterogenous graph and ii) two or more policies selected from the group consisting of a first policy associated with first availability, a second policy associated with a minimum average time on unscheduled tasks, a third policy associated with a minimum time on any one unscheduled task, a fourth policy associated with a minimum average time on all tasks, wherein the generated schedule is used to direct or control the plurality of heterogenous robots to perform the set of tasks. 
     In some embodiments, the first policy associated with first availability comprises selecting a first robot in the set of available robots according to an index associated with the set of available robots; the second policy associated with the minimum average time on unscheduled tasks comprises (i) computing an average time for each of the set of available robots to complete an unscheduled task and (ii) selecting a given robot with a smallest average time from the computed average time; the third policy associated with the minimum time on any one unscheduled task comprises (i) computing a minimum time for each of the set of available robots to complete any one unscheduled task and (ii) selecting a given robot with a smallest minimum time from the computed minimum time; and the fourth policy associated with the minimum average time on all tasks comprises (i) computing an average time for each of the set of available robots to complete all tasks (both scheduled and unscheduled) and (ii) selecting a given robot with the smallest average time from the computed average time. 
     In some embodiments, the graph model comprises a simple temporal network (STN)-based model that encodes temporal constraints and at least one of available robots, robot locations, task locations, and shared resources (e.g., tools), into a heterogeneous graph in a convolutional manner and a Q-function of the Q-network is estimated based on state-action pairs. 
     In another aspect, a non-transitory computer-readable medium is disclosed having instructions stored thereon, wherein the instructions, when executed by a processor, cause the processor to generate a schedule for a plurality of heterogenous robots (e.g., robotic equipment, manufacturing equipment, transport equipment, people with assigned tasks in manufacturing, assembling, distributing environment) performing a set of tasks, wherein the plurality of heterogenous robots includes a first robot of a first type, and a second robot of a second type, wherein the first type and the second type are different (e.g., in being configured for different tasks or can perform the same tasks at different proficiencies). 
     The schedule is generated by, at each of a plurality of schedule-able time steps, the scheduler collecting a list of available robots into a set of available robots (e.g., rj); and the scheduler performing a plurality of simulations to iteratively select a robot from the set of available robots and attempting to assign one or more tasks to the robot using a Q-network (of states x, and action i), wherein each simulated assignment comprises: building a heterogeneous graph g from states (x) in a graph model (e.g., a simple temporal network (STN)-based model) generating input features for nodes in the heterogeneous graph (g); and selecting the robot using i) the heterogenous graph and ii) two or more policies selected from the group consisting of a first policy associated with first availability, a second policy associated with a minimum average time on unscheduled tasks, a third policy associated with a minimum time on any one unscheduled task, a fourth policy associated with a minimum average time on all tasks, wherein the generated schedule is used to direct or control the plurality of heterogenous robots to perform the set of tasks. 
     In some embodiments, the first policy associated with first availability comprises selecting a first robot in the set of available robots according to an index associated with the set of available robots; the second policy associated with the minimum average time on unscheduled tasks comprises (i) computing an average time for each of the set of available robots to complete an unscheduled task and (ii) selecting a given robot with a smallest average time from the computed average time; the third policy associated with the minimum time on any one unscheduled task comprises (i) computing a minimum time for each of the set of available robots to complete any one unscheduled task and (ii) selecting a given robot with a smallest minimum time from the computed minimum time; and the fourth policy associated with the minimum average time on all tasks comprises (i) computing an average time for each of the set of available robots to complete all tasks (both scheduled and unscheduled) and (ii) selecting a given robot with the smallest average time from the computed average time. 
     In some embodiments, the graph model comprises a simple temporal network (STN)-based model that encodes temporal constraints and at least one of available robots, robot locations, task locations, and shared resources (e.g., tools), into a heterogeneous graph in a convolutional manner and a Q-function of the Q-network is estimated based on state-action pairs. 
    
    
     DETAILED SPECIFICATION 
     Traditionally, the problem of scheduling robots to complete tasks with temporal and spatial constraints has been approached either with exact algorithms, which are computationally intractable for large-scale, dynamic coordination, or approximate methods that require domain experts to craft heuristics for each application. We develop a novel graph attention network-based scheduler to automatically learn features of scheduling problems towards generating high-quality solutions, overcoming the limitations of these conventional methods. Experimental results showed that our network-based policy was able to find high-quality solutions for ˜90% of the testing problems involving scheduling 2-5 robots and up to 100 tasks, which significantly outperforms the prior state-of-the-art, approximate methods. Those results were achieved with affordable computation cost and up to 100× less computation time compared to exact solvers. 
     The exemplary scheduler system and method can outperform prior work in multi-robot scheduling both in terms of schedule optimality and the total number of feasible schedules found. In addition, the exemplary scheduler system and method can achieve this superior performance in a flexible framework that allows us to train via imitation-based Q-learning on smaller problems to provide high-quality schedules on larger problems. In addition, the exemplary scheduler system and method can autonomously learn scalable scheduling heuristics on multiple application domains, attaining an order of magnitude speedup vs. an exact method. 
     Some references, which may include various patents, patent applications, and publications, are cited in a reference list and discussed in the disclosure provided herein. The citation and/or discussion of such references is provided merely to clarify the description of the disclosed technology and is not an admission that any such reference is “prior art” to any aspects of the disclosed technology described herein. In terms of notation. “[n]” corresponds to the nth reference in the reference list. For example. Ref. [1] refers to the 1 st  reference in the list. All references cited and discussed in this specification are incorporated herein by reference in their entireties and to the same extent as if each reference was individually incorporated by reference. 
     Example System and Method of Operations 
       FIG. 1  shows a scheduler system  100  configured to schedule a plurality of heterogenous robots  102  to perform a set of tasks using heterogeneous graph attention network models  104  (not shown—see  FIG. 3 ). The scheduler system  100  is configured to receive a set of data  106  (shown as “shared resources”  106   a , “set of robots”  106   b , and “temporal and/or spatial constraints”  106   c ) from a database or a user ( 108 ) to generate a schedule  110  to be used to direct or control the plurality of heterogenous robots  102  to perform the set of tasks. 
     In the example shown in  FIG. 1 , the heterogenous robots  102  can include equipment (shown as  102   a ) such as, but not limited to, robotic equipment, manufacturing equipment, transport equipment, as well as people with assignable tasks (shown as “workers”  102   b ) and other equipment and workers described herein. Schedule  110  is used as parameters in control systems (shown as  112 ) to control the operation of equipment  102   a . Schedule  110  may also be used to generate floor schedules or plans (shown as  114 ) to direct the operation of the equipment  102   a  as well as workers  102   b.    
     Schedule  110  includes a graph construction module  116  configured to generate the heterogeneous graph attention network models  104  from a set of input node features  124 . In the example shown in  FIG. 1 , the graph construction module  116  employs a base graph model (e.g., a simple temporal network (STN)-based model) that is generated from temporal and/or spatial constraints  106   c  (shown as module  106   c ′). The STN-based model  106   c ′ can extend the simple temporal network (STN) [ 4 ] that encodes the temporal constraints into a heterogeneous graph by adding nodes denoting various components, such as workers (human or robot) and physical locations or other shared resources. 
     Scheduler  110  includes a heterogeneous graph attention network  118  (also referred to as ScheduleNet  118 ) that receives the heterogeneous graph  104  to generate the schedule  110 . The heterogeneous graphs  104  are used to build block layers of the ScheduleNet  118  shown as heterogeneous graph attention layers (HetGAT)  122 . Any arbitrary depth may be generated through the stacking of this layer. While traditional graph neural networks (GNNs) can operate on homogeneous graphs to learn a universal feature update scheme for all nodes, Scheduler  100  casts the task scheduling problem in a heterogeneous graph structure and employs a heterogeneous graph attention network (ScheduleNet) that learns per-edge-type message passing and per-node-type feature reduction mechanisms on this graph. One advantage of ScheduleNet is that it can directly estimate the Q-value of state-action pairs as its output node feature. 
     In the example of  FIG. 1 , the heterogeneous graph attention network  118  includes a Q-network configured to generate predicted Q-values  120  using the plurality of heterogeneous graph attention layers  122  (shown as “HetGat layer”  122   a ,  122   b ,  122   c , and  122   d ). ScheduleNet  118  can directly operate on the heterogeneous graph  104  in a fully convolutional manner with the heterogeneous graph  104  being encoded with the temporal and/or spatial constraints, the various components, such as workers (human or robot), and physical locations or other shared resources ScheduleNet  118  can employ the heterogeneous graph  104  to estimate the Q-function (in state-action pairs configurations) to be used for schedule generation. 
     ScheduleNet may be employed in an end-to-end training operation, e.g., via imitation learning, later discussed herein, and can be generalized to large, unseen problems with an affordable increase in computation cost. This flexibility allows the instant scheduler to set a new state-of-the-art for multi-robot coordination and autonomously learning domain-specific heuristics for robotic applications. 
     Markov Decision Process (MDP) Formulation. The scheduler may employ learning of greedy heuristics to construct solutions by appending tasks to an individual robot&#39;s partial schedule based on the maximization of a score Q-function approximated with a neural network parameterized by θ. The schedule may be constructed as a Markov decision process (MDP) using a five-tuple &lt;x t , u, T, R, γ&gt; that includes: states x t , actions u, transitions T, reward R. and discount factor γ. 
     State x t  at a decision-step t includes the temporal constraints of the problem, represented by an STN, the location information, and all robots&#39; partial schedules constructed so far. Action u=&lt;τ i ,r j &gt; corresponds to appending unscheduled task τ i at the end of the  partial schedule of robot r j . Transitions T correspond to deterministically adding the edges associated with the action into the STN and updating the partial schedule of the selected robot. Reward R of a state-action pair is defined as the change in objective values after taking the action, calculated as R=−1×(Z t+1 −Z t ). Z t  denotes the partial objective function at state x t  and is calculated only using scheduled tasks. For example, while minimizing makespan, Z t =max i f i τ i ∈{partial schedules}. The reward can be multiplied by −1.0 as the objective is minimization. The scheduler  100  can further divide Z t  by a factor D&gt;1 if x t  is not a termination state. D is used to balance between finding the highest immediate reward (local optimal) and finding the global optimal schedules. If the action results in an infeasible schedule in the next state, a large negative reward M inf  is assigned to Z t+1 . 
     Example Method to Generate a Schedule Using Heterogenous Graphs 
     Schedule Generation.  FIG. 2A  shows Algorithm 1 ( 200 ) that illustrates the process of generating schedules using ScheduleNet via scheduling-through-simulation operation. As shown in  FIG. 2A , the input ( 202 ) of Algorithm 1 ( 200 ) include the five-tuple &lt;x t , u, T, R, γ&gt;, which is used to generate the output schedule  110  (shown as  110 ′). 
     The learned heuristic may rely on the evaluation function Q(x, u) (in module  120 ), which may be learned using a collection of problem instances to estimate the total discounted future reward of state-action pairs and select accordingly. The scheduler  100  may use scheduling-through-simulation to generate the schedules  110 . It has been shown in [27] that this process achieves better performance than using decision-step-based generation. 
     In scheduling-through-simulation. Algorithm 1 is shown starting ( 204 ) from t=0 in which t refers to time points instead of decision steps. At each time step, the scheduler  100  first collects ( 206 ) all the available robots not working on a task into a set referred to as r avail  in which r avail ={r j |r j  is available}. Then, the scheduler  100  picks ( 208 ) a robot (denoted as pickRobot function) from r avail  and tries to assign ( 210 ) τ:=argmax τ∈τ     avail   Q θ (x, u) ( 212 ), where τ avail  is the set of unscheduled tasks and only Q values associated with r j  are considered. As shown in Algorithm 1, the scheduler  100  build ( 214 ) a heterogeneous graph g from states in a graph model, generate ( 216 ) input features for nodes in the heterogeneous graph, and predict ( 218 ) the Q-network using the heterogeneous graph. The operations  214 ,  216 ,  218  are later described herein. 
     This task allocation step ( 210 ) repeats until no robot is available; then, the simulation moves to the next time step, t+1 ( 220 ). When considering a team of homogeneous robots, pickRobot function ( 208 ) can dynamically pick heterogeneous robots from r avail  in accordance with a number of policies as provided in Table 1. 
     
       
         
           
               
               
               
             
               
                   
                 TABLE 1 
               
               
                   
                   
               
               
                   
                 Policy 
                 Description 
               
               
                   
                   
               
             
            
               
                   
                 First available 
                 Pick the first robot in r avail  according to their  
               
               
                   
                   
                 original index 
               
               
                   
                 Minimum  
                 Compute the average time it takes for each  
               
               
                   
                 average time  
                 robot in r avail  to complete unscheduled tasks  
               
               
                   
                 on unscheduled  
                 and pick the robot with the shortest of such time. 
               
               
                   
                 tasks 
                   
               
               
                   
                 Minimum time  
                 Find the minimum time it takes for each robot  
               
               
                   
                 on any one  
                 in r avail  to complete any one unscheduled task,  
               
               
                   
                 unscheduled  
                 and pick the robot with the shortest of such time. 
               
               
                   
                 task 
                   
               
               
                   
                 Minimum  
                 Compute the average time it takes for each robot  
               
               
                   
                 average time  
                 in r avail  to complete all tasks, both scheduled and  
               
               
                   
                 on all tasks 
                 unscheduled, and pick the robot with the shortest 
               
               
                   
                   
                 of such time. 
               
               
                   
                   
               
            
           
         
       
     
     When solving a given problem instance. ScheduleNet can execute in parallel each task allocation policy variant for the pickRobot function. Among the feasible policy selectable by the same model with each of the evaluated policies, the one that yields the best objective function score are kept. The ensemble of different robot-picking policy variants proves to find not only more feasible schedules but also schedules with better makespans than any single policy alone, as each policy may work better than another in certain simulated scenarios but not the others. 
     Heterogeneous Graph Network  FIG. 2B  shows Algorithm 2 ( 218 ′) that illustrates the process of building ( 218 ) a heterogeneous graph  104 .  FIG. 3  shows an example heterogeneous graph  104  that is generated according to  FIG. 2B . 
     The input ( 240 ) of Algorithm 2 ( 218 ′) includes a simple temporal network (STN), location loc, robot r and their partial schedules, and available action u avail . Algorithm 2 (218′) uses the input ( 240 ) to construct a heterogenous graph representation as the output  242 . 
     Heterogenous graph  104  may be constructed from a base graph such as a simple temporal (STN) network. STN has been used for the scheduling of homogenous robots. The temporal constraints in multi-robot task allocation and scheduling problems have been modeled as STNs, which can provide consistent upper and lower bound constraints that can be efficiently verified in polynomial time [21]. STNs also allow for encoding set-bounded uncertainty. 
     To accommodate multiple agents, physical constraints, etc. were employed in STNs to address latent disjunctive variables that are augmented into the graph to account for the agents being able to perform only one task at a time and for only one robot occupying a work location at a time, which is known as the Disjunctive Temporal Problem [22]. 
     Heterogeneous graph  104  can specify the edge (shown as lines connecting nodes) uses three-tuple description having the form &lt;srcName, edgeName, dstName&gt;. Put another way, the edge type/relation specifies and connects two node types (from the source node to the destination node), which can also be denoted as 
     
       
         
         
             
             
         
       
     
     In addition, Heterogenous graph  104  may employ a simplified or reduced STN  400  (not shown—see  FIG. 4 ).  FIG. 4  shows a method to generate the simplified or reduced STN  400 . STN  402  shows an example input STN in which each task. τ i , is first be represented by two event nodes: a start time node, s i , and a finish time node, f i . The directed, weighted edges can encode the temporal constraints associating corresponding nodes. 
     Because the task duration can be deterministic, the scheduler  100  can simplify the STN to reduce the model complexity. That is, after running ( 244 ) (see  FIG. 2B ) the Johnson&#39;s algorithm (Johnson 1977) or the Floyd Warshall&#39;s algorithm [6] on the input STN to find its minimum distance graph, the scheduler can remove ( 246 ) all finish time nodes (except f 0 ) from the distance graph to obtain a new STN. The simplified STN  400  (or reduced STN) (see  FIG. 4 ), thus include only half the nodes of the input STN ( 402 ) while still preserving all the necessary temporal constraints. In this way, each task can be represented by its start time node with task duration now serving as its node feature. 
     In the example shown in  FIG. 4 , a process is shown for an example problem with 3 tasks ( 404 ). Tasks “1,” “2” and “3” (shown as  404   a ,  404   b , and  404   c ) with durations “4,” “8,” and “7.” respectively (shown as  406   a ,  406   b ,  406   c ). Table  408  shows the shortest distances from each source (src) node to each destination (dst) node. In this example, Task “3” has a deadline constraint: f 3 ≤8. There is a wait constraint between task 1 and task 2: s 1 ≥f 2 +3. Distances in the blue cells of  FIG. 2 b    are used to construct the graph in  FIG. 2 c   . The representation shown in table  408  effectively describes the temporal constraint representation in the input STN  402  for the purposes of performing an all-pairs shortest path computation as input to the GNN model. The task durations represented by edges in the input STN  402  are preserved implicitly in the graph edges shown in the reduced STN  400  and are captured by the GNN as node features for the corresponding tasks. 
     Given the partial schedule at the current state, the initial input features of each task node are generated by: the first two dimensions are the one-hot encoding of whether a task has been scheduled [1 0] or not [0 1]; the next dimension is the task duration. The edge type from STNs can be denoted using 
     
       
         
         
             
             
         
       
     
     as they encode the temporal constraints. 
     Heterogenous graph  104  can include an extension to the simplified STN by adding robot and location nodes (shown as  248  and  250 , respectively). Robot and location nodes can be added (shown as  252  and  254 , respectively), equaling the number of different robots and locations in the problem, respectively. A robot node is connected ( 256 ) to the task nodes that have been assigned to it, with edge relation 
     
       
         
         
             
             
         
       
     
     All robots are connected ( 258 ) with each other to enable message flow between them, with edge relation 
     
       
         
         
             
             
         
       
     
     The initial feature of a robot node is the number of tasks assigned so far. In a similar manner, a location node is connected ( 260 ) to the tasks nodes in that location, with edge relation 
     
       
         
         
             
             
         
       
     
     All location nodes ae connected ( 262 ) with each other, with the relation 
     
       
         
         
             
             
         
       
     
     The initial feature of a location node is the number of tasks in that location. 
     As the Q-function is based on state-action pairs, it is expected the network would learn a state embedding of the problem from all the task, robot, and location node embeddings. To achieve this, the scheduler adds ( 264 ) a state summary node ( 265 ) into the graph structure. The state summary node is connected to all the task robot, and location nodes, with edge types 
     
       
         
         
             
             
         
       
     
     respectively. The initial features of the graph summary node include the number of total tasks, the number of currently scheduled tasks, the number of robots, and the number of locations. 
     Once the node embeddings are computed using the heterogeneous graph  104 , it is possible to learn a separate Q network consisting of several fully connected (FC) layers to predict the Q-value of a state-action pair, taking as input the concatenation of embeddings from the corresponding state, task, and robot nodes. However, designing a separate Q network on top of GNNs is computationally expensive and not memory efficient, especially when evaluating a large number of state-action pairs at once for parallel computing. Instead, the scheduler is configured to add ( 266 ) value nodes ( 268 ) (also referred to as “Q-value nodes”  268 ) in the graph to directly estimate the Q-values. A value node is connected to corresponding nodes with edge types denoted as 
     
       
         
         
             
             
         
       
     
     (shown as  270 ,  272 ,  274 , respectively). The initial feature of a value node is set to 0. During the evaluation, the heterogeneous graph  104  is constructed with the needed Q-value nodes covering task nodes in τ avail  and robot node of r j  as discussed in relation to  FIG. 2A . As the minimum distance graph of an STN is calculated while the heterogeneous graph  104  is being constructed, the scheduler can further filter out the tasks in τ avail  of which the lower bound of task start time is greater than the current time. For all nodes, self-loops are added so that their own features from previous layers are considered for the next layer&#39;s computation. The metagraph (or network schema) of the graph constructed with Algorithm 2 is shown in  FIG. 5A , which summarizes all the node types and edge types.  FIG. 5A  shows a Meta-graph of the heterogeneous graph built from the STN by adding robot, location, state, and value nodes. 
     Extension for Heterogeneous Task Completion. Heterogeneous graph  104  may further extend the Meta-graph of  FIG. 5A  to include the duration of a task to address unscheduled tasks. In a setting of heterogeneous robot teams, the duration of a task can depend on the robot which is assigned to the task. The scheduler can address problems/scenarios of a partial schedule in which some tasks have already been assigned an agent and then sequenced. For those tasks, their durations are known, which is given by the assigned robot (i.e., dur i,r  for task τ i  assigned robot r). However, the duration of unscheduled tasks is yet to be determined, as no robot has been assigned. As such, Eq. 20 (below) can only be described with a relaxed set bound as shown in Equation 1. Here dur i,min , dur i,max  are the minimum and maximum amounts of time task τ i  can be finished. Specifically, 
     
       
         
           
             
               
                 
                   
                     
                       dur 
                       
                         i 
                         , 
                         min 
                       
                     
                     = 
                     
                       
                         
                           min 
                           r 
                         
                         ⁢ 
                         
                           
                             dur 
                             
                               i 
                               , 
                               r 
                             
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           and 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             dur 
                             
                               i 
                               , 
                               max 
                             
                           
                         
                       
                       = 
                       
                         
                           
                             max 
                             r 
                           
                           ⁢ 
                           
                             
                               dur 
                               
                                 i 
                                 , 
                                 r 
                               
                             
                             · 
                             
                               dur 
                               
                                 i 
                                 , 
                                 min 
                               
                             
                           
                         
                         ≤ 
                         
                           
                             f 
                             i 
                           
                           - 
                           
                             s 
                             i 
                           
                         
                         ≤ 
                         
                           dur 
                           
                             i 
                             , 
                             max 
                           
                         
                       
                     
                   
                   , 
                   
                     ∀ 
                     
                       
                         τ 
                         i 
                       
                       ⁢ 
                       ϵ 
                       ⁢ 
                       
                         { 
                         unscheduled 
                         } 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     1 
                   
                   ) 
                 
               
             
           
         
       
     
     Unfortunately, this set bound can nullify the simplification operation for reducing the graphs and increase complexity. The simplification operation can be adjusted for this more expressive setting by extending the set of task node features to include multiple descriptive statistics describing the task&#39;s possible completion times among all robots where the size is non-parametric in the number of robots. Specifically, the input features of task τ i  can be extended to include the minimum, the maximum, the mean, and the standard deviation of {dur i,r , ∀ V ∈r}. This modeling approach achieves a potent balance between model complexity and expressivity. 
     Additionally, information about completion times can be encoded for unscheduled tasks by augmenting the heterogeneous graph obtained from Algorithm 2. Two new edge types may be added between nodes of unscheduled tasks and robot nodes: 
     
       
         
         
             
             
         
       
     
     ( 502 ) (see FIG.  5 B) and 
     
       
         
         
             
             
         
       
     
     ( 504 ). The edge attribute encodes the time used for a robot to complete the task connected via this edge. 
     A further change to Algorithm 2 concerns the handling of edges between location nodes. Because locations are expanded to 2D spatial areas in the heterogeneous robot case, only locations that fall within the minimum allowed safety distance to represent the proximity constraints are connected instead of connecting location nodes with each other. 
       FIG. 5B  shows the augmented metagraph  500  with heterogeneous robot teams, including the newly-added edge types ( 502 ,  504 ) between robot nodes and task nodes. The edge type 
     
       
         
         
             
             
         
       
     
     ( 506 ), although it shares the same name as in  FIG. 5A , now encodes the 2D proximity constraints. 
     Heterogeneous Graph Attention Layer. The feature update process in a HetGAT layer  122  may be conducted in two steps: per-edge-type message passing followed by per-node-type feature reduction. During message passing, each edge type uses a distinct weight matrix, W edgeName ∈   D×S , to process the input feature from the source N src , and sends the computation results to the destination node, N dst ,&#39;s mailbox. S is the input feature dimension of the source node N src , and D is the output feature dimension of the destination node N dst . In the case that several edge types share the same name, the scheduler uses W srcName,edgeName  to distinguish between them. For example, edge types coming into the state nodes may be distinguished by temporal W task,in , W robot,in , and W state,in . As for edge type 
     
       
         
         
             
             
         
       
     
     which is the only weighted edge in our heterogeneous graph formulation, the edge attribute, w, is also sent after being transformed by WtempEdge∈   D×1 . 
     Feature reduction may happen inside each node&#39;s mailbox. For each edge type that a node has, the HetGAT layer (e.g.,  122 ) can compute per-edge-type aggregation results by weighing received messages stored in its mailbox, along with the same edge type with normalized attention coefficients that are feature-dependent and structure-free. Those results can then be merged to compute the destination node&#39;s output feature. In the case of coordinating teams of homogeneous robots, task-type nodes only ever serve as destination nodes for other task nodes. Task nodes can serve as source nodes for non-task type nodes (e.g., robot nodes). This flow of information from task nodes to robot nodes enables the scheduler to extract embeddings for each robot. Embeddings for tasks are extracted from the underlying STN, which already captures information regarding the robots&#39; homogeneous task completion times. When the model is augmented (as previously described) to account for heterogeneous task completion times, edges from non-task type nodes (e.g., robot nodes) to task nodes may be considered to extract task embeddings that account for robot heterogeneity. 
     The feature update formulas of different node types are listed in Eqs. 2-6. 
     
       
         
           
             
               
                 
                   
                     Task 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       h 
                       i 
                       ′ 
                     
                   
                   = 
                   
                     σ 
                     ( 
                     
                       
                         ∑ 
                         
                           j 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           ϵ 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             
                               N 
                               temporal 
                             
                             ⁡ 
                             
                               ( 
                               i 
                               ) 
                             
                           
                         
                       
                       ⁢ 
                       
                         
                           a 
                           ij 
                           temporal 
                         
                         ⁡ 
                         
                           ( 
                           
                             
                               
                                 W 
                                 temporal 
                               
                               ⁢ 
                               
                                 h 
                                 j 
                               
                             
                             + 
                             
                               
                                 W 
                                 tempEdge 
                               
                               ⁢ 
                               
                                 edge 
                                 ji 
                               
                             
                           
                           ) 
                         
                       
                     
                     ) 
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     2 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     Robot 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       h 
                       i 
                       ′ 
                     
                   
                   = 
                   
                     σ 
                     ( 
                     
                       
                         
                           ∑ 
                           
                             j 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 assignedTo 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ij 
                             assignedTo 
                           
                           ⁢ 
                           
                             W 
                             assignedTo 
                           
                           ⁢ 
                           
                             h 
                             j 
                           
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             k 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 
                                   comm 
                                   . 
                                 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ik 
                             
                               comm 
                               . 
                             
                           
                           ⁢ 
                           
                             W 
                             
                               comm 
                               . 
                             
                           
                           ⁢ 
                           
                             h 
                             k 
                           
                         
                       
                     
                     ) 
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     3 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     Location 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       h 
                       i 
                       ′ 
                     
                   
                   = 
                   
                     σ 
                     ( 
                     
                       
                         
                           ∑ 
                           
                             j 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 locateIn 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ij 
                             locatedIn 
                           
                           ⁢ 
                           
                             W 
                             locatedIn 
                           
                           ⁢ 
                           
                             h 
                             j 
                           
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             k 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 near 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ik 
                             
                               near 
                               . 
                             
                           
                           ⁢ 
                           
                             W 
                             near 
                           
                           ⁢ 
                           
                             h 
                             k 
                           
                         
                       
                     
                     ) 
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     4 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     State 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       h 
                       i 
                       ′ 
                     
                   
                   = 
                   
                     σ 
                     ( 
                     
                       
                         
                           ∑ 
                           
                             j 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 
                                   task 
                                   , 
                                   in 
                                 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ij 
                             
                               task 
                               , 
                               in 
                             
                           
                           ⁢ 
                           
                             W 
                             
                               task 
                               , 
                               in 
                             
                           
                           ⁢ 
                           
                             h 
                             j 
                           
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             k 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 
                                   robot 
                                   , 
                                   in 
                                 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ik 
                             
                               robot 
                               , 
                               in 
                             
                           
                           ⁢ 
                           
                             W 
                             
                               robot 
                               , 
                               in 
                             
                           
                           ⁢ 
                           
                             h 
                             k 
                           
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             m 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               N 
                               
                                 loc 
                                 , 
                                 in 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             im 
                             
                               loc 
                               , 
                               in 
                             
                           
                           ⁢ 
                           
                             W 
                             
                               loc 
                               , 
                               in 
                             
                           
                           ⁢ 
                           
                             h 
                             m 
                           
                         
                       
                       + 
                       
                         
                           W 
                           
                             state 
                             , 
                             in 
                           
                         
                         ⁢ 
                         
                           h 
                           i 
                         
                       
                     
                     ) 
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     5 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     Value 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       h 
                       q 
                       ′ 
                     
                   
                   = 
                   
                     σ 
                     ⁡ 
                     
                       ( 
                       
                         
                           
                             W 
                             
                               task 
                               , 
                               to 
                             
                           
                           ⁢ 
                           
                             h 
                             t 
                           
                         
                         + 
                         
                           
                             W 
                             
                               robot 
                               , 
                               to 
                             
                           
                           ⁢ 
                           
                             h 
                             r 
                           
                         
                         + 
                         
                           
                             W 
                             
                               state 
                               , 
                               to 
                             
                           
                           ⁢ 
                           
                             h 
                             s 
                           
                         
                         + 
                         
                           
                             W 
                             
                               value 
                               , 
                               to 
                             
                           
                           ⁢ 
                           
                             h 
                             q 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     6 
                   
                   ) 
                 
               
             
           
         
       
     
     In Eqs. 2-6, N edgeName (i) is the set of incoming neighbors of node i along with a certain edge type, and σ( ) represents the ReLU nonlinearity. Prior work has shown that attention mechanisms are beneficial for representation learning on homogeneous graphs (Velickovic et al., 2017; Kool et al., 2019). Thus, the attention models are extended from prior work to reason about task scheduling with heterogeneous graph networks. Specifically, The per-edge-type attention coefficient. α ij   edgeName , is calculated based on source node features and destination node features (plus edge attributes if applicable). 
     More specifically, the attention coefficient for edge type 
     
       
         
         
             
             
         
       
     
     is calculated by Eq. 7, where {right arrow over (α)} temporal   T  is the learnable weights, the symbol ∥ is the concatenation operation, and σ′( ) is the LeakyReLU nonlinearity (with a negative input slope of 0.2). Softmax function is used to normalize the coefficients across all choices of j. 
       α ij   temp. =softmax j (σ′({right arrow over (α)} temp.   T [ W   temp.   {right arrow over (h)}   i   ∥W   temp.   {right arrow over (h)}   j   ∥W   tempEdge   w   ji ]))   (Eq. 7)
 
     The attention coefficients for other edge types are calculated by Eq. 8. W dstType  is chosen depending on the destination node type. We use W comm.  for robot nodes, W near  for location nodes, and W state,in  for the state node. 
       α ij   edgeName. =softmax j (σ′({right arrow over (α)} edgeName   T [ W   edgeName   {right arrow over (h)}   i   ∥W   dstType   {right arrow over (h)}   j )   (Eq. 8)
 
     For edge types connecting the same type of nodes, the attention coefficients can be computed by Eq. 9. 
       α ij   edgeName. =softmax j (σ′({right arrow over (α)} edgeName   T [ W   edgeName   {right arrow over (h)}   i   ∥W   edgeName   {right arrow over (h)}   j )   (Eq. 9)
 
     However. Equation 9 does not hold for edges where the source node, h j , and destination node, h i , are of different node types. Take the edge type 
     
       
         
         
             
             
         
       
     
     as an example, the message passing weights, W assignedTo , are only defined and trained for processing the source node type features (of task nodes) and are thus not adequate for processing the destination node type features (of robot nodes) for attention computation. Therefore, Equation 17 can be changed into Equation 18 by using both W edgeName  and W dstType  to account for differing types of source and edge nodes. While these additional parameters improve model expressivity, there is a cost in terms of computational memory and speed. 
     In practice, a helpful trade-off can be achieved between expressivity and computational costs by employing weight sharing. Specifically. W dstType  can be set to be equal to W comm , W near , and W state,in  when the destination node type includes robot, location, and state node, respectively as shown in Eq. 10. 
       α ij   edgeName. =softmax j (σ′({right arrow over (α)} edgeName   T [ W   dstType   {right arrow over (h)}   i   ∥W   edgeName   {right arrow over (h)}   j )   (Eq. 10)
 
     To stabilize the learning process, the scheduler  100  may utilize the multi-head attention proposed from [23], adapting it to fit the heterogeneous case. The scheduler uses K independent HetGAT layers (e.g.,  122 ) to compute node features in parallel and then merge the results as the multi-head output for each multi-head layer in ScheduleNet. e.g., by concatenation, except for the last layer, which employs by averaging. Considering that ScheduleNet utilizes a fully convolutional structure where the last graph layer directly predicts Q-values as the 1-dimensional output feature of value nodes, merging multi-head results with concatenation can be no longer viable for the last layer as it would give a K-dimensional output. 
     Extensionfor Heterogeneous Task Completion. Because the newly-added edge type 
     
       
         
         
             
             
         
       
     
     only accounts for unscheduled tasks. The feature update formula for scheduled tasks remains the same as Eq. 3. For unscheduled tasks. Eq. 3 is changed by including terms a counting for the message coming through the new edge type, as shown in Eq. 11. 
     
       
         
           
             
               
                 
                   
                     h 
                     i 
                     ′ 
                   
                   = 
                   
                     σ 
                     ( 
                     
                       
                         
                           ∑ 
                           
                             j 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 temporal 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ij 
                             temporal 
                           
                           ⁡ 
                           
                             ( 
                             
                               
                                 
                                   W 
                                   temporal 
                                 
                                 ⁢ 
                                 
                                   h 
                                   j 
                                 
                               
                               + 
                               
                                 
                                   W 
                                   tempEdge 
                                 
                                 ⁢ 
                                 
                                   edge 
                                   ji 
                                 
                               
                             
                             ) 
                           
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             k 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 useTime 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ik 
                             useTime 
                           
                           ⁢ 
                           
                             W 
                             useTime 
                           
                           ⁢ 
                           
                             h 
                             k 
                           
                         
                       
                       + 
                       
                         
                           W 
                           useTimeEdge 
                         
                         ⁢ 
                         
                           edge 
                           ki 
                           ′ 
                         
                       
                     
                     ) 
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     11 
                   
                   ) 
                 
               
             
           
         
       
     
     In Eq. 11, edge ki   ′ is the attribute of the new edge, and the corresponding attention coefficient, a   ik   useTime  is computed by Eq. 12. 
       α ik   useTime =softmax k (σ′({right arrow over (α)} useTime   T [ W   temp.   {right arrow over (h)}   i   ∥W   useTime   {right arrow over (h)}   k   ∥W   useTimeEdge edge ki ′]))   (Eq. 12)
 
     Similarly, the addition of new edge type 
     
       
         
         
             
             
         
       
     
     changes the feature update equation of robot nodes from Eq. 4 in the homogeneous case to Eq. 13 in the heterogeneous case. 
     
       
         
           
             
               
                 
                   
                     h 
                     i 
                     ′ 
                   
                   = 
                   
                     σ 
                     ( 
                     
                       
                         
                           ∑ 
                           
                             j 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 assignedTo 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ij 
                             assignedTo 
                           
                           ⁢ 
                           
                             W 
                             assignedTo 
                           
                           ⁢ 
                           
                             h 
                             j 
                           
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             j 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 
                                   comm 
                                   . 
                                 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ik 
                             
                               comm 
                               . 
                             
                           
                           ⁢ 
                           
                             W 
                             
                               comm 
                               . 
                             
                           
                           ⁢ 
                           
                             h 
                             k 
                           
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             j 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ϵ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 N 
                                 takeTime 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             α 
                             ik 
                             takeTime 
                           
                           ⁢ 
                           
                             W 
                             takeTime 
                           
                           ⁢ 
                           
                             h 
                             m 
                           
                         
                       
                       + 
                       
                         
                           W 
                           takeEdge 
                         
                         ⁢ 
                         
                           edge 
                           mi 
                           ″ 
                         
                       
                     
                     ) 
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     13 
                   
                   ) 
                 
               
             
           
         
       
     
     In Eq. 13, edge′ mi  is the attribute of the corresponding edge, and the corresponding attention coefficient α im   takeTime  is computed according to Eq. 14. 
       α im   useTime =softmax m (σ′({right arrow over (α)} takeTime   T [ W   comm.   {right arrow over (h)}   i   ∥W   takkeTime   {right arrow over (h)}   m   ∥W   takeTimeEdge edge mi ″]))   (Eq. 14)
 
     Even though locations are extended from 1 D to 2D areas. Eq. 5 still applies to location nodes. Because now N near (i) only considers neighbor locations falling within the allowed safety distance instead of all locations, and W near , α ik   near  would learn to encode the corresponding proximity constraints. Finally, the update equations for state and value nodes (Eqs. 6 and 7) remain the same as in the homogeneous robot case. 
     Imitation Learning 
     Under the MDP formulation, the scheduler is configured to learn a greedy policy for sequential decision making. Thus, it is natural to consider reinforcement learning algorithms (e.g., Q-learning) for training ScheduleNet. However, reinforcement learning relies on finding feasible schedules to learn useful knowledge. In the instant problems, most permutations of the schedule are infeasible. As a result, reinforcement learning spends much more time than allowed before learning anything of value exploring infeasible solutions. 
     Instead, the instant scheduler leverages imitation learning methods that learn from high-quality schedules to accelerate the learning process for quick deployment. In real-world scheduling environments, high-quality, manually-generated schedules from human experts who currently manage the logistics in manufacturing environments may be available. Moreover, it is practical to solve small-scale problems optimally with exact methods. 
     Given the scalability of the heterogeneous graph, it is expected that exploiting such expert data on smaller problems to train the ScheduleNet can generalize well towards solving unseen problems, even in a larger scale. 
     Let D ex  denote the expert dataset that contains all the state-action pairs of schedules either from exact solution methods or the domain experts. For each transition, the total reward is calculated from current step t until termination step n using R t   (n) =Σ k=0   n−t γ k R t+k  and regress the corresponding Q-value from ScheduleNet towards this value as shown in Eq. 15, where the supervised learning loss, L ex , is computed as the mean squared error between R t   (n)  and our current estimate of the expert action u ex . 
         L   ex   =∥{circumflex over (Q)}   θ ( h   x   ,h   u,ex   −R   t   (n) ∥ 2   (Eq. 15)
 
     To fully exploit the expert data, the scheduler grounds the Q values of alternative actions u alt  (not selected by the expert) to a value below R t   (n)  using the loss shown in Eq. 16, where q o  is a positive constant empirically picked as an offset, and N alt  is the number of alternate actions at step t. In accordance with the schedule generation scheme, N alt  only considers actions involving the same robot selected by the expert. 
     
       
         
           
             
               
                 
                   
                     L 
                     alt 
                   
                   = 
                   
                     
                       ∑ 
                       
                         
                            
                           
                             
                               Q 
                               ⁡ 
                               
                                 ( 
                                 
                                   x 
                                   , 
                                   
                                     u 
                                     alt 
                                   
                                 
                                 ) 
                               
                             
                             - 
                             
                               min 
                               ⁡ 
                               
                                 ( 
                                 
                                   [ 
                                   
                                     
                                       
                                         
                                           Q 
                                           ⁡ 
                                           
                                             ( 
                                             
                                               x 
                                               , 
                                               
                                                 u 
                                                 alt 
                                               
                                             
                                             ) 
                                           
                                         
                                       
                                     
                                     
                                       
                                         
                                           
                                             R 
                                             t 
                                             
                                               ( 
                                               n 
                                               ) 
                                             
                                           
                                           - 
                                           
                                             q 
                                             0 
                                           
                                         
                                       
                                     
                                   
                                   ] 
                                 
                                 ) 
                               
                             
                           
                            
                         
                         2 
                       
                     
                     
                       N 
                       alt 
                     
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     16 
                   
                   ) 
                 
               
             
           
         
       
     
     The min term in Eq. 16 ensures that the gradient propagates through all the unselected actions that have Q values higher than R t   (n) −q o . The difference from [17] lies in that they only train on the unselected action with the max Q value. 
     The total supervised loss is shown in Eq. 17, where L2 is the L2 regularization term on the network weights, and λ 1 , λ 2  are weighting parameters assigned to different loss terms empirically. 
         L   total   =L   ex +λ 1   L   alt +λ 2   L   2    (Eq. 17)
 
       FIG. 6  shows a scheduler development framework that includes graph attention networks and imitation learning for multi-robot scheduling. The scheduler uses a graph attention network, with robot-specific input node features constructed from partial schedules, to extract high-level robot embeddings and a separate Q network to evaluate discounted future rewards of state-action pairs for greedy schedule generation. The scheduler is trained with transitions generated from expert schedules using an imitation loss. 
     Additional description and examples of the imitation learning is provided in Wang. Zheyuan. and Matthew Gombolay. “Learning scheduling policies for multi-robot coordination with graph attention networks.” IEEE Robotics and Automation Letters 5, no. 3 (2020): 4509-4516, which is provided in the priority document and incorporated by reference herein in its entirety. 
     Experimental Results and Examples 
     A study was conducted to evaluate the scheduler and its various components therein on problems involving homogeneous robot teams and heterogeneous robot teams. 
     Homogeneous robot teams study. The study evaluated the results of optimizing a generic objective function, which is the minimization of total makespan. 
     Dataset. To evaluate the performance of SchcduleNet, the study generated random problems based on Gombolay et al. (2013). The study simulated multi-agent construction of a large workpiece, e.g., an airplane fuselage, with three different configurations: a two-robot team, a five-robot team, and a ten-robot team. Task duration is generated from a uniform distribution in the interval [1; 10]. Approximately 25% of the tasks have absolute deadlines drawn from a uniform distribution in the interval [1, N×T], where N is the number of total tasks. The study used T=5 for two-robot teams. T=2 for five-robot teams, and T=1 for ten-robot teams. Approximately 25% of the tasks have wait constraints, and the duration of non-zero wait constraints is drawn from a uniform distribution in the interval [1; 10]. The study set the number of locations in a problem to be the same as the number of robots, and each task&#39;s location is picked randomly. 
     For each team configuration, problems are generated in three scales: small (16-20 tasks), medium (40-50 tasks), and large (80-100). For each problem scale, the study generated 1,000 problems for testing. To train the ScheduleNet model, the study generated another 1.000 small problems with the two-robot teams. The study ran Gurobi with a cutoff time of 15 minutes on generated problems to serve as exact baselines for the test set and expert demonstrations for the training set. This resulted in a total of 17,513 transitions for training. To further examine the scalability of ScheduleNet, the study also generated 100 ten-robot team problems in extra-large scale (160-200 tasks) and set the Gurobi cutoff time to be 1 hour, as the MILP formulation involves 300,000+ general constraints and 160,000+ binary variables. 
     Benchmark The study performed benchmarks of ScheduleNet against several methods: EDF. Tercio, HomGNN, and Exact. 
     EDF benchmark employs a ubiquitous heuristic algorithm, earliest deadline first (EDF), that selects from a list of available tasks the one with the earliest deadline, assigning it to the first available worker. 
     Tercio benchmark employs a state-of-the-art scheduling algorithm for its problem domain. Tercio (Gombolay et al., 2018). Tercio is a hybrid algorithm that combines mathematical optimization for task allocation and an analytical sequencing test to ensure temporal and spatial feasibility. Hyperparameters are chosen from Gombolay et al. (2018). 
     HomGNN benchmark is a neural network-based method proposed in Wang and Gombolay (2019). The method uses a homogeneous GNN to exact problem embedding from the STN and a separate Q-network consisting of two FC layers to predict the Q-value. The model used the same hyper-parameters in Wang and Gombolay (2019). 
     Exact benchmark employs Gurobi, a commercial optimization solver widely used for mixed-integer linear programming. The results are represented in the exact baseline. 
     Evaluation Metrics. To minimize the makespan, the study used the following metric for evaluation purposes. MI: Percentage of problems solved within optimality ratio. A problem is considered solved by an algorithm if the ratio, r, between the objective value it finds and the optimal value is within a certain range 
     
       
         
           
             
               ( 
               
                 
                   e 
                   . 
                   g 
                   . 
                 
                 , 
                 
                   r 
                   = 
                   
                     
                       
                         z 
                         algorithm 
                       
                       
                         z 
                         optimal 
                       
                     
                     ≤ 
                     
                       1 
                       ⁢ 
                       
                         : 
                       
                       ⁢ 
                       1 
                     
                   
                 
               
               ) 
             
             . 
           
         
       
     
     Gurobi solutions are used as the optimal value. If the algorithm finds a solution to the problem which Gurobi fails to solve within cutoff time, the study set r=1 on this problem during evaluation. By calculating this metric with different optimal ratios, the study obtained a comprehensive view of how the solution quality an algorithm finds is distributed. 
     Model Details. The study implemented ScheduleNet using PyTorch (Paszke et al., 2019) and Deep Graph Library (Wang et al., 2019a). The ScheduleNet used in training/testing was constructed by stacking four multi-head HetGAT layers (the first three used concatenation and the last one used averaging). The feature dimension of hidden layers was set to 64, and the number of heads was set to 8. The study set γ=0.99, D=3.0 and used Adam optimizer (Kingma and Ba, 2014) through training. The training procedure used a learning rate of 10 −4 , γ 1 =0.9, γ 2 =0.1, q o =3.0, and batch size=8. Both training and evaluation were conducted on a Quadro RTX 8000 Graphics Processing Unit (GPU). 
     The ScheduleNet was trained on small problems of two-robot teams and the same model was evaluated on all the different problem scales and team configurations. As HomGNN is not scalable in a number of robots, for each team configuration, the study trained a new model on 1000 small problems and used it for evaluation on the rest.  FIGS. 7A-7I  show evaluations results on problems of the two, five, and ten homogenous robot teams, respectively, for a small problem ( FIGS. 7A-7C ), a medium problem ( FIGS. 7D-7F ), and a large problem ( FIGS. 7G-7I ). Specifically, in  FIGS. 7A-7I  the evaluation results of different methods are compared using MI, where the optimality ratio ranges from 1 to 2 with intervals of 0.05 by default. 
     For small problems (as shown in  FIGS. 7A, 7D, and 7G ), for small optimal ratio (r≤1:2), ScheduleNet outperformed three other heuristics (EDF, Tercio, and HomGNN) by a large margin and achieved significantly closer results to the exact method. This result shows the effectiveness of ScheduleNet in finding high-quality feasible schedules. The only case where HomGNN performed similarly was when examined under a large optimal ratio (r≤1.8), indicating HomGNN was able to find more low-quality solutions, which is often not preferred. 
     For medium problems (as shown in  FIGS. 7B, 7E, and 7H ), both EDF and Tercio tended to find high-quality schedules, but with a low percentage, while HomGNN found more feasible low-quality solutions. Again, ScheduleNet model significantly outperformed the other three methods. Even though only trained with small problems, the performance of ScheduleNet remained consistent in solving medium and large problems, where a notable performance drop was observed for other methods. HomGNN failed to find solutions to large problems within Gurobi cutoff time (at least 40 minutes vs. 15 minutes), thus it was not reported. 
     During evaluation on large (as shown in  FIGS. 7C, 7F, and 7I ) and ex-large problems ( FIG. 11A ), the study found that for some problems, the solutions found by SchedulerNet had better makespans than those found by Gurobi under its cutoff time. Therefore, the study showed ScheduleNet can extend the optimality ratio to the smallest value under which ScheduleNet still solved at least one problem in  FIGS. 7F and 7I . 
     For ex-large problems ( FIG. 11A ). Gurobi failed to find most of the feasible solutions within the one-hour cutoff time (8 solved out of 100), while ScheduleNet managed to find substantially more feasible schedules ( 79  solved). These results demonstrated that the ScheduleNet model can transfer knowledge learned on a small problem to help solve larger problems by exploiting the scalability within heterogeneous graph formulation. 
       FIGS. 8A-8C  show the computation time of different methods where only feasible solutions were counted for each method. Specifically.  FIGS. 8A-8C  show the running time statistics for a two, five, and ten homogeneous robot-teams. The error bars denote the 25 th  and 75 th  percentile. 
     Due to differences in implementation details. CPU/GPU utilization, besides directly comparing the raw numbers, we also focused on the time changes of each method with respect to increasing problem sizes. When problem size increased, the performance of ScheduleNet stayed consistent with an affordable increase in computation time, which was less than Gurobi. This can be attributed largely to the fully convolutional structure as well as the STN simplification operation that greatly reduced its model complexity and computation cost. As the ten-robot team imposed a larger number of robot-related constraints than other team sizes, it took Gurobi less time to find solutions for ten-robot problems than two-and-five-robot problems. In contrast, HomGNN failed to scale up to 100 tasks within Gurobi cutoff time. This was mainly due to its structure, where FC layers are stacked on top of a GNN for Q-value prediction, making the model complexity proportional to 2×N task ×N action , during parallel evaluation. As a comparison, the structural complexity of ScheduleNet is only proportional to N task +N action , considering N robot ,N location &lt;&lt;N task . 
     Application-Specific Objective Function. To evaluate the performance of the scheduler  100  under a different objective function, z=Σ i c i f i , the study generated problems involving fie-robot teams with two scales: small and medium, following the same parameters discussed above. Additionally, each task was associated with a real number cost, c, drawn from a 
     uniform distribution in the interval [1, 10]. This cost is added to the input features of task nodes. For each problem scale, 1,00) problems were generated for testing. The study generated 1000 small problems for training the ScheduleNet. The study ran Gurobi on all problems with a cutoff time of 15 minutes to serve as exact baselines. The study used the same set of parameters during training as used in the total makespan case, except q o =30, considering the reward was generally larger. The study compared ScheduleNet against a Highest Cost Tardiness First (HCTF) priority heuristic which assigns the task with the highest cost to the first available worker in every scheduling decision. 
       FIGS. 9A and 9B  show the evaluation results of minimizing the weighed sum of the completion times for a five homogeneous robot team for a small problem and a medium problem, respectively. For r≤1.2 both methods solved similar number of problems. However, under larger optimality ratios. ScheduleNet started to outperform HCTF, resulting in a better overall performance. 
     Experimental Results on Heterogeneous Task Completion. The study evaluated the performance of ScheduleNet for coordinating robots that are heterogeneous in task completion time with the objective of minimizing the team&#39;s makespan. 
     Dataset and benchmark. The study generated random problems following the same setting and hyper-parameters as described in the homogeneous evaluation, with the following two differences: 
     First, for each task, τ i , the study sampled a mean value from [1, 10] and a gap value from [1, 3], both with uniform distributions. Then the study sampled dur i,r  for each robot from a uniform distribution in the interval [mean−gap; mean+gap] (clamped at [1, 10] if applicable). 
     Second, the task locations were randomly sampled from the 2D map. The study used 2×2 for two-robot teams, 3×3 for five-robot teams, and 5×5 for ten-robot teams. The safety distance was set to 1. If |Loc i −Loc j |≤1, then (τ i , τ j )∈L proximity . 
     Considering that HomGNN (Wang and Gombolay, 2019) is not designed for handling heterogeneous task completion among robots, the study benchmarked ScheduleNet against the remaining set of methods: EDF, Tercio. and Exact (i.e., a MILP solved by Gurobi). 
     Evaluation Model. For performance evaluation, the study used the same MI metric discussed above. The ScheduleNet model also consisted of four multi-head HetGAT layers (the first three use concatenation and the last one uses averaging). The feature dimension of hidden layers was set to 64, and the number of heads was set to 8. The study set γ=0:95, D=3:0 and used Adam optimizer. The training procedure used a learning rate of 3×10 −4 , γ 1 =0.9. γ 2 =0.3, q o =3.0, and batch size=8. Both training and evaluation were conducted on a Quadro RTX 8000 GPU. 
     Same as in the homogeneous robot case, the study trained the ScheduleNet for heterogeneous robot teams on small problems of two-robot teams and evaluate the same model on varying problem scales and team configurations. Evaluation results using MI are shown in  FIGS. 10A-10I  where optimality ratios range from 1 to 2 with intervals of 0.05 by default. 
     For small and medium problems ( FIGS. 10A-10B, 10D-10E, and 10G-10H ), ScheduleNet outperformed EDF and Tercio for medium-to-large optimality ratios (r≥1.2) other than small problems of ten-robot teams, and obtained results close to Tercio for r≥1.5 while consistently beating EDF. The improvement in the performance of ScheduleNet over the baseline models was particularly significant in medium problems of two-robot and five-robot teams in which ScheduleNet found feasible solutions for more than half of the problems, whereas Tercio and EDF found less than 15% for medium-to-high optimality ratios (r≥1:2). Compared to evaluation results for homogeneous robots, high-quality schedules for heterogeneous robots were much harder to find for all three methods, with a much lower success rate overall in finding a feasible schedule. 
     For large ( FIGS. 10C, 10F, and 10I ) and extra-large problems ( FIG. 11B ), the study showed ScheduleNet can extend the optimality ratios (measured relative to the solution returned by Gurobi) to the smallest value under which ScheduleNet solved at least one problem. In addition to finding schedules that were more optimal than Gurobi for ˜10% of the problems. ScheduleNet models significantly outperformed EDF and Tercio by finding feasible solutions for &gt;30% of large problems compared to less than 5% by the latter baselines. Notably, for extra-large problems. EDF, Tercio and Gurobi all failed to find any feasible solutions, whereas ScheduleNet was able to find schedules for up to 24% of the problems. These results further demonstrate ScheduleNet&#39;s capability of generalizing learned knowledge to solving larger unseen problems. 
     Running time statistics of different methods are shown in  FIGS. 12A-12C , where the study counted only feasible solutions found by each method. Because these problems of coordinating heterogeneous robot teams were much harder than the homogeneous robot case ( FIGS. 8A-8C ), computation times in heterogeneous case ( FIGS. 12A-12C ) increased for all three methods. Furthermore, Gurobi timed out significantly more frequently. 
     For ScheduleNet, similar time change patterns with respect to increasing problem scales can be observed as the homogeneous robot case. Nonetheless, computation times of ScheduleNet are shorter than those of Gurobi and show a much better balance between solution quality and solving speed than EDF and Tercio, making ScheduleNet much more viable in practice. 
     The study demonstrate the trained ScheduleNet model to coordinate the work of a five-robot team in a simulated environment for airplane fuselage construction, covering both homogeneous robot case in 1D space and heterogeneous robot case in 2D space. Our demo leverages the Robotarium, a remotely accessible swarm robotics research testbed with GRITSBot X robots (Wilson et al., 2020). Examples of scheduling homogeneous robot teams and heterogeneous robot teams are shown in  FIGS. 13A and 13B , respectively. The ScheduleNet outputs for each step are depicted in bar plots at the bottom of each figure, with the selected task assignment highlighted in red. A detailed breakdown of the scheduling process with those examples can be found in the supplementary video. 
     DISCUSSION 
     Given the recent developments in robotic technologies and the increasing availability of collaborative robots (cobots), multi-robot systems are increasingly being adopted in various manufacturing and industrial environments [30]. Research in related areas (e.g., multi-robot communication, team formation and control, path planning, task scheduling and routing) has also received significant attention [7]. The exemplary system and method address, inter alia, the problem of multi-robot task allocation and scheduling [15] with both temporal and spatial constraints, which captures the key challenges of final assembly manufacturing with robot teams. To achieve an optimal schedule for a user-specified objective, the robots must be allocated with the proper number of tasks and process these tasks with optimal order, while satisfying temporal constraints such as task deadlines and wait constraints. The addition of spatial constraints (i.e., a location can only be occupied by one robot at a time) makes task allocation difficult because algorithms must reason through inter-coupled, disjunctive time window constraints that govern shared resources. 
     Traditionally, the scheduling problem is formulated as a mixed-integer linear program (MILP), which can be approached with either exact methods or hand-crafted heuristics. However multi-robot scheduling with both temporal and spatial constraints is generally NP-hard [20]. Exact methods fail to scale to large-scale problems, which is exacerbated by the need for near real-time solutions to prevent factory slow-downs. Moreover, efficient approximation algorithms are hard to design. They not only require domain specific knowledge with respect to each problem configuration that usually takes years to gain, but they also require accurate feature engineering to encode such knowledge, which leaves much to be desired [18]. In recent years, deep neural networks have brought about breakthroughs in many domains, including image classification, nature language understanding and drug discovery, as they can discover intricate structures in high-dimensional data without hand-crafted feature engineering [14]. Promising progress has also been made towards learning heuristics for combinatorial optimization problems by utilizing graph neural networks to learn meaningful representations of the problem to guide the solution construction process [32]. Yet this research focuses on significantly easier problems with a simpler graphical structure. e.g., the traveling salesman problem (TSP). 
     The exemplary system and method provides a heterogeneous graph attention network model, called ScheduleNet, to learn heuristics for solving the multi-robot task allocation and scheduling problems with upper- and lowerbound temporal and spatial constraints. 
     Related Work. Task assignment and scheduling for multi-robot teams has been studied with various real-world applications, such as manufacturing, warehouse automation and delivery systems [15]. Korsah et al. [13] devised a widely accepted taxonomy, iTax, to categorize the Multi-Robot Task Allocation (MRTA) problem. Nunes et al. [15] further categorized the extensive research present in the multi-robot task allocation domain and identified possible solutions to this problem. 
     Task allocation is essentially an optimization problem, and the most common formalism to capture its constraints is Mixed Integer Linear Programming (MILP). As exact methods for solving MILP yield exponential complexity, researchers have combined MILP and constraint programming (CP) methods into a hybrid algorithm using decomposition [1, 8, 19] to accelerate computation. Other hybrid approaches exploited heuristic schedulers to gain better scalability [2, 3]. 
     Learning heuristics for solving scheduling problems has been examined by several research groups. Wu et al. [28], Wang and Usher [26]. Zhang and Dietterich [31] applied reinforcement learning methods to learn domain-specific heuristics for job shop scheduling. Wang and Usher [26] developed a Q-learning based method for the single-machine dispatching rule selection problem. Wu et al. [28] proposed a multi-agent reinforcement learning method, called the ordinal sharing learning (OSL) method, for job-scheduling problems such as realizing load balancing inGrids. However, these methods depend on customized, hand-crafted features to achieve satisfying results. In contrast, in the exemplary method, the instant scheduler exploits the power of deep learning models to automatically learn useful features. 
     Graph neural networks (GNNs), as an extension of convolutional neural networks to a non-Euclidean domain, have been widely applied in graph-based problems such as node classification, link prediction and clustering, and show convincing performance [29]. Compared to the pervasive use of GNNs in classification problems, their application in solving combinatorial optimization is limited. Khalil et al. [10] input the node embeddings learned by a GNN into a Q-learning module and achieved better performance than previous heuristics on solving minimum vertex cover, maximum cut and TSPs. Kool et al. [12] combined GNNs and policy gradient methods to learn a deterministic policy for TSP and two variants of the Vehicle Routing Problem (VRP). Wang and Gombolay [27] developed a GNN-based model operating on the STN to generate schedules for coordinating multi-robot teams. However, their method uses homogeneous graphs and hard-codes robot and location information as node features, making it not scalable when the number of robots changes. Heterogeneous GNNs, which directly operate on heterogeneous graphs containing different types of nodes and links, have shown good interpretability and model expressiveness compared to traditional GNNs [25], but such a model has never been applied to combinatorial optimization problems. In contrast, the exemplary scheduler and method utilizes heterogeneous GNNs for scheduling multi-robot teams. 
     Problem Statement. To consider the problem of coordinating a multi-robot team in the same space, both temporal and resource/location constraints may be used. Its components ae described under the XD (STSR-TA) category of the widely accepted taxonomy proposed in [8], as a six-tuple &lt;r; τ; d, w, Loc, z&gt;. 
     The term r is the set of robot agents that we assume are homogeneous in task completion. The term τ is the set of tasks to be performed. Each task v takes a certain amount of time dur i,r  for a robot r to complete, and its scheduled start and finish time are denoted as s i  and f i , respectively (e.g., “task τ i  starts at 00:30, ends at 00:40, requiring 10 minutes” can be denoted as s i =30, f i =40, dur i =10). The term s 0  may be used as the time origin and f 0  as the time point when all tasks are completed so that the schedule has a common start and end point. The term d is the set of deadline constraints, d i ∈d specifies the time point before which task τ i  has to be completed. The term w is the set of wait constraints, w i,j ∈w specifies the wait time between task τ i  and task τ j , e.g. f i ≤d i  (e.g., “task τ i  should wait at least 25 minutes after task τ j  finishes” means s i &gt;f j +25). The term Loc is the set of all task locations. At most, one task can be performed at each location at the same time. Finally, the term z is an objective function to minimize that includes the make-span and possibly other application-specific terms. 
     A solution to the problem consists of an assignment of tasks to agents and a schedule for each agent&#39;s tasks such that all constraints are satisfied and the objective function is minimized. The mathematical program (MP) formation of an example problem is included in Eqs. 18-26. A generic objective function is presented as application-specific goals may vary. Minimizing the make-span (i.e., overall process duration) is considered, which would be z=max i  f i . 
       min( z )  (Eq. 18)
 
     Two types of binary decision variables are introduced: 1) A r,i =1 for the assignment of robot r to task τ i  and 2) X i,j =1 denotes task τ i  finishes before task τ j  starts. L same  is the set of task pairs (τ i , τ j ) that use the same location and is derived from Loc. Continuous decision variables s i ,f i  [0,∞) is used to correspond to the start and finish times of task τ i , respectively. Eq. 19 ensures that each task is assigned to only one agent. 
     
       
         
           
             
               
                 
                   
                     
                       
                         ∑ 
                         
                           r 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           ϵ 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           r 
                         
                       
                       ⁢ 
                       
                         A 
                         
                           r 
                           , 
                           i 
                         
                       
                     
                     = 
                     1 
                   
                   , 
                   
                     
                       ∀ 
                       
                         τ 
                         i 
                       
                     
                     ⁢ 
                     ϵτ 
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     19 
                   
                   ) 
                 
               
             
           
         
       
     
     Eqs. 20-22 ensure that all the temporal constraints are met. 
     
       
         
           
             
               
                 
                   
                     
                       
                         f 
                         i 
                       
                       - 
                       
                         s 
                         i 
                       
                     
                     = 
                     
                       
                         ∑ 
                         
                           r 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           ϵ 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           r 
                         
                       
                       ⁢ 
                       
                         
                           dur 
                           
                             i 
                             , 
                             r 
                           
                         
                         ⁢ 
                         
                           A 
                           
                             r 
                             , 
                             i 
                           
                         
                       
                     
                   
                   , 
                   
                     ∀ 
                     
                       
                         τ 
                         i 
                       
                       ⁢ 
                       ϵτ 
                     
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     20 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     
                       
                         f 
                         i 
                       
                       - 
                       
                         s 
                         o 
                       
                     
                     ≤ 
                     
                       d 
                       i 
                     
                   
                   , 
                   
                     
                       ∀ 
                       
                         d 
                         i 
                       
                     
                     ⁢ 
                     
                       ϵ 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       d 
                     
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     21 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     
                       
                         s 
                         i 
                       
                       - 
                       
                         f 
                         j 
                       
                     
                     ≥ 
                     
                       w 
                       
                         i 
                         , 
                         j 
                       
                     
                   
                   , 
                   
                     
                       ∀ 
                       
                         w 
                         
                           i 
                           , 
                           j 
                         
                       
                     
                     ⁢ 
                     
                       ϵ 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       w 
                     
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     22 
                   
                   ) 
                 
               
             
           
         
       
     
     Eqs. 23 and 24 ensure that robots can only perform one task at a time. 
       ( s   i   −f   i ) A   r,i   A   r,j   X   i,j ≥0,∀τ i ,τ j ∈τ,∀ r   ∈r   (Eq. 23)
 
       ( s   i   −f   j ) A   r,i   A   r,j (1− X   i,j )≥0,∀τ i ,τ j ∈τ,∀ r   ∈r   (Eq. 24)
 
     Eqs. 25 and 26 account for task locations that can only be occupied by one robot at a time. 
       ( s   i   −f   i ) X   i,j ≥0,∀(τ i ,τ j )∈ L   proximity   (Eq. 25)
 
       ( s   i   −f   j )(1− X   i,j )≥0,∀(τ i ,τ j )∈ L   proximity   (Eq. 26)
 
     Coordinating a set of homogeneous robots may be first considered to complete a set of tasks given temporal constraints and 1D task location constraints (i.e., no two robots can be in the same place at the same time). Here, homogeneity in robot teams refers to teams comprised of robots that are equally proficient in completing a task (i.e., dur i,r ≠dur i , ∀ r ∈r, ∀ τ     i   ∈τ). This modeling setup is motivated by common manufacturing scenarios in which work locations are along a line with robots moving across a rail to perform assembly tasks of a large workpiece, e.g., the Boeing 777 Fuselage Automated Upright Build process (Tang and Webb, 2019). Under this setting. L proximity  consists of all task pairs that require the same location to be completed. 
     Second, we examine scheduling problems involving heterogeneous robots moving with 2D proximity constraints (Section 7). The relaxation to heterogeneous robot teams allows for the full expressivity where dur i,r ≠dur i  in general. Furthermore, expanding from 1 D location constraints to 2D proximity constraints allows us to model an open factory floor concept where a certain distance must be maintained between robots while executing tasks. In these experiments, we extend L proximity  to include task pairs whose locations fall 
     within the minimum allowed safety distance. 
     As z varies depending on application-specific goals, discussed herein, the results of minimizing the makespan (i.e., overall process duration, z=max i f i ) as a generic objective function are reported. To show the generalization of our method, an application-specific case is later shown where the weighted sum of the completion time of all tasks (z=Σ i c i f i ) are minimized. This objective function may be used as an analogy to the minimization of weighted tardiness in job-shop scheduling [5]. 
     It should be appreciated that the logical operations described above and in the appendix can be implemented (1) as a sequence of computer-implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance and other requirements of the computing system. Accordingly, the logical operations described herein are referred to variously as state operations, acts, or modules. These operations, acts and/or modules can be implemented in software, in firmware, in special purpose digital logic, in hardware, and any combination thereof. It should also be appreciated that more or fewer operations can be performed than shown in the figures and described herein. These operations can also be performed in a different order than those described herein. 
     In its most basic configuration, computing device typically includes at least one processing unit and system memory. Depending on the exact configuration and type of computing device, system memory  230  may be volatile (such as random-access memory (RAM)), non-volatile (such as read-only memory (ROM), flash memory, etc.), or some combination of the two. The processing unit may be a standard programmable processor that performs arithmetic and logic operations necessary for operation of the computing device. As used herein, processing unit and processor refers to a physical hardware device that executes encoded instructions for performing fmdunctions on inputs and creating outputs, including, for example, but not limited to, microprocessors (MCUs), microcontrollers, graphical processing units (GPUs), and application specific circuits (ASICs). Thus, while instructions may be discussed as executed by a processor, the instructions may be executed simultaneously, serially, or otherwise executed by one or multiple processors. The computing device may also include a bus or other communication mechanism for communicating information among various components of the computing device. 
     It should be understood that the various techniques described herein may be implemented in connection with hardware or software or, where appropriate, with a combination thereof. Thus, the methods and apparatuses of the presently disclosed subject matter, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium wherein, when the program code is loaded into and executed by a machine, such as a computing device, the machine becomes an apparatus for practicing the presently disclosed subject matter. In the case of program code execution on programmable computers, the computing device generally includes a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. One or more programs may implement or utilize the processes described in connection with the presently disclosed subject matter, e.g., through the use of an application programming interface (API), reusable controls, or the like. Such programs may be implemented in a high-level procedural or object-oriented programming language to communicate with a computer system. However, the program(s) can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language and it may be combined with hardware implementations. 
     Moreover, the various components may be in communication via wireless and/or hardwire or other desirable and available communication means, systems and hardware. Moreover, various components and modules may be substituted with other modules or components that provide similar functions. 
     Although example embodiments of the present disclosure are explained in some instances in detail herein, it is to be understood that other embodiments are contemplated. Accordingly, it is not intended that the present disclosure be limited in its scope to the details of construction and arrangement of components set forth in the following description or illustrated in the drawings. The present disclosure is capable of other embodiments and of being practiced or carried out in various ways. 
     It must also be noted that, as used in the specification and the appended claims, the singular forms “a,” “an” and “the” include plural referents unless the context clearly dictates otherwise. Ranges may be expressed herein as from “about” or “5 approximately” one particular value and/or to “about” or “approximately” another particular value. When such a range is expressed, other exemplary embodiments include from the one particular value and/or to the other particular value. 
     By “comprising” or “containing” or “including” is meant that at least the name compound, element, particle, or method step is present in the composition or article or method, but does not exclude the presence of other compounds, materials, particles, method steps, even if the other such compounds, material, particles, method steps have the same function as what is named. 
     In describing example embodiments, terminology will be resorted to for the sake of clarity. It is intended that each term contemplates its broadest meaning as understood by those skilled in the art and includes all technical equivalents that operate in a similar manner to accomplish a similar purpose. It is also to be understood that the mention of one or more steps of a method does not preclude the presence of additional method steps or intervening method steps between those steps expressly identified. Steps of a method may be performed in a different order than those described herein without departing from the scope of the present disclosure. Similarly, it is also to be understood that the mention of one or more components in a device or system does not preclude the presence of additional components or intervening components between those components expressly identified. 
     The term “about,” as used herein, means approximately, in the region of, roughly, or around. When the term “about” is used in conjunction with a numerical range, it modifies that range by extending the boundaries above and below the numerical values set forth. In general, the term “about” is used herein to modify a numerical value above and below the stated value by a variance of 10%. In one aspect, the term “about” means plus or minus 10% of the numerical value of the number with which it is being used. Therefore, about 50% means in the range of 45%-55%. Numerical ranges recited herein by endpoints include all numbers and fractions subsumed within that range (e.g. 1 to 5 includes 1, 1.5, 2, 2.75, 3, 3.90, 4, 4.24, and 5). 
     Similarly, numerical ranges recited herein by endpoints include subranges subsumed within that range (e.g. 1 to 5 includes 1-1.5, 1.5-2, 2-2.75, 2.75-3, 3-3.90, 3.90-4, 4-4.24, 4.24-5, 2-5, 3-5, 1-4, and 2-4). It is also to be understood that all numbers and fractions thereof are presumed to be modified by the term “about.” 
     The following patents, applications and publications as listed below and throughout this document are hereby incorporated by reference in their entirety herein.
     [1] Jacques F Benders. Partitioning procedures for solving mixed-variables programming problems. Numerische mathematik, 4(1):238-252, 1962.   [2] Elkin Castro and Sanja Petrovic. Combined mathematical programming and heuristics for a radiotherapy pretreatment scheduling problem. Journal of Scheduling, 15 (3):333-346, 2012.   [3] Jiaqiong Chen and Ronald G Askin. Project selection, scheduling and resource allocation with time dependent returns. European Journal of Operational Research, 193 (1):23-34, 2009.   [4] Rina Dechter, Itay Meiri, and Judea Pearl. Temporal constraint networks. Artificial intelligence, 49(1-3):61-95, 1991.   [5] Imen Essafi. Yazid Mati. and St&#39;ephane Dauzere-Peres. A genetic local search algorithm for minimizing total weighted tardiness in the job-shop scheduling problem. Computers &amp; Operations Research, 35(8):2599-2616, 2008.   [6] Robert W Floyd. Algorithm 97: shortest path. Communications of the ACM, 5(6):345, 1962.   [7] Eduardo Feo Flushing. Luca M Gambardella, and Gianni A Di Caro. Simultaneous task allocation, data routing, and transmission scheduling in mobile multirobot teams. In 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 1861-1868. IEEE, 2017.   [8] Matthew Gombolay, Ronald Wilcox, and Julie Shah. Fast scheduling of multi-robot teams with temporospatial constraints. In Robotics: Science and System. pages 49-56, 2013.   [9] Matthew C Gombolay. Ronald J Wilcox, and Julie A Shah. Fast scheduling of robot teams performing tasks with temporospatial constraints. IEEE Transactions on Robotics, 34(1):220-239, 2018.   [10] Elias Khalil. Hanjun Dai, Yuyu Zhang, Bistra Dilkina, and Le Song. Learning combinatorial optimization algorithms over graphs. In Advances in Neural Information Processing Systems, pages 6348-6358, 2017.   [11] Diederik P Kingma and Jimmy Ba. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014.   [12] Wouter Kool, Herke van Hoof, and Max Welling. Attention. Learn to Solve Routing Problems! In International Conference on Learning Representations, 2019.   [13] G Ayorkor Korsah, Anthony Stentz, and M Bernardine Dias. A comprehensive taxonomy for multi-robot task allocation. The International Journal of Robotics Research, 32(12):1495-1512, 2013.   [14] Yann LeCun, Yoshua Bengio, and Geoffrey Hinton. Deep learning. nature, 521(7553):436-444, 2015.   [15] Ernesto Nunes, Marie Manner, Hakim Mitiche, and Maria Gini. A taxonomy for task allocation problems with temporal and ordering constraints. Robotics and Autonomous Systems, 90:55-70, 2017.   [16] Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, Alban Desmaison, Andreas Kopf, Edward Yang, Zachary DeVito, Martin Raison, Alykhan Tejani, Sasank Chilamkurthy, Benoit Steiner, Lu Fang, Junjie Bai, and Soumith Chintala, PyTorch: An Imperative Style. High-Performance Deep Learning Library. In Advances in Neural Information Processing Systems 32, pages 8024-8035, 2019.   [17] Bilal Piot, Matthieu Geist, and Olivier Pietquin. Boosted bellman residual minimization handling expert demonstrations. In Joint European Conference on Machine Learning and Knowledge Discovery in Databases, pages 549-564. Springer, 2014.   [18] Hema Raghavan, Omid Madani, and Rosie Jones. Active learning with feedback on features and instances. Journal of Machine Learning Research, 7(August):1655-1686, 2006.   [19] Huizhi Ren and Lixin Tang. An improved hybrid milp/cp algorithm framework for the job-shop scheduling. In 2009 IEEE International Conference on Automation and Logistics, pages 890-894. IEEE, 2009.   [20] Marius M Solomon. On the worst-case performance of some heuristics for the vehicle routing and scheduling problem with time window constraints. Networks, 16(2): 161-174, 1986.   [21] Ioannis Tsamardinos. Reformulating temporal plans for efficient execution. Master&#39;s thesis, University of Pittsburgh, 2000.   [22] Ioannis Tsamardinos and Martha E Pollack. Efficient solution techniques for disjunctive temporal reasoning problems. Artificial Intelligence, 151(1-2):43-89, 2003.   [23] Petar Velickovic, Guillem Cucurull, Arantxa Casanova, Adriana Romero, Pietro Lio, and Yoshua Bengio. Graph attention networks. arXiv preprint arXiv:1710.10903, 2017.   [24] Minjie Wang, Lingfan Yu, Da Zheng, Quan Gan, Yu Gai, Zihao Ye, Mufei Li, Jinjing Zhou, Qi Huang, Chao Ma, Ziyue Huang, Qipeng Guo, Hao Zhang, Haibin Lin, Junbo Zhao, Jinyang Li, Alexander J Smola, and Zheng Zhang. Deep Graph Library: Towards Efficient and Scalable Deep Learning on Graphs. ICLR Workshop on Representation Learning on Graphs and Manifolds, 2019.   [25] Xiao Wang, Houye Ji, Chuan Shi, Bai Wang, Yanfang Ye, Peng Cui, and Philip S Yu. Heterogeneous graph attention network. In The World Wide Web Conference, pages 2022-2032. ACM, 2019.   [26] Yi-Chi Wang and John M Usher. Application of reinforcement learning for agent-based production scheduling. Engineering Applications of Artificial Intelligence, 18(1):73-82, 2005.   [27] Zheyuan Wang and Matthew Gombolay. Learning to Dynamically Coordinate Multi-Robot Teams in Graph Attention Networks. arXiv preprint arXiv:1912.02059, 2019.   [28] Jun Wu, Xin Xu, Pengcheng Zhang, and Chunming Liu. A novel multi-agent reinforcement learning approach for job scheduling in grid computing. Future Generation Computer Systems, 27(5):430-439, 2011.   [29] Keyulu Xu, Weihua Hu, Jure Leskovec, and Stefanie Jegelka. How Powerful are Graph Neural Networks? In International Conference on Learning Representations, 2019.   [30] Zhi Yan, Nicolas Jouandeau, and Arab Ali Cherif. A survey and analysis of multi-robot coordination. International Journal of Advanced Robotic Systems, 10(12): 399, 2013.   [31] Wei Zhang and Thomas G Dietterich. A reinforcement learning approach to job-shop scheduling. In IJCAI, volume 95, pages 1114-1120. Citeseer, 1995.   [32] Jie Zhou, Ganqu Cui, Zhengyan Zhang, Cheng Yang, Zhiyuan Liu, Lifeng Wang, Changcheng Li, and Maosong Sun. Graph neural networks: A review of methods and applications. arXiv preprint arXiv:1812.08434, 2018.   [33] Bengio Y, Lodi A, Prouvost A (2020) Machine learning for combinatorial optimization: a methodological tour d&#39;horizon. European Journal of Operational Research.   [34] Bogner K, Pferschy U, Unterberger R, Zeiner H (2018) Optimised scheduling in human-robot collaboration-a use case in the assembly of printed circuit boards. International Journal of Production Research 56(16):5522,5540.   [35] Casalino A, Zanchettin A M, Piroddi L, Rocco P (2019) Optimal scheduling of human-robot collaborative assembly operations with time petri nets. IEEE Transactions on Automation Science and Engineering Castro E. Petrovic S (2012) Combined mathematical programming and heuristics for a radiotherapy pretreatment scheduling problem. Journal of Scheduling 15(3):333,346.   [36] Choudhury S, Gupta J, Kochenderfer M J, Sadigh D. Bohg J (2020) Dynamic multi-robot task allocation under uncertainty and temporal constraints. In: Proceedings of Robotics: Science and Systems (RSS), DOI 10.15607/rss.2020.xvi.068.   [37] Fout A, Byrd J, Shariat B, Ben-Hur A (2017) Protein interface prediction using graph convolutional networks. In: Advances in neural information processing systems, pp 6530.6539.   [38] Hamaguchi T, Oiwa H, Shimbo M, Matsumoto Y (2017) Knowledge transfer for out-of-knowledge-base entities: A graph neural network approach. arXiv preprint arXiv:170605674   [39] Hamilton W L, Ying R, Leskovec J (2018) Inductive representation learning on large graphs, 1706.02216.   [40] Hari S K K, Nayak A, Rathinam S (2020) An approximation algorithm for a task allocation, sequencing and scheduling problem involving a human-robot team. IEEE Robotics and Automation Letters 5(2):2146, 2153.   [41] Johnson D B (1977) Efficient algorithms for shortest paths in sparse networks. Journal of the ACM (JACM) 24(1):1,13.   [42] Kartal B, Nunes E, Godoy J, Gini M (2016) Monte carlo tree search with branch and bound for multi-robot task allocation. In: The IJCAI-16 workshop on autonomous mobile service robots. vol 33.   [43] Nikou A, Boskos D, Tumova J, Dimarogonas D V (2017) Cooperative planning for coupled multi-agent systems under timed temporal specifications. In: 2017 American Control Conference (ACC), IEEE, pp 1847,1852.   [44] Shiue Y R, Lee K C, Su C T (2018) Real-time scheduling for a smart factory using a reinforcement learning approach. Computers &amp; Industrial Engineering 125:604,614.   [45] Solovey K, Bandyopadhyay S, Rossi F, Wolf M T, Pavone M (2020) Fast near-optimal heterogeneous task allocation via flow decomposition. arXiv preprintar Xiv:201103603.   [46] Tang G, Webb P (2019) Human-robot shared workspace in aerospace factories. Human-robot interaction: safety. standardization. and benchmarking pp 71,80.   [47] Wang H, Chen W. Wang J (2020) Coupled task scheduling for heterogeneous multi-robot system of two robot types performing complex-schedule order fulfillment tasks. Robotics and Autonomous Systems p 103560.   [48] Wang Y, Sun Y, Liu Z. Sarma S E. Bronstein M M. Solomon J M (2019c) Dynamic graph cnn for learning on point clouds. Acm Transactions On Graphics (tog) 38(5):1,12.   [49] Wang Z, Gombolay M (2020) Heterogeneous graph attention networks for scalable multi-robot scheduling with temporospatial constraints. In: Robotics: Science and System XVI.   [50] Wilson S, Glotfelter P, Wang L, Mayya S, Notomista G, Mote Mm Egerstedt M (2020) The robotarium: Globally impactful opportunities. challenges, and lessons learned in remote-access, distributed control of multirobot systems. IEEE Control Systems Magazine 40(1):26,44.   [51] Wu Z, Pan S, Chen F, Long G, Zhang C, Philip S Y (2020) A comprehensive survey on graph neural networks. IEEE Transactions on Neural Networks and Learning Systems.   [52] Yan S, Xiong Y, Lin D (2018) Spatial temporal graph convolutional networks for skeleton-based action recognition. In: Proceedings of the AAAI Conference on Artificial Intelligence, vol 32, pp 7444.7452.   [53] Yang X, Deng C, Liu T, Tao D (2020) Heterogeneous graph attention network for unsupervised multiple-target domain adaptation. IEEE Transactions on Pattern Analysis and Machine Intelligence.   [54] Zhang S, Chen Y, Zhang J, Jia Y (2020) Real-time adaptive assembly scheduling in human-multi-robot collaboration according to human capability. In: 2020 IEEE International Conference on Robotics and Automation (ICRA), IEEE, pp 3860.3866.