中文

通过弱死锁集避免死锁

最优化与控制 2024-10-08 v1 计算复杂性

摘要

当两个或多个项目相互阻止彼此移动并陷入停滞状态时,就会发生死锁。在一般模型中,项目存储在顶点上,每个顶点 vv 有一个包含 b(v)b(v) 个插槽的缓冲区。给定每个项目的路由以其目的地为目标,死锁安全问题询问当前状态是否安全,即是否可能将每个项目送达其目的地,或者是否注定死锁,即任何移动序列最终都会导致一组项目停滞。虽然当 b2b \geq 2 时问题可在多项式时间内解决(基于 YES/NO 实例的优异描述),但在 b=1b=1 时对简单图(如网格)是 NP-hard 的,以及在 b3b\leq 3 时对树状图是 NP-hard 的。我们通过两种新工具——弱死锁集和聪明状态——来改进这些结果。我们展示了对于一般网络和 bb,一个聪明且没有弱死锁集的状态是安全的:这实际上是 b2b\geq 2 结果的一个强化。我们对树状图进行了细化,表明聪明状态当且仅当没有弱死锁集时才是安全的。这在铁路交通中尤其有趣,因为网络通常是单轨的,死锁检测和避免主要关注局部子网络,主要具有树状结构。我们提出了一些未来研究问题。

关键词

引用

@article{arxiv.2410.05175,
  title  = {Avoiding Deadlocks via Weak Deadlock Sets},
  author = {Gianpaolo Oriolo and Anna Russo Russo},
  journal= {arXiv preprint arXiv:2410.05175},
  year   = {2024}
}