通过有限网格中的行和列排列连接像元


10

我想知道以下简单问题是否已经研究过,是否知道任何解决方案。

令G为有限(MxN)网格,S为G单元的子集(“小块”)。如果两个碎屑的坐标最多相差一个(即,如果绘制为正方形,则它们共享至少一个拐角点),则称为两个(局部)连接。

现在,可以通过排列网格的线和列来尝试连接碎屑(它们的集合)。换句话说,目标是提出线的排列和列的排列,以使生成的网格中的任何两个碎屑通过(局部)连接的碎屑链连接。

问题:总有解决方案吗?

我不太清楚该如何进攻。由于缺乏更好的主意,我编写了一个原始程序,该程序通过蛮力寻找解决方案(它会随机生成排列并检查生成的网格是否连接了碎屑)。到目前为止,该程序始终在较小的(10x10或7x14)网格上找到解决方案,而较大的网格显然超出了其简化策略的范围(在解决方案中随机绊倒会花费太长时间)。

这是程序解决的网格示例:

初始网格(小块由X表示,空单元由点表示):

   0 1 2 3 4 5 6 7 8 9 
 0 X . X X . X . X X .
 1 X . . . . X . . . .
 2 . . X . . . . X . X
 3 . X . . X . X . . X
 4 . . . X . . . . . .
 5 X X . . . X X . X .
 6 . . . X . . . . X .
 7 X . X . . X . . . .
 8 X . . . X . . X X .

解:

   6 1 4 7 8 2 9 3 5 0
 1 . . . . . . . . X X
 4 . . . . . . . X . .
 5 X X . . X . . . X X
 8 . . X X X . . . . X
 7 . . . . . X . . X X
 0 . . . X X X . X X X
 3 X X X . . . X . . .
 6 . . . . X . . X . .
 2 . . . X . X X . . .

自然地,问题可以很容易地推广到d> 2的任何维度。我认为可以考虑其他推广。

提前致谢,

亚恩·戴维


2
有趣的问题。有什么应用吗?
Suresh Venkat

@Tsuyoshi:您说得对,我发布的数字有解决方案(您提供的解决方案)。我删除了它。
Marzio De Biasi

Answers:


7

让我们更仔细地尝试与我的答案的早期版本中类似的计数参数。

n225qn25qn225q(n!)2

c(nc)nexp c n log n - O n q = c n exp 2 n log n + O c n c > 2cexp(cnlognO(n))q=cnexp(2nlogn+O(cn))c>2


设置并忽略项,我追踪了您的不等式以找到“收支平衡”点,得到。后者值显着接近26608.o n n > 6 * 2 15 / e 2c=3o(n)n>6215/e2
hardmath

这是一个奇怪的数字巧合。我在mathoverflow.net/questions/81368/…上
David Eppstein

1
这确实是一个优雅而令人信服的证明。(为了我自己的利益,我花了一些时间来详细说明这些近似值。)是否有人设法提出具体的反例还有待观察。@hardmath在上面的评论表明这可能很困难(CE将是一个丑陋的野兽);现在,在CE的所有行中不需要面包屑的数量相同。
Yann David
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.