你听说过圆圈包装…这个星期谜语人经典是关于椭圆包装!
本周,尝试将长轴为2、短轴为1的三个椭圆打包为具有相同纵横比的较大椭圆。你能找到的最小的这么大的椭圆是什么?具体来说,它的主轴有多长?
额外学分:不是三个较小的省略号,而是其他数量的省略符呢?
我的解决方案:
[显示解决方案]
解决方法
这是一个困难的问题,我采用了一种相当粗鲁的计算方法。大致来说,我将该问题建模为一个非线性(非凸)约束的连续优化问题,然后在该问题上使用黑盒优化器进行大量随机初始猜测,以帮助导航该问题中的许多局部最优解。
我通过每个内椭圆的中心$(x_I,y_I)$的坐标和方向角$\theta_I$对其进行参数化。对于较大的封闭椭圆,我假设它以主轴长度$r$的原点为中心。因此,对于$n$较小的省略号,总共需要求解$3n+1$个变量。
长轴长度为$2$、短轴长度为$1$且以原点为中心的椭圆的内部是满足以下条件的点集$(x,y)$
\[
x^2+4y^2\leq 1
\]如果我们将这个椭圆旋转$\theta_i$,并将中心平移到$(x_i,y_i)$,经过一些代数运算,我们得到了变换后的方程
\[
E_i:\quad\frac{1}{2}\开始{矩阵}x-xi\\y-y_i\end{bmatrix}^\top
\开始{bmatrix}
5-3cos(2\theta_i)和-3sin(2\ theta_i)\\
-3\sin(2\theta_i)&5+3\cos(2\ theta_i)
\结束{bmatrix}
\开始{矩阵}x-xi\\y-y_i\结束{bmatrix}\leq 1
\]我们还有一个外椭圆,我们假设它的长轴长度为$r$,并且以原点为中心,没有旋转。这个公式如下:
\[
E_r:\四个r^2x^2+4r^2 y^2\leq 1
\]
我们需要担心的约束如下:
- 小椭圆不相交:所有$1\leqi\ltj\leqn$的$E_i\cap E_j=\emptyset$。
- 小省略号位于大省略号内:所有$1\leqi\leqn$的$E_i\subseteqE_r$。
因此,我们正在解决的优化问题是:
\[
\开始{对齐}
\underset{x_i,y_i,\theta_i,r}{\text{minimize}}\qquad&r\\
\文本{这样:}\qquad&E_i\cap E_j=\emptyset,\quad 1\leq i\lt j\leq n\\
&E_i\subseteq E_r,\quad 1\leq i\leq n
\结束{对齐}
\]
有多种方法可以指定交集和包含约束,但我并不太担心,因为我无论如何都要使用黑盒优化器。我选择的方法本质上是将每个椭圆的边界近似为具有大量顶点的多边形(我使用了80个)。然后,可以通过强制沿着给定椭圆的边界的每个点满足(或违反)定义另一个椭圆的不等式来指定一对椭圆之间的包容或相交。对于每个椭圆对,我只使用产生最严重约束冲突的点,从而使约束总数保持较小。
在实际实现中,我使用了MATLAB的fminco公司函数,它使用内部点解算器并使用有限差分近似梯度。粗略地说,它反复对所有变量进行小的调整,以在满足所有约束的同时减少$r$,并在达到局部最优时停止。这并不好看,但由于变量和约束的数量相对较少,该算法非常有效(即使在MATLAB中!)。随着$n$变大,局部极小值的数量也变大,因此求解器越来越可能“陷入”次优解。为了克服这个问题,我对每个$n$使用了1000次随机初始化,并保留了最佳的解决方案。
最佳包装
这是我在$n=2,3,\dots,10$中发现的。我很有信心,我找到了我尝试过的较小$n$的最佳配置,但对于较大的$n$,可能是1000次随机试验只触及了表面,有可能找到我在这里展示的更好的包装。这就是说,我发现即使是$n$,最好的包装也是具有180度旋转对称性的配置。然而,当$n$是奇数时,包装就很难解释了。(点击查看全尺寸图像)
为了显示更改优化器初始化的效果,下面是优化器为$n=10$的情况找到的前12个最佳解决方案。正如我们所看到的,有许多不同的配置可以产生类似质量的解决方案。这就是为什么随着我们增加$n$,问题变得越来越困难;有很多“好”的配置,所以很难找到最好的配置。
对称(次优)填料
另一种获得$n=3$情况解的方法是考虑另一个圆内三个圆的最优布局。因为我们有旋转对称性,所以这样的排列有无限多。
然后,如果我们将每个这样的配置水平拉伸$2$,我们将得到三个椭圆的有效填充,并且还有一个具有旋转对称性的无限族。如果每个较小的椭圆的宽度为$2$,则较大的椭圆的宽为$\frac{4}{\sqrt{3}}+2\约4.3094$。这不如我们在上面使用优化发现的打包好,后者产生了3.8759美元的收益。差异的原因是对称解决方案假设所有四个椭圆的主轴对齐。事实证明,如果你不对齐椭圆,你可以做得更好!