In this section we first define how we model agents, capabilities and tasks. Then we ... Usually, V (tj,C) is zero if there is a capability r for which âaiâC bi r < bj.
Scalable Situated Task Allocation Mathijs de Weerdt and Tomas Klos CWI, Amsterdam
Abstract. Existing task allocation methods broadcast a request when they do not know who to ask for a certain task. In many situations this is not a good idea, either because of the burden on all other agents, or because not everyone can be trusted with the information that this task is requested. When considering coalitions, existing methods try all combinations, but sometimes need to limit the maximum coalition size because of the computational complexity. We think that in most applications it makes much more sense to limit the coalitions that are considered by the structure of the network and reputations of the agents.
1
Introduction
Given the tasks that need to be fulfilled, how to determine who should do what? Agents have different capabilities, and it is not known exactly who can do what. It is not a good idea to bother every agent with questions on whom to approach or whether they can help. One way to deal with this is to only approach agents that are close to you in some sense. This closeness can be represented in a network and expressed by reputation values. The idea is that one only wants to work with someone who has a good reputation, in whatever way that is established. In this paper we first give a more abstract formulation of this problem of situated task allocation, and we study the theoretical complexity of some variants of the problem. Then we discuss the setup of our experiments. Finally, in Section 5.1 we give a list of possible extensions for our experimental work.
2
Background
The model for the task allocation problem we use is adapted from the one by Shehory and Kraus [3]. First we give a brief summary of their work. 2.1
“Basic” task allocation
In this section we first define how we model agents, capabilities and tasks. Then we show how a task allocation can be described and which task allocations are preferred over others. Each agent has a non-negative value for each capability that denotes the level of this capability. If a capability is zero, an agent does not have this ability at all, if it is very large, the agent can (almost) perfectly perform any task for which this capability is required. Definition 1. For each
agent ai of a set of n agents A = {a1 , a2 , . . . , an } we have a vector of r capabilities B i = bi1 , bi2 , . . . , bir where each capability bij ∈ [0, ∞i. A task requires some minimal capabilities to be completed successfully. Definition 2. Each task tj of a set of m tasks T = {t1 , t2 , . . . , tm } has a vector of r capabilities B = D E j j j b1 , b2 , . . . , br that denotes the minimal capability required for successfully completing the task. Each task requires at least one agent, such that the sum of their capabilities is larger than (or equal to) the minimal capability required for the task. Such a subset of agents is called a coalition, denoted by C (i.e. C ⊆ A). The utility of a task depends on the coalition that will perform the task. Definition 3. The global utility of a task executed by a coalition is defined by a function V : T ×2A → R+ .
For example, the utility of assigning a task t3 to a coalition of two agents {a5 , a8 }, is P denoted by the following: V (t3 , {a5 , a8 }). Usually, V (tj , C) is zero if there is a capability r for which ai ∈C bir < bjr and positive otherwise. For some tasks, using a much higher capability than strictly required may result in a (somewhat) higher utility, but for other tasks it does not matter. In general more agents will lead to a slightly lower value, because of some coalition overhead. (And of course, this value also will be divided over more agents, reducing the attractiveness of large coalitions even further.) Definition 4. Task allocation is the problem of finding a coalition Cj for each task tj such that P j=1,...,m V (Cj , tj ) is maximal. 2.2
Complexity results
Theorem 1. The problem of task allocation is NP-complete [3]. Proof. The hardness result can be shown by a reduction from set covering. 2.3
Reputations
In many applications, agents do not exactly know their own capabilities, nor those of others. Agents do, however, have at least some idea. We assume that agents have an estimate of the capabilities of their neighbouring agents:
Definition 5. Each agent ai has a capability matrix Bi = Bi1 , Bi2 , . . . , Bini that describes its estimation of the capabilities Bij of all its ni neighbouring agents aj ∈ A. Our idea is to use this information to determine the estimated optimal task allocation. In this context, ‘neighbouring agents’ refers to those agents a particular agent has interacted with previously, or about whom the agent has received information from others who have interacted with them. In all cases, we assume that other agents’ assessments of a given agent’s capabilities are just estimates, obtained through experience, and that the true values of an agent’s capabilities are unknown. 2.4
Our goal
Our goal is to construct a distributed, localized algorithm that gives us a task allocation, by using reputation information about capabilities rather than global knowledge about true capabilities. In addition, the distributed and localized nature of the algorithm will decrease communication overhead and allow it to be executed in settings where the assumptions required for centralized algorithms do not hold.
3
A Decentralized, Scalable Algorithm
We assume that the agents are connected in a network, and we will exploit this fact in our algorithm. (The dynamic formation and adaptation of the network on the basis of experiences and exchange of reputation information are topics for future work.) The network can be represented by a directed graph, with agents as vertices and edges between them when they have interacted before, or in some other way have an assessment of each other’s capabilities. For each one of an agent’s r capabilities, the agent may have connections with other agents, representing those other agents’ estimates of the value of that capability. Another agent will typically have an estimate of an agent’s capability when they have been part of the same coalition in the past, in which case they can update their estimate of each other’s capabilities on the basis of the performance of the coalition. Tasks arrive in the network at the location of particular agents. This agent (rather than a centralized institution) will then be responsible for the construction of a coalition assigned with the execution of the task. To this end, the agent will search his personal neighborhood if his own capabilities are insufficient for executing the task. Each link to another agent’s capability is weighted by the agent’s assessement or estimate of the value of that capability, while the agent only has links to other agents’ capabilities to the
extent that it has been in a coalition involving that other agent’s capability in the past. For now, as mentioned above, we regard the network and the weights as fixed, and focus on the algorithm for constructing the coalition. Associated with each weight (capability assessment) is a confidence measure, which expresses how certain the agent is of that value. For neighbors located at a larger distance, the agent’s confidence in its assessment is likely to be smaller. The agent can use this information as follows. For each capability required for executing the task, the agent searches his neighborhood. The value that a particular neighbor’s capability contributes to the (potential) coalition is estimated by a function of the weight and the confidence measure.
4
Experimental setup
We compare our algorithm with an adaptation of Shehory’s and Kraus algorithms by Rahwan and Jennings [2], and on different networks. We measure communication complexity as well as computation time and the value of the resulting allocation. We would also like to compare our results with a simulation using a network structure that represents today’s communication structure in disaster recovery. 4.1
Research questions
– What is a good algorithm for situated task allocation? – What is the influence of the network structure (expressed in graph properties – Jonne) on the required computation time and the value of the resulting allocation? And how does it compare to, e.g. the algorithms by Shehory and Kraus? 4.2
Algorithm
We give a sketch of the algorithm we are going to implement initially. For each task, the agent given the task t does the following: 1. It creates a coalition C that includes only itself. 2. While this coalition C cannot perform the task t with sufficient quality (a) Select a set of neighbours of the agents in C that are expected to help attaining the task. 3. Find the minimal subset of C to deal with t, e.g. using Shehory and Kraus’s coalition formation algorithm.
5
What next?
Randall Davis and Reid Smith [1] tell us that agents can “simply describe the tasks to the whole group”. However, this is often neither desired nor feasible. 5.1
Extensions
The problem can be changed somewhat to make it more interesting. In order of importance (in our opinion), we would like to deal with: – – – –
Update reputation information Change network New tasks come in, how about optimality in dynamic task allocation? Interaction effects, i.e., some combinations of agents may just turn out to work pretty bad (because they don’t like each other)
– Refine a task if it cannot be done by one agent. (Task refinement) (In the general task allocation problem tasks are refined within a coalition after the allocation has been made.) Maybe use the same model for plans as Adriaan and/or the VU. – Introduce task dependencies (planning) – Allow decommitment – Introduce local utilities (see Section B.1) – Find out possibilty and impossibility results (theoretical) – Related to reputations, maybe you would like to reallocate tasks if task execution has not been started yet (or has failed), and some improvement can be made. (Reallocation) – Other domains than task allocation, for example resource allocation, or information sharing. (Other domains) – Deal with each agent’s description of its own capabilities differently. For example, an agent itself may better know whether it has time or other constraints. For example based on its plan. (Personalize)
A A.1
Background Set covering
Definition 6. The minimum set covering problem is defined as follows: given a collection C of a finite set S and a positive integer K ≤ |C|, does C contain a cover for S of size K or less, i.e., a subset C 0 ⊆ C with |C 0 | ≤ K such that every element of S belongs to at least one member of C 0 ? A.2
Coalition formation algorithm
In this section we summarize the coalition formation algorithm by Rahwan and Jennings [2]. The idea is based on the fact that all possible coalitions can be enumerated in a unique way. When each agent in a set of n agents is assigned a unique number i in [1, . . . , n], the coalitions for which agent i should calculate the coalition values can also be determined uniquely. Therefore, no communication is required on forehand. The enumeration is done for each coalition size separately to distribute the load evenly over the agents (larger coalitions require more calculations). Which coalitions to handle? An agent i knows which coalitions of size s out of n agents it should deal with as follows. First, we assume that for each size s the coalitions are ordered lexicographically, and n always with the smallest agent number up front. The number of coalitions to calculate is Ns = , so s N for agent i this leaves at least Ns,i = ns . This leads to the index of the coalition at which agent i should start: indexs,i = i∗ Ns,i . According to Rahwan, the coalitions can then be constructed using a Pascal s+x−2 array, i.e., Ps,x = . The first agent in the coalition (with the lowest index) changes for the s−1 x-th time at index Ps,x , therefore, the first agent can be determined by the number n − s + 1 − x + 1 given the smallest x such that Ps,x ≥ indexs,i . In a similar way each subsequent agent can be found using an index of indexs,i − Ps,x−1 . This method, however, requires the calculation of a Pascal array, or of a couple of permutations. Improvements can be found in [4, 5].
B B.1
Old ideas Local utility
Besides receiving a part of the global utility from Definition 3, agents can also have their own, local, utility. For example, think of task allocation within a company or among the parties involved in disaster recovery. – We assume that each agent gets a part of the global utility. For example, n1 .
– In the general case where tasks are allocated to coalitions of agents, we assume that each agent gets a part of the utility of the task assigned to each coalition it is in (defined by V ). – We assume that each agent also has a local utility that refers to its own costs of executing a task, but we also assume that each agent includes some cost for not doing any task at all (because it may be bad for its (relative) reputation when other agents improve their reputation).
References 1. Randall Davis and Reid Smith. Negotiation as a metaphor for distributed problem solving. Artificial Intelligence, 20(1):63–109, January 1983. 2. Talal Rahwan and Nicholas R. Jennings. Distributing coalitional value calculations among cooperative agents. In Proceedings of the Twenty-Secondth National Conference on Artificial Intelligence (AAAI-05), pages 152–159, 2005. 3. O. Shehory and S. Kraus. Methods for task allocation via agent coalition formation. Artificial Intelligence, 101(1– 2):165–200, May 1998. 4. Martha Torres, Alfredo Goldman, and Junior Barrera. A parallel algorithm for enumerating combinations. In International Conference on Parallel Processing (ICPP’03), pages 581–589, 2003. 5. B.B. Zhou, R.P. Brent, X. Qu, and W.F. Liang. A novel parallel algorithm for enumerating combinations. In International Conference on Parallel Processing (ICPP’96), volume 2, pages 70–74, 1996.