U.S. patent application number 11/990635 was filed with the patent office on 2009-05-28 for method for allocating resources to jobs using network flow algorithms.
Invention is credited to Christoph Moll, Thomas Nussler.
Application Number | 20090138312 11/990635 |
Document ID | / |
Family ID | 37036822 |
Filed Date | 2009-05-28 |
United States Patent
Application |
20090138312 |
Kind Code |
A1 |
Moll; Christoph ; et
al. |
May 28, 2009 |
Method for allocating resources to jobs using network flow
algorithms
Abstract
A resource allocation system is described in which resources and
jobs are arranged as a network flow graph. In the system, resources
are allocated to jobs using a network flow algorithm applied to the
graph. The algorithm is applied from a graph source to a graph sink
by finding a solution progressively for each time interval.
Inventors: |
Moll; Christoph; (Munchen,
DE) ; Nussler; Thomas; (Munchen, DE) |
Correspondence
Address: |
STAAS & HALSEY LLP
SUITE 700, 1201 NEW YORK AVENUE, N.W.
WASHINGTON
DC
20005
US
|
Family ID: |
37036822 |
Appl. No.: |
11/990635 |
Filed: |
July 14, 2006 |
PCT Filed: |
July 14, 2006 |
PCT NO: |
PCT/EP2006/064290 |
371 Date: |
February 19, 2008 |
Current U.S.
Class: |
705/7.12 ;
705/7.25 |
Current CPC
Class: |
G06Q 10/06 20130101;
G06Q 10/06315 20130101; G06Q 10/0631 20130101 |
Class at
Publication: |
705/8 |
International
Class: |
G06Q 10/00 20060101
G06Q010/00 |
Foreign Application Data
Date |
Code |
Application Number |
Aug 19, 2005 |
DE |
10 2005 039 341.1 |
Claims
1-5. (canceled)
6. A method for determining an allocation of m resources R.sub.m to
k jobs J.sub.k equipped with respective suitabilities/capabilities
for fulfilling jobs, which are to be executed in k time windows in
each case, comprising: arranging the m resources and the k jobs as
a network flow graph; and determining a set of first to nth
allocations of the m resources to k jobs based on the network flow
graph by applying a network flow algorithm to the network flow
graph n times, with an ith (1.ltoreq.l.ltoreq.n) assignment of the
m resources to the k jobs being retained for the ith application of
the network flow algorithm to the network flow graph for the ith to
nth time interval of the k jobs, with, in the ith application of
the network flow algorithm to the network flow graph, the
assignments to the time intervals belonging to the first to ith
jobs which were retained in previously executed first to ith
applications of the network flow algorithm to the network flow
graph, being kept constant for the ith application of the network
flow algorithm, and with, in the ith application of the network
flow algorithm to the network flow graph, at least one connector of
the network flow graph being given a definable cost factor in
accordance with at least one definable rule.
7. The method as claimed in claim 1, wherein downtimes/breaks of
resources are arranged as jobs in the network graph.
8. The method as claimed in claim 1, wherein, for the case in
which, in an allocation of a resource in a time window a job has
already been assigned, in a subsequent application of the network
flow algorithm to the network flow graph, connectors are created
with a comparatively low cost factor for the time windows following
the time window.
9. The method as claimed in claim 8, in which, for the case in
which, in an allocation of a resource in a time window a job has
already been assigned, in a subsequent application of the network
flow algorithm to the network flow graph, connectors are created
with a comparatively low cost factor for the time windows following
the time window.
10. The method as claimed claim 9, wherein, for the case in which,
in an allocation of a resource in a time window no job has been
assigned, in a subsequent application of the network flow
algorithm, connectors will be created with a comparatively high
cost factor for the time windows following the time window.
11. The method as claimed in claim 1, wherein, for the case in
which, in an allocation of a resource in a time window no job has
been assigned, in a subsequent application of the network flow
algorithm, connectors will be created with a comparatively high
cost factor for the time windows following the time window.
12. A computer readable storage for controlling a computer with
commands stored thereon for executing a method for determining an
allocation of m resources R.sub.m to k jobs J.sub.k equipped with
respective suitabilities/capabilities for fulfilling jobs, which
are to be executed in k time windows in each case, comprising:
arranging the m resources and the k jobs as a network flow graph;
and determining a set of first to nth allocations of the m
resources to k jobs based on the network flow graph by applying a
network flow algorithm to the network flow graph n times, with an
ith (1.ltoreq.l.ltoreq.n) assignment of the m resources to the k
jobs being retained for the ith application of the network flow
algorithm to the network flow graph for the ith to nth time
interval of the k jobs, with, in the ith application of the network
flow algorithm to the network flow graph, the assignments to the
time intervals belonging to the first to ith jobs which were
retained in previously executed first to ith applications of the
network flow algorithm to the network flow graph, being kept
constant for the ith application of the network flow algorithm, and
with, in the ith application of the network flow algorithm to the
network flow graph, at least one connector of the network flow
graph being given a definable cost factor in accordance with at
least one definable rule.
13. The storage as claimed in claim 12, wherein, for the case in
which, in an allocation of a resource in a time window no job has
been assigned, in a subsequent application of the network flow
algorithm, connectors will be created with a comparatively high
cost factor for the time windows following the time window.
14. The storage as claimed in claim 13, wherein, for the case in
which, in an allocation of a resource in a time window no job has
been assigned, in a subsequent application of the network flow
algorithm, connectors will be created with a comparatively high
cost factor for the time windows following the time window.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is based on and hereby claims priority to
International Application No. EP2006/064290 filed on Jul. 14, 2006,
and German Patent Application 10 2005 039 341.1, filed Aug. 19,
2005, the contents of both of which are hereby incorporated by
reference.
BACKGROUND
[0002] The present invention lies in the field of work planning or
work organization and relates especially to a method for allocating
to jobs resources equipped with the respective
aptitudes/suitabilities for fulfilling jobs, in which an allocation
of the resources to the jobs is determined on the basis of a
network flow algorithm.
[0003] The allocation of resources (machines or people) to jobs
which are to be fulfilled within a certain time window is a problem
which is comparatively easy to resolve for a small number (for
example <10) of resources and jobs, but which is complex and
demands a high processing outlay for a large number (for example
>1000) of resources and jobs. This problem has previously been
solved using conventional optimization algorithms which in general
however have to run for several hours to deliver a result. This
renders short-term changes in planning, which can be necessary if
resources fail or if the parameters of the problem change,
practically impossible and also extremely expensive from the cost
standpoint. Interactive planning, in which the planner has an
influence on the allocation result, has thus not been possible
previously.
SUMMARY
[0004] By contrast an object of the embodiments discussed herein
includes providing a method for allocating resources to jobs in
which a (if necessary interactive) simultaneous resource allocation
and scheduling is made possible, with simple constraints for a
large number of resources and jobs.
[0005] In accordance with the embodiments this abject is achieved
by a method with the features discussed herein. Advantageous
additional embodiments of the invention are specified by the
features discussed herein.
[0006] According to an embodiment a method is shown for determining
an allocation of m resources R.sub.m equipped with the respective
aptitudes/suitabilities for fulfilling jobs, which are available at
particular times, to k jobs J.sub.k, whereby, in such an assignment
the m resources will be allocated to the k jobs, which are to be
handled within a time window belonging to the respective job in
each case where m, n are natural numbers >1.
[0007] The major elements distinguishing the inventive method
include the following operations:
[0008] The m resources and the n jobs are embodied or arranged in a
network flow graph, as is known per se in graph theory, with the
resources and the jobs each being modeled as nodes of the network
flow graph, which are connected by connectors to each other, as
well as being connected to a source and a sink.
[0009] A set of first to nth allocations of the m resources to the
k jobs on the basis of the network flow graph is determined. Each
"allocation", as such, generally includes in this case, a plurality
of assignments of the m resources to the k jobs, for n different
time intervals respectively, in which the jobs and resources do not
change. An allocation is determined by applying a network flow
algorithm to the network flow graph. The first to ith allocations
in this case are obtained by applying the network flow algorithms l
times to the network flow graph. In more precise terms, the first
allocation of the m resources to the k jobs is obtained by applying
the network flow algorithm to the first through nth time intervals
in which the respective jobs are to be dealt with. The second
allocation of the m resources to the k jobs is obtained by applying
the network flow algorithm to the network flow graph for only the
second through nth time window of the n time intervals, with the
allocation of a resource to the job belonging to the first time
interval, which was obtained in the first application of the
network flow algorithm to the network flow graph, being kept
constant for the second application of the network flow algorithm
to the network flow graph. The third allocation of the m resources
to the k jobs is obtained by again applying the network flow
algorithm to the network flow graph for the third through nth time
window of the n time intervals of the k jobs, with the assignments
of resources to the jobs belonging to the first and second time
windows, which were obtained in the first or second application of
the network flow algorithm to the network flow graph, being kept
constant for the third application of the network flow algorithm to
the network flow graph. An ith allocation of the m resources to the
k jobs by the ith application of the network flow algorithm to the
network flow graph for the ith time interval of the n time
intervals of the l jobs is obtained in a similar manner, with the
assignments for the time intervals belonging to the first through
ith jobs, which were obtained in the previously executed i-1
applications of the network flow algorithm to the network flow
graph, being kept constant for the ith application of the network
flow algorithm.
[0010] In other words, for each repeated pass (i.e. application of
the network flow algorithm to the network flow graph) a solution is
successively determined for later time windows with a solution for
earlier time windows being kept constant. Furthermore, at least in
the second through ith application of the network flow algorithm to
the network flow graph, at least one connector of the network flow
graph is given a definable cost factor in accordance with at least
one definable (in general heuristic) rule, so that with each
further setting of an allocation of the m resources to the k jobs,
a successively optimized allocation is obtained in respect of the
definable rules.
[0011] Thus, the invention embodiment need not apply very general
optimization algorithms, as is the case in the prior art, but in
apply algorithms tailored specifically by the heuristic rules to
the problem.
[0012] The characteristics of the problems dealt with are as
follows: Simple constraints and the existence of very many
solutions.
[0013] The inventive method is especially suited to allocation
problems with the characteristic "weakly coupled". The
characteristic "weakly coupled" is defined as follows: [0014]
Activities (jobs) which have yet to be scheduled have already been
assigned a resource (for example, breaks which apply to precisely
one worker). [0015] Jobs which have still to be allocated resources
are already scheduled, i.e. they have fixed start and end
times.
[0016] Inventively this means that a specific algorithm which is as
efficient as possible is applied which solves precisely this class
of problem.
[0017] In the inventive method movable downtimes/idle times of
resources, such as breaks for employees, maintenance times for
machines and such like, are advantageously arranged as jobs in the
network graph. To this extent these types of downtime can
advantageously by shifted as regards optimizing a utilization of a
resource. The inventive method in particular makes it possible to
ensure that these types of downtimes/idle times are not interrupted
in an allocation, as is the case with a conventional application of
network flow algorithms. In more general terms this applies for
each job, provided this is a component of the requirements.
[0018] A heuristic rule is preferably employed in the inventive
method, according to which a resource should not change location or
only change location slightly, which can be especially achieved by
a resource being assigned the same or similar jobs. It is
advantageous here if, for the case in which a job has already been
assigned in an allocation of a resource in a time window, in a
subsequent application of the network flow algorithm to the network
flow graph for determination of a further allocation in the network
flow graph, connectors with a comparatively low cost factor (e.g.
zero) are created for the time window following this time window.
Conversely it is very advantageous in the inventive method if, in
the event of no job having been assigned for an allocation of a
resource in a time window, in a subsequent application of the
network flow algorithm for determination of a further allocation in
the network flow graph, connectors with a comparatively high cost
factor (e.g. infinite) are created for the time intervals following
the time interval.
[0019] In the inventive method a skillful choice of heuristic rules
can thus be used to obtain an optimization of the runtime behavior
and thus of the solution. It is not sensible here to directly
implement the optimization function for job change optimization;
instead the job change will be optimized by additional connectors
being inserted in a suitable manner into the network flow graph. If
workers are assigned jobs in a specific time interval, the
connectors with a low cost factor, especially zero, are added to
the network flow graph for the following time interval. If time
intervals are detected, in which no more jobs have to be scheduled,
then the algorithm uses a sequence of network problems with graphs
for a time interval in each case.
[0020] This method reduces the size of the problem significantly
since the following then generally applies:
m.sup.2+n.sup.2<<(m+n).sup.2.
[0021] Should no such intervals exist and if the size of the
problem can no longer be resolved interactively, an approximation
solution can be found by the algorithm subdividing the problem into
a number of time intervals, to which in each case the approach
"weakly coupled", as shown above, is applied.
[0022] The short run time thus makes an interactive planning system
possible. This in its turn makes the use of human intelligence
possible through the realistic option of interactive working. The
planner can interactively fix part solutions, where the solution
space which has to be searched is reduced, which additionally
reduces the processing time.
[0023] The invention further extends to a machine-readable memory
medium with commands for execution of a method as described above
stored on the medium.
BRIEF DESCRIPTION OF THE DRAWINGS
[0024] These and other aspects and advantages will become more
apparent and more readily appreciated from the following
description of the exemplary embodiments, taken in conjunction with
the accompanying drawings of which:
[0025] FIG. 1 a flow diagram of the assignment of personnel as part
of the planning process,
[0026] FIG. 2 a network diagram illustrating a dynamically weighted
bipartite matching.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
[0027] Reference will now be made in detail to the preferred
embodiments, examples of which are illustrated in the accompanying
drawings, wherein like reference numerals refer to like elements
throughout. The example discussed below is that of a postal sorting
center.
[0028] The Planning Process
[0029] The tool for assignment of personnel is an integral
component of the overall planning process. This planning takes
place in a highly dynamic and flexible environment. All personnel
assignment functions are semi-automatic and interactive processes,
which are supported by consistency checks and decision aids. The
planner is to be given the greatest possible support but the
overall competence, responsibility and flexibility is to be left to
him.
[0030] The reader is now referred to FIG. 1, in which the planning
process as a whole is described. A planner is intending to plan the
work for a given day, with this being done in an interactive
manner. The flow diagram shown in FIG. 1 merely schematically
illustrates the planning loops.
[0031] FIG. 1 shows the complete planning process as was
implemented in the exemplary embodiment. The right-hand loop of the
figure describes the interactive personnel planning process. The
personnel planning software corresponds to the box labeled
"capability planning/allocation checking".
[0032] The work plan contains all work modes (e.g. resource
requirements) for each job as a function of the time, and also the
information about all (theoretical) throughputs for each machine
and workstation.
[0033] A personnel assignment allocates a job (manual services) to
personal capabilities. Individual workers with their
qualifications, working times and breaks as their attributes
represent the workforce resources.
[0034] It is necessary to introduce a number of important
definitions before the assignment of personnel is explained: [0035]
A capability is a particular characteristic which makes it possible
for a person to fulfill a job in the postal sorting center. [0036]
A qualification is a set of capabilities. [0037] A worker
(resource) is a real person who is known to a human resources
system. He has a minimum set of attributes: Name, qualification,
daily working time, breaks. [0038] A job is a capability required
at a workstation with the additional attribute of the time interval
which defines the period of time in which this capability is needed
at this workstation.
[0039] Functional Description of Service Plan Creation
[0040] In service plan creation, the planner plans the allocation
of work to jobs which have to be executed during operations. The
personnel allocation software checks whether the available workers
can perform all jobs in the postal sorting center. The mapping
allocates workstations (jobs) to an individual worker. It also
assigns breaks to workers. The jobs (workstations) are already
scheduled and made available to the personnel allocation system by
the work plan. The breaks are not scheduled a priori. Only the
earliest start time, the latest finishing time and the duration are
defined. In general not all workers can perform every job. A job
requires a particular capability, however this capability is not
present alone in the postal sorting center; i.e. two jobs can
require the same or similar capability. A worker can have more than
one specific capability.
[0041] The personnel allocation software attempts to compute a
service plan for each worker so that all jobs can be performed in
harmony with the constraints: [0042] Breaks; [0043] Daily working
times; [0044] Earliest start time of the jobs; [0045] Latest
finishing times of the jobs; [0046] Particular capability that is
required for a job; [0047] Duration of the jobs (in this case the
durations are merely produced from the difference between the end
time and the start time); [0048] Breaks are contained in a break
window; [0049] Break windows have a fixed start and end time;
[0050] The daily working times of workers can, in accordance with
working time regulations, have one or more break windows; [0051]
The total length of a break can vary from one break window to
another;
[0052] Optimization Goals [0053] Minimize the number of changes of
job of a worker during a shift; [0054] Minimize the maximum number
of workers in the postal sorting center;
[0055] Results
[0056] If an allocation is possible for all requirements (job,
workstation), the personnel allocation software returns an
allocation proposal. This implies a service plan for each employee.
In general there is not just one possible proposal. The number of
possible allocations (solutions) can grow exponentially with the
number of workers and jobs. The planner cannot handle all possible
allocations in a sensible manner and therefore he continues
interactively:
[0057] The personnel allocation software returns an allocation
proposal for each worker based on the workstations. This contains
the information about personnel not allocated during an entire day
or during a shift. [0058] A service plan proposal for each person
with a time list for the working day. [0059] This implies a list of
entirely free but available personnel in the postal sorting center.
[0060] The system can return to the operator an example to show the
opposite if it has not found any valid allocation, i.e. a list of
times and jobs to which a worker cannot be assigned.
[0061] The planner can now change this solution in accordance with
his requirements and have it rechecked by the personnel deployment
planning software.
[0062] How can an Example to Show the Opposite Help the
Planner?
[0063] If there is no assignment there can again be many examples
showing the opposite and it is not evident a priori which result
the system should display to the planner.
[0064] An example showing the opposite also greatly depends on the
algorithm selected by the allocation tool.
[0065] An example showing the opposite is a list of jobs
(workstations) which, at a particular point in time, cannot be
executed by the personnel available at that time. In addition the
planner can employ a part solution as an aid (a result that does
not fulfill all conditions), if it is found by the system.
[0066] A description is now given of the mathematical background
which is employed in the personnel allocation system presented
above.
[0067] Weakly-Coupled Dynamic Network Flow Problem
[0068] A sequence of weighted bipartite matchings or minimal cost
(transport) problems solve the problem step-by-step and allow
preprocessing before each step. An alternative approach is the
solution for the allocation of personnel simultaneously for all
time intervals. It is a transport problem since breaks can last
longer than one unit of time.
[0069] Assumptions: [0070] The allocations to the different points
in time are only coupled by breaks. [0071] Breaks are not
pre-emptive.
[0072] This approach does not reduce or minimize a priori the
number of job changes. A solution for this problem is subject to
the lower target function or a heuristic. The associated linear
problem for the dynamic allocation is as follows:
Max ( t ij x ij t ) ##EQU00001## Conditions ##EQU00001.2## { i : (
i , j ) .di-elect cons. A } x ij t = 1 .A-inverted. i .di-elect
cons. N 1 , .A-inverted. t ##EQU00001.3## { j : ( i , j ) .di-elect
cons. A } x ij t = 1 .A-inverted. j .di-elect cons. N 2 - { breaks
} , .A-inverted. t ##EQU00001.4## x ij t .gtoreq. 0 .A-inverted. (
i , j ) .di-elect cons. N 1 .times. N 2 ##EQU00001.5## l { i : ( i
, j ) .di-elect cons. B } x ij t l = a .A-inverted. i .di-elect
cons. N 1 , .A-inverted. t l ##EQU00001.6## 1 .ltoreq. a := break
length .di-elect cons. N 0 ##EQU00001.7## B := N 1 .times. N x - {
breaks } ##EQU00001.8## x ij t .di-elect cons. { 0.1 }
##EQU00001.9##
[0073] The reader is now referred to FIG. 2, within which a
dynamic, weighted, bipartite matching is illustrated. FIG. 2 shows
the graph for a processing example consisting of: [0074] 3 Time
intervals, [0075] 1 worker who is available in all 3 intervals,
[0076] 2 jobs which each last 2 intervals, [0077] 1 break which
lasts for 2 intervals.
[0078] A network algorithm creates a maximum flow which minimizes
the target function. A sink defines a section with the capacity
t { j .di-elect cons. N 2 } u j t = Total of jobs in each time
interval and the break times . ##EQU00002##
A maximum flow which solves the problem is equal to the capacity of
the section.
[0079] Processing Complexity for an Equidistant Time Frame
[0080] Upper limit of the number of connectors:
M=sum(ni*mi)+sumS(b)1<<(sum(ni)*sum(mi)+sumS(b)1
[0081] S(b)1:=Size of the break window for the break b1 in the
equidistant time frame.
[0082] This shows that the weak coupling in combination the maximum
number of connectors in the graph, compared to the full problem, is
drastically reduced.
[0083] Expansion: Target Function which Minimizes the Job
Changes
[0084] Target function:
Min ( l i , j c ij t l + 1 x ij t l + 1 - x ij t l )
##EQU00003##
[0085] This function produces a minimum value in which the number
of job changes is minimal. This is so because the expression
|x.sub.ij.sup.t.sup.+1-x.sub.ij.sup.t| is zero in total if a worker
has the same jobs at the times ti and ti+1. The value of this
expression is equal to 1 if the worker changes his job, since
x.sub.ij.sup.t or x.sub.ij.sup.t.sup.+1 is zero in this case.
[0086] Unfortunately this function is not linear, which is why this
expansion cannot be applied to a problem of just any size.
[0087] The method embodiments can use a system that includes
computer hardware and displays as well as permanent or removable
storage, such as magnetic and optical discs, RAM, ROM, etc. on
which the process and data structures of the present invention can
be executed, stored and distributed. The processes can also be
distributed via, for example, downloading over a network such as
the Internet. The system can output the results to a display
device, printer, readily accessible memory or another computer on a
network.
[0088] A description has been provided with particular reference to
preferred embodiments thereof and examples, but it will be
understood that variations and modifications can be effected within
the spirit and scope of the claims which may include the phrase "at
least one of A, B and C" as an alternative expression that means
one or more of A, B and C may be used, contrary to the holding in
Superguide v. DIRECTV, 358 F3d 870, 69 USPQ2d 1865 (Fed. Cir.
2004).
* * * * *