WO2022200000A1 - Predictive allocation of nodes in a queue - Google Patents
Predictive allocation of nodes in a queue Download PDFInfo
- Publication number
- WO2022200000A1 WO2022200000A1 PCT/EP2022/055233 EP2022055233W WO2022200000A1 WO 2022200000 A1 WO2022200000 A1 WO 2022200000A1 EP 2022055233 W EP2022055233 W EP 2022055233W WO 2022200000 A1 WO2022200000 A1 WO 2022200000A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- time interval
- nodes
- resource
- resource allocation
- tasks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06313—Resource planning in a project environment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Definitions
- the present invention generally relates to computers and computer software, and more specifically, to methods, systems, and computer program products for implementing an optimization process and simulation process to predictively allocate nodes in a queue.
- check-in capacity is a scarce resource and during specific hours, the number of check-in counters can appear to be rather restrictive for the total demand. Consequently, long waiting times at check-in desks may be encountered.
- An efficient planning of check-in capacities is therefore required to determine an optimized allocation of resources based on a number of desks. For example, there is a need for an optimization model to determine the number of desks to assign to each ground handler in order to minimize operating costs while respecting the quality of service and social distancing constraints while considering a number of constraints, including adjacent desks that could be handled by one ground handler.
- an optimization method for desk (e.g., node) allocation can be utilized in other technology areas and services. For example, there is a need in cloud computing services with respect to data queuing and determining a number of cores in a processor to devote to a specific type of application for efficiency based on adjacency constraints.
- zoning is the allocation of resources for device load balancing and for selectively allowing access to data only to certain users.
- An optimization method for node allocation to determine where to dedicate particular processor cores (e.g., adjacency issues) based on the assigned jobs of each task.
- a method for providing a resource allocation schedule includes receiving, from a resource allocation demand server via a data communications interface, a resource allocation request which includes task information based on a task schedule, a time period including a plurality of time intervals, a number of resources available during each time interval, a number of nodes available during each time interval, and adjacency constraints for each adjacent node of the number of nodes.
- the method further includes, in response to the resource allocation request and for each time interval of the time period, determining a first number of tasks to be processed in a task queue within the time interval based on the task information, determining a second number of tasks from the task queue that are unprocessed after a time interval that immediately precedes the time interval, determining, based on the adjacency constraints for each adjacent node for the number of nodes, a resource allocation constraint for each resource, and determining a subset of the number of nodes to be assigned to each resource in the time interval based on: (i) the first number of tasks, (ii) the second number of tasks, and (iii) the resource allocation constraint for each resource.
- the method further includes providing, to the resource allocation demand server via the data communications interface, a resource allocation schedule which includes the subset of the number of nodes assigned to each resource for each time interval of the time period.
- the method further includes computing, via a simulation model, a quality of service measure for each time interval based on the number of nodes to be assigned to each resource for each time interval.
- the quality of service measure includes at least one of a waiting time for the first task and the second task to be processed and a queue size for each node.
- the resource allocation request further includes a maximum number of available nodes, and determining the number of nodes to be assigned to each resource for each time interval is further based on the maximum number of available nodes.
- the resource allocation request further includes a social distance constraint, and determining the number of nodes to be assigned to each resource for each time interval is further based on the social distance constraint.
- the resource allocation request further includes a quality of service constraint, and determining the number of nodes to be assigned to each resource for each time interval is further based on the quality of service constraint.
- the resource allocation constraint includes a change in the number of nodes available to the resource from the time interval and the time interval that immediately precedes the time interval, and determining the number of nodes to be assigned to each resource for each time interval is further based on the number of nodes available to the resource for each time interval.
- determining the number of nodes to be assigned to each resource for each time interval is further based on a determining a flow rate of tasks being processed based on an arrival time, and the resource allocation schedule is based on the flow rate of the tasks being processed for each time interval.
- a computing apparatus including one or more processors, at least one memory device coupled with the one or more processors, and a data communications interface operably associated with the one or more processors, where the memory device contains a plurality of program instructions that, when executed by the one or more processors, cause the computing apparatus to perform the method as described above.
- a non-transitory computer storage medium encoded with a computer program is provided, where the computer program includes a plurality of program instructions that when executed by one or more processors cause the one or more processors to perform the method as described above.
- Figure 1 is an example environment in which a device communicates a request to an optimization server through a resource allocation demand server, according to embodiments of the invention.
- Figure 2 illustrates an example process for analyzing a resource allocation request via an optimization instruction set, according to embodiments of the invention.
- Figure 3 illustrates an example process for simulating a resource allocation schedule via a simulation instruction set, according to embodiments of the invention.
- Figure 4 is a flowchart of an example process for providing a resource allocation schedule based on a resource allocation request, according to embodiments of the invention.
- Figure 5 illustrates an example portion of an optimization process for node allocation for a queue at two different intervals, according to embodiments of the invention.
- Figure 6 is a chart illustrating demand and node capacity in tasks processed per period, according to embodiments of the invention.
- Figure 7 is a block diagram showing an example computer architecture for a computer capable of executing the software components described herein, according to embodiments described herein.
- systems, methods, devices, and techniques are provided for implementing an optimization model to determine optimal node allocation during a plurality of time intervals of a given time period.
- a robust optimization model is provided and implemented that may improve node allocation efficiency while simultaneously taking the adjacency of grouped nodes into consideration.
- check-in desks to be efficiently assigned at ground handler level (as opposed to flight level) based on a number passengers during periodic intervals of time (e.g., 30 minutes) throughout a particular time period (e.g., a day) to cope with the dynamic variations in passenger demand.
- the optical node allocation may reduce passenger waiting costs, as well as desks operating costs.
- the optimal node allocation provided by the optimization model may address, for example, problems associated with providing an optimization process for resource/node allocation that accounts for node adjacencies (e.g., check-in desks) at the resource level (e.g., a ground handler level), as opposed to accounting for node adjacencies at the task schedule level (e.g., flight schedule).
- the robust optimization model may improve node allocation efficiency while simultaneously considering adjacency of grouped nodes.
- Check-in desks may be efficiently assigned at the ground handler level (as opposed to flight level) based on a number passengers during periodic intervals of time (e.g., 30 minutes) throughout a particular time period (e.g., a day) to cope with dynamic passenger demand.
- a simulation instruction set can be provided with the determined number of desks for each time interval from the optimization model to compute the predicted quality of service measures (e.g., waiting time, queue size, etc.) for each time interval.
- the optimization model may further involve a physical distance constraint (e.g., a “social distancing” constraint) while passengers are waiting in the queue.
- Figure 1 is an example environment 100 in which a device communicates a request to an optimization server through a resource allocation demand server.
- the example environment 100 includes a client device 110, a task database 130, one or more resource allocation demand server(s) 120, and one or more optimization server(s) 140 that communicate over a data communication network 102, e.g., a local area network (LAN), a wide area network (WAN), the Internet, a mobile network, or a combination thereof.
- LAN local area network
- WAN wide area network
- the Internet e.g., a mobile network, or a combination thereof.
- the client device 110 can include a desktop, a laptop, a server, or a mobile device, such as a smartphone, tablet computer, wearable device (e.g., smartwatch), in-car computing device, and/or other types of mobile devices.
- the client device 110 includes applications, such as the application 112, for managing the resource allocation request and resource allocation schedule to/from the one or more optimization server(s) 140 via the resource allocation demand server(s) 120.
- the client device 110 can include other applications.
- the client device 110 includes a display that provides a graphical user interface (GUI) 114. Accordingly, in the event that a user of the client device 110 initiates a resource allocation request via the application 112, a corresponding display is generated via the user interface 114.
- GUI graphical user interface
- the application 112 and user interface 114 may be hosted by an application stored on the client device 110 or may be a web browser application.
- the user interface 114 may be responsive to user input to provide input to the application 112 to generate a resource allocation request.
- the inputs may include a selection of particular tasks to completed (e.g., by the one or more optimization server(s) 140), and include certain parameters or constraints that the user desires, as further discussed herein (e.g., quality of service measures, etc.).
- the user interface 114 may be utilized to set the constraints for the optimization model, initiate the processing by the optimization and simulation modules by the one or more optimization server(s) 140, allow a user to view the results of the optimization and simulation modules, and allow a user to modify the inputs accordingly.
- the processes of the optimization and simulation modules are further discussed herein with reference to process 400 of Figure 4.
- the resource allocation demand server(s) 120 manages the location of the task requests (e.g., resource allocation requests) received from application 112 from one or more client devices 110.
- the task management protocols of the allocation demand server 120 may be based on a redundant load-balancing system by managing multiple clients (e.g., client device(s) 110) so that a task is handled by one optimization server 140.
- there may be multiple optimization servers 140 that are able to service the requested task and the redundant load-balancing system of the resource allocation demand server(s) 120 is responsible for ensuring that the task is performed by exactly one of the capable optimization servers 140.
- the resource allocation demand server(s) 120 may be front end server(s) for managing, collecting, processing, and communicating tasks and task schedule data, resource information, node information, etc., from one or more other sources (not illustrated).
- the resource allocation demand server(s) 120 can store some or all of the information in a task database 130, which can be accessed by the application 112 on the client device 110.
- the resource allocation demand server(s) 120 may be front end server(s) for collecting, processing, and storing travel information (e.g., flight schedules, flight information, passenger information, ground handler availability, check-in desk location information, i.e., adjacencies of congruent desks, and the like) from a plurality of external travel systems (e.g., airport information systems, airline information systems, third-party intermediator systems, etc.).
- travel information e.g., flight schedules, flight information, passenger information, ground handler availability, check-in desk location information, i.e., adjacencies of congruent desks, and the like
- a plurality of external travel systems e.g., airport information systems, airline information systems, third-party intermediator systems, etc.
- the one or more optimization server(s) 140 receives and processes the resource allocation requests from the resource allocation demand server(s) 120.
- the optimization server(s) 140 include an optimization instruction set 150 and a simulation instruction set 160.
- the optimization instruction set 150 is configured to implement a robust optimization model to improve node allocation efficiency while simultaneously considering adjacency of grouped nodes.
- the simulation instruction set 160 is configured to run a simulation based on the output of the optimization instruction set 150 and compute a quality of service measure (e.g., waiting time, queue size, etc.) for each time interval based on the number of nodes to be assigned to each resource for each time interval.
- a quality of service measure e.g., waiting time, queue size, etc.
- Figure 2 illustrates an example process for analyzing a resource allocation request via an optimization instruction set, according to embodiments of the invention.
- the optimization instruction set 150 stored on an optimization server 140, receives a resource allocation request 210 from a resource allocation demand server(s) 120, and determines a resource allocation schedule 220.
- the resource allocation request 210 may include information 212 such as task information (e.g., tasks, task containers, task schedule(s), etc.), a time period (T), time intervals ( t ) for the schedule (e.g., 30 minute time slots), resource availability, node availability, adjacency constraints for the nodes, and other constraints.
- task information e.g., tasks, task containers, task schedule(s), etc.
- T time period
- time intervals ( t ) for the schedule e.g., 30 minute time slots
- resource availability e.g., node availability, adjacency constraints for the nodes, and other constraints.
- the task information may include passenger information (e.g., task information), flight information (e.g., task container information), and a flight schedule (e.g., task schedule).
- Resource availability may include ground handler availability. Node availability and adjacency constraints may refer to check-in desk information, such as locations, and whether any particular check-in desks are adjacent such that a resource (e.g., ground handler) could work at both nodes (e.g., check-in desks) at the same time during the same time interval.
- the resource allocation schedule 220 may include information 222 such as node assignments and resource assignments.
- the resource allocation schedule 220 may include a resource allocation schedule for each ground handler for each check-in desk at a particular time interval (e.g., 30 minutes) for a particular time period (e.g., a work day at an airport, i.e., 18 hours).
- a particular time interval e.g. 30 minutes
- a particular time period e.g., a work day at an airport, i.e., 18 hours.
- the optimization instruction set 150 receives a number of variables (e.g., input data from the resource allocation request 210, i.e., via user interface 114), and calculates a number of decision variables based on one or more formulaic computations.
- input variables can include one or more of the following:
- G set of resources e.g., ground handlers indexed by g;
- F g set of task containers e.g., flights
- T optimization window (e.g., a time period, such as an 18-hour day) separated in time intervals t (e.g., 30-minute time slots);
- a j,t J x M matrix the coefficient a j, t is equal to 1 from the first time interval t when the registration window (e.g., check-in time) for task container j is closed until the end of the optimization window 7; and 0 in all other time intervals; c available processing time for a node during an interval t; ⁇ maximum percentage of a task demand of a given interval t to be served in the next interval (t + 1);
- the decision variables as determined by the optimization instruction set 150 are results of the optimization process, and can include one or more of the following: q j,t number of tasks (e.g., passengers) of task container (e.g., flight) j to be accepted in time interval t;
- an objective function of the optimization instruction set 150 can include a linear program to minimize the waiting cost and the node (e.g., check-in desk) operating costs over the optimization window T (e.g., a working day).
- the objective function utilizing the variables described herein, may be based on the following formula:
- a constraint can be utilized by the optimization process to model the task processing flow (e.g., passenger flow) from the arrival up to the service.
- the passenger demand in the time interval plus the number of passengers not served in the previous interval may be equal to the number of passenger served in this interval plus the passengers that will be served in a later interval.
- the task processing flow constraint utilizing the variables described herein, may be based on the following formula:
- a constraint can be utilized by the optimization process to represent the capacity of each nodes in term of number of jobs they can process within a time interval.
- the capacity constraint utilizing the variables described herein, may be based on the following formula:
- a constraint can be utilized by the optimization process to limit the total number of nodes (e.g., desks) available.
- the limiting nodes constraint, utilizing the variables described herein may be based on the following formula:
- a constraint can be utilized by the optimization process that requires all tasks (e.g., passengers) to be served at the end of the task container’s (e.g., flight’s) registration window (e.g., check-in period).
- the registration window constraint utilizing the variables described herein, may be based on the following formula:
- a constraint can be utilized by the optimization process to determine a quality of service of the queueing system by limiting the number of tasks (e.g., passengers) to be served in the next period (t - 1), hence the waiting time by setting the limit in terms of a fraction of task demand.
- the queue quality of service constraint via a task demand may be based on the following formula:
- a constraint can be utilized by the optimization process to determine a quality of service of the queueing system by limiting the number of tasks (e.g., passengers) to be served in the next period (t - 1), hence the waiting time by setting the limit in terms of a number of tasks.
- social distancing constraints translates in limiting the number of passengers in the queue for the check-in desks. This number is dictated by the limited space in a terminal to accommodate waiting queues when people must be separated by some distance (e.g., 2 meters of separation).
- some computing systems include a limited buffer size to store incoming tasks, if there are more tasks coming during a time interval, a larger number of nodes should be included by the buffer in order to avoid an overflow.
- the queue quality of service constraint via a number of tasks, utilizing the variables described herein, may be based on the following formula:
- a constraint can be utilized by the optimization process to provide domains of the decision variables.
- the constraint of the domains of the decision variables, utilizing the variables described herein may be based on the following formula:
- the size of the linear program and the constraints discussed herein may be based on a number of variables: since and a number of constraints:
- the linear program can further include adjacency constraints that are applied at a resource (e.g., ground handler) level.
- a resource e.g., ground handler
- the variable b g,t defines the maximum node index (e.g., desk index, i.e., desk position) assigned to a resource (e.g., ground handler) g in time interval t. Consequently, resource g operates on node indices from b g,t - B g,t to b g,t during time interval t.
- the linear program that includes adjacency constraints can include a constraint that can be utilized by the optimization process to set the lower and upper limit for the maximum node index.
- the constraint for setting the lower and upper limit for the maximum node index may be based on the following formula:
- an adjacency constraint can be utilized by the optimization process to ensure that the node range (e.g., desk range) assigned to each resource (e.g., ground handler) does not overlap.
- the adjacency constraint of the domains of the decision variables may be based on the following formula: where on the left-hand side of the “or”, resource g' is assigned to nodes with higher indices than resource g, and the opposite is true for the right-hand side of the “or”, where resource g' is assigned to nodes with lower indices than resource g.
- an adjacency constraint can be utilized by the optimization process to ensure that that there are no more nodes (e.g., check-in desks) opening than necessary in case of increase of the number of nodes assigned to resource (e.g., ground handler) g between the prior period t - 1 and the current period t.
- the adjacency constraint to ensure that that there are no more nodes opening than necessary may be based on the following formula:
- an adjacency constraint can be utilized by the optimization process to ensure that that there are no more nodes (e.g., check-in desks) closing than necessary in case of decrease of the number of nodes assigned to resource (e.g., ground handler) g between the prior period t - 1 and the current period t.
- the constraint to ensure that that there are no more nodes closing than necessary may be based on the following formula:
- resources e.g., ground handlers
- the following linear program and subsequent formulas and constraints will also include adjacency constraints that are applied at a resource (e.g., ground handler) level, but with the stated assumption that all resources operate continuously during the day. For example, variable o does not need to be indexed by t since resources relative positions are valid for the optimization window T. Therefore, the following linear program implementation includes an optimization model with adjacency constraints and linearized constraints.
- a resource e.g., ground handler
- an adjacency and linearized constraint can be utilized by the optimization process to ensure that the node range (e.g., desk range) assigned to each resource (e.g., ground handler) does not overlap using the linearized form for a disjunctive constraint with variable o g,g' .
- adjacency and linearized constraints to ensure that the node range assigned to each resource does not overlap may be based on the following formulas:
- an adjacency and linearized constraint can be utilized by the optimization process to ensure that that there are no more nodes (e.g., check-in desks) opening than necessary in case of increase of the number of nodes assigned to resource (e.g., ground handler) g between period t - 1 and t.
- the adjacency and linearized constraint to ensure that that there are no more nodes opening than necessary may be based on the following formulas:
- an adjacency and linearized constraint can be utilized by the optimization process to ensure that that there are no more nodes (e.g., check-in desks) closing than necessary in case of decrease of the number of nodes assigned to resource (e.g., ground handler) g between period t - 1 and t.
- the adjacency and linearized constraint to ensure that that there are no more nodes closing than necessary may be based on the following formula:
- a first property includes constraint x ⁇ max(0,y) with lower and upper bounds on the value of y: L ⁇ y ⁇ U, can be modelled using the following linear constraints: where variable z is tied to the sign of In some embodiments of the invention, y corresponds to the difference of the number nodes (e.g., desks) to be opened for a given resource (e.g., ground handler) between two consecutive time intervals (e.g., t and t + 1). Thus, given the limit on the number of available nodes B max , this difference can be bounded by the following equation:
- the system of the following equation also needs only one variable to control for the sign of y; z being replaced by 1 - z in the constraints modelling equating -x ⁇ max(0 ,-y).
- the linear constraints e.g., Lz ⁇ y... etc.
- the linear constraints are duplicated constraints in the linear form of the system defined by the above equations (e.g., -x ⁇ max(0 -y)) for the problem of node (e.g., check-in desk) assignment.
- the size of the linear program and the adjacency constraints and linearized constraints discussed herein may be based on a number of variables: and a number of constraints:
- Figure 3 illustrates an example process for simulating a resource allocation schedule via a simulation instruction set, according to embodiments of the invention.
- the simulation instruction set 160 stored on an optimization server 140, receives a resource allocation schedule 220 from the optimization instruction set 150, and determines simulation information 310 (e.g., runs a simulation analysis).
- the resource allocation schedule 220 may include information 222 such as node assignments and resource assignments.
- the resource allocation schedule 220 may include a resource allocation schedule for each ground handler for each check-in desk at a particular time interval (e.g., 30minutes) for a particular time period (e.g., a work day at an airport, i.e., 18 hours).
- the simulation information 310 may include information 312 such as quality of service data and node utilization rates.
- a check-desk utilization rate e.g., 95%
- the simulation information 310 may be requested specifically by the resource allocation request 210 by a user at the client device 110 via user interface 114. Additional details regarding and related formulaic computations for implementing a simulation model and simulate the optimal node allocation during a plurality of time intervals t of a given time period T from an optimization model is further described herein with reference to process 400 of Figure 4.
- Figure 4 illustrates a flowchart of an example process 400 for determining optimal node allocation during a plurality of time intervals of a given time period.
- Operations of the process 400 can be implemented, for example, by a system that includes one or more data processing apparatus, such as one or more optimization server(s) 140 of Figure 1.
- the process 400 can also be implemented by instructions stored on computer storage medium, where execution of the instructions by a system that includes a data processing apparatus cause the data processing apparatus to perform the operations of the process 400.
- a resource allocation request includes task information (e.g., passenger information) based on a task schedule (e.g., a flight schedule), a time period (T) including a plurality of time intervals (t), a number of resources available during each time interval (e.g., ground handler availability), a number of nodes available during each time interval (e.g., check- in desk availability), and adjacency constraints for each adjacent node of the plurality of nodes.
- a task schedule e.g., a flight schedule
- T time period
- T including a plurality of time intervals (t) including a plurality of time intervals (t) including a plurality of time intervals (t), a number of resources available during each time interval (e.g., ground handler availability), a number of nodes available during each time interval (e.g., check- in desk availability), and adjacency constraints for each adjacent node of the plurality of nodes.
- the system processes the resource allocation request for each time interval of the time period (420) via blocks 422-428.
- the optimization instruction set 150 computes the number of nodes available (e.g., check-in desks availability) during each time interval (t) based on a number of decision variables as described below in regard to process blocks 422-428, and additional decision variables further described herein.
- the system determines a first number of tasks to be processed in a task queue within the time interval (t) based on the task information (422).
- the optimization instruction set 150 can determine a number of tasks (e.g. passengers) that can be processed during the first time period (t), as illustrated in queue 510 in Figure 5.
- the system determines a second number of tasks from the task queue that are unprocessed after a time interval (424). For example, passengers in queue from prior time interval (t-1) that immediately precedes the time interval. For example, queue 510 of Figure 5 has two passengers that are unprocessed during the time interval t.
- the system determines, based on the adjacency constraints for each adjacent node for the plurality of nodes, a resource allocation constraint for each resource (426). For example, the system ensures that the desk range assigned to each ground handler does not overlap.
- the system determines a subset of the number of nodes to be assigned to each resource in the time interval based on: (i) the first number of tasks, (ii) the second number of tasks, and (iii) the resource allocation constraint for each resource (428). For example, the system determines a subset of a number of check-in desks to be assigned to each ground handler in the time interval ( t ) based on the number of passengers in the current time interval and the unprocessed passengers in the previous time interval (t-1), as illustrated in Figure 5.
- the system provides a resource allocation schedule which includes the determined subset of the number of nodes assigned to each resource for each time interval of the time period (430).
- the resource allocation schedule may include a detailed list for each available ground handler a schedule for each time interval for a working day of where to staff each ground handler and to which adjacent check-in desks at each time interval (e.g., a staffing schedule for each 30 minute block).
- the process 400 further includes computing, via a simulation model (e.g., simulation instruction set 160), a quality of service measure for each time interval based on the number of nodes to be assigned to each resource for each time interval.
- the quality of service measure includes at least one of a waiting time for each task to be processed and a queue size for each node.
- the resource allocation request further includes a maximum number of available nodes (e.g., maximum number of desks available, i.e., B ax ), and determining the number of nodes to be assigned to each resource for each time interval is further based on the maximum number of available nodes.
- a maximum number of available nodes e.g., maximum number of desks available, i.e., B ax
- the resource allocation request further includes a social distance constraint and determining the number of nodes to be assigned to each resource for each time interval is further based on the social distance constraint.
- social distancing constraints translates in limiting the number of passengers in the queue for the check-in desks. This number is dictated by the limited space in a terminal to accommodate waiting queues when people must be separated by some distance (e.g., 2 meters of separation).
- some computing systems include a limited buffer size to store incoming tasks, if there are more tasks coming during a time interval, a larger number of nodes should be included by the buffer in order to avoid an overflow.
- the resource allocation request further includes a quality of service constraint and determining the number of nodes to be assigned to each resource for each time interval is further based on the quality of service constraint (e.g., waiting time, queue size).
- the resource allocation request further includes a passenger flow constraint and determining the number of nodes to be assigned to each resource for each time interval is further based on the passenger flow constraint.
- system processes described herein may model the passenger flow from the arrival up to the time of service. For example, passenger demand in the time interval plus the number of passengers not served in the previous interval is equal to the number of passengers served in this interval plus the passengers that will be served in a later interval.
- the resource allocation request further includes determining a change in a number of nodes available to the resource from the time interval and the time interval that immediately precedes the time interval and determining the number of nodes available to the resource for each time interval. For example, for the check-in desk availability scenario, the determining a change in a number of nodes available to the resource between subsequent time intervals may be based on a constraint that can allow the optimization model to force all passengers to be served at the end of a flight’s (e.g., a task container) check-in period.
- the optimization process of process 400 can take an assumption, of the calculations, that all resources (e.g., ground handlers) operate continuously during the day (i.e. there is no ground handler g such that there is a period t in which the number of open desks is nil and some periods are not, and resources are assigned contiguous nodes, such that if one resource is assigned higher node indices during a time interval t, this will remain true for the entire time period (e.g., optimization window T).
- Figure 5 illustrates an example portion of an optimization process for node allocation for a queue at two different intervals, according to embodiments of the invention.
- queue 510 illustrates a first time interval f where all tasks to be processed (e.g., T1- T5) during time interval t have arrived simultaneously. Additionally, at time interval f, there are two nodes available to process the tasks, Node-1 514 and Node-2 516 (e.g., a number of check-in desks available based on passenger demand), which are minimized with respect to any additional constraints applied during the optimization process. Based on node capacity and processing capabilities at each node, only tasks T1-T3 are able to be processed (e.g., passengers checked-in) during time interval t, thus tasks T4 and T5 have not been processed as illustrated in area 502, and are still waiting in line for the subsequent time interval.
- tasks T1-T3 are able to be processed (e.g., passengers checked-in) during time interval t, thus tasks T4 and T5 have not been processed as illustrated in area 502, and are still waiting in line for the subsequent time interval.
- queue 520 illustrates the second, subsequent time interval t + 1, where all new tasks to be processed (e.g., T6-T10) during time interval t + 1 have arrived simultaneously, with the remaining tasks from the prior time interval t, T4 and T5, as illustrated in area 504.
- all new tasks to be processed e.g., T6-T10
- T4 and T5 the remaining tasks from the prior time interval t, T4 and T5, as illustrated in area 504.
- there are now three nodes available to process the tasks Node-1 514, Node-2 516, and Node-3 518 (e.g., a number of check-in desks available based on passenger demand).
- FIG. 6 is a chart 600 illustrating demand and node capacity in tasks processed per period, according to embodiments of the invention.
- chart 600 illustrates twenty time intervals t (e.g., periods 1-20) over an optimization window or time period T (e.g., a 10- hour work day broken up into 30 min increments or periods).
- T time period
- the optimization processes described herein is given the number of nodes available for each period (e.g., period 1 has an availability of 2 nodes, period 8 has an availability 11 nodes, etc.), as illustrated in table 610.
- the period demand 602 indicates the number of tasks to be processes during each time interval (e.g., passengers arriving during the 30-minute increment period).
- the total demand 604 indicates a total demand of the task to be processed which includes the current tasks to be processed plus the tasks that were not processed in the previous time interval (e.g., passengers arriving currently plus the passengers not checked in the previous 30- minute time slot).
- the tasks processed next period 606 indicates tasks that will be served in the next time interval t + 1 (e.g., passengers to be checked in during the next period).
- the node capacity 608 indicates a node capacity of a number of tasks that can be processed per interval (e.g., desk capacity in number of passengers that can be check in per interval), based on the number of nodes available.
- Figure 7 illustrates an example computer architecture 700 for a computer 702 capable of executing the software components described herein for the sending/receiving and processing of tasks for the CA components.
- the computer architecture 700 (also referred to herein as a “server”) shown in Figure 7 illustrates a server computer, workstation, desktop computer, laptop, or other computing device, and may be utilized to execute any aspects of the software components presented herein described as executing on a host server, or other computing platform.
- the computer 702 preferably includes a baseboard, or “motherboard,” which is a printed circuit board to which a multitude of components or devices may be connected by way of a system bus or other electrical communication paths.
- one or more central processing units (CPUs) 704 operate in conjunction with a chipset 706.
- the CPUs 704 can be programmable processors that perform arithmetic and logical operations necessary for the operation of the computer 702.
- the CPUs 704 preferably perform operations by transitioning from one discrete, physical state to the next through the manipulation of switching elements that differentiate between and change these states.
- Switching elements may generally include electronic circuits that maintain one of two binary states, such as flip-flops, and electronic circuits that provide an output state based on the logical combination of the states of one or more other switching elements, such as logic gates. These basic switching elements may be combined to create more complex logic circuits, including registers, adders-subtractors, arithmetic logic units, floating-point units, or the like.
- the chipset 706 provides an interface between the CPUs 704 and the remainder of the components and devices on the baseboard.
- the chipset 706 may provide an interface to a memory 708.
- the memory 708 may include a random access memory (RAM) used as the main memory in the computer 702.
- the memory 708 may further include a computer-readable storage medium such as a read-only memory (ROM) or non-volatile RAM (NVRAM) for storing basic routines that that help to startup the computer 702 and to transfer information between the various components and devices.
- ROM or NVRAM may also store other software components necessary for the operation of the computer 702 in accordance with the embodiments described herein.
- the computer 702 may operate in a networked environment using logical connections to remote computing devices through one or more networks 712, a local-area network (LAN), a wide-area network (WAN), the Internet, or any other networking topology known in the art that connects the computer 702 to the devices and other remote computers.
- the chipset 706 includes functionality for providing network connectivity through one or more network interface controllers (NICs) 710, such as a gigabit Ethernet adapter.
- NICs network interface controllers
- the NIC 710 may be capable of connecting the computer 702 to other computer devices in the utility provider's systems. It should be appreciated that any number of NICs 710 may be present in the computer 702, connecting the computer to other types of networks and remote computer systems beyond those described herein.
- the computer 702 may be connected to at least one mass storage device 718 that provides non-volatile storage for the computer 702.
- the mass storage device 718 may store system programs, application programs, other program modules, and data, which are described in greater detail herein.
- the mass storage device 718 may be connected to the computer 702 through a storage controller 714 connected to the chipset 706.
- the mass storage device 718 may consist of one or more physical storage units.
- the storage controller 714 may interface with the physical storage units through a serial attached SCSI (SAS) interface, a serial advanced technology attachment (SATA) interface, a fiber channel (FC) interface, or other standard interface for physically connecting and transferring data between computers and physical storage devices.
- SAS serial attached SCSI
- SATA serial advanced technology attachment
- FC fiber channel
- the computer 702 may store data on the mass storage device 718 by transforming the physical state of the physical storage units to reflect the information being stored.
- the specific transformation of physical state may depend on various factors, in different embodiments of the invention of this description. Examples of such factors may include, but are not limited to, the technology used to implement the physical storage units, whether the mass storage device 718 is characterized as primary or secondary storage, or the like.
- the computer 702 may store information to the mass storage device 718 by issuing instructions through the storage controller 714 to alter the magnetic characteristics of a particular location within a magnetic disk drive unit, the reflective or refractive characteristics of a particular location in an optical storage unit, or the electrical characteristics of a particular capacitor, transistor, or other discrete component in a solid-state storage unit.
- the computer 702 may further read information from the mass storage device 718 by detecting the physical states or characteristics of one or more particular locations within the physical storage units.
- the mass storage device 718 may store an operating system 720 utilized to control the operation of the computer 702.
- the operating system includes the LINUX operating system.
- the operating system includes the WINDOWS® SERVER operating system from MICROSOFT Corporation of Redmond, Wash.
- the operating system may include the UNIX or SOLARIS operating systems. It should be appreciated that other operating systems may also be utilized.
- the mass storage device 718 may store other system or application programs and data utilized by the computer 702, such as a resource allocation module 722 to manage communications in a communication network for resource demand communications, an optimization module 724 to execute an optimization process, and a simulation module 726 to execute a simulation process, according to embodiments described herein.
- the mass storage device 718 may be encoded with computer-executable instructions that, when loaded into the computer 702, transforms the computer 702 from being a general-purpose computing system into a special-purpose computer capable of implementing the embodiments described herein. These computer-executable instructions transform the computer 702 by specifying how the CPUs 704 transition between states, as described above.
- the mass storage device 718 stores computer-executable instructions that, when executed by the computer 702, perform portions of the process 400 for determining optimal node allocation during a plurality of time intervals of a given time period, as described herein.
- the computer 702 may have access to other computer-readable storage medium in addition to or as an alternative to the mass storage device 718.
- the computer 702 may also include an input/output controller 730 for receiving and processing input from a number of input devices, such as a keyboard, a mouse, a touchpad, a touch screen, an electronic stylus, or other type of input device. Similarly, the input/output controller 730 may provide output to a display device, such as a computer monitor, a flat-panel display, a digital projector, a printer, a plotter, or other type of output device. It will be appreciated that the computer 702 may not include ail of the components shown in Figure 7, may include other components that are not explicitly shown in Figure 7, or may utilize an architecture completely different than that shown in Figure 7.
- routines executed to implement the embodiments of the invention may be referred to herein as “computer program code,” or simply “program code.”
- Program code typically includes computer readable instructions that are resident at various times in various memory and storage devices in a computer and that, when read and executed by one or more processors in a computer, cause that computer to perform the operations necessary to execute operations and/or elements embodying the various aspects of the embodiments of the invention.
- Computer readable program instructions for carrying out operations of the embodiments of the invention may be, for example, assembly language or either source code or object code written in any combination of one or more programming languages.
- the program code embodied in any of the applications/modules described herein is capable of being individually or collectively distributed as a program product in a variety of different forms.
- the program code may be distributed using a computer readable storage medium having computer readable program instructions thereon for causing a processor to carry out aspects of the embodiments of the invention.
- Computer readable storage media which is inherently non-transitory, may include volatile and non-volatile, and removable and non-removable tangible media implemented in any method or technology for storage of information, such as computer- readable instructions, data structures, program modules, or other data.
- Computer readable storage media may further include random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable readonly memory (EEPROM), flash memory or other solid state memory technology, portable compact disc read-only memory (CD-ROM), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and which can be read by a computer.
- a computer readable storage medium should not be construed as transitory signals per se (e.g., radio waves or other propagating electromagnetic waves, electromagnetic waves propagating through a transmission media such as a waveguide, or electrical signals transmitted through a wire).
- Computer readable program instructions may be downloaded to a computer, another type of programmable data processing apparatus, or another device from a computer readable storage medium or to an external computer or external storage device via a network.
- Computer readable program instructions stored in a computer readable medium may be used to direct a computer, other types of programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions that implement the functions/acts specified in the flowcharts, sequence diagrams, and/or block diagrams.
- the computer program instructions may be provided to one or more processors of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the one or more processors, cause a series of computations to be performed to implement the functions and/or acts specified in the flowcharts, sequence diagrams, and/or block diagrams.
- any of the flowcharts, sequence diagrams, and/or block diagrams may include more or fewer blocks than those illustrated consistent with embodiments of the invention.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Mathematical Physics (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Biodiversity & Conservation Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/283,235 US20240168811A1 (en) | 2021-03-22 | 2022-03-02 | Predictive allocation of nodes in a queue |
| JP2023558225A JP2024512542A (en) | 2021-03-22 | 2022-03-02 | Predictive allocation of nodes in queue |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP21305350.7 | 2021-03-22 | ||
| EP21305350.7A EP4064156B1 (en) | 2021-03-22 | 2021-03-22 | Predictive allocation of nodes in a queue |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022200000A1 true WO2022200000A1 (en) | 2022-09-29 |
Family
ID=75302492
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2022/055233 Ceased WO2022200000A1 (en) | 2021-03-22 | 2022-03-02 | Predictive allocation of nodes in a queue |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20240168811A1 (en) |
| EP (1) | EP4064156B1 (en) |
| JP (1) | JP2024512542A (en) |
| WO (1) | WO2022200000A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20240152405A1 (en) * | 2022-10-28 | 2024-05-09 | Jpmorgan Chase Bank, N.A. | Method and system for sequential resource allocation |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060041458A1 (en) * | 2004-07-09 | 2006-02-23 | Ascent Technology, Inc. | Scenario editors and scenario rules aggregators for resource-allocation systems |
| US20180260253A1 (en) * | 2017-03-09 | 2018-09-13 | Microsoft Technology Licensing, Llc | Rules based decomposition of tasks for resource allocation |
| US20200411168A1 (en) * | 2019-06-28 | 2020-12-31 | General Electric Company | Machine-learning and combinatorial optimization framework for managing tasks of a dynamic system with limited resources |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002140479A (en) * | 2000-11-02 | 2002-05-17 | Business Act:Kk | Optimal personnel assignment deciding (ideal shift) system corresponding to fluctuation of sales |
| US6785756B2 (en) * | 2001-05-10 | 2004-08-31 | Oracle International Corporation | Methods and systems for multi-policy resource scheduling |
| US7889651B2 (en) * | 2007-06-06 | 2011-02-15 | International Business Machines Corporation | Distributed joint admission control and dynamic resource allocation in stream processing networks |
| JP5214759B2 (en) * | 2011-03-16 | 2013-06-19 | 三菱電機インフォメーションシステムズ株式会社 | Congestion degree estimation device and congestion degree estimation program |
-
2021
- 2021-03-22 EP EP21305350.7A patent/EP4064156B1/en active Active
-
2022
- 2022-03-02 US US18/283,235 patent/US20240168811A1/en active Pending
- 2022-03-02 JP JP2023558225A patent/JP2024512542A/en active Pending
- 2022-03-02 WO PCT/EP2022/055233 patent/WO2022200000A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060041458A1 (en) * | 2004-07-09 | 2006-02-23 | Ascent Technology, Inc. | Scenario editors and scenario rules aggregators for resource-allocation systems |
| US20180260253A1 (en) * | 2017-03-09 | 2018-09-13 | Microsoft Technology Licensing, Llc | Rules based decomposition of tasks for resource allocation |
| US20200411168A1 (en) * | 2019-06-28 | 2020-12-31 | General Electric Company | Machine-learning and combinatorial optimization framework for managing tasks of a dynamic system with limited resources |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2024512542A (en) | 2024-03-19 |
| EP4064156B1 (en) | 2025-07-16 |
| US20240168811A1 (en) | 2024-05-23 |
| EP4064156A1 (en) | 2022-09-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11704123B2 (en) | Automated orchestration of containers by assessing microservices | |
| CN103106043B (en) | For method and the computer system of the resource of management storage server | |
| Javadpour | Improving resources management in network virtualization by utilizing a software-based network | |
| US9021477B2 (en) | Method for improving the performance of high performance computing applications on Cloud using integrated load balancing | |
| US10929792B2 (en) | Hybrid cloud operation planning and optimization | |
| US20170206491A1 (en) | System and method to incorporate node fulfillment capacity and network average capacity utilization in balancing fulfillment load across retail supply networks | |
| US8554917B2 (en) | Performance isolation for storage clouds | |
| TW201820165A (en) | Server and cloud computing resource optimization method thereof for cloud big data computing architecture | |
| CN109408205A (en) | Method for scheduling task and device based on hadoop cluster | |
| US12204934B2 (en) | Method, device, and program product for managing multiple computing tasks based on batch | |
| US10936361B2 (en) | Cloud and datacenter migration wave planning using analytics and flow modeling | |
| US12468981B2 (en) | Database resource management using predictive models | |
| CN112241319A (en) | Method, electronic device and computer program product for balancing load | |
| WO2024222204A1 (en) | Resource scheduling method, node, device, medium, and program product | |
| CN117640770A (en) | Application scheduling methods, cloud service platforms and related equipment | |
| CN113077106A (en) | Time window-based article transportation method and device | |
| US20230289214A1 (en) | Intelligent task messaging queue management | |
| US20240168811A1 (en) | Predictive allocation of nodes in a queue | |
| CN113448719B (en) | Distributed task processing system | |
| CN112073496A (en) | Load balancing-based data placement method in geographically distributed cloud | |
| Wang et al. | Performance analysis of a ternary optical computer based on M/M/1 queueing system | |
| US20180123881A1 (en) | Dynamic Planning and Configuration Based on Inconsistent Supply | |
| US20130145004A1 (en) | Provisioning using presence detection | |
| CN119690657A (en) | Method and related device for managing computing power resources of intelligent computing center | |
| US11645595B2 (en) | Predictive capacity optimizer |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22712904 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 18283235 Country of ref document: US Ref document number: 2023558225 Country of ref document: JP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202347067070 Country of ref document: IN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22712904 Country of ref document: EP Kind code of ref document: A1 |



