遗传算法是模拟自然界中按“优胜劣汰”法则进行进化过程而设计的算法。Bagley和Rosengerg于1967年在他们的博士论文中首先提出了遗传算法的概念。1975年Holland出版的专著奠定了遗传算法的理论基础。如今遗传算法不但给出了清晰的算法描述,而且也建立了一些定量分析的结果,在众多领域得到了广泛的应用,如用于控制(煤气管道的控制)、规划(生产任务规划)、设计(通信网络设计)、组合优化(TSP问题、背包问题)以及图像处理和信号处理等。
细数遗传算法有哪些种类
遗传算法是如此简单,任何人只要用高中时学过的生物术语就可以理解。以一群个体为例,它们都有自己的DNA。然后衡量每一个个体的适应性(把它看作是适用于个体的DNA的官能来衡量),并且使那些更适应的个体更有可能繁衍。而最不适应的个体将会被灭绝。每个幸存者都会有机会繁衍(重要的是任何幸存者都可能会繁衍,如果不太适应的话,仅仅是降低了可能性)。合并双亲的DNA,对合并后的DNA应用随机变异以模拟繁衍。理论上说来,新的个体是和双亲一样适应的,由于变异或增或减会有些微小的变化。然后循环会周而复始。
虽然,有许多变化的因素在影响遗传算法,包括人群大小、代(算法的迭代)、合并方法、适应性函数,适应性将如何影响繁衍的可能性,以及发生了多少变异。
该算法也存在一些缺陷。如果把应用于DNA的适应性官能看成是一系列的二进制位,效果最好。换句话说,如果DNA是一系列二进制的选项,是还是不是。蓝眼睛?黑眼睛?红头发?黑头发?合并双亲的DNA和随后的变异应当不允许特定的一些位组合出现,因为得出的DNA可能不再是最初的问题的有效解答。请记住,所谓“DNA”仅仅是适应性公式纯数学的一种解答。该公式中用到的一些值可能是无效的—例如,除数为零。
另外,遗传算法不受时间限制。由您来挑选代的数目。您可以确定某个目标比方说,“找一个适应性为0.99999?的个体”,找到后停止。但是,结果是算法永远也不会结束,因为它没找到那个个体。如果您制定了不切实际的目标,或者代的数目太小,就会出现问题。尝试、出错,以及深入的思考是解决这个问题的最佳途径。