Consider that there are $k\le n$ agents in a simple, connected, and undirected graph $G=(V,E)$ with $n$ nodes and $m$ edges. The goal of the dispersion problem is to move these $k$ agents to distinct nodes. Agents can communicate only when they are at the same node, and no other means of communication such as whiteboards are available. We assume that the agents operate synchronously. We consider two scenarios: when all agents are initially located at any single node (rooted setting) and when they are initially distributed over any one or more nodes (general setting). Kshemkalyani and Sharma presented a dispersion algorithm for the general setting, which uses $O(m_k)$ time and $\log(k+\delta)$ bits of memory per agent [OPODIS 2021]. Here, $m_k$ is the maximum number of edges in any induced subgraph of $G$ with $k$ nodes, and $\delta$ is the maximum degree of $G$. This algorithm is the fastest in the literature, as no algorithm with $o(m_k)$ time has been discovered even for the rooted setting. In this paper, we present faster algorithms for both the rooted and general settings. First, we present an algorithm for the rooted setting that solves the dispersion problem in $O(k\log \min(k,\delta))=O(k\log k)$ time using $O(\log \delta)$ bits of memory per agent. Next, we propose an algorithm for the general setting that achieves dispersion in $O(k (\log k)\cdot (\log \min(k,\delta))=O(k \log^2 k)$ time using $O(\log (k+\delta))$ bits. Finally, for the rooted setting, we give a time-optimal, i.e.,$O(k)$-time, algorithm with $O(\delta)$ bits of space per agent.
翻译:考虑一个简单、连通且无向的图 $G=(V,E)$,包含 $n$ 个节点和 $m$ 条边,其中有 $k\le n$ 个智能体。分散问题的目标是将这 $k$ 个智能体移动至不同的节点。智能体仅在同一节点时才可通信,且无可用的白板等其他通信手段。我们假设智能体同步运行。本文考虑两种场景:所有智能体初始位于任意单一节点(根节点设定),以及智能体初始分布在任意一个或多个节点上(一般设定)。Kshemkalyani 与 Sharma 提出了一种针对一般设定的分散算法,该算法使用 $O(m_k)$ 时间和每个智能体 $\log(k+\delta)$ 比特内存 [OPODIS 2021]。其中 $m_k$ 是 $G$ 中任意 $k$ 个节点诱导子图的最大边数,$\delta$ 是 $G$ 的最大度数。该算法是现有文献中最快的,因为即使在根节点设定下,也尚未发现 $o(m_k)$ 时间的算法。本文针对根节点设定和一般设定分别提出更快的算法。首先,针对根节点设定,我们提出一种算法,在 $O(k\log \min(k,\delta))=O(k\log k)$ 时间内使用每个智能体 $O(\log \delta)$ 比特内存解决分散问题。其次,针对一般设定,我们提出一种算法,在 $O(k (\log k)\cdot (\log \min(k,\delta))=O(k \log^2 k)$ 时间内使用每个智能体 $O(\log (k+\delta))$ 比特内存实现分散。最后,针对根节点设定,我们给出一个时间最优(即 $O(k)$ 时间)且每个智能体使用 $O(\delta)$ 比特空间的算法。