定位重叠圆以最大化它们之间的传播时间的游戏


13

我遇到了以下游戏。我将根据要求进行迁移。

  • 一个小虫正在拜访圈子,而对手则希望最大限度地利用他的旅行时间。

  • 对手每转一个圈。

  • 错误从当前位置直接移到最新圆的中心,然后在遇到圆的内部时停止(因此:如果播放覆盖其位置的圆,则错误不会移动)。轮到这个bug了。

  • 对手有圈子。N

  • 每个后续圆的半径均小于先前的圆。

  • 每个圆圈必须与所有先前玩过的圆圈的交点相交。也就是说,所有圈玩完后必须有一个公共的相交点。

编辑:对手可以自由选择圆的半径,但要受半径单调减小的约束。


问题与解答:


  1. 的距离是否有界?N答:不,此答案给出了一个对抗策略的示例
  2. 错误代码在圈子中必须经过的最大距离是多少。N答:通过相同的答案,它以增长。Θ(log(N))

变体2:该虫子直接向最近玩过的两个圆圈的交点走去。

更新:解决了该变体,其前提是该错误只能记住在播放的最后两个圆圈。结果再次是无限的距离。


无限制的记忆有什么影响?也就是说,错误发生在所有先前玩过的圆圈的交点。这产生了的“松散”边界,其中d是第一个圆的直径。显然不能少于这个。看这里。当前的上限为1000 × d。这是通过将最坏情况的路径近似为围绕逐渐变小的圆的游历而获得的。结果表明,虫子总是朝着最终的交叉口前进,从而减小了它必须行进的下一步距离。O(d)d1000×d

我怀疑行进的距离是第一个圆的周长的常数倍,但是我目前无法提供一个很好的证明。


对手是否选择了圆的半径?是否允许他将半径作为的函数?(此外,我认为这不属于博弈论)N
HdM

这绝对是一个游戏..
苏雷什Venkat

2
在我看来,圆有一个共同的交集是有限制的,但是虫子的运动并不一定会使它进入那个共同的交集。如果错误直接移到当前交叉点的最近点,而不是新圆圈的中心,答案可能会有所不同?
David Eppstein

1
@DavidEppstein:我认为您的建议是正确的。在您建议的变体中,行进的总距离以为界,其中r是从虫子到第一个圆心的初始距离。我将在下面的第二个答案中添加一个证明草图。O(r)r
Neal Young

1
@vzn和mod通常容纳请求。
Josh Vander Hook

Answers:


15

这个答案有两个部分,共同表明正确的界线是Θ(logN)

  1. 下限(乘以第一个圆的半径)。Ω(logN)
  2. 匹配上限。O(logN)

下限Ω(logN)

考虑两个在点接触的单位圆。(请参见下文;p在右侧,错误从左侧开始。)在一个圆圈和另一个圆圈之间交替。臭虫会在两个圆之间的缝隙中上下弯曲,在大多数情况下会向上或向下移动,但向右缓慢移动。如果我正确完成了三角学,则在经过N步之后,距公共点的距离将为Θ 1 / ppN,第N步将导致臭虫行走Θ1/N,总距离为ΘlogNΘ(1/N)NΘ(1/N)Θ(logN)

插图

这是计算的草图。考虑该错误产生的大约两个连续步骤。他从某点转到bc。点ac在同一圆上;点b在另一个圆上。令oa所在的圆的中心。考虑以下三个三角形,以减小的顺序排列:abcacboa

  1. 等腰三角形(回想p是公共点)。oapp
  2. 三角形abp
  3. 小三角形abc

这些三角形几乎是相似的(即,全等模缩放)。更准确地说,对于中,所有三个具有以下属性: 短腿部到长腿部的长度的比率为Θ ε 。(我不会在这里更详细地证明这一点,但是请注意, 随着错误的传播,ϵ 0,并且通过在每个三角形中扰动一个可忽略量的顶点,可以使这些三角形相似。)ϵ=|ap|Θ(ϵ)ϵ0

第一个三角形的长腿p o的长度为1 一个p | 具有长度ε。线段a p是第二个三角形的长腿,因此三角形的短腿a b的长度为Θ ϵ 2。段a b是第三个三角形的长腿,因此三角形的短腿a c的长度为Θ ϵ 3。因此,该错误需要采取以下两个步骤:copo|ap|ϵapabΘ(ϵ2)abacΘ(ϵ3)

  1. 距离虫子传播的距离是Θ ϵ 2|ab|+|bc|Θ(ϵ2)
  2. 从bug到公共点距离从ϵ减小到ϵ - Θ ϵ 3pϵϵΘ(ϵ3)

限定时间是前步数ε 1 / 2 ķ。通过上面的(2),ϵ在大约Θ 1 / ϵ 2步后以恒定因子减小,因此t k + 1 = t k + Θ 2 2 k= t k + Θ 4 k。因此,t k = Θ 4 ktkϵt1/2kϵΘ(1/ϵ2)tk+1=tk+Θ(22k)=tk+Θ(4k)。也就是说,在 Θ 4 ķ步骤,从错误到公共点的距离 p为约 1 / 2 ķ。在 N步之后更改变量,从bug到公共点的距离将为 ϵ = Θ 1 / tk=Θ(4k)Θ(4k)p1/2kN。并且,在第N步中,虫子传播Θϵ2=Θ1/N。因此,在所述第一行进的总距离Ñ步骤是Θ1+1/2+1/3++1/Ñ=Θ登录Ñϵ=Θ(1/N)NΘ(ϵ2)=Θ(1/N)NΘ(1+1/2+1/3+...+1/N)=Θ(logN)

这是下限。

它扩展到提议的变体2(据我所知),如下所示:

添加限制,即错误应移动到最近放置的两个圆的交点中的最近点,这无济于事。也就是说,上面的下限仍然适用。要知道为什么,我们将通过添加一个无关的圆圈来修改上面的示例,该圆圈允许错误在仍然沿相同路径行驶时满足限制:Ω(logN)

在此处输入图片说明

绿色和蓝色圆圈是上例中的两个圆圈。交点b是相同的一个b如上面的例子。红色圆圈是新的“外部”圆圈。先前的顺序在蓝色和绿色圆圈之间交替。新序列将是该序列,但在旧序列的每个圆之前会添加红色圆圈:红色,蓝色,红色,绿色,红色,蓝色,红色,绿色,红色,蓝色,...abab

假设错误是坐在蓝色放置后。下一个圆圈是红色。红色包含该错误,因此该错误不会消失。下一个圆圈是绿色。现在,错误移至b(这是绿色和红色圆圈相交处的最近点)。通过重复此步骤,该错误会像以前一样传播。ab


O的上限log N O(logN)

我只画证明。

修正任何顺序的圆圈。我们将认为,当,臭虫在前N个步骤中行进的总距离为O log N 。不失一般性地假设第一个圆的半径为1。NNO(logN)

NpNp

1/logN

the reduction in the distance to pthe distance traveled in the step.
O(logN)O(logN)p1/logN

O(logN)

abobpb|pa|=|pb|

在此处输入图片说明

考虑以下三角形:

  1. opb
  2. pba
  3. abb

ϵΘ(ϵ)

|bb||ab|=Θ(|ab||pa|)=Θ(|pa||bo|)=Θ(ϵ).

|bo|[1/2,1]|ab|=Θ(|pa|2/|bo|)=Θ(|pa|2)|bb|=Θ(|ab||pa|/|bo|)=Θ(|pa|3)

pddd=|pa|d=|pb|dd=|bb|

d|bb|Ω(d3)

d/2O(1/d2)d=1/2k1/2k+1O(4k)1/2kO(1/4k)npO(1/n)

n|ab|O((the current distance to p)2)=O(1/n)N[1/2,1]

n=1NO(1/n)=O(logN).

k[1/2k,1/2k+1]O(log(N)/2k)kO(logN)


3
建筑非常整洁!
Suresh Venkat 2013年

我很想喜欢这个答案,但我不相信您的触发。有更多细节的机会吗?
Josh Vander Hook

好的,我添加了详细信息。
Neal Young

4
i=00.99i=100

2
可惜我们不能将答案标记为收藏夹!
Jeffε

5

大卫·E·猜想

“如果错误直接移到当前交叉点的最近点,而不是新圆圈的中心,答案可能会有所不同?”

(编辑:请注意,这与原始海报问题末尾的“变体2”不同。)

这是(或多或少)他的猜想的证明(在这种情况下是有界的)。

O(d0)d0

oo0

o1,0.99,0.992,0.993,


d10d

tα(t)

α(t)

α(t)1/1001/100α(t)<899α(t)tα(t)[89,90]1/100

ppp

α(t)[89,90]1/10011082π<7,一旦错误开始,一半的环就死了,并且错误无法恢复到任何死点,因此这是不可能的。这证明了主张(或多或少;也许有人可以给出更精确的论据)。


i=010(0.99)i = 1000.

显然,这里的常数是松散的。例如,如果虫子以89度或以上的角度在第一个圆环中传播,这将立即杀死半径为1的圆盘中几乎一半的点(而不仅仅是那个圆环中的点)。


2πr0

O(1)Ω(logN)N

嗯 是的,我撤回了有关“明显”的问题,那是不好的味道。这不是立即显而易见的。问题2的上限是否应该低于问题1的上限,这是真的吗?
Josh Vander Hook

1
O(d0)NΩ(d0logN)d0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.