This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Exploiting Structure in the Bottleneck Assignment Problem

Mitchell Khoo    Tony A. Wood    Chris Manzie    Iman Shames Department of Electrical and Electronic Engineering at the University of Melbourne, (e-mail: [email protected]). (e-mail: {wood.t,manziec,iman.shames}@unimelb.edu.au)
Abstract

An assignment problem arises when there exists a set of tasks that must be allocated to a set of agents. The bottleneck assignment problem (BAP) has the objective of minimising the most costly allocation of a task to an agent. Under certain conditions the structure of the BAP can be exploited such that subgroups of tasks are assigned separately with lower complexity and then merged to form a combined assignment. In particular, we discuss merging the assignments from two separate BAPs and use the solution of the subproblems to bound the solution of the combined problem. We also provide conditions for cases where the solution of the subproblems produces an exact solution to the BAP over the combined problem. We then introduce a particular algorithm for solving the BAP that takes advantage of this insight. The methods are demonstrated in a numerical case study.

keywords:
Algorithms; Decision-making; Graph theory; Agents; Optimization problems.
thanks: The research is funded by Defence Science and Technology Group through research agreements MyIP: 7558 and MyIP: 7562.

1 Introduction

An assignment problem arises when multiple tasks are to be allocated to multiple agents. For example, situations where jobs are to be assigned to a group of workers or passengers positioned at different locations in a city are to be picked up by a fleet of cars. Tasks can be assigned based on many different criteria. See Gerkey and Matarić (2004), Burkard et al. (2009), and Pentico (2007) for reviews on the different objectives for assignment problems.

One particular objective is to assign tasks to agents such that the total cost of the assignment is minimised. This type of assignment problem is called the linear assignment problem (LAP). The Hungarian Method in Kuhn (1955) is a well-studied algorithm for solving the LAP. In Chopra et al. (2017), a distributed version of the Hungarian Method is presented; a distributed algorithm is one that does not rely on a centralised decision-maker for computation. In Bertsekas and Castañon (1991) and Zavlanos et al. (2008), so-called auction algorithms are presented to solve the LAP. A greedy algorithm is one where tasks are allocated to agents sequentially. Each allocation is made according to the lowest cost amongst the remaining choices. In Choi et al. (2009), the Consensus-Based Auction Algorithm (CBAA) is presented, which is a greedy algorithm used to obtain suboptimal solutions to the LAP with low computational cost compared to algorithms for solving the LAP exactly.

Another objective is to assign tasks to agents such that the costliest allocation is minimised, which corresponds to the bottleneck assignment problem (BAP). The BAP has application in time-critical problems. For example in Shames et al. (2017), a set of decoys must travel to a set of positions such that the worst-case positioning time is minimised. In Garfinkel (1971), a threshold algorithm is presented, where a threshold is iteratively increased until it is possible to find an assignment containing only allocations of tasks to agents with costs smaller than the threshold. In Gabow and Tarjan (1988); Punnen and Nair (1994), the bound on the completion time of the threshold algorithm is reduced moving the threshold according to a binary search pattern. In Derigs and Zimmermann (1978), an algorithm is presented that iteratively solves the BAP over an increasing subset of agents and tasks. The subset size is increased until it contains all the agents and tasks. In Khoo et al. (2019), a distributed algorithm for solving the BAP is introduced. There are other variants of the BAP. Such variants include the scheduling problems in Carraresi and Gallo (1984) and Aggarwal et al. (1986), which require assigning more than one task per agent. In fact, this can be regarded as an example of a time-extended assignment from the taxonomy in Gerkey and Matarić (2004).

In this paper, we focus on the BAP and restrict the scope to having each agent carry out at most one task and each task requiring at most one agent for completion. The contribution of this work is to investigate structure that can be exploited to solve the BAP efficiently. Consider partitioning the sets of agents and tasks, i.e., splitting the assignment problem into two smaller BAPs. We can use the two solutions of the subproblems for solving the combined BAP. Consider the following three ways to exploit the structure of the BAP. We relate each scenario to a ride-sharing application for illustration.

For the first scenario, assume the sets of agents and tasks were partitioned equitably, i.e., none of the subproblems has fewer tasks than agents. Merging the solutions of the two subproblems forms a valid but possibly suboptimal assignment in the combined problem. In fact, the cost of the merged assignment is an upper bound on the cost of the optimal BAP solution. In a ride-sharing application, two rival companies may assign their own vehicles to their own customers. However, they may find that pooling their resources allows a better service for all customers.

For the second scenario, we define a bottleneck cluster as a group of agents and tasks with small allocation costs amongst each other. When the two subproblems consist of two separate bottleneck clusters, we can determine conditions under which the solutions of the subproblems form an exact solution to the combined problem. Consider two cities each with their own sets of vehicles and customers. If the cities were geographically far apart, there is no benefit for vehicles in one city to serve customers in the other city.

The third scenario relates to the algorithm in Khoo et al. (2019). Knowing the solutions to the two subproblems leads to information about task-to-agents allocations that are particularly costly. We can eliminate suboptimal options when the algorithm is initialised to solve the combined problem. Assume a group of customers has been assigned to vehicles. Then, a new group of customers requests to be picked up. By only considering the idle vehicles for the new customers and not the previously assigned ones, the resulting assignment problem has lower complexity. The solution from the two subproblems can be used as a warm-start to solving the combined problem.

2 Preliminaries

Given an arbitrary undirected graph 𝒢=(𝒱,)\mathcal{G}=(\mathcal{V,E}) with vertex set 𝒱\mathcal{V} and edge set \mathcal{E}, consider the following definitions found in Hopcroft and Karp (1973) and Khoo et al. (2019).

Definition 1 (Maximum Cardinality Matching)

A matching \mathcal{M} in 𝒢\mathcal{G} is a set of edges such that \mathcal{M}\subseteq\mathcal{E} and no vertex v𝒱v\in\mathcal{V} is incident with more than one edge in \mathcal{M}. A maximum cardinality matching (MCM) is a matching max\mathcal{M}_{max} in 𝒢\mathcal{G} of maximum cardinality.

Let 𝒜b\mathcal{A}_{b} be a set of agents and b\mathcal{B}_{b} be a set of tasks, where 𝒜bb=\mathcal{A}_{b}\cap\mathcal{B}_{b}=\emptyset. Consider an arbitrary complete bipartite graph 𝒢b=(𝒱b,b)\mathcal{G}_{b}=(\mathcal{V}_{b},\mathcal{E}_{b}) with vertex set 𝒱b=𝒜bb\mathcal{V}_{b}=\mathcal{A}_{b}\cup\mathcal{B}_{b} and edge set b={{i,j}|i𝒜b,jb}\mathcal{E}_{b}=\{\{i,j\}|i\in\mathcal{A}_{b},j\in\mathcal{B}_{b}\}. Let 𝒞(𝒢b)\mathcal{C}(\mathcal{G}_{b}) be the set of all MCMs of 𝒢b\mathcal{G}_{b}. Let w:bw:\mathcal{E}_{b}\mapsto\mathbb{R} map edges to real-valued weights. The BAP for graph 𝒢b\mathcal{G}_{b} is formulated as

BOT(𝒢b):\displaystyle BOT(\mathcal{G}_{b}):\qquad min𝒞(𝒢b)max{i,j}w({i,j}).\displaystyle\min_{\mathcal{M}\in\mathcal{C}(\mathcal{G}_{b})}\max_{\{i,j\}\in\mathcal{M}}\quad w(\{i,j\}). (1)
Definition 2 (Bottleneck edge)

A bottleneck edge of graph 𝒢b\mathcal{G}_{b} is any eargmax{i,j}w({i,j})e\in\arg\max_{\{i,j\}\in\mathcal{M}}w(\{i,j\}), for any MCM \mathcal{M} that is a minimiser of BOT(𝒢b)BOT(\mathcal{G}_{b}).

Definition 3 (Neighbours)

The set of neighbours of vertex v𝒱v\in\mathcal{V} in 𝒢\mathcal{G} is defined as Nv={k|{v,k}}N_{v}=\{k|\{v,k\}\in\mathcal{E}\}.

Note that given a vertex v𝒱v\in\mathcal{V}, kNv\forall k\in N_{v}, vNkv\in N_{k}.

Definition 4 (Path)

Let a sequence of distinct vertices v1,v2,,vl+1𝒱v_{1},v_{2},...,v_{l+1}\in\mathcal{V} be such that for k=1,2,,lk=1,2,...,l, vk+1Nvkv_{k+1}\in N_{v_{k}}. The set of edges 𝒫={{vk,vk+1}}k=1,2,,l\mathcal{P}=\{\{v_{k},v_{k+1}\}\}_{k=1,2,...,l} is then said to be a path between v1v_{1} and vl+1v_{l+1}, with length ll.

Definition 5 (Alternating path)

Given a matching \mathcal{M} and a path 𝒫\mathcal{P}, 𝒫\mathcal{P} is an alternating path relative to \mathcal{M} if and only if each vertex that is incident to an edge in 𝒫\mathcal{P} is incident with no more than one edge in 𝒫\mathcal{P}\cap\mathcal{M} and no more than one edge in 𝒫\\mathcal{P}\backslash\mathcal{M}.

Definition 6 (Free vertex)

Given a matching \mathcal{M}, a vertex v𝒱v\in\mathcal{V} is free if and only if for all w𝒱w\in\mathcal{V}, {v,w}\{v,w\}\notin\mathcal{M}.

Definition 7 (Augmenting path)

Given a matching \mathcal{M} and a path 𝒫\mathcal{P} between vertices vv and vv^{\prime}, 𝒫\mathcal{P} is an augmenting path relative to \mathcal{M} if and only if 𝒫\mathcal{P} is an alternating path relative to \mathcal{M} and vv and vv^{\prime} are both free vertices.

Definition 8

(Alternating tree) Given a matching \mathcal{M}, 𝒢\mathcal{G} is an alternating tree relative to \mathcal{M} if and only if 𝒢\mathcal{G} is a tree and any path between the root vertex of 𝒢\mathcal{G} and every other vertex in 𝒢\mathcal{G} is an alternating path relative to \mathcal{M}.

3 Problem Formulation

Let there be two sets of agents 𝒜1={a1,a2,,am1}\mathcal{A}_{1}=\{a_{1},a_{2},...,a_{m_{1}}\} and 𝒜2={α1,α2,,αm2}\mathcal{A}_{2}=\{\alpha_{1},\alpha_{2},...,\alpha_{m_{2}}\} and two sets of tasks 1={b1,b2,,bn1}\mathcal{B}_{1}=\{b_{1},b_{2},...,b_{n_{1}}\} and 2={β1,β2,,βn2}\mathcal{B}_{2}=\{\beta_{1},\beta_{2},...,\beta_{n_{2}}\}. Define the sets 𝒜3:=𝒜1𝒜2\mathcal{A}_{3}:=\mathcal{A}_{1}\cup\mathcal{A}_{2} and 3:=12\mathcal{B}_{3}:=\mathcal{B}_{1}\cup\mathcal{B}_{2}. Let m3=m1+m2m_{3}=m_{1}+m_{2} and n3=n1+n2n_{3}=n_{1}+n_{2} and assume m1n1m_{1}\geq n_{1} and m2n2m_{2}\geq n_{2}. For k=1,2,3k=1,2,3, define 𝒱k:=𝒜kk\mathcal{V}_{k}:=\mathcal{A}_{k}\cup\mathcal{B}_{k}, k:={{i,j}|i𝒜k,jk}\mathcal{E}_{k}:=\{\{i,j\}|i\in\mathcal{A}_{k},j\in\mathcal{B}_{k}\} and graph 𝒢k:=(𝒱k,k)\mathcal{G}_{k}:=(\mathcal{V}_{k},\mathcal{E}_{k}). Define 𝒟(𝒢b):=argmin𝒞(𝒢b)max{i,j}w({i,j})\mathcal{D}(\mathcal{G}_{b}):=\arg\min_{\mathcal{M}\in\mathcal{C}(\mathcal{G}_{b})}\max_{\{i,j\}\in\mathcal{M}}w(\{i,j\}), the set of solutions to BOT(𝒢b)BOT(\mathcal{G}_{b}) for any bipartite graph 𝒢b\mathcal{G}_{b}.

Assumption 9

Assume we have 1𝒟(𝒢1)\mathcal{M}_{1}\in\mathcal{D}(\mathcal{G}_{1}) and e1argmax{i,j}1w({i,j})e_{1}\in\arg\max_{\{i,j\}\in\mathcal{M}_{1}}w(\{i,j\}), i.e., an arbitrary solution to BOT(𝒢1)BOT(\mathcal{G}_{1}) and a corresponding bottleneck edge of 𝒢1\mathcal{G}_{1}.

Assumption 10

Assume we have 2𝒟(𝒢2)\mathcal{M}_{2}\in\mathcal{D}(\mathcal{G}_{2}) and e2argmax{i,j}2w({i,j})e_{2}\in\arg\max_{\{i,j\}\in\mathcal{M}_{2}}w(\{i,j\}), i.e., an arbitrary solution to BOT(𝒢2)BOT(\mathcal{G}_{2}) and a corresponding bottleneck edge of 𝒢2\mathcal{G}_{2}.

Problem 11

Given Assumptions 9 and 10, find a solution to BOT(𝒢3)BOT(\mathcal{G}_{3}), i.e., find some matching 3𝒟(𝒢3)\mathcal{M}_{3}\in\mathcal{D}(\mathcal{G}_{3}).

In Section 4, we define structures of the BAP that can be exploited to solve Problem 11. Then in Section 5, we discuss a specific algorithm that allows us to exploit some structure of the BAP discussed in Section 4.

4 Structure of the BAP

In this section, we discuss structures of the BAP that can be exploited. We first introduce an upper bound on the weight of a bottleneck edge of 𝒢3\mathcal{G}_{3}, in terms of the bottleneck edges 𝒢1\mathcal{G}_{1} and 𝒢2\mathcal{G}_{2}. Then, we introduce bottleneck clusters and provide conditions when the solution to Problem 11 is found by merging matchings 1\mathcal{M}_{1} and 2\mathcal{M}_{2}.

4.1 A Bound on the Optimal BAP Solution

Theorem 12

Under Assumptions 9 and 10, it holds that max{w(e1),w(e2)}\max\{w(e_{1}),w(e_{2})\} is an upper bound on w(e3)w(e_{3}), where e3e_{3} is a bottleneck edge of 𝒢3\mathcal{G}_{3}.

{pf}

By definition, w(e3)=max{i,j}3w({i,j})max{i,j}w({i,j})w(e_{3})=\max_{\{i,j\}\in\mathcal{M}_{3}}w(\{i,j\})\leq\max_{\{i,j\}\in\mathcal{M}}w(\{i,j\}) for any arbitrary 𝒞3\mathcal{M}\in\mathcal{C}_{3}. Since ~=12𝒞3\tilde{\mathcal{M}}=\mathcal{M}_{1}\cup\mathcal{M}_{2}\in\mathcal{C}_{3}, w(e3)max{i,j}~w({i,j})=max{w(e1),w(e2)}w(e_{3})\leq\max_{\{i,j\}\in\tilde{\mathcal{M}}}w(\{i,j\})=\max\{w(e_{1}),w(e_{2})\}.∎

Given Assumptions 9 and 10, the set 12\mathcal{M}_{1}\cup\mathcal{M}_{2} is an MCM of 𝒢3\mathcal{G}_{3}. This MCM is possibly suboptimal to BOT(𝒢3)BOT(\mathcal{G}_{3}). However, this bound of the BAP allows us to make a decision before solving Problem 11 exactly. If the suboptimal solution is sufficient in our application, there is no need to invest further resources to solve Problem 11 exactly.

4.2 Bottleneck Clusters

We now introduce the novel concept of a bottleneck cluster. In Khoo et al. (2019), conditions for determining if an edge is a bottleneck edge of a given graph are presented. We build on this result and discuss corresponding conditions under which 3=12\mathcal{M}_{3}=\mathcal{M}_{1}\cup\mathcal{M}_{2} is an exact solution to BOT(𝒢3)BOT(\mathcal{G}_{3}) when 𝒢1\mathcal{G}_{1} and 𝒢2\mathcal{G}_{2} are both bottleneck clusters.

Once again, consider an arbitrary complete bipartite graph 𝒢b=(𝒱b,b)\mathcal{G}_{b}=(\mathcal{V}_{b},\mathcal{E}_{b}). Given \mathcal{M} is an MCM of 𝒢b\mathcal{G}_{b}, we define ϕ(𝒢b,):={eb|w(e)<maxew(e)}\phi(\mathcal{G}_{b},\mathcal{M}):=\mathcal{M}\cup\{e\in\mathcal{E}_{b}|w(e)<\max_{e^{\prime}\in\mathcal{M}}w(e^{\prime})\}, the union of \mathcal{M} and the set of edges that have weight strictly smaller than the largest edge in \mathcal{M}. With this tool we define a bottleneck cluster and a critical bottleneck edge.

Definition 13 (Bottleneck cluster)

Let b\mathcal{M}_{b} be a solution to BOT(𝒢b)BOT(\mathcal{G}_{b}). Let e={ab,bb}be=\{a_{b},b_{b}\}\in\mathcal{M}_{b} be a bottleneck edge of 𝒢b\mathcal{G}_{b}. Graph 𝒢b\mathcal{G}_{b} is a bottleneck cluster relative to ee if and only if for any vertex v𝒱bv\in\mathcal{V}_{b}, there exists an alternating path PP between vv and bottleneck task bbb_{b} such that Pϕ(𝒢b,b)P\subseteq\phi(\mathcal{G}_{b},\mathcal{M}_{b}).

Definition 14 (Critical bottleneck edge)

Let \mathcal{M} be an MCM of graph 𝒢b\mathcal{G}_{b}. Edge ece_{c} is a critical bottleneck edge of 𝒢b\mathcal{G}_{b} relative to \mathcal{M} if and only if ecargmaxew(e)e_{c}\in\arg\max_{e\in\mathcal{M}}w(e) and ϕ(𝒢b,)\{ec}\phi(\mathcal{G}_{b},\mathcal{M})\backslash\{e_{c}\} does not contain an augmenting path relative to \{ec}\mathcal{M}\backslash\{e_{c}\}.

Lemma 15 allows us to find a new MCM, which will have at least one less edge with weight maxew(e)\max_{e\in\mathcal{M}}w(e) than \mathcal{M}.

Lemma 15 (Proof in Khoo et al. (2019))

Let \mathcal{M} be an arbitrary MCM of graph 𝒢b\mathcal{G}_{b}. Consider an edge eargmaxew(e)e\in\arg\max_{e\in\mathcal{M}}w(e). An augmenting path Pϕ(𝒢b,)\{e}P\subseteq\phi(\mathcal{G}_{b},\mathcal{M})\backslash\{e\} exists relative to \{e}\mathcal{M}\backslash\{e\} if and only if there exists an MCM \mathcal{M}^{\prime} of 𝒢b\mathcal{G}_{b} such that ϕ(𝒢b,)\{e}\mathcal{M}^{\prime}\subseteq\phi(\mathcal{G}_{b},\mathcal{M})\backslash\{e\}.

Corollary 16

From Lemma 15, it follows that every critical bottleneck edge of 𝒢b\mathcal{G}_{b} is a bottleneck edge of 𝒢b\mathcal{G}_{b}.

An MCM that is a solution to BOT(𝒢b)BOT(\mathcal{G}_{b}) may contain more than one critical bottleneck edge. The following proposition shows how a critical bottleneck edge forms a particular alternating path between the bottleneck agent and bottleneck task.

Assumption 17

Let b\mathcal{M}_{b} be a solution to BOT(𝒢b)BOT(\mathcal{G}_{b}) and let ec={ac,bc}be_{c}=\{a_{c},b_{c}\}\in\mathcal{M}_{b} be a critical bottleneck edge of 𝒢b\mathcal{G}_{b} relative to b\mathcal{M}_{b}.

Proposition 18

Consider Assumption 17. The length-one path P={ec}P=\{e_{c}\} is a unique alternating path in ϕ(𝒢b,b)\phi(\mathcal{G}_{b},\mathcal{M}_{b}) relative to b\mathcal{M}_{b} between aca_{c} and bcb_{c}.

{pf}

Path P={ec}P=\{e_{c}\} is trivially an alternating path relative to b\mathcal{M}_{b}; edge ecbe_{c}\in\mathcal{M}_{b}, so Pϕ(𝒢b,b)P\subseteq\phi(\mathcal{G}_{b},\mathcal{M}_{b}). It remains to show that there does not exist another. Assume for contradiction that there exists an alternating path PPP^{\prime}\neq P, Pϕ(𝒢b,b)P^{\prime}\subseteq\phi(\mathcal{G}_{b},\mathcal{M}_{b}) relative to b\mathcal{M}_{b} between aca_{c} and bcb_{c}. It follows that ecPe_{c}\notin P^{\prime} and therefore Pϕ(𝒢b,b)\{ec}P^{\prime}\subseteq\phi(\mathcal{G}_{b},\mathcal{M}_{b})\backslash\{e_{c}\}. Furthermore, PP^{\prime} is an augmenting path relative to b\{ec}\mathcal{M}_{b}\backslash\{e_{c}\}. By Definition 14, ece_{c} is not a critical bottleneck edge of 𝒢b\mathcal{G}_{b}, which contradicts Assumption 17. ∎

The following corollary describes the structure of a bottleneck cluster 𝒢b\mathcal{G}_{b} based on Proposition 18.

Corollary 19

Consider Assumption 17 and let 𝒢b\mathcal{G}_{b} be a bottleneck cluster with respect to the critical bottleneck edge ece_{c}. We form two subgraphs of 𝒢b\mathcal{G}_{b}, denoted as 𝒮μ(𝒢b)=(𝒱μ,μ)\mathcal{S}_{\mu}(\mathcal{G}_{b})=(\mathcal{V}_{\mu},\mathcal{E}_{\mu}) and 𝒮ν(𝒢b)=(𝒱ν,ν)\mathcal{S}_{\nu}(\mathcal{G}_{b})=(\mathcal{V}_{\nu},\mathcal{E}_{\nu}). Let 𝒱μ\mathcal{V}_{\mu} contain the bottleneck agent aca_{c}, and let 𝒱ν\mathcal{V}_{\nu} contain the bottleneck task bcb_{c}. Let 𝒱b=𝒱μ𝒱ν\mathcal{V}_{b}=\mathcal{V}_{\mu}\cup\mathcal{V}_{\nu} and 𝒱μ𝒱ν=\mathcal{V}_{\mu}\cap\mathcal{V}_{\nu}=\emptyset. By Definition 13, it must be possible to construct both 𝒮μ(𝒢b)\mathcal{S}_{\mu}(\mathcal{G}_{b}) and 𝒮ν(𝒢b)\mathcal{S}_{\nu}(\mathcal{G}_{b}) to be alternating trees such that μνϕ(𝒢b,b)\mathcal{E}_{\mu}\cup\mathcal{E}_{\nu}\subseteq\phi(\mathcal{G}_{b},\mathcal{M}_{b}). By Proposition 18, for all agents a𝒱μ𝒜ba^{\prime}\in\mathcal{V}_{\mu}\cap\mathcal{A}_{b} and for all tasks b𝒱νbb^{\prime}\in\mathcal{V}_{\nu}\cap\mathcal{B}_{b}, {a,b}ϕ(𝒢b,b)\{a^{\prime},b^{\prime}\}\notin\phi(\mathcal{G}_{b},\mathcal{M}_{b}).

b1b_{1} a2a_{2} b2b_{2} a5a_{5} b5b_{5} 44666611 a3a_{3} b3b_{3} 331111 a4a_{4} b4b_{4} 20201010 a1a_{1} b6b_{6} a6a_{6} b9b_{9} a9a_{9} 131377202033 b7b_{7} a7a_{7} 191955 b8b_{8} a8a_{8} 151518182020
Figure 1: A bottleneck cluster. Dotted lines represent edges not in matching b\mathcal{M}_{b}, solid lines represent edges in b\mathcal{M}_{b}. Shown here, a set of agents {a1,a2,,a9}\{a_{1},a_{2},...,a_{9}\} and a set of tasks {b1,b2,,b9}\{b_{1},b_{2},...,b_{9}\}. Edge {a1,b1}\{a_{1},b_{1}\} is a critical bottleneck edge so Corollary 19 applies.

Fig. 1 illustrates Corollary 19. The graph 𝒢b\mathcal{G}_{b} is represented by two alternating trees 𝒮ν(𝒢b)\mathcal{S}_{\nu}(\mathcal{G}_{b}) and 𝒮μ(𝒢b)\mathcal{S}_{\mu}(\mathcal{G}_{b}) with roots b1b_{1} and a1a_{1} respectively. The roots a1a_{1} and b1b_{1} are incident to the critical bottleneck edge ece_{c} with weight w(ec)=20w(e_{c})=20. All edges in both trees are elements of ϕ(𝒢b,b)\phi(\mathcal{G}_{b},\mathcal{M}_{b}) as their weights are smaller than or equal to w(ec)w(e_{c}) and all edges not in the matching are strictly smaller than w(ec)w(e_{c}). Recall from Theorem 12 that w(e3)max{w(e1),w(e2)}w(e_{3})\leq\max\{w(e_{1}),w(e_{2})\}. Given Assumptions 9 and 10, the contrapositive of the following lemma provides conditions for the bottleneck edge of graph 𝒢3\mathcal{G}_{3} to have equal weight to max{w(e1),w(e2)}\max\{w(e_{1}),w(e_{2})\}.

Lemma 20

Given Assumptions 9 and 10, assume both 𝒢1\mathcal{G}_{1} and 𝒢2\mathcal{G}_{2} are bottleneck clusters with respect to e1e_{1} and e2e_{2} respectively. Assume e1e_{1} is a critical bottleneck edge of 𝒢1\mathcal{G}_{1} relative to 1\mathcal{M}_{1} and e2e_{2} is a critical bottleneck edge of 𝒢2\mathcal{G}_{2} relative to 2\mathcal{M}_{2}. Let w(e1)w(e2)w(e_{1})\geq w(e_{2}). If w(e3)<w(e1)w(e_{3})<w(e_{1}), then there exists vertices i,j𝒱2i,j\in\mathcal{V}_{2} such that

  1. i.

    there exists an edge in 3\mathcal{E}_{3} with weight less than w(e1)w(e_{1}) between agent ii and a task bb^{\prime} in the vertex set of subgraph 𝒮ν(𝒢1)\mathcal{S}_{\nu}(\mathcal{G}_{1}), and

  2. ii.

    there exists an edge in 3\mathcal{E}_{3} with weight less than w(e1)w(e_{1}) between task jj and an agent aa^{\prime} in the vertex set of subgraph 𝒮μ(𝒢1)\mathcal{S}_{\mu}(\mathcal{G}_{1}), and

  3. iii.

    there exists an alternating path PP between ii and jj containing only edges with weight less than w(e1)w(e_{1}), and |P2|>|P\2||P\cap\mathcal{M}_{2}|>|P\backslash\mathcal{M}_{2}|.

{pf}

Without loss of generality, let e1={a1,b1}e_{1}=\{a_{1},b_{1}\}. By Proposition 18, e1e_{1} is the only alternating path between a1a_{1} and b1b_{1} in ϕ(𝒢1,1)\phi(\mathcal{G}_{1},\mathcal{M}_{1}). Assume there does not exist vertices ii and jj such that all i., ii., and iii. are true. Thus, e1e_{1} is the only alternating path between a1a_{1} and b1b_{1} in ϕ(𝒢3,12)\phi(\mathcal{G}_{3},\mathcal{M}_{1}\cup\mathcal{M}_{2}). By Definition 14, e1e_{1} is also a critical bottleneck edge of 𝒢3\mathcal{G}_{3} since e1argmaxe12w(e)e_{1}\in\arg\max_{e\in\mathcal{M}_{1}\cup\mathcal{M}_{2}}w(e) and there does not exist an augmenting path in ϕ(𝒢3,12)\{e1}\phi(\mathcal{G}_{3},\mathcal{M}_{1}\cup\mathcal{M}_{2})\backslash\{e_{1}\} relative to (12)\{e1}(\mathcal{M}_{1}\cup\mathcal{M}_{2})\backslash\{e_{1}\}. Thus, w(e3)=w(e1)w(e_{3})=w(e_{1}). ∎

In general, the converse of Lemma 20 does not hold unless we apply some additional assumptions. This leads to the following theorem.

Theorem 21

Given Assumptions 9 and 10, assume both 𝒢1\mathcal{G}_{1} and 𝒢2\mathcal{G}_{2} are bottleneck clusters with respect to e1e_{1} and e2e_{2} respectively. Assume e1e_{1} is a critical bottleneck edge of 𝒢1\mathcal{G}_{1} relative to 1\mathcal{M}_{1} and e2e_{2} is a critical bottleneck edge of 𝒢2\mathcal{G}_{2} relative to 2\mathcal{M}_{2}. Assume that w(e1)>w(e2)w(e_{1})>w(e_{2}). Let argmax{i,j}1w({i,j})\arg\max_{\{i,j\}\in\mathcal{M}_{1}}w(\{i,j\}) be a singleton. It holds that w(e3)<w(e1)w(e_{3})<w(e_{1}) if and only if there exists vertices i,j𝒱2i,j\in\mathcal{V}_{2} such that conditions i., ii., and iii. from Lemma 20 are true.

{pf}

The necessary condition for w(e3)<w(e1)w(e_{3})<w(e_{1}) holds from Lemma 20. We now prove the sufficient condition. Assume there exists vertices ii and jj such that all i., ii., and iii. are true. Then, aside from path P={e1={a1,b1}}P=\{e_{1}=\{a_{1},b_{1}\}\}, there exists another alternating path PP^{\prime} between a1a_{1} and b1b_{1}, which does not contain the edge e1e_{1}. Namely, the alternating path PP^{\prime} constructed from the union of the alternating paths between a1a_{1} and bb^{\prime}, bb^{\prime} and ii, ii and jj, jj and aa^{\prime}, and aa^{\prime} and b1b_{1}. Thus, there exists an augmenting path Pϕ(𝒢3,12)\{e1}P^{\prime}\subseteq\phi(\mathcal{G}_{3},\mathcal{M}_{1}\cup\mathcal{M}_{2})\backslash\{e_{1}\} relative to (12)\{e1}(\mathcal{M}_{1}\cup\mathcal{M}_{2})\backslash\{e_{1}\}. From Lemma 15, there exists an MCM \mathcal{M}^{\prime} of 𝒢3\mathcal{G}_{3} such that ϕ(𝒢3,12)\{e1}\mathcal{M}^{\prime}\in\phi(\mathcal{G}_{3},\mathcal{M}_{1}\cup\mathcal{M}_{2})\backslash\{e_{1}\}. By the assumptions on e1e_{1}, ϕ(𝒢3,12)\{e1}\phi(\mathcal{G}_{3},\mathcal{M}_{1}\cup\mathcal{M}_{2})\backslash\{e_{1}\} contains only edges with weights strictly smaller than w(e1)w(e_{1}). Thus, there exists an MCM of 𝒢3\mathcal{G}_{3} with all edges having weight smaller than w(e1)w(e_{1}), i.e., w(e3)w(e_{3}) must be smaller than w(e3)w(e_{3}). ∎

a1a_{1}b1b_{1}a2a_{2}b2b_{2}a3a_{3}b3b_{3}α1\alpha_{1}β1\beta_{1}α2\alpha_{2}β2\beta_{2}
Figure 2: An illustration of Theorem 21. We have 𝒱1={a1,a2,a3}{b1,b2,b3}\mathcal{V}_{1}=\{a_{1},a_{2},a_{3}\}\cup\{b_{1},b_{2},b_{3}\} and 𝒢1\mathcal{G}_{1} is a bottleneck cluster with respect to e1={a1,b1}e_{1}=\{a_{1},b_{1}\}. Edge e1e_{1} is shown as a solid red line. We have 𝒱2={α1,α2}{β1,β2}\mathcal{V}_{2}=\{\alpha_{1},\alpha_{2}\}\cup\{\beta_{1},\beta_{2}\} and 𝒢2\mathcal{G}_{2} is a bottleneck cluster with respect to e2={α2,β2}e_{2}=\{\alpha_{2},\beta_{2}\}. The length of each line corresponds to the weight of that edge. Solid lines show edges in 12\mathcal{M}_{1}\cup\mathcal{M}_{2}. Dashed lines show edges in 3\mathcal{M}_{3} and w(e3)<w(e1)w(e_{3})<w(e_{1}).

Fig. 2 illustrates the sufficient condition of Theorem 21. The orange dashed line is an edge that satisfies the condition i. since α2𝒱2\alpha_{2}\in\mathcal{V}_{2} and there exists edge {α2,b3}𝒱3\{\alpha_{2},b_{3}\}\in\mathcal{V}_{3}, where b3b_{3} is a task in the vertex set of 𝒮ν(𝒢1)\mathcal{S}_{\nu}(\mathcal{G}_{1}). The blue dashed line satisfies condition ii. since β1𝒱2\beta_{1}\in\mathcal{V}_{2} and there exists edge {β1,a2}𝒱3\{\beta_{1},a_{2}\}\in\mathcal{V}_{3}, where a2a_{2} is an agent in the vertex set of 𝒮μ(𝒢1)\mathcal{S}_{\mu}(\mathcal{G}_{1}). Condition iii. is satisfied since there is an alternating path P={{α1,β1},{α2,β2},{α1,β2}}P=\{\{\alpha_{1},\beta_{1}\},\{\alpha_{2},\beta_{2}\},\{\alpha_{1},\beta_{2}\}\} between β1\beta_{1} and α2\alpha_{2}, and |{{α1,β1},{α2,β2}}|>|{{α1,β2}}||\{\{\alpha_{1},\beta_{1}\},\{\alpha_{2},\beta_{2}\}\}|>|\{\{\alpha_{1},\beta_{2}\}\}|, i.e., PP starts with a dashed line and ends with a dashed line. Corollary 22 follows from Theorem 12 and 21.

Corollary 22

If one or more of conditions i., ii., or iii. in Theorem 21 do not hold, then 3=12\mathcal{M}_{3}=\mathcal{M}_{1}\cup\mathcal{M}_{2} is a solution to Problem 11.

5 Algorithm for Solving the BAP

In this section, we discuss how the algorithm from Khoo et al. (2019) makes use of Assumptions 9 and 10 to solve Problem 11. Let us refer to this algorithm as pruneBAP. Fig. 3 is an illustration of this algorithm.

Iteration 1:e24e_{24}e42e_{42}e43e_{43}e34e_{34}e12e_{12}e21e_{21}e13e_{13}e22e_{22}e33e_{33}e23e_{23}e14e_{14}e31e_{31}e11e_{11}e41e_{41}e32e_{32}e44e_{44}Iteration 2:e24e_{24}e42e_{42}e43e_{43}e34e_{34}e12e_{12}e21e_{21}e13e_{13}e22e_{22}e33e_{33}e23e_{23}e14e_{14}e31e_{31}e11e_{11}e41e_{41}e32e_{32}e44e_{44}Iteration 3:e24e_{24}e42e_{42}e43e_{43}e34e_{34}e12e_{12}e21e_{21}e13e_{13}e22e_{22}e33e_{33}e23e_{23}e14e_{14}e31e_{31}e11e_{11}e41e_{41}e32e_{32}e44e_{44}
Figure 3: A demonstration of pruneBAP with 𝒜3={a1,a2,a3,a4}\mathcal{A}_{3}=\{a_{1},a_{2},a_{3},a_{4}\} and 3={b1,b2,b3,b4}\mathcal{B}_{3}=\{b_{1},b_{2},b_{3},b_{4}\}. Edges in 3\mathcal{E}_{3} are arranged in order of ascending weight, where epqe_{pq} is the edge between agent apa_{p} and task bqb_{q}. At iteration 1, the initial arbitrary MCM is denoted by the 4 circled edges. Edges to the right of the dashed lines have been pruned from 3\mathcal{E}_{3}. Note, w(e44)w(e11)w(e21)w(e_{44})\geq w(e_{11})\geq w(e_{21}), i.e., with each iteration the weight of the largest edge in the current MCM is non-increasing. The algorithm terminates when a matching of size 4 does not exist in the remaining edges to the left of the dashed line.

5.1 Warm-starting Versus Cold-starting pruneBAP

Solving Problem 11 by pruneBAP with an arbitrary MCM 0\mathcal{M}_{0} at initialisation does not make use of Assumptions 9 and 10. We denote this as a cold-start to pruneBAP. Given Assumptions 9 and 10, consider the following. It holds that the set ~:=12\tilde{\mathcal{M}}:=\mathcal{M}_{1}\cup\mathcal{M}_{2} is an MCM of the graph 𝒢3\mathcal{G}_{3}. Without loss of generality, let w(e1)w(e2)w(e_{1})\geq w(e_{2}). Then, it also holds that e1e_{1} is the largest edge in ~\tilde{\mathcal{M}}. We use make use of ~\tilde{\mathcal{M}} to solve Problem 1 by choosing it as the initial MCM of pruneBAP. Edges in the set {e3|w(e)w(e1),e0}\{e\in\mathcal{E}_{3}|w(e)\geq w(e_{1}),e\notin\mathcal{M}_{0}\} are removed from 3\mathcal{E}_{3} in the first iteration. We denote this as a warm-start to pruneBAP. Fig. 4 illustrates a warm-start to pruneBAP.

1\mathcal{M}_{1} from Assumption 9:e12e_{12}e21e_{21}e22e_{22}e11e_{11}2\mathcal{M}_{2} from Assumption 10:e43e_{43}e34e_{34}e33e_{33}e44e_{44}Warm-start, Iteration 1:e24e_{24}e42e_{42}e43e_{43}e34e_{34}e12e_{12}e21e_{21}e13e_{13}e22e_{22}e33e_{33}e23e_{23}e14e_{14}e31e_{31}e11e_{11}e41e_{41}e32e_{32}e44e_{44}
Figure 4: A demonstration a warm-start. Here, 𝒜1={a1,a2}\mathcal{A}_{1}=\{a_{1},a_{2}\}, 𝒜2={a3,a4}\mathcal{A}_{2}=\{a_{3},a_{4}\}, 1={b1,b2}\mathcal{B}_{1}=\{b_{1},b_{2}\}, and 2={b3,b4}\mathcal{B}_{2}=\{b_{3},b_{4}\}. Then, 𝒜3\mathcal{A}_{3} and 3\mathcal{B}_{3} are the same as in Fig. 3. In this example, warm-starting pruneBAP allows the solution to BOT(𝒢3)BOT(\mathcal{G}_{3}) to be found in 1 iteration.
Remark 23

Warm-starting is a heuristic, a warm-start does not guarantee fewer iterations for convergence to a solution to BOT(G𝒢3)BOT(G\mathcal{G}_{3}). For a cold-start, we choose an arbitrary initial MCM cold\mathcal{M}_{cold}; by chance this cold\mathcal{M}_{cold} could be the solution to BOT(𝒢3)BOT(\mathcal{G}_{3}).

Given Assumptions 9 and 10, warm-starting is a way to make use of the available information to solve Problem 11.

6 Case Studies

Consider agents and tasks represented by points in a vector space SS with a distance function D:S×S+D:S\times S\mapsto\mathbb{R}^{+}. For example, this could be a ride-sharing application, where agents are vehicles and their tasks are to pick up customers. Here we consider a 2-dimensional space S=2S=\mathbb{R}^{2} and Euclidean distance D(x,y)=xy2D(x,y)=\lVert x-y\rVert_{2}. Agents are to be assigned to move from their initial positions to target destinations based on the BAP with distance as weights.

6.1 Task Reassignment

Case Study 1

Let 𝒜={a1,a2,,am3}S\mathcal{A}=\{a_{1},a_{2},...,a_{m_{3}}\}\subset S be the initial locations of a set of agents. Let 1={b1,b2,,bn1}S\mathcal{B}_{1}=\{b_{1},b_{2},...,b_{n_{1}}\}\subset S be the set of goal locations. Assume m3>n1m_{3}>n_{1}. We first solve BOT((𝒜1,))BOT((\mathcal{A}\cup\mathcal{B}_{1},\mathcal{E})), where ={{i,j}|i𝒜,j1}\mathcal{E}=\{\{i,j\}|i\in\mathcal{A},j\in\mathcal{B}_{1}\} to determine an assignment of tasks to agents that minimises the worst-case distance an agent must travel to reach a goal location. Without loss of generality, assume vehicles at positions 𝒜1={a1,a2,,an1}\mathcal{A}_{1}=\{a_{1},a_{2},...,a_{n_{1}}\} are assigned to goals at 1\mathcal{B}_{1}. Now assume that a second set of goal locations becomes available to agents. Let 2={β1,β2,,βn2}S\mathcal{B}_{2}=\{\beta_{1},\beta_{2},...,\beta_{n_{2}}\}\subset S be the set of new goal locations. Assume that m3n1+n2m_{3}\geq n_{1}+n_{2}. Let 𝒜2={an1+1,an1+2,,am3}\mathcal{A}_{2}=\{a_{n_{1}+1},a_{n_{1}+2},...,a_{m_{3}}\} be the locations of the remaining unassigned agents. We now assign the new goals to the remaining agents, i.e., solve BOT((𝒜22,2))BOT((\mathcal{A}_{2}\cup\mathcal{B}_{2},\mathcal{E}_{2})), where 2={{i,j}|i𝒜2,j2}\mathcal{E}_{2}=\{\{i,j\}|i\in\mathcal{A}_{2},j\in\mathcal{B}_{2}\}.

By Theorem 12, the assignment obtained from solving BOT((𝒜1,))BOT((\mathcal{A}\cup\mathcal{B}_{1},\mathcal{E})) and BOT((𝒜22,2))BOT((\mathcal{A}_{2}\cup\mathcal{B}_{2},\mathcal{E}_{2})) in Case Study 1 is not necessarily the optimal solution to BOT((𝒜12,3))BOT((\mathcal{A}\cup\mathcal{B}_{1}\cup\mathcal{B}_{2},\mathcal{E}_{3})), where 3={{i,j}|i𝒜,j12}\mathcal{E}_{3}=\{\{i,j\}|i\in\mathcal{A},j\in\mathcal{B}_{1}\cup\mathcal{B}_{2}\}. Fig. 5 shows a numerical example of a case where the optimal assignment is of lower cost than the assignment used to warm-start pruneBAP. For this example, m3=40m_{3}=40, n1=20n_{1}=20 and n2=20n_{2}=20. The data was generated using continuous uniform distributions with range [0,100)[0,100) for both coordinates xx and yy. Fig. 6 shows a plot of the average cost of the assignment used as warm-start to initialise pruneBAP and the average cost of the optimal assignment after pruneBAP has terminated. For all simulations, m3=n1+n2m_{3}=n_{1}+n_{2}. For each even value of m3m_{3}, 100 simulations were generated. We observe that the cost of the assignment obtained from the subproblems is never greater than the cost of an optimal solution to BOT(𝒢3)BOT(\mathcal{G}_{3}), in accordance with Theorem 12. In this case, the unstructured distribution of the locations results in all of the conditions in Theorem 21 being satisfied and we observe that w(e3)<max{w(e1),w(e2)}w(e_{3})<\max\{w(e_{1}),w(e_{2})\} as expected.

Refer to caption
Figure 5: Case Study 1: Sample configuration of agents and tasks. The locations in 𝒜1\mathcal{A}_{1}, 𝒜2\mathcal{A}_{2}, 1\mathcal{B}_{1}, and 2\mathcal{B}_{2} are represented by blue dots, red dots, blue crosses and red crosses respectively. The bottleneck edges from solving BOT((𝒜1,))BOT((\mathcal{A}\cup\mathcal{B}_{1},\mathcal{E})), BOT((𝒜22,2))BOT((\mathcal{A}_{2}\cup\mathcal{B}_{2},\mathcal{E}_{2})) and BOT((𝒜12,3))BOT((\mathcal{A}\cup\mathcal{B}_{1}\cup\mathcal{B}_{2},\mathcal{E}_{3})) are shown by the solid blue, solid red and black dash-dotted lines respectively.
Refer to caption
Figure 6: Case Study 1: Cost of assignments. Red crosses show the average weight of the largest edge in the MCM used to warm-start pruneBAP, from 100 simulations. Black dots show the average weight of the bottleneck edge from solving BOT((𝒜12,3))BOT((\mathcal{A}\cup\mathcal{B}_{1}\cup\mathcal{B}_{2},\mathcal{E}_{3})), from 100 simulations.

6.2 Clustering of Agents and Tasks

Case Study 2

Let 𝒜1={a1,a2,,am1}S\mathcal{A}_{1}=\{a_{1},a_{2},...,a_{m_{1}}\}\subset S and 𝒜2={α1,α2,,αm2}S\mathcal{A}_{2}=\{\alpha_{1},\alpha_{2},...,\alpha_{m_{2}}\}\subset S be the initial locations of two sets of agents. Let 1={b1,b2,,bn1}S\mathcal{B}_{1}=\{b_{1},b_{2},...,b_{n_{1}}\}\subset S and 2={β1,β2,,βn2}S\mathcal{B}_{2}=\{\beta_{1},\beta_{2},...,\beta_{n_{2}}\}\subset S be the sets of goal locations. Assume that m1n1m_{1}\geq n_{1} and m2n2m_{2}\geq n_{2}, i.e., there are more agents than there are goals. Assume the set of locations 𝒜1\mathcal{A}_{1} and 1\mathcal{B}_{1} are separated geographically from 𝒜2\mathcal{A}_{2} and 2\mathcal{B}_{2}.

In Case Study 2, we illustrate an example where not all of the conditions i., ii., and iii. in Lemma 20 hold. Fig. 7 shows a numerical example where the initial assignment 12\mathcal{M}_{1}\cup\mathcal{M}_{2} used to warm-start pruneBAP is in fact the optimal assignment of 12\mathcal{B}_{1}\cup\mathcal{B}_{2} to 𝒜1𝒜2\mathcal{A}_{1}\cup\mathcal{A}_{2}. In this example, m1=20m_{1}=20, m2=20m_{2}=20, n1=20n_{1}=20 and n2=20n_{2}=20. The data in Fig. 7 was generated using independant normal distributions with a variance of 100 for each distribution. The distributions for sets 𝒜1\mathcal{A}_{1} and 1\mathcal{B}_{1} are centred at the point (x,y)=(40,60)(x,y)=(40,60). The distributions for sets 𝒜2\mathcal{A}_{2} and 2\mathcal{B}_{2} are centred at the point (x,y)=(60,40)(x,y)=(60,40). Fig. 8 shows the number of instances out of 100 simulations for which the behaviour in Fig. 7 is observed. That is, the instances where the bottleneck edges obtained from the subproblems directly results in an optimal solution to BOT(𝒢3)BOT(\mathcal{G}_{3}), where 𝒢3\mathcal{G}_{3} is defined as in Section 3. The number of agents equals the number of tasks for each simulation, i.e., m1=n1=m2=n2m_{1}=n_{1}=m_{2}=n_{2}. For each simulation, positions were generated using the same normal distribution as in Fig. 7. We now observe realisations where the cost of the assignment obtained from the subproblems is equal to the cost of an optimal solution to BOT(𝒢3)BOT(\mathcal{G}_{3}). This illustrates that with this distribution of agents and tasks there are instances where there is structure such that the conditions in Theorem 21 do not all hold and w(e3)=max{w(e1),w(e2)}w(e_{3})=\max\{w(e_{1}),w(e_{2})\}.

Refer to caption
Figure 7: Case Study 2: Sample configuration of agents and tasks. The positions of agents and tasks 𝒜1\mathcal{A}_{1}, 𝒜2\mathcal{A}_{2}, 1\mathcal{B}_{1}, and 2\mathcal{B}_{2} are represented by blue dots, red dots, blue crosses and red crosses respectively. The solid blue line shows the bottleneck edge from solving BOT(𝒢1)BOT(\mathcal{G}_{1}). The solid red line shows the bottleneck edge from solving BOT(𝒢2)BOT(\mathcal{G}_{2}). The black dash-dotted line shows the bottleneck edge from solving BOT(𝒢3)BOT(\mathcal{G}_{3}).
Refer to caption
Figure 8: Case Study 2: Empirical probability of solution to subproblems resulting in exact solution of the combined problem. Each cross shows the number of instances out of 100 simulations that the MCM 3=12\mathcal{M}_{3}=\mathcal{M}_{1}\cup\mathcal{M}_{2} is an optimal solution to BOT(𝒢3)BOT(\mathcal{G}_{3}). The number of agents represents m1+m2m_{1}+m_{2}.

7 Conclusion

We discussed properties of pruneBAP that allow us to warm-start the algorithm given BAP solutions to divided sets of tasks and agents. The solutions based on the divided problems forms an MCM of the combined problem. The pruneBAP algorithm can be initialised with any MCM, and thus allows us to make use of the solutions based on the divided sets. We then have an upper bound on the BAP solution to the combined problem in terms of the bottleneck edges of the divided problems. We also introduced the novel concept of a bottleneck cluster relative to a bottleneck edge. This idea is inspired by the pruneBAP algorithm and the alternating tree that is obtained as a result of the algorithm. Using bottleneck clusters, we provided conditions such that the initial MCM used to warm-start pruneBAP is a solution to the BAP. From numerical simulations motivated by ride-sharing, we illustrate an example where the conditions hold if there exist clusters that are separated in space.

An interesting future direction is the investigation of methods to optimally partition agents and tasks. Another direction would be to investigate clustering properties for the LAP.

References

  • Aggarwal et al. (1986) Aggarwal, V., Tikekar, V.A., and Hsu, L.F. (1986). Bottleneck assignment problems under categorization. Computers and Operations Research, 13, 11–26.
  • Bertsekas and Castañon (1991) Bertsekas, D.P. and Castañon, D.A. (1991). Parallel synchronous and asynchronous implementations of the auction algorithm. Parallel Computing, 17, 707–732.
  • Burkard et al. (2009) Burkard, R.E., Dell’Amico, M., and Martello, S. (2009). Assignment problems. Society for Industrial and Applied Mathematics (SIAM), Philadelphia.
  • Carraresi and Gallo (1984) Carraresi, P. and Gallo, G. (1984). A multi-level bottleneck assignment approach to the bus drivers’ rostering problem. European Journal of Operational Research, 16, 163–173.
  • Choi et al. (2009) Choi, H.L., Brenet, L., and How, J.P. (2009). Consensus-based decentralized auctions for robust task allocation. IEEE Transactions on Robotics, 25, 912–926.
  • Chopra et al. (2017) Chopra, S., Notarstefano, G., Rice, M., and Egerstedt, M. (2017). A distributed version of the hungarian method for multirobot assignment. IEEE Transactions on Robotics, 33, 932–947.
  • Derigs and Zimmermann (1978) Derigs, U. and Zimmermann, U. (1978). An augmenting path method for solving linear bottleneck assignment problems. Computing, 19, 285–295.
  • Gabow and Tarjan (1988) Gabow, H.N. and Tarjan, R.E. (1988). Algorithms for two bottleneck optimization problems. Journal of Algorithms, 9, 411–417.
  • Garfinkel (1971) Garfinkel, R.S. (1971). An improved algorithm for the bottleneck assignment problem. Operations Research, 19, 1747–1751.
  • Gerkey and Matarić (2004) Gerkey, B.P. and Matarić, M.J. (2004). A formal analysis and taxonomy of task allocation in multi-robot systems. The International Journal of Robotics Research, 23, 939–954.
  • Hopcroft and Karp (1973) Hopcroft, J.E. and Karp, R.M. (1973). An n5/2n^{5/2} algorithm for maximum matchings in bipartite graphs. SIAM Journal on Computing, 2, 225–231.
  • Khoo et al. (2019) Khoo, M., Wood, T.A., Manzie, C., and Shames, I. (2019). Distributed algorithm for solving the bottleneck assignment problem. IEEE 58th Conference on Decision and Control, 1850–1855.
  • Kuhn (1955) Kuhn, H.W. (1955). The hungarian method for the assignment problem. Naval Research Logistics Quarterly, 2, 83–97.
  • Pentico (2007) Pentico, D.W. (2007). Assignment problems: A golden anniversary survey. European Journal of Operational Research, 176, 774–793.
  • Punnen and Nair (1994) Punnen, A.P. and Nair, K.P.K. (1994). Improved complexity bound for the maximum cardinality bottleneck bipartite matching problem. Discrete Applied Mathematics, 55, 91–93.
  • Shames et al. (2017) Shames, I., Dostovalova, A., Kim, J., and Hmam, H. (2017). Task allocation and motion control for threat-seduction decoys. IEEE 56th Annual Conference on Decision and Control, 4509–4514.
  • Zavlanos et al. (2008) Zavlanos, M.M., Spesivtsev, L., and Pappas, G.J. (2008). A distributed auction algorithm for the assignment problem. IEEE Conference on Decision and Control, 1212–1217.