计算机程序又为数学家立功了。

最近,来自美国、加拿大、瑞士的4位数学家,用C++和MATLAB程序解出了一个6元105项方程的59组特殊解。

求解完这个方程,也就证明了“有理四面体”(rational tetrahedra)总共只有59个“特殊”形状和2个系列,从而解决了一个44年的数学难题。

而提出这一难题的,正是去年因新冠而去世的著名数学家约翰·康威(John Conway)。

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园
△ 59个“有理四面体”单独解

1976年,康威给出了求解该问题的方程。1995年,两位数学家找到了其中59组特殊解,但是他们不确定有没有遗漏。

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园
△有理四面体具有两组“连续”解和59组单独解

得益于计算机硬件的发展,现在只用MacBook Pro和几台至强CPU电脑,在几天内就完成了对所有解的搜索。

结果证明,那两位数学家在20多年前其实已经得到了完整的答案。

四面体,顾名思义,就是四个三角形围成的立体图形。

四面体每两个面之间都组成一个二面角。四面体有6条棱,因此有6个二面角。

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园
△四面体中有6个二面角(图片来自Poonen手稿)

有理四面体是指四面体中的6个二面角都是有理数角度(与180°角的比值是有理数)。

就好像三角形的内角和公式数学公式: a+b+c=180°一样,四面体的6个二面角之间也有一种关系,只不过这种关系要复杂得多。

定义θij为四面体第i个面与第j个面的夹角(显然θij=θji),那么这6个二面角之间的关系可以行列式表示为:

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

因为是有理四面体,所以 θij=Qπ(弧度),Q是有理数。

我们把行列式展开后,会得到一个包含17项的方程,而且方程中还有余弦函数,求解难度很大。

但是数学家们想到了一个巧妙的化简方法。

接下来,数学家们用到了“最美数学公式”——欧拉公式——来简化方程。

欧拉公式将复数(实数+虚数)的指数函数与三角函数联系起来:

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

i是虚数,即-1的平方根。如果用图像的方式理解欧拉公式,那就是:

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

很显然,无论θ值如何变化,eiθ到0点的距离一定是1。

所以如果我们定义复数:

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

那么这个复数一定是在以原点为圆心,半径为1的圆上。

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园
△方程z5=1的5个解都在单位圆上

现在,方程里的三角函数可以用复数来替代了:

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

这样,上面的行列式从一个三角函数方程变成了一个多项式方程:

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

但问题也随之而来,这个方程总共有105项,而且是一个6元方程!不过好消息是,我们知道这6个未知数都在那个半径为1的圆上(称作“单位根”)。

巧妙的是,复数zij与x轴的夹角θij正好就是四面体的二面角,因此这些解不仅在圆上,与x轴夹角也必须是π弧度的有理数倍。

1995年,在那个没有性能强劲PC的年代,来自UC伯克利的Poonen和滑铁卢大学的Rubinstein通过插入六个有理数的组合,来猜测这个方程的解,他们总共找到了59组。

这样做带来一个问题是:可以找到解,但是不能保证把所有解一网打尽。

问题一搁置就是20多年,直到去年3月,Poonen参加了一次讲座。

在那一次的讲座上,研究数论的数学家Kedlaya介绍了自己的工作:搜索了不同多项式方程的单位根。

这不就和寻找“有理二面体”的问题等价吗?

Poonen很快就给Kedlaya发邮件,说明自己的来意:你们研究的“正是我在1990年代需要的东西”。

收到邮件后,Kedlaya与另一位研究单位根的数学家Kolpakov取得了联系。另一边,Poonen也联系上了他当年的的老搭档Rubinstein。

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园
△联手解决“有理四面体”的四位数学家

四人迅速组团,开始着手工作。

即便现在的计算机性能相比20多年前提升巨大,但想要找到一个6元105向方程的所有有理数解,还是不可能想象的。

必须要把搜索范围进一步缩小。

首先,他们“化整为零”。

在新论文中他们证明了,这个105项的复杂多项式方程可以用多个更简单的多项式表示,把这个6元方程转化成了数百个简单方程的集合。

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

寻找这些较简单方程的单位根,比原方程的搜索范围小得多。而且由于简单的方程与复杂的方程之间的对应关系,找到一个方程的根,能帮助找到另一个方程的根。

搜索上限的问题解决了,但搜索的间隔还是太小,搜索空间依然很庞大,工作无法继续。

然后,他们的第二步是,利用对称性进一步压缩搜索空间。

他们知道方程的解具有一定的对称性,如果在区间的一部分上有解,那么在区间的另一部分上也必须有解。

这样一来,他们就可以开发出新算法,利用这种对称性结构来更有效地进行搜索。

经过几个月的努力,他们完成了任务的分解。除去编程,整个搜索只占用了几颗酷睿与至强处理器数小时的时间。

计算机终于找到了所有特殊解,真的只有59个!(另外还有两组“连续”解。)

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

现在,他们的算法已经公布在GitHub上。

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

2020年11月,四个数学家把论文发布到arXiv上,44年后终于用计算机的方法完成了康威的愿望。

也算是告慰了康威的在天之灵,他们在论文首页上写着:“In memory of John H. Conway”。

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

解决这个问题后,Poonen本人亲自撰写了一篇科普文章,还和西蒙斯基金会联合录制了一段科普视频。

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园

Poonen列c出了三个重要的四面体问题,最早的要追溯到2300多年前亚里士多德的疑问:什么样的四面体能堆满整个空间?

1900年,数学家大卫·希尔伯特给出了另一个疑问:什么样的四面体可以经过有限次的切割重组为一个等体积的立方体?

至于第三个问题,就是刚刚解决的有理二面体问题。而前两个问题,人们现在还不知道答案。

如果非要问这个有理二面体有什么实际价值,Poonen给出了一个有趣的案例:

假设我们要在一个星球上建造N个城市,让这N个城市每两个之间的距离都是有理数,那么我们应如何规划?

(注:指城市之间的球面距离与赤道周长的比值是有理数。)

计算机搞定44年几何难题:原来这2个人25年前猜对了-冯金伟博客园
△如何在星球上建造两两距离皆为有理数的城市(图片来自Poonen手稿)

因为有理四面体问题的解决,现在这个问题有两个方案:

一个是让赤道上均匀分布几个城市,再把剩下两座城市放在南极北极。

而如果想让城市在星球上分布得更均匀一点,也就是上图右边的方法,那么N不能超过30,否则无解。