最近计算机下围棋是个热门话题。围棋变化太多,目前的计算机还无法穷尽每一种变化,所以靠一种“Genetic”算法来排除掉很多种可能的变化。我不知道“Genetic”算法到底是怎么回事,但知道计算机设计镜头时也要“Genetic”的。
一片球面镜需要5个变量来描述:1个位置,1个厚度,2个面的曲率,1个折射率。这些变量都以高次的形式进入方程。比如折射率是波长的高达6次的多项式函数。如果是非球面镜还要加几项非球面变量。一个镜头包含很多镜片,还要在几个波长,几个像角下都能工作。一个镜头还有长度,直径,重量,温度范围等一些限制条件。从数学上说,设计一个镜头就是解一个有几十个变量,几个限制条件的高次方程。不但无解析解,连数值解都未必能找到。
更具体点说,每个变量都会有误差。比如1片镜片的厚度是2mm,实际制作出来的厚度不可能绝对精确,而是2.0XXXmm或1.9XXXmm。所以每个变量进入方程不是简单的X,而是X + Delta(X),数学上称作之为小信号分析,要决定误差必须小到什么程度才不会坏事。每个变量可接受的误差会不一样。如果是个简单镜头,现在的计算机能穷尽所有的变化,找出最佳设计。如果是个复杂镜头,现在的计算机还是要靠“Genetic”。
从前没计算机时,全世界只有几个超级大拿能设计镜头。但他们面对几十个变量的高次方程,也只能连猜带蒙。那时要花几小时计算一条光线的路径。现在计算机一秒钟能算几百条,所以现在张三李四二泉都在设计镜头。从前的一些名牌镜头的设计,放在现在计算机上分析,按现在的标准设计都是不及格的。历史上一些很伟大的东西,我们认可其伟大的历史意义,但不等于说那些东西比现在的好。历史意义和现实意义是两回事,但常被混为一谈。