Keywords

1 Introduction

In recent years, multi-robot task allocation problem, namely MRTA, has attracted extensive attention. MRTA problem can be regarded as an optimal allocation problem. Its goal is to optimally allocate a group of robots to a group of tasks, so as to optimize the performance of the whole system under a set of constraints. Common MRTA methods include market-based methods and optimization based methods. The market-based approach is based on contract net protocol and uses the way of auction to allocate tasks. [1] proposes two decentralized auction algorithms CBAA and CBBA to coordinate a fleet of autonomous vehicles. A stochastic clustering auction is applied to address the problem of optimal task allocation for heterogeneous teams in [2]. The method based on optimization focuses on finding the optimal solution from a set of feasible solutions. For example, [3] proposes PSO-based distributed algorithm for dynamic task allocation. [14] presents an ACO-based heuristic algorithm for solving the constraint task allocation problem.

According to the taxonomy for MRTA proposed by [4], the coalition formation problem belong to ST-MR-IA type. Since it needs to assign multiple single-task robots to execute multi-robot task, it is mathematically equivalent to the set partition problem [5] and it is a NP-hard problem. [6] points out the limitations of multi-agent coalition formation algorithm in practical robot system, and then proposes a multi-robot coalition formation algorithm applied in practical robot system. [7] concludes and analyses market-based multi robot coordination approaches. [8] proposes a dynamical formed heterogeneous robot teams approach to execute coordinated tasks based on market-based allocation scheme.

The above coalition formation approach does not consider the resource constraints of actual robots and tasks. [9] proposes a leader-follower based coalition task allocation methodology for a group of heterogeneous mobile robots with resource constraints. In [10] and [15], they considers resource constraints of UAVs and tasks and a two-stage coalition formation algorithm is proposed for multiple UAVs to perform multiple tasks. Quantum Multi-Objective Particle Swarm Optimization (QMOPSO) is proposed in [11] to address task allocation in large-scale natural disasters. A hedonic coalition formation game model is used to adapt to wireless communication networks in [12].

Based on the sequential coalition algorithm proposed in [13], this paper considers the priority and path cost of executing tasks while considering resource constraints.

2 Modeling of Resource Constrained Multi-robot System

In the multi-robot system, we assume that there are N robots and M tasks. Each robot is denoted by R(i), where \(i=1,2,...,N\) is the index of robots and N is the total number of robots. Each task is denoted by T(j), where \(j=1,2,...,M\) is the index of tasks and M is the total number of tasks.

2.1 Resource Modeling

In multi robot system, resource capability is denoted by \({c}_k\) where \(k=1,2,...,K\) is the index of resources and K is the total number of resources. \({c}_k\) is consisted of several elements which can contribute to different capability to accomplish an action. A set \({S}_k\) that contains all elements of \({c}_k\) is denoted by \(S_k=\{(s_l)_k|(s_l)_k>0, l=1,2,...,L_k\}\), where l is the index of different elements, \(L_k\) is the total number of elements in \({c}_k\). \((sl)_k\) is the maximum value of the lth element.

2.2 Robot Modeling

Each robot carries n different types of resource with limited quantity which can be denoted by \(R_i=< r_{i1},r_{i2},...,r_{in}>\), where \(R_i\) is the resource capability vector of the \(i^{th}\) robot. \(r_{ik} (k = 1,2,...,n)\) is the \(k^{th}\) resource which can be denoted by \(r_{ik}=< r_{ik}^{1},r_{ik}^{2},...,r_{ik}^{L_k}>\), where \(r_{ik}^{m} (m = 1,2,...,L_k)\) is the \(m^{th}\) element of resource \({c}_k\).

2.3 Task Modeling

There are two types of task constraints: robot-level constraints and coalition-level constraints. Robot-level constraints are the constraints that each robot individual needs to meet. Coalition-level constraints are the constraints that the alliance as a whole needs to meet.

Robot-level constraints can be denoted by \(T_j^A={<}t_{j1}^a,t_{j2}^a,...,t_{jn}^a{>}\),where \(T_j^A\) is resource capability vector by the robot-level constraints of the \(j^{th}\) task. \(t_{jk}^a (k = 1,2,...,n)\) is the \(k^{th}\) resource which can be denoted by \(t_{jk}^a={<}t_{jk}^{a1},t_{jk}^{a2},...,t_{jk}^{aL_k}{>}\), where \(t_{jk}^{am} (m = 1,2,...,L_k)\) is the \(m^{th}\) element of resource \({c}_k\). \(t_{jk}^{am} (m = 1,2,...,L_k)\) is normalized between 0 and 1.

Coalition-level constraints on number of resource can be denoted by \(N_j^C={<} n_{j1}^c,n_{j2}^c,...,n_{jn}^c {>}\), where \(N_j^C\) is resource number vector by the coalition-level constraints of the \(j^{th}\) task. \(n_{jk}^c \ge 0 (k = 1,2,...,n)\) is the number of the \(k^{th}\) resource.

Coalition-level constraints on elements of resource can be denoted by \(T_j^C={<} t_{j1}^c,t_{j2}^c,...,t_{jn}^c {>}\), where \(T_j^C\) is resource capability vector by the coalition-level constraints of the \(j^{th}\) task. \(t_{jk}^c (k = 1,2,...,n)\) is the \(k^{th}\) resource which can be denoted by \(t_{jk}^c={<} t_{jk}^{c1},t_{jk}^{c2},...,t_{jk}^{cL_k} {>}\), where \(t_{jk}^{cm} (m = 1,2,...,L_k)\) is the \(m^{th}\) element of resource \({c}_k\). \(t_{jk}^{cm} (m = 1,2,...,L_k)\) is normalized between 0 and 1.

2.4 Priority Modeling

When the robots execute multiple tasks, the order of tasks execution needs to be considered. Different order of task execution will lead to different utility and task completion. In this paper, priority is used to define the order of task execution. The priority of tasks can be denoted by the following formula:

$$\begin{aligned} Pr(j)=\omega _1\times Re(j)+\omega _2\times \sum _{p=1}^{n}\sum _{q=1}^{L_k}t_{jp}^{aq}, \end{aligned}$$
(1)

where Pr(j) is the priority of the \(j^{th}\) task. \(\omega _1\) and \(\omega _2\) are two weight parameters and their sum is 1. Re(j) is the \(j^{th}\) task’s reward value, which indicates the benefits of performing tasks T(j). \(\sum _{p=1}^{n}\sum _{q=1}^{L_k}t_{jp}^{aq}\) is the sum of resources required for each task. The greater the Pr(j), the more prior the task is to execute.

2.5 Utility Modeling

We define the number of useful resources required by \(N_j^C\) in the calculation of utility as \(n_{ik}\), which can be denoted by the following formula:

$$\begin{aligned} n_{ik}= \left\{ \begin{aligned}&\mathrm {min(1,n_{jk}^c)}~~\mathrm {if}~r_{ik}\ge t_{jk}^c\\&0~~~~~~~~~~~~~~~\mathrm {otherwise} \end{aligned} \right. \end{aligned}$$

\(n_{ik} = 1\) if and only if \(r_{ik}\ge t_{jk}^c\) and \(n_{jk}^c\ge 1\). Otherwise, \(n_{ik} = 0\).

In this paper, we define the utility of the mth functional element of the resource \(c_k\) on robot R(i) as \(u(r_{ik}^m)\), which can be calculated as follows:

$$\begin{aligned} u(r_{ik}^m)=(1-e^{-r_{ik}^m})\times Re(j) \end{aligned}$$
(2)

Then the profit of robot R(i) performing task T(j) is defined as \(p_j\). \(p_j\) is calculated as follows:

$$\begin{aligned} p_j = \sum _{k=1}^{n}\{\lambda _{jk}\frac{\mathrm{min(n_{jk}^c,n_{ik})}}{L_k}\sum _{m=1}^{L_k}u(r_{ik}^m)\}\times Re(j), \end{aligned}$$
(3)

where \(\lambda _{jk}\in [0,1]\) denotes a task-specified weight parameter for measuring the relative importance of different resources in performing T(j). \(\lambda _{jk}\) does not necessarily sum to 1.

We also consider the cost of completing a task in this paper. The cost of a task can be calculated as follows:

$$\begin{aligned} \begin{aligned} c_j = S_{ij}\times R(i)_{fuel}, \end{aligned} \end{aligned}$$
(4)

where \(S_{ij}\) is the Euclidean distance between robot R(i) and task T(j). \(R(i)_{fuel}\) is the fuel consumption of robot R(i).

According to the formula (3) and (4), the utility of robot R(i) performing task T(j) can be defined as follows:

$$\begin{aligned} u_{i}(t_j) = p_j-c_j. \end{aligned}$$
(5)

Let C(j) denotes the robot coalition of task T(j). Hence, the objective function is proposed as follows:

$$\begin{aligned} \mathrm {Maximize} :\sum _{j=1}^{M}u^{c}(t_j) \end{aligned}$$
(6)

Subject to:

$$\begin{aligned} \sum _{i=1}^{C(j)} N_i(j)\ge N_j^C, \end{aligned}$$
(7)

where \(u^{c}(t_j)\) is the utility of robot coalition C(j) for performing task T(j).

3 Coalition Formation Algorithm

To solve the multi-robots task allocation with resource constraints, we consider the task priority before allocating tasks and propose the coalition formation algorithm. The purpose of the coalition formation algorithm is to form a robot coalition to perform tasks and maximize the total utility. The steps of coalition formation algorithm is as follows.

3.1 Determining Task Priority (Line 2)

    A.1)The centralized sever collects all task’s robot-level constraints \(T_j^A\) and calculates the priority \(P_r(j)\) of the \(j^{th}\) task according to formula (1).

A.2)Then the centralized sever issues tasks to the robots in descending order of priority.

figure a

3.2 Selecting Qualified Robots (Lines 3–8)

    B.1) When tasks are distributed, the first step is to find qualified robots. The \({\textbf {qualified robot}}\) is defined when it can meet \( robotfree(i) ~~ \& \& ~~ R_i\ge T_j^A\), where robotfree(i) is a set including all robots that do not participate in any task. In the initial stage, all robots belong to this set. \(R_i\ge T_j^A\) means that the robot can meet robot-level constraints.

B.2) Otherwise, what does not satisfy the above formula belongs to disqualified robot. The disqualified robot can not participate in the execution of any task.

3.3 Finding the Robots with the Highest Utility (Lines 10–18)

    C.1) The key of the coalition formation algorithm is to find the robots with the highest utility in a greedy manner. When the number of cycles P is less than the number of robots N, enter the cycle and initialize the parameters \(r_{max}\), \(u_{max}\), \(N_{max}\).\(r_{max} = 0,u_{max} = 0,N_{max} = 0\), where \(r_{max}\) is the robot with the highest utility. \(u_{max}\) is the highest utility of robot in coalition. \(N_{max}\) is the number of necessary resource of \(r_{max}\). The three parameters will be updated in C.4).

C.2) If it satisfies the formula \(r_{ik} \ge t_{jk}^c\), where it proves that the \(k^{th}\) resource of qualified robot meets the coalition-level constraints and the number of necessary resources and the utility of the robot will be updated in C.3).

C.3) Next step is to update the number of necessary resources and the utility of the robot i. \(\hat{n}_{ik} = \mathrm min(n_{ik}(t_j),(n_{jk}^c)_P)\), \(\hat{u}_{i}(t_j) = \sum _{k=1}^{n}\hat{n}_{ik}u_{ik}(t_j)\), where \(\hat{n}_{ik}\) is the number of the \(k^{th}\) updated resource. \((n_{jk}^c)_P\) is the number of the \(k^{th}\) resource on coalition-level constraints for the \(P^{th}\) cycle. \(\hat{u}_{i}(t_j)\) is the updated utility of R(i) for task T(j).

C.4) When \(\hat{u}_{i}(t_j) > u_{max}\), update the parameters \(r_{max}\), \(u_{max}\), \(N_{max}\). \(r_{max} = r_{i}\), \(u_{max} = \hat{u}_{i}(t_j)\), \(N_{max}(k) = \hat{n}_{ik}\).

3.4 Forming the Coalition of Robots (Lines 22–23)

    D.1) After finding the robots with the highest utility, it needs to add the \(r_{max}\) to the coalition C(j). The utility \(u_{max}\) of the \(r_{max}\) will be added to \(u^c(t_j)\). The number of necessary resources of \(r_{max}\) will be deleted from the coalition-level constraints \(N_{p}^c\). \(C(j)=C(j)+r_{max}\), \(u^c(t_j)=u^c(t_j)+u_{max}\), \(N_{p+1}^c=N_{p}^c-N_{max}\).

D.2) Once the \(r_{max}\) joins the coalition C(j), it means that the \(r_{max}\) will no longer participate in the execution of other tasks. Therefore, the robot will be removed from the set of \({\textbf {qualified robot}}\) to the set of \({\textbf {disqualified robot}}\).

3.5 Controlling Cycle Conditions (Lines 24–30)

The cycle will continue until \(N_{p+1}^c=0\), then judge the coalition whether meets resource distribution constraint. If it satisfies, then return the coalition C(j) and its utility \(u^c(t_j)\).

4 Simulations

In this section, we will assign 3 different tasks to 10 heterogeneous robots to verify the effectiveness of the priority based coalition formation algorithm. Table 1 shows the tasks’ resources constraints in this simulation.

Table 1. Tasks’ resources constraints

Table 2 shows the 10 robots’ resources in the simulation.

Table 2. Robot resources

In the simulation, task’s reward value Re(j) is listed as follows: \(Re(1) = 100\), \(Re(2) = 150\), \(Re(3) = 200\). To decide the priority of the three tasks in the simulation, we set the weight parameters \(\omega _1 = 0.3\), \(\omega _2 = 0.7\). According to the formula (1), the value of the three tasks’ priority Pr(j) is calculated as follows: \(Pr(1) = 32.31\), \(Pr(2) = 46.26\), \(Pr(3) = 61.96\). The weight parameter for measuring the relative importance of different resources in performing T(j) is listed as follows: \(\lambda _{1k} = [0.9;0.9;0.8;1;0;0;0]\), \(\lambda _{2k} = [0;0;0;0;1;0;0]\), \(\lambda _{3k} = [0.9;0.9;0.8;0;1;0;0]\).

In the simulation, the positions of robots and tasks are randomly distributed, the fuel consumption of each robot is 3. The three tasks will be assigned to the robots according to the value of the task’s priority.

Fig. 1.
figure 1

Simulation result. (a) Initial distribution of robots and tasks. (b) The result of task allocation.

Figure 1 shows the result of the above simulation. Figure 1(a) presents the initial distribution of robots and tasks in a plane area. The blue five pointed star represents the task, and the red six pointed star represents the robot or agent. Figure 1(b) shows the result of coalition formation task allocation. The straight line with an arrow between the task and the robot represents that the corresponding robot performs the task along the path.

Fig. 2.
figure 2

Comparison of task completion time

Figure 2 shows the average task completion time of 100 repeated tests under the two methods. On the left is the average task completion time of the coalition formation algorithm considering only resource constraints, and on the right is the average task completion time of the coalition formation algorithm based on priority and considering path cost proposed in this paper. It is obvious that the task completion time of the proposed method is less than that of the previous algorithm, which can improve the efficiency of task completion.

5 Conclusions

This paper proposes a coalition formation algorithm with task priority and considers path cost in the calculation of utility to address MRTA problem. Since the robots forming the coalition are selected in a sequential greedy way, this method can optimally solve the multi robot task allocation problem and ensure the highest overall utility. Simulation result shows that compared with the method considering only resource constraints, the execution time of the task is effectively shortened after considering the path cost, so the efficiency of task completion can be improved.