# A Social Multi-Agent Cooperation System Based on Planning and Distributed Task Allocation
## 6 Evaluation  
To evaluate our proposed solution for distributed task allocation in a multi-agent system, we test its efficiency compared with a second approach [37] and the greedy distributed allocation protocol (GDAP) [38]. We choose these two approaches because they are closed and similar to our work. With the second approach [37], we find three kinds of agents: the manager (the same as the initiator agent in this paper); the participant (the same as the planning agent in this paper), which offers to perform the announced task; and the mediator, which helps the manager to find resources by requesting its own neighbors. This approach is good but gives the priority to direct linked neighboring agents (for the manager), which could affect the solution. The main difference between the second \begin{table}
\begin{tabular}{c l} \hline \hline
**Transition** & **Meaning** \\ \hline t0 & The initiator agent needs to apply a distributed task allocation \\ \hline t1 & The initiator agent sends a request to a participant agent, \\ \hline t3 & The initiator agent receives a positive answer from the participant agent, \\ \hline t4 & The initiator agent receives a negative answer from the participant agent, \\ \hline t5 & The initiator agent accepts the proposition from the participant agent, to apply the new \\ \hline t7 & The initiator agent refuses the proposition from the participant agent, to apply the new \\ \hline t9 & A _participant agent,_ receives the request from the initiator agent for distributed task allocation \\ \hline t10 & The _participant agent,_ receives a disapproval message from the initiator agent \\ \hline t11 & The _participant agent,_ sends a proposition to the initiator agent \\ \hline t12 & The _participant agent,_ receives an approval message from the initiator agent \\ \hline t13 & The _participant agent,_ send a confirmation to the initiator agent \\ \hline t16 & The _participant agent,_ refuses to help the initiator agent \\ \hline \hline \end{tabular}
\end{table} 
Table 1: The meaning of the main transitions related to Figure 5.  
approach [37] and our solution is as follows: in the second approach [37], the neighbors can be related to the manager as well as the mediator, but in our solution, the neighbors are only related to the initiator agent having the requested resources that can be involved in the solution. The greedy distributed allocation protocol (GDAP) [38] can be described briefly as follows: there are many manager agents (each manager is responsible for a task) and many contractor agents (each contractor controls a resource). All manager agents (the same as the initiator agent in this paper) try to find contractor agents (the same as the participants in this paper) who can help them with their tasks. Contractor agents offer help to the manager agent by sending a bid (consisting of all the available resources to be allocated to the task). In the end, there is a possibility that the manager agent collects all the required resources and so informs the corresponding contractors. The GDAP can lead to many unallocated tasks due to static neighbors. In our approach, we try to resolve this problem by dynamically discovering the neighboring agents providing the requested resources. We implemented the three approaches for the distributed task allocation algorithm in the JADE Framework, and we tested them. The performance of our solution is evaluated through a different number of neighboring agents. The only changing variable in this setting is the average number of neighbors. This setting, as shown in Table 2, intends to represent the influence of neighbors' numbers on the performance of three approaches. The algorithms have been evaluated according to three criteria in this experiment: the communication cost, the execution time and the utility ratio. Firstly, we compare the three approaches by counting the maximum number of exchanged messages between agents after each distributed task allocation scenario.