这篇我们将讨论崎岖景观模型,这个模型的目标是通过修改物体的某些属性来达到物体总价值的最大。

适合度景观模型

适合度景观模型假设物种拥有能够促进其适合度的特征或性状,当特征的程度不同时,就和给物种带来不同的适合度。如果用横轴表示性状,用纵轴表示物种的适合度,就可以绘出一张适合度景观的图,其中高海拔点对应高适合度。

假设一只土狼的尾巴有助于土狼在跳跃时保持平衡,而且土狼可以将它作为表示幸福、恐惧或即将发动攻击的信号。我们从横轴的最左侧开始,在那里,尾巴长度为零,这种情况下它不能执行任何一种功能,因此它的适合度为零。随着尾巴长度的增加,维持平衡和传递信号的功能也随之提高。因此,适合度先是随尾巴长度的增加而上升的。 但是,到了某一点上,比如当尾巴长到18英寸时,可能就是有助于土狼保持平衡的最理想长度。如果尾巴变得更长,土狼运动的敏捷度将会下降。不过,更长的尾巴可能还会继续提高它传递信号的价值,因此,长度为20英寸的尾巴可能会产生最大的整体适合度。一旦尾巴的长度超过了20英寸,适合度就会开始下降。结果如图所示,它具有一个单峰。

这种单峰景观被称为富士山景观。在现实世界中,这样的景观是经常出现的。有富士山景观的问题通常是比较容易解决的问题,我们比较容易找到全局最优解,任何一个爬山算法都可以找到这个山峰。

崎岖景观

当我们同时考虑多个属性并且允许一个属性的贡献与其他属性的贡献相互作用时,就会得到一个崎岖景观,也就是具有多个山峰的景观。考虑一个设计沙发的问题,我们必须决定坐垫的厚度和扶手的宽度。我们用沙发在市场上的预期销售额来代表设计的价值,而沙发的销售额与设计的美感相关。如果沙发有厚厚的垫子,那么较宽阔的扶手可能会使沙发更具美感。如果沙发的垫子很薄,那么扶手窄一点会更好。作为扶手宽度和坐垫厚度的函数,预期销售的二维图将具有两个山峰。一个山峰对应于窄扶手、薄垫子的沙发设计;另一个山峰则对应于宽扶手、厚垫子的沙发设计。

变量之间的相互作用,使得我们除了全局最优以外还会有多个局部最优。如果从不同的起点出发,也可能会找到不同的山峰。因此,崎岖性导致了对初始条件的敏感性和路径依赖的可能性。而这些都意味着,景观的崎岖性有助于结果的多样性。崎岖性也意味着出现次优结果的可能性,在崎岖景观中,次优结果表现为局部高峰。

如果我们用梯度启发法,从最左侧开始,那么梯度启发式将定位于局部高峰1上,但它不是最优的。在图中除了全局吸引盆外的其他地方开始,都是很难找到全局最高点。

要在崎岖景观中找到最优或接近最佳的高峰,需要多样性和复杂性的方法。如果不同的启发式能够找到不同的峰值,那么对一个问题应用多个不同的启发式就能够产生多个不同的局部峰值,然后就可以从这些局部峰值中选择一个最优的。如果从不同的起点应用同一个启发式,先找到若干个不同的局部最优点,然后选择其中最优的。

NK模型

利用NK模型我们可以描述不同属性的相互作用与崎岖性之间的联系。这个模型将对象表示为一个长度为N的二进制字符串,而这个对象的价值就是这个字符串的所有1的和。K指的这个字符串的其他K位与这一位交互来得到这一位的值。如果K等于零,那么价值函数就是线性的。如果K等于N-1,则所有的位都相互交互,每位的值都是随机的。

NK模型作为一个框架,为探索想法和提出问题创造了一个非常好的空间。我们想要问,局部最优值的数量是怎样取决于交互项的数量的。我们还可以问,全局最优值的大小又是如何取决于交互项的数量的。

我们主要依赖单翻转算法来进行搜索。这个算法按顺序选择每一个属性并切换该属性的状态。如果改变那个属性会产生一个更高的价值,就保留这个切换。否则,那个属性就退回到它原来的状态。之所以选择这个算法,有两方面的动机。首先,我们可以把它解释为描述基因突变的一个粗略模型,让好的基因变异逐步接管整个种群,并让坏的基因变异消失。其次,它也是在我们这个空间中表征爬山算法最自然的一个形式。如果我们从任何一个备选方案开始,单翻转算法将会对该备选方案与N个备选方案中的每一个进行比较。例如,假设我们从所有位都取零值的备选方案开始,那么单翻转算法将评估N个备选方案,每一个备选方案都恰好有一位的取值为1。

  • 初始备选方案:00000000000000000000
  • 属性1切换后的备选方案:10000000000000000000
  • 属性2切换后的备选方案:01000000000000000000
  • ……
  • 属性20切换后的备选方案:00000000000000000001

要成为一个局部高峰,其值必须高于这N个备选值中的每一个。原来的备选方案拥有最高值的概率等于1/N。因此,局部峰值的数量近似等于可能的替代方案数量$2^N$除以N的商。很容易计算,对于N=20,大约有5万个局部峰值。由于具有如此之多的局部最优,只靠单翻转算法很难准确定位全局峰值。

因此,在这里重要的不是局部最优值的数量,而是它们的值有多大。因此还需要将这些最优值的期望均值与全局最优值的期望值进行比较。通过这种比较,我们可以确定单翻转算法的性能如何。而在计算这些值的时候,我们可以利用中心极限定理。在这个例子中,可以证明局部最优值的期望值大约等于0.6,而全局最优值的期望值则略大于0.75。将这些值与K=0时的全局最优值2/3比较一下,就可以发现崎岖景观的局部峰值低于富士山景观的峰值,但是崎岖景观的全局峰值则比富士山景观的峰值更高。

交互作用的属性数量的增加,在产生了更高的全局峰值的同时,也产生了更多的(更低的)局部峰值。假设我们在搜索时使用了单翻转算法,那么对这个模型的计算表明,对于比较小的K值,互动的好处(得到了更高的全局峰值)超过了互动的坏处(出现了更多的局部峰值)。因此,在开始阶段,局部峰值的期望值会随着K的增加而提高。同时,局部峰值数量的增加则意味着它们的平均值将减小。

NK模型的一个重要含义是,我们需要适度的相互依赖性,因为这种互动能够产生更高的峰值。我们在搜索模型中也会遇到类似的情况。当拥有非常多的可能性时,我们更喜欢变化。同样的逻辑在这里也是适用的:组合(两个元素、三个元素)会产生丰富的可能性。而且我们还希望,这些可能性的价值有很大的变化范围。然后,我们更有可能发现其中一个具有非常高的价值。由于相互作用效应会增加变异,因此总体上说,它们是有利的,但只在一定程度上有利。正如我们在上面已经阐述过的,太多的变化会使景观随机化。在理想情况下,我们会有适度的互动。

最后要强调的一点是,我们一直将景观视为固定的。但是在生态和社会系统中,物种或企业要面对的景观还取决于他人的行为和属性。任何一个物种的适应,或任何一个企业策略的改变,都会改变和重组它们的竞争对手的适合度景观。