Two-part job scheduling with capacity constraints and preferences
First Claim
1. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to provide a task management controller configured to allocate units of a resource having a predetermined capacity to different classes of requestors, each class having a distinct probability of failing to use an allocated unit of the resource and being associated with a value collected when a member of the class is assigned or consumes the allocated unit of the resource, the instructions comprising instructions for:
- (1) determining an overallocation limit representing an upper limit to which the resource may be overallocated(2) inflating the predetermined capacity by adding the overallocation limit determined in (1) to the capacity;
(3) determining a protection level for each of the different classes based on the inflated capacity, the protection level defining an amount of capacity to reserve for future requests for resources and being determined by maximizing an expected value for the different classes that arrive in the future given an amount of capacity allocated to a current class and a number of the different classes;
(4) updating, based on the protection levels determined in (3), each of the probability that the requestor fails to use the allocated unit of the resource and the average value loss in the event that the requestor fails to use the allocated unit of the resource;
(5) repeating (1)-(4) until a stopping condition is reached; and
providing the values of the overallocation limit and the protection levels set at a time the stopping condition is reached to the task management controller, the task management controller determining whether to allocate a unit of the resource to a requestor from the current class based on whether the overallocation limit has not yet been reached and based on whether capacity remains under the protection level.
1 Assignment
0 Petitions
Accused Products
Abstract
Exemplary embodiments relate to the problem of allocating a finite number of units of a resource among requestors willing to offer different amounts of value for the resource. When different classes of requestors are permitted to cancel the request or fail to show up to collect the unit of the resource with different probabilities (collectively referred to as “wash”), the problem becomes difficult to solve efficiently. According to the procedures described herein, the capacity is artificially inflated to offset the impact of wash, and then protection levels are computed using the inflated capacity as if there was no wash. The capacity is then artificially inflated again based on the new protection levels, and the process is repeated until, e.g., the results converge. Using this procedure, overallocation limits and protection levels can be computed in real-time, and accordingly the resource can be allocated efficiently as new requests are received.
-
Citations
30 Claims
-
1. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to provide a task management controller configured to allocate units of a resource having a predetermined capacity to different classes of requestors, each class having a distinct probability of failing to use an allocated unit of the resource and being associated with a value collected when a member of the class is assigned or consumes the allocated unit of the resource, the instructions comprising instructions for:
-
(1) determining an overallocation limit representing an upper limit to which the resource may be overallocated (2) inflating the predetermined capacity by adding the overallocation limit determined in (1) to the capacity; (3) determining a protection level for each of the different classes based on the inflated capacity, the protection level defining an amount of capacity to reserve for future requests for resources and being determined by maximizing an expected value for the different classes that arrive in the future given an amount of capacity allocated to a current class and a number of the different classes; (4) updating, based on the protection levels determined in (3), each of the probability that the requestor fails to use the allocated unit of the resource and the average value loss in the event that the requestor fails to use the allocated unit of the resource; (5) repeating (1)-(4) until a stopping condition is reached; and providing the values of the overallocation limit and the protection levels set at a time the stopping condition is reached to the task management controller, the task management controller determining whether to allocate a unit of the resource to a requestor from the current class based on whether the overallocation limit has not yet been reached and based on whether capacity remains under the protection level. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for providing a task management controller configured to allocate units of a resource having a predetermined capacity to different classes of requestors, each class having a distinct probability of failing to use an allocated unit of the resource and being associated with a value collected when a member of the class is assigned or consumes the allocated unit of the resource, the method comprising:
-
(1) determining an overallocation limit representing an upper limit to which the resource may be overallocated (2) inflating the predetermined capacity by adding the overallocation limit determined in (1) to the capacity; (3) determining a protection level for each of the different classes based on the inflated capacity, the protection level defining an amount of capacity to reserve for future requests for resources and being determined by maximizing an expected value for the different classes that arrive in the future given an amount of capacity allocated to a current class and a number of the different classes; (4) updating, based on the protection levels determined in (3), each of the probability that the requestor fails to use the allocated unit of the resource and the average value loss in the event that the requestor fails to use the allocated unit of the resource; (5) repeating (1)-(4) until a stopping condition is reached; and providing the values of the overallocation limit and the protection levels set at a time the stopping condition is reached to the task management controller, the task management controller determining whether to allocate a unit of the resource to a requestor from the current class based on whether the overallocation limit has not yet been reached and based on whether capacity remains under the protection level. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An apparatus comprising:
-
a processor circuit; and a non-transitory computer-readable medium storing instructions that, when executed by the processor circuit, causes the processor circuit to provide a task management controller configured to allocate units of a resource having a predetermined capacity to different classes of requestors, each class having a distinct probability of failing to use an allocated unit of the resource and being associated with a value collected when a member of the class is assigned or consumes the allocated unit of the resource, the instructions comprising instructions for; (1) determining an overallocation limit representing an upper limit to which the resource may be overallocated (2) inflating the predetermined capacity by adding the overallocation limit determined in (1) to the capacity; (3) determining a protection level for each of the different classes based on the inflated capacity, the protection level defining an amount of capacity to reserve for future requests for resources and being determined by maximizing an expected value for the different classes that arrive in the future given an amount of capacity allocated to a current class and a number of the different classes; (4) updating, based on the protection levels determined in (3), each of the probability that the requestor fails to use the allocated unit of the resource and the average value loss in the event that the requestor fails to use the allocated unit of the resource; (5) repeating (1)-(4) until a stopping condition is reached; and providing the values of the overallocation limit and the protection levels set at a time the stopping condition is reached to the task management controller, the task management controller determining whether to allocate a unit of the resource to a requestor from the current class based on whether the overallocation limit has not yet been reached and based on whether capacity remains under the protection level. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification