Dispatching prioritized jobs at multiple locations to workers
First Claim
1. A system comprising:
- at least one database configured to store job data and resource data, wherein said job data comprises data for a plurality of jobs including a priority level, skills required and a job location for each of said plurality of jobs, and wherein said resource data comprises data for a plurality of workers including skills and a resource location for each of said plurality of workers, a maximum number of locations that each worker of said plurality of workers can visit within a predefined period of time, and a number of available workers of said plurality of workers; and
an optimization engine configured to;
select jobs having a first priority level and determine a first maximum number of jobs that can be filled by said plurality of workers at said first priority level, wherein the first maximum number of jobs is determined based at least in part on minimizing;
in which t is a set of available workers, j is a set of the plurality of jobs of the first priority level, and xtj is a decision variable that is assigned a value of 1 if job j is assigned to worker t and is 0 otherwise;
optimize assignment of one or more of said plurality of workers to specific ones of said first priority jobs, said specific first priority jobs totaling said first maximum number of jobs, andconcurrently with said optimized assignment, perform at least one of;
minimizing total travel time between respective resource locations of said one or more workers and job locations associated with said specific first priority jobs;
orensuring that each of said one or more assigned workers is assigned approximately the same amount of work.
2 Assignments
0 Petitions
Accused Products
Abstract
A system, method and computer program product are provided for assigning prioritized jobs at multiple locations to workers with the objective of maximizing the number of higher priority jobs assigned, with secondary objectives of minimizing worker travel time between locations and of balancing workload across workers. In doing so, the system, method and computer program product consider job data including job location, skills required, time required and additional job constraints, as well as resource data including worker location, worker skills, worker time constraints and additional worker constraints. The system, method and computer program product also consider travel time between various pairs of job locations and worker locations in order to optimize work assignments while minimizing travel time.
-
Citations
24 Claims
-
1. A system comprising:
-
at least one database configured to store job data and resource data, wherein said job data comprises data for a plurality of jobs including a priority level, skills required and a job location for each of said plurality of jobs, and wherein said resource data comprises data for a plurality of workers including skills and a resource location for each of said plurality of workers, a maximum number of locations that each worker of said plurality of workers can visit within a predefined period of time, and a number of available workers of said plurality of workers; and an optimization engine configured to; select jobs having a first priority level and determine a first maximum number of jobs that can be filled by said plurality of workers at said first priority level, wherein the first maximum number of jobs is determined based at least in part on minimizing; in which t is a set of available workers, j is a set of the plurality of jobs of the first priority level, and xtj is a decision variable that is assigned a value of 1 if job j is assigned to worker t and is 0 otherwise; optimize assignment of one or more of said plurality of workers to specific ones of said first priority jobs, said specific first priority jobs totaling said first maximum number of jobs, and concurrently with said optimized assignment, perform at least one of; minimizing total travel time between respective resource locations of said one or more workers and job locations associated with said specific first priority jobs;
orensuring that each of said one or more assigned workers is assigned approximately the same amount of work. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprised of:
-
providing access to job data comprising a priority level, skills required and a job location for each of a plurality of jobs; providing access to resource data comprising skills, a resource location for each of a plurality of workers, a maximum number of locations that each worker of said plurality of workers can visit within a predefined period of time, and a number of available workers of said plurality of workers; determining via an optimization engine a first maximum number of jobs of a first priority level that can be assigned to one or more of said plurality of workers, said determination being made by assigning a decision variable xtj a value of 1 when job j of the plurality of jobs of the first priority level is assigned to worker t of the available workers and a value of 0 otherwise for each of the plurality of jobs of the first priority level and available workers and minimizing a summation of xtj for each of jobs j and workers t; and generating assignments via the optimization engine of said one or more workers to specific ones of said plurality of jobs, said specific jobs totaling said first maximum number of jobs, and said assignment generation being constrained to assign said one or more workers while minimizing total travel time between the resource locations of assigned workers and respective assigned job locations. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product comprising:
a non-transitory computer readable memory having computer readable code embodied therein, for execution by a computing device having at least a processor and a memory, said code comprising; a first executable code portion configured to provide access to job data comprising a priority level, skills required and a job location for each of a plurality of jobs; a second executable code portion configured to provide access to resource data comprising skills, a resource location for each of a plurality of workers, a maximum number of locations that each worker of said plurality of workers can visit within a predefined period of time, and a number of available workers of said plurality of workers; a third executable code portion configured to determine a first maximum number of jobs of a first priority level that can be assigned to one or more of said plurality of workers, said determination being made based at least in part on minimizing; in which t is a set of available workers, j is a set of the plurality of jobs of the first priority level, and xtj is a decision variable that is assigned a value of 1 if job j is assigned to worker t and is 0 otherwise; a fourth executable code portion configured to generate assignments of said one or more workers to specific ones of said plurality of jobs, said specific jobs totaling said first maximum number of jobs, and said assignment optimization being constrained to assign said one or more workers while minimizing total travel time between the resource locations of assigned workers and respective assigned job locations. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
Specification