如何在次线性时间内解决蛋糕分割问题
数据结构与算法
2015-07-24 v2
摘要
在本文中,我们展示了在次线性时间内解决蛋糕分割问题的算法。具体而言,我们在 o(n) 时间内为 o(n) 个玩家预分配(简单的)公平份额,并将对其他玩家的损害降至最低。目前所有已知算法都需要 Ω(n) 时间,即使只为单个玩家分配一个份额也是如此,而且由于许多未被询问的玩家可能对剩余蛋糕不满意,因此将这些算法修改为 o(n) 时间运行并非易事。为了应对这一问题,我们首先提供了一个在次线性时间内解决蛋糕分割问题的框架。一般来说,在次线性时间内解决问题需要使用近似。然而,在我们的框架中,我们引入了"εn-受害者"的概念,即 εn 个玩家(受害者)可能无法获得公平份额,其中 0<ε≤1 为任意常数。在我们的框架中,算法包含以下两个部分:第一部分(预分配)在 o(n) 时间内为 r<n 个玩家分配公平份额。第二部分(补全)在多项式时间内为剩余的 n−r 个玩家分配公平份额,但排除 εn 个受害者。第一部分中的 r 个玩家有两种变体。具体而言,它们是否可以被指定。然后我们将在此框架下呈现算法。特别地,我们提出了一种 O(r/ε) 时间算法,适用于 r≤εn/127 个未指定玩家和 εn 个受害者,以及一种 O~(r²/ε) 时间算法,适用于 r≤εe^(√ln n /7) 个指定玩家,且 ε≤1/e,同时有 εn 个受害者。
引用
@article{arxiv.1504.00774,
title = {How to solve the cake-cutting problem in sublinear time},
author = {Hiro Ito and Takahiro Ueda},
journal= {arXiv preprint arXiv:1504.00774},
year = {2015}
}
备注
15 pages, no figure