摘要
遗传算法是近年来被广泛应用的一种非线性并行算法,本文研究了几种改进遗传算法效率,提高搜索速度的方法;引入了两种变异的方法。并根据最大最小适应值的差值对适应值函数进行了修正,同时,对三种算子(复制、杂交和变异)进行了重新安排以拓展搜索域,并在搜索过程中加入排序以提高杂交效率。同传统的遗传算法相比,本文的遗传算法没有使用固定的变异率和杂交率,而是让它们随着搜索过程中群体中的个体的重复情况改变。用经典的验证函数检验,这些改进提高了搜索效率并且使搜索不易陷入局部最优。最后,一个遗传算法的通用模板类在VisualC++4.2的32位编译器下开发出来,它能处理包含任意多个自变量的浮点或整型串,以其为基类,用户只需定义自己的适应值函数就可以很容易地派生出自己的导出类,并可根据特殊情况对适应值修正函数及停止判据函数进行重写。
Genetic Algorithm, a nonlinear parallel algorithm, is being applied in more and more fields. In this paper, two kinds of new mutation technique are introduced, and fitness function modification is executed depending on the difference between maximal fitness and minimal fitness, three operators (crossover, replication, mutation) are rearranged to enlarge search range and sorting is changed with the searching process according to the repeating number of some individuals in population. Finally, a typical template class of genetic algorithms , which can be used to handle the integer or float type sequence with any number of variables, has been built in Visual C ++ 4.2 development environment. Based on it, (1) any derivative classes including users' special fitness function can be written easily. Some function, such as stop criteria function and fitness modification function can be rewritten for users' specification. Testified by classical test functions, these improvement (2) shows good search efficiency and not easily fall into sub-optimal solution like traditional search methods do.
出处
《计算机与应用化学》
CAS
CSCD
1998年第4期211-216,共6页
Computers and Applied Chemistry