ns算法的主要功能:1、跟踪每个新个体的行为的少数性;2、使进化过程找到优异解决方案;3、独立于适应度压力并利用进化的创造力。跟踪每个新个体的行为的少数性是指,有效的新颖性度量实现应允许我们在行为空间的任何点计算稀疏度。
1、跟踪每个新个体的行为的少数性
新颖性搜索方法采用新颖性度量标准来跟踪每个新个体的行为的少数性。也就是说,新颖性度量标准是对新生物与行为空间中其他种群之间的距离的度量。有效的新颖性度量实现应允许我们在行为空间的任何点计算稀疏度。任何具有更密集访问点群集的区域都不太新颖,并且产生的进化奖励也更少。在一个点上最简单的稀疏度量是在行为空间中到该点的k个最近邻居的平均距离。当此距离高时,兴趣点在稀疏区域。同时,较密集的区域以较低的距离值标记。
2、使进化过程找到优异解决方案
新颖性搜索优化方法允许进化过程在任何具有欺骗性局部优异解的空间中搜索解决方案并找到优异解决方案。使用这种方法,当物种被迫不会收敛于特定的小生境解(局部优异),同时不得不探索整个解空间时,将有可能实现发散进化。尽管它采用违反直觉的方法,但是它似乎完全忽略了搜索过程中的显式目标,是一种非常有效的搜索优化方法。在大多数情况下,它可以比传统的基于目标的搜索(这种搜索以距离最终解的距离来衡量适应度)更快地找到最终解决方案。
3、独立于适应度压力并利用进化的创造力
Joel Lehman提出了一种针对人工进化过程的搜索优化新方法,称为新颖性搜索。使用这种方法,没有定义特定的适应度函数或将其用于解决方案搜索;相反,每个发现的解决方案的新颖性都会在神经进化过程中得到直接奖励。因此,所发现的解决方案的新颖性将神经进化引导至最终目标。这种方法可以独立于适应度压力来利用进化的创造力,以使解适合特定的问题场景。
延伸阅读
NS实现基础
要实现新颖性搜索(Novelty Search,NS),应包括保存有关所探查的新颖项信息的数据结构,以及用于维护和管理新颖项列表的结构。利用以下三个Python类进行封装:
- NoveltyItem:其中包含有关在进化过程中评估的个体新颖性得分的所有相关信息。
- NoveltyArchive:维护相关NoveltyItem实例列表的类。它提供了与已收集的NoveltyItem实例和当前种群相比评估个体基因组的新颖性得分的方法。
- ItemsDistance:辅助结构,用于保存两个NoveltyItem实例之间的距离(新颖性)度量值。它可用于计算平均k最近邻距离,将其用作新颖性得分值。
文章标题:ns算法的主要功能是什么,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/34978