A Genetic Algorithm with Expansion Operator for the 3-Satisfiability Problem

It is well known that there are many problems that standard genetic algorithms fail to solve. There are a number of refinements of standard genetic algorithms that can be used to solve hard problems. In this paper we consider genetic algorithms with expansion operator for the 3-satisfiability problem.

Genetic algorithms are a class of algorithms inspired by the biological process of evolution by natural selection. Usually, genetic algorithms evolve a population of solutions by iteratively applying some search operators. Theoretical evidence suggests that the success of genetic algorithms stems from their ability to combine building blocks from separate individuals in order to form better solutions. However, it is well known that there are many problems that standard genetic algorithms fail to solve. An idea of refinement of standard genetic algorithms was proposed in [1]. The idea is to preserve good building blocks found by the genetic algorithm. For this purpose, we can use some constraints on the choice of recombination. In particular, an expansion operator can be used [1].
Recently, genetic algorithms for the 3-satisfiability problem is extensively studied and used for solution of other problems (see e.g. [2] - [6]). In this paper we consider genetic algorithms with expansion operator for the 3-satisfiability problem.
In [1], an expansion operator was considered for the shortest common superstring problem. In particular, an expansion operator is an addition of another block to increase the individual's genome length by one block. The added block is selected by expansion operator in such a way that the genome will still be a subsequence of at least one solution. Let We

. , z[m]). If u[i, j] = * , then we assume that C(u[i, j]) = ∅.
At first, we consider a standard genetic algorithm (SGA) for the 3-satisfiability problem. A proportion P of the existing population is selected to breed a new generation during each successive generation. We assume that P = n 2 . Individual chromosomes are selected by a fitness function F . To generate a second generation population of chromosomes, we can use two genetic operators: crossover C and mutation M. Usually, crossover defines a part of parent chromosome which used for construction of child chromosome. As C we use standard random operator. If u[i] and u[j] are two parent chromosomes, then we obtain two child chromosomes: For u[i [1]], . . . , u[i [p]], we consider C(u[i [1]], u[i [2]]), C(u[i [2]], u[i [1]]), . . . , [1]], C(u[i [2]], u[i [3]]), C(u[i [3]], u[i [2]]), . . . ,

C(u[i[p − 1]], u[i[p]]), C(u[i[p]], u[i[p − 1]])
if p = 2q + 1. This generational process is repeated until a termination condition T has been reached. As T we consider time function. We assume that Let M be a random function which with small probability changes values of u [i, j]. Now, we consider a genetic algorithm with an expansion operator (GAE). The only difference with SGA consists in the usage the following expansion Selected experimental results are given in Table 1.
average number of generations 10 2 10 3 10 4 10 5 average number of true clauses for SGA 53 % 62 % 69 % 73 % average number of true clauses for GAE 59 % 72 % 81 % 89 % ACKNOWLEDGEMENTS. The work was partially supported by Analytical Departmental Program "Developing the scientific potential of high school" 8.1616.2011.