原标题:《为什么计算高维凸体的体积非常困难数学存在的纯粹证明是什么
从一个简单的等式开始,
显然,这个方程有解因为,设f= x ^ 5—x—13,有f=—13,f=17因此,在1和2之间必须有一个x,使得f=0
这是一个纯存在论证的例子,告诉你某个东西存在,但没有说如何索取如果方程是x 2—x—13 = 0,可以用完全不同的论证二次公式告诉我们正好有两个解它甚至告诉我们解决方案是什么
但是五次方程没有类似的公式。
这两个论点显示了数学的基本二分法如果想证明一个数学对象的存在,有时可以显式证明,即实项描述那个对象,也可以间接证明,就是不存在就会产生矛盾
这中间有各种各样的可能性,形成一个谱如前所述,最后一个论证只说明了在1和2之间,方程x ^ 5—x—13 = 0有解,但也提示了一个计算这个解的方法,精确到你需要的程度比如,如果需要精确到小数点后两位,可以取一系列数字:1,1.01,1.02,…,1.99,2,然后估计f在各点的值会发现f约为—0.0889,而f约为0.3337,所以两者之间一定有解其实有更好的方法,比如牛顿法,来近似求解对于许多目的来说,一个漂亮解的公式不如计算或近似这个解的方法重要而如果有方法的话,有没有用,要看它跑得快不快
这样,在光谱的一端,有一个简单的公式定义了一个熟悉的对象,它也可以很容易地用来找到这个对象另一方面,有证据可以证明物体的存在,而无需给出进一步的信息在这两者之间,有一些算法可以用来找出物体这些算法执行得越快,就越有用
和严格性的问题一样,如果其他条件都一样,严格论证比宽松论证好现在,即使知道存在一个间接的存在证明,用算法寻找一个显式论证仍然是值得的,原因也是类似的:寻求一个显式论证的努力往往会产生新的数学见解
纯粹证明存在的最著名的例子之一是关于超越数的超越数是实数,不能是任意整系数多项式方程的根这个数字存在的第一个证据是约瑟夫·刘维尔在1844年给出的他证明了有一个条件足以保证一个数是超验的,并且构造一个满足这个条件的数是很容易的后来E,π等各种重要数都被证明是超越数,但这些证明都很难即使是现在,仍然有很多数字几乎可以肯定是超越数字的,只是无法证明而已
以上证明都是直接明了的然后在1873年,康托尔用他的可数性理论给出了超越数存在的完全不同的证明他证明了代数数构成可数集合,实数构成不可数集合因为可数集合比不可数集合小很多,说明几乎每个实数都是超越数
就这个例子而言,两个论点都告诉了我们另一个论点没有告诉我们的东西康托的证明告诉我们超越数确实存在,但并没有给我们一个例子
严格来说,这也是不成立的:你可以指定一个方法,把代数数排列成一个列表,然后把康托著名的对角线论证应用到这个列表中,求一个超越数但是这样找到的超越数基本上没有任何意义
约瑟夫·刘维尔的证明在某一方面要好得多,因为它给了我们一种用直白的定义构造几个超越数的方法但是,如果我们只知道约瑟夫·刘维尔的直接论证和E,π是超越数的证明,我们可能会得到一个印象,超越数是一个很特殊的数有一种洞见,在这些论证中根本看不到,却出现在康托尔的证明中,那就是典型的实数是超越数
在20世纪的大部分时间里,高度抽象的间接证明占了上风,但最近几年来,尤其是因为计算机的发明,人们的态度发生了变化最近,人们更加关注一个证明是否是显式的,如果是,是否能导出一个有效的算法
不用说,算法本身很有趣,不仅仅是因为它们给出了数学证明的角度我们简单描述一个特别有趣的算法,它给出了一种计算高维凸体体积的方法
一个人影
凸体是指在K中任意取Z和Y两点,连接X和G的直线都在K中,比如正方形和三角形是凸的,五角星不是这个概念可以直接推广到N维的情况,其中N是任意正整数面积和体积的概念也可以这样推广
现在在下面的意义上指定一个N维凸体K,即提供一个快速运行的计算机程序,可以告诉我们每个点是否属于K,如何估计K的体积对于类似这样的问题,最有力的方法之一就是统计方法:随机取一个点,看它是否属于K,根据这个点落入K的频率来估算K的体积,比如估算π,取一个半径为1的圆,放入边长为2的正方形中,然后从这个正方形中随机取许多点每个点属于这个圆的概率是π/4,所以把落入圆内的点与总点数之比乘以4就得到π的估计
这种方法对于低维很容易,但是当维数很高时,就会遇到很大的困难例如,假设我们想用这种方法估算一个N维球体的体积把这个球放在一个N维的立方体里,也看看这个点落在球里的频率但是,N维球体的体积与N维立方体的体积之比是指数级较小的,也就是说,在球体中找到一个点之前要投射的点数是指数级较大的所以这种方法变得不切实际
可是,因为有另一个计划来绕过这个困难可以定义一个凸体的序列K_0,K_1,…,K_m,使每个凸体包含在下一个凸体中,从你要计算体积的凸体开始,最后是一个立方体,K_i的体积至少是K+1的一半因此,对于每一个I,都要估计出K与K_i的体积比这些比值的乘积就是K_0与K_m的体积比,但是K _ m的体积是已知的,所以就得到K_0的体积
如何估算K_与K_i的体积比简单的随机取K_i的点,看有多少落在K_里可是,问题的微妙之处就在这里:如何从未知的凸体中随机选择点在N维立方体中随机选择点是很容易的它只需要独立选择N个随机数x_1,…,x_n,每个x_i在—1到+1之间但对于凸体来说并不容易
有一个奇妙而聪明的方法可以避免这个问题这就是精心设计一个随机行走,从凸体中的一个点开始,每走一步,移动的点可以从几个可能性中随机选取伴随着随机行走步数的增加,我们越不知道这个点会到达哪里如果这个游动定义得当,那么几步之后就可以证明点的位置是纯随机的可是,要证明这一点是非常困难的