This application is the U.S. national phase of international application PCT/GB02/01218 filed 15 Mar. 2002 which designated the U.S.
This application is related to the following commonly assigned applications:
1. Technical Field
The present invention relates to a method of and apparatus for reviewing work items for allocation to a resource, particularly but not exclusively suited to a work allocation system.
2. Related Art
Work allocation systems are well known and are generally referred to as scheduling systems, resource allocation systems, or workflow systems. Essentially, work allocation systems are concerned with optimising the allocation of a plurality of resources to a plurality of tasks given certain constraints.
In many known systems, work allocation is modelled using so-called agent-based technology. An agent is a computer program that acts on behalf of an entity such as a user or a piece of equipment. The agent typically holds data relating to the entity that it represents and is provided with decision-making software for making decisions on behalf of the entity. In the context of work allocation systems, an agent is known to represent single entities such as a resource, a work-processing centre, and a central administration centre.
Agents typically communicate with other agents in an attempt to accomplish a goal. R. Smith introduced a mechanism for collaboration between agents, known as the “contract net” protocol, in 1980. The mechanism is described in “The contract net protocol: High-level communication and control in distributed problem solver,” IEEE Transactions on Computers, 29(12):1104-1113, December 1980. When an agent needs the services of other agents, it plays the role of a “manager” and attempts to contract work out to other “contractor” agents. Other protocols apart from the “contract net” can be used, for example, “English Auction” and “Dutch Auction”. A library of these can be found at the FIPA web site identified by the identifiers XC00025 to XC00036. Alternativley, other forms of signals between agents could be used, for example, by updating a shared database record, or otherwise altering an object in the shared agent environment.
Many known agent-based systems employ the contract net protocol for allocating tasks to agents. In particular, the multi-agent system of Kwang Mong Sim etal, described in “Simulation of a multi-agent protocol for task allocation in cooperative design”, Proceedings of the IEEE systems, Man and cybernetics 1999, uses the contract net protocol to coordinate agent activities to accomplish a goal. Essentially, whenever an agent needs the services of another agent it announces the tasks to be done, whereupon at least some of the other agents bid for the tasks. The bid includes information such as expertise to perform the task and experience in performing similar tasks; the requesting agent selects a bidding agent in dependence on the information in the bid. In this system each agent is assumed to be responsible only for its own activities, so that a bid comprises information relating to a single agent, and the requesting agent is essentially comparing the capabilities of single agents.
International patent application GB98/02944 (publication number WO 99/17194) describes a resource handling system where, again, tasks are announced by an agent (referred to as manager), and so-called contracting agents evaluate the task with respect to their own abilities and commitments and submit bids (or not, as the case may be) in accordance therewith. The communication of task announcement, bid submission and acceptance is handled in accordance with the contract net protocol (and other similar communication protocols). In this system the contracting agents represent a work-processing centre, and, when formulating a bid, a contracting agent reviews availability, skills and rates of pay of the workforce associated with its respective work-processing centre. In this application the “workforce” is modelled as a single entity.
The Zeus Toolkit (“The Zeus Toolkit”, Collis, J, Ndumu, D, Nwana,H; BT Technology Journal 16(3) July 1998 p60-68) contains tools to construct agent systems that utilize the contract net protocol in this way. The article “Co-ordination in Software Agent Systems” (Nwana,H, Lee,L., & Jennings,J. BT Technology Journal 14(4) 1996) surveys these and other co-ordination systems.
The agent system described in “A hybrid agent-oriented infrastructure for modelling manufacturing enterprises”, Shen and Norrie, presented at the 11th workshop on knowledge acquisition, modelling and management, describes use of mediator agents in an agent-based multi-functional system. The mediator agents provide a “gateway” to other agent types, meaning that each agent subsystem is connected to the overall system through a special mediator. The authors consider this architecture to provide an efficient way of integrating a range of agent-based services. A mediator agent receives task requests from other mediator agents, then formulates and sends out task messages to agents associated therewith. Agents receiving the task messages formulate and return bids to their associated mediator agent, which passes the bid information to the originally requesting mediator agent.
In these known systems, each agent represents a single entity whose characteristics and capabilities are modelled by the agents; for example in the case of an agent representing a resource, each agent holds data representative of skills and location attributes corresponding to the resource, and negotiates for work on the basis of the attribute data.
In certain situations it would be useful if an agent could represent a group of entities, for example a team of workers. This would be useful because service-based industries are now considering allocating work to self-managed teams, rather than to individual workers. In self-managed teams, work is allocated to a team (typically by bidding, based on, e.g. the contract net protocol described above) and the team then has a responsibility to get the work done; if the work is not done, the team does not get paid. Typically the teams are flexible, meaning that workers can leave and join a team, effectively choosing the team that they want to be a part of (on the basis of incentives, personal constraints etc.).
However, such an arrangement is non-trivial to model. Currently a resource allocation system negotiates for resources with the assumption that the resources represented by an agent will be available. If the resources change, for example because a worker has moved from one team to another, this could mean that whichever job(s) involved that worker can no longer be carried out. As a result the system may have to repeat the negotiation process in respect of that/those jobs, and the team concerned will not receive payment.
According to an exemplary embodiment, there is provided a method of reviewing a work item for allocation to a group of resources, wherein review of the work item has been instigated by a work source means. The method includes the steps of
creating a data structure identifying work items previously allocated to at least some of the resources in the group;
evaluating the probability that one of resources will carry out the work item based on values in the data structure; and
comparing the evaluated probability with a suitability criterion so as to identify whether one of the resources is suitable to carry out the work item.
The method is performed by an apparatus, herein after referred to as a mediator agent, which has access to a data structure that is representative of a group of resources, which can be a team of workers. The data structure is configured such that workers can easily be added and removed therefrom, and is populated using previously stored data records corresponding to workers in the group. It is assumed that a worker does what he/she prefers to do, so that, by recording his/her work activities, his/her preferences are implicitly recorded.
Equipped with such a data structure a mediator agent can make decisions that are representative of the likely actions of its workers. For example, given a particular work item, the mediator agent conveniently uses the data structure to evaluate whether or not a worker in the team is likely to carry out the work item.
In a work allocation system, the work source means, hereinafter referred to as a work source agent, can be arranged to offer a work item to a plurality of mediator agents, for review according to the invention, at a cost that depends on its operational priorities, such as the urgency of the work items and/or a value associated with an entity that originated the work item.
As described above, the mediator agents are then arranged to evaluate, on the basis of the data structure, whether or not one of the workers in the team is likely to carry out the work. If it appears likely that a worker within the team will carry out the work the mediator agent then decides whether or not to bid for the work item in accordance with its operational priorities.
Preferably, if one of the workers is identified as being suitable to carry out the work item, the mediator agent generates a bid comprising the evaluated price and signals the bid to the work source means.
Conveniently a mediator agent is arranged to receive a signal identifying that the bid has been successful, whereupon the mediator agent works out a price at which it can offer the work item to the workers. For all, or a selection of the workers, the mediator agent evaluates the similarity between the work item and work items previously allocated thereto, and selects one or more workers on the basis of the similarity. Then, for the or each selected worker, the mediator agent applies a price to the work item that is proportionate to the evaluated similarity, and offers the work item to the selected workers at the respective applied price. The mediator agent can additionally modify the price to account for the efficiency with which a given worker can complete the work item, so that, for example, its value is greater to a more efficient resource.
Alternatively the mediator agent can offer the work item to all workers in its group at the same price and allow the agents representative of the workers to select the work item at the offered price. The mediator agent could vary the price of the work item offered to the team on the basis of the time left to execute the work item.
As stated above, an example of a resource is a worker in a team. A resource can also be a computer program, and/or a machine, such as a computer or a router device. A work item can be a job to be carried out by a worker or a processing job to be carried out by a computer program and/or a device.
An embodiment of the invention will now be described, by way of example, with reference to the accompanying drawings, in which:
a is a schematic system diagram of an environment in which embodiments of the invention operate;
b shows the architecture of a conventional computer for use in the system of
Overview of Operating Environment
Referring to
A typical architecture of each of the system computers 2, 4, 5 on which software implementing the invention can be run, is shown in
Overveiw of Work Allocation System
The work allocation server 2 comprises an operational support system (OSS) 2, for example a billing and work scheduling system. The OSS 2 is provided with, or generates, a definition of a work project to be carried out by one or more workgroups 20, 21. Each workgroup 20, 21 includes a plurality of workers 22-24; 25-27, each of whom has access to a workgroup terminal 4, 5. Each of the workgroup terminals 4, 5 runs a software program referred to herein as a mediator agent 28, 29, which is capable of communicating with the OSS 2 and each of a plurality of workers 22-27 in the workgroups 20, 21 via a graphical user interface (GUI).
The operational support system (OSS) 2 includes a work item handler 30 and an OSS agent 31. Customers 32, or the environment 33, generate work items that are acquired by the work item handler 30, for example a customer handling system, maintenance schedule or fault detector. The acquired work items are then passed to the OSS agent 31 which interfaces with the mediator agent 28, 29 in each workgroup 20, 21.
Embodiments arise from a crucial realization that the needs and wishes of workers in the market should be taken into account when evaluating the cost and/or benefit of agreeing to undertake a piece of work. Furthermore, when faced with the problem of allocating work among groups of workers it has been recognized that, in order to allocate work efficiently, a group of workers is most preferably regarded as a single entity. Having recognized the importance of treating groups or workers as single entities, embodiments provide a representation of that entity that is sufficiently flexible and dynamic to enable the composition thereof to change, which is representative of actual changes in composition of a group of workers.
Accordingly the embodiment is concerned with allocation of work from the OSS 31 to the mediator agents 28, 29, each of which represents a group of workers. A mediator agent 28, 29 is arranged to bid for work on behalf of the workers associated therewith, and has responsibility for ensuring that the work that it successfully bids for can be completed by its workers.
In an embodiment of the invention the mediator agents 28, 29 are arranged to use preference information when allocating work and are thus able to bias markets in accordance with the preferences of workers carrying out the work.
An advantage of the invention is that, when work is allocated, there is a good chance that the worker(s) are suitable, permitted, willing & likely to carry out the work. Thus a further advantage is that the workers are likely to receive work allocations that are appropriate to their working preferences, meaning that they are likely to be highly motivated in the longer term.
Initially the work item is generated by a customer 32 or the environment 33 (step s1) and acquired by the work item handler (step s2). The work item handler passes the item to the OSS agent 31 (step s3), which prices the work item using a cost function, such as that shown in
For example, when the deadline 303 is passed, the OSS agent 31 will price a work item low, because the priority for the work item is low, meaning that the reward allocated by the business for carrying out the work item at this time is low.
The mediator agent 28, 29 for each workgroup receives the offer (step s6) and uses the preferences of its workgroup to identify whether any of its workers can carry out the work (step s7). In the context of this embodiment, preferences are essentially a summary of observed worker behaviour—that is to say that it is assumed that a worker does what he/she prefers to do, so that, by recording his/her work activities, his/her preferences are implicitly recorded.
In the embodiment, it is assumed that a database DB comprises data sets corresponding to work carried out, or selected, by workers in the workgroup. A data set can be viewed as a fixed-size table with rows and columns, where each row is a record in the data (corresponding to a worker) and each row has many columns, each of which is an attribute in the data. Each attribute can take on a set of values.
In this embodiment, the mediator agent 28 is interested in evaluating a target object, or a class, which is an attribute found in the data set whose values it wants to predict when given the values of the other attributes (e.g. given attributes job type, job location, customer type, customer location etc., are any of the workers likely to perform the work item?).
Accordingly, referring to
In overview, the evaluating program 501 uses the records in the database (or alternative) to create a data structure 601 (
The evaluation method is now described in more detail, with reference to
outcome (I) comprises cross road; do not cross road;
attributes (a) comprise light colour, urgency; and
values comprise red, amber, green, urgent, middle, none.
In this particular example, the evaluating program 501 evaluates the probability of a worker crossing the road given a red light and the fact that he has to cross the road urgently.
Assuming the dataset to comprise twenty road-crossing events for each of three workers (so that the database DB stores 60 records), the evaluating program firstly creates a data structure 601 corresponding thereto. A two-dimensional representation thereof is shown in
Referring to
Thus referring to
41+6+60+30+60+60+30=287 for cross
19+54+60+30+60+30=253 for don't cross
Total number of road crossing events=540
So p(y) for cross is 287/540=0.53148 & p(y) for don't cross is 0.46851.
The evaluating program then evaluates 803 post priori probabilities of outcomes a) crossing and b) not crossing the road, based on the a priori probabilities calculated at step 801. Specifically, the evaluating program 501 applies the following equation (Equation 1):
where
Referring again to
Red && Cross
p(y|x)=47/180=0.26111
0.26111/0.53148=0.49128
log (0.49128)=−0.30866
j(red|cross)=−0.080595
Red && Don't cross
p(y|x)=133/180=0.73888
0.73888/0.46851=1.577103
log 1.577103=0.19786
j(red|don't cross)=0.1461965
Urgent && Cross
p(y|x)=161/180=0.89444
0.89444/0.53148=1.68293
log 1.6829=0.226066
j(urgent|cross)=0.2022028
Urgent && Don't cross
p(y|x)=19/180=0.1055
0.1055/0.46851=0.225300
log 0.225300=−0.6472377
j(urgent|don't cross)=−0.068359
Expressed formally, the evaluating program calculates j-values for each y for the value x which is taken by attribute X for all X.
The evaluating program then identifies 805 the largest j-value (in this example urgent && cross), and whichever outcome corresponds to this j-value (here cross) is returned by the evaluating program as the likely outcome (i.e. class value). As an alternative to returning the outcome corresponding to the largest j-value, the evaluating program could evaluate an average of all of the j values for an outcome by summing all the j-values for each outcome (y). In this case whichever outcome corresponds to the average j-value is returned 807 by the evaluating program 501.
Instead of using Equation 1 to identify the most informative attribute, and selecting the action to be taken on the basis thereof, other information measures could be employed. These other methods include the Bayes rule method, or the information gain measure, for which reference is directed to R. Quinlan “Induction of decision trees” Machine Learning, 1; 81-106 (1986). A survey of suitable techniques can be found in I Kononenko “On Biases in Estimating Multi-Valued Attributes” In Mellish, C (ed). Proceedings of the International Joint Conference on Artificial Intelligence, 1995 (IJCAI '95). pp 1034-1040.
The data structure 601 is a particularly convenient way of expressing data records corresponding to work environments, where workers may migrate between teams or leave the organisation at any time: a record corresponding to a new worker can be simply added to the data structure 601, and information relating to a particular worker can be removed by subtracting the record from the data structure 601.
Thus individual worker records can easily be added and removed from the data structure (and thus effectively from team decision making). This additive feature of the data structure 601 can be seen from the example below:
Assume that the database comprises records for workers X and Y. Assume that the records corresponding to worker X show that worker X has approached a road crossing 100 times, on a amber light with urgent need to cross the road. The data shows that, given these conditions, he has crossed 80 times. Given the same conditions, worker Y has crossed the road 100 times. The records for Worker X can be expressed as a matrix having the following elements:
{amber, don't cross}=20,
{amber, cross}=80
{urgent, cross}=80
{urgent, don't cross}=20.
and those for worker Y:
{amber, cross}=100
{urgent, cross}=100.
All other values are 0.
A data structure 601 based on these matrices contains the following four values:
{amber, don't cross}=20
{amber, cross}=180
{urgent, cross}=180
{urgent, don't cross}=20
each of which is simply the sum of elements of the individual matrices.
In the context of allocating jobs to particular workgroups, a mediator agent's bidding strategy 35, which is based on the class value returned by the evaluating program and is discussed below, can thus readily be changed to a new bidding rationality 36 when a worker leaves, or joins, a workgroup (shown schematically in
Use of the outcome, or probability, returned at step 807 is now described. Returning to
As a result of the calculation, the mediator agent 28, 29 for the workgroup may decide not to bid for the work (step s8), but instead to wait for the next offer on the next available work item (step s6). If the mediator agent 28, 29 decides that its local business priorities will be met, it makes a bid for the work item (step s9). The OSS agent 31 receives bids from all workgroups and determines how many bids it has received for the work item (step s10). If only one mediator agent makes a bid (step s11), that bid is accepted by the OSS agent 31 (step s12).
If more than one mediator agent makes a bid (step s11), the OSS agent 31 accepts the bid at the highest price (step s13). For example, at step s4 the OSS agent 31 provides a work item with a relatively high price P. The mediator agent 28 for the first workgroup 20 determines that it is likely to be able to allocate the work item to its workers, but its workgroup is relatively busy and cannot do the work urgently. It is therefore prepared to offer P-50 for the work item. The mediator agent 29 for the second workgroup 21 also determines that it can allocate the work item to its workers, but this workgroup is not very busy, so that the work item will assist the workgroup in reaching its targets. The second mediator agent 29 is therefore prepared to offer P-30 for the work item. In this case, the OSS agent 31 accepts the offer of P-30 from the second mediator agent 29 and allocates the work item to it.
The OSS agent 31 informs a selected mediator agent 29 that its bid has been successful (step s14). The mediator agent 29 then allocates/sells the work on to the workers (step s15). In essence, the mediator agent 29 sells the work to the workers at a price that offsets its investment in purchasing the work from the OSS agent 31. The mediator agent 28, 29 prices work based on two factors, the value of the work to the overall business as expressed by the OSS agent 31, namely the cost price to the mediator and the probability value returned at step 807. In addition the mediator agent 28, 29 may model the impact on the team's work schedule of each particular worker doing a piece of work and adjust the price of the work accordingly (e.g. to motivate the team to carry out the work item).
| Number | Date | Country | Kind |
|---|---|---|---|
| 01302944 | Mar 2001 | EP | regional |
| Filing Document | Filing Date | Country | Kind | 371c Date |
|---|---|---|---|---|
| PCT/GB02/01218 | 3/15/2002 | WO | 00 | 9/11/2003 |
| Publishing Document | Publishing Date | Country | Kind |
|---|---|---|---|
| WO02/080055 | 10/10/2002 | WO | A |
| Number | Name | Date | Kind |
|---|---|---|---|
| 5093794 | Howie et al. | Mar 1992 | A |
| 5111391 | Fields et al. | May 1992 | A |
| 5353229 | Tanaka | Oct 1994 | A |
| 5394324 | Clearwater | Feb 1995 | A |
| 5467268 | Sisley et al. | Nov 1995 | A |
| 5504837 | Griffeth et al. | Apr 1996 | A |
| 5586219 | Yufik | Dec 1996 | A |
| 5596502 | Koski et al. | Jan 1997 | A |
| 5638494 | Pinard et al. | Jun 1997 | A |
| 5732078 | Arango | Mar 1998 | A |
| 5802396 | Gray | Sep 1998 | A |
| 5826040 | Fargher et al. | Oct 1998 | A |
| 5826239 | Du et al. | Oct 1998 | A |
| 5832483 | Barker | Nov 1998 | A |
| 5870545 | Davis et al. | Feb 1999 | A |
| 5937388 | Davis et al. | Aug 1999 | A |
| 5943652 | Sisley et al. | Aug 1999 | A |
| 5953229 | Clark et al. | Sep 1999 | A |
| 5963911 | Walker et al. | Oct 1999 | A |
| 6014673 | Davis et al. | Jan 2000 | A |
| 6041306 | Du et al. | Mar 2000 | A |
| 6052684 | Du | Apr 2000 | A |
| 6078982 | Du et al. | Jun 2000 | A |
| 6226273 | Busuioc et al. | May 2001 | B1 |
| 6263358 | Lee et al. | Jul 2001 | B1 |
| 6321207 | Ye | Nov 2001 | B1 |
| 6374227 | Ye | Apr 2002 | B1 |
| 6578005 | Lesaint et al. | Jun 2003 | B1 |
| 7065493 | Homsi | Jun 2006 | B1 |
| 20020004827 | Ciscon et al. | Jan 2002 | A1 |
| 20020029213 | Borissov et al. | Mar 2002 | A1 |
| 20030083926 | Semret et al. | May 2003 | A1 |
| 20040010592 | Carver et al. | Jan 2004 | A1 |
| Number | Date | Country |
|---|---|---|
| 1 226 497 | Jul 2005 | EP |
| 2194086 | Feb 1988 | GB |
| 2322037 | Aug 1998 | GB |
| WO 9515635 | Jun 1995 | WO |
| WO 96 03692 | Feb 1996 | WO |
| WO 9822897 | May 1998 | WO |
| WO 9911003 | Mar 1999 | WO |
| WO 9917194 | Apr 1999 | WO |
| WO 0129663 | Apr 2001 | WO |
| Number | Date | Country | |
|---|---|---|---|
| 20040088206 A1 | May 2004 | US |