[ACM Press the 1993 ACM conference - Indianapolis, Indiana, United States (1993.02.16-1993.02.18)]...

6
Using Genetic Algorithms to Generate Steiner ‘Ikiple Systems Stephen J. Hartley Math and Computer Science Department Drexel University Philadelphia, PA 19104 (215) 895-2678 shartleyQmcs.drexel.edu Abstract Steiner systems, particularly triple systems, are usually gen- erated by mathematicians using techniques from the theory of groups and quasi-groups. When pencil-and-paper enumer- ation becomes infeasible, mathematicians have used compuf- ers to carry out exhaustive searches. This paper presents some results of using genetic algorithms, which do not, use exhaustive search, to generate Steiner systems. A special- ized mutation operator was effective in generating Steiner triple systems. Future research will focus on improving the genetic algorithm to generate higher order Steiner systems whose existence is not currently known. 1 Introduction Our ultimate goal is to generate or construct Steiner sys- tems whose existence has yet to be determined. As a first step, we have demonstrated that genetic algorithms can be used to generate some Steiner triple systems (whose exis- tence is already known) more efficiently than has been done by exhaustive search algorithms. To facilitate understand- ing the application of genetic algorithms to the generation of Steiner triple systems, sections 2 and 3 discuss Steiner systems and genetic algorithms. Section 3.1 is an introduc- tion to the use of genetic algorithms to solve NP problems, which is closely related to our work. Section 4 describes the genetic algorithm program we used to generate Steiner sys- tems. The results of our research to date are presented in section 5. Sections 6 discusses our conclusions and section 7 the directions of our research in the future. 2 Steiner Systems For three integers t, k, v, where 2 5 t < k < v, a Steiner system S(t, k, v) is a pair (S, V) where S is a set of v elements and V is a collection of subsets of S, each of size k, such that any subset of S of size t is con- tained in exactly one member of V. A Steiner triple sya- tern S(2,3,v) is a set of triples (order not important in permission to copy without fee all or part of this material is grant4 provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notlce and the title of the publication and its date appear, and notice is given that copying is by permission of the Il%xXiatiOn for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. 0 1993 ACM O-89791-558-5/93/0200/0366 $1.50 Aaron H. Konstam Department of Computer Science Trinity University San Antonio, TX 78212 (512) 736-7484 akonstaraQshrew.cs.trinity.edu a triple) of elements from a set S of v elements such that each pair of elements from S is contained in exactly one triple. For the set .S = {A, B, C, D, E, F, G, II, I) of nine elements, an example Steiner triple system S(2,3,9) is {(MW), (AJW), WJ’3, (A,H,I), (B,W), O%E,H), (WV), (GD,I), (WX), (W,H), (D,G,H), W,Ol. In 1847, T. P. Kirkman proved that Steiner triple systems ex- ist if and only if v is congruent to 1 mod 6 or 3 mod 6. Colbourn and Oorschot [l] discuss the role of Steiner sys- tems as a particular kind of combinatorial design problem and mention some practical applications for Steiner systems. For example, consider a communications network for v ma- chines consisting of a number of local area networks (LANs). Suppose that each LAN can accommodate or has the capac- ity to handle only three machines. Further, suppose that for economic reasons we want any pair of machines to be able to communicate directly on just one LAN, in other words, for any pair of machines there is to be just one LAN to which both are attached. The existence of a Steiner triple system S(2,3, v) would indicate whether or not it is possible to sat- isfy the constraints. The generation of all such Steiner sys- tems would show the number of ways this communications network could be set up. For a Steiner system S(t, k, v) to exist, two necessary con- ditions must be satisfied (C(z, y) means % choose y”): (1) S(t, k, v) exists only if C(v - i, t - i)/C(k - i, t -i) is an integer for all 0 < i < t, and (2) S(t, k, v) exists only if v-t+1 2 (kJt+2)(k-t+l). Each of the following is known [12] to be a necessary and sufficient condition for existence: S(2,3,v) exists if and only if v = 1 or 3 mod 6; S(3,4, v) exists if and only if v = 2 or 4 mod 6; S(2,4, v) exists if and only if v = 1 or 4 mod 12; S(2,5, v) exists if and only if v = 1 or 5 mod 20. There are no similar necessary and sufficient existence conditions known for other categories of Steiner systems. Steiner systems “nest” or “embed”: if a S(t, k, v) exists, then a S(t -i, k-i, v-i) exists for all 1 <, i < t. Conversely, if a S(t, k, v) does not exist, then a S(t + i, k + i, v + i) does not exist for all i 2 1. In addition to those Steiner systems satisfying the above necessary and sufficient conditions, the following are known [5] to exist: S(4,5,11), S&6,12), S(3,5,17), S(3,6,22), S(4,5,23), S(5, f&24), S(4,7,23), S(5,8,24), S(3,5,25), 366

Transcript of [ACM Press the 1993 ACM conference - Indianapolis, Indiana, United States (1993.02.16-1993.02.18)]...

Page 1: [ACM Press the 1993 ACM conference - Indianapolis, Indiana, United States (1993.02.16-1993.02.18)] Proceedings of the 1993 ACM conference on Computer science - CSC '93 - Using genetic

Using Genetic Algorithms to Generate Steiner ‘Ikiple Systems

Stephen J. Hartley Math and Computer Science Department

Drexel University Philadelphia, PA 19104

(215) 895-2678 shartleyQmcs.drexel.edu

Abstract

Steiner systems, particularly triple systems, are usually gen- erated by mathematicians using techniques from the theory of groups and quasi-groups. When pencil-and-paper enumer- ation becomes infeasible, mathematicians have used compuf- ers to carry out exhaustive searches. This paper presents some results of using genetic algorithms, which do not, use exhaustive search, to generate Steiner systems. A special- ized mutation operator was effective in generating Steiner triple systems. Future research will focus on improving the genetic algorithm to generate higher order Steiner systems whose existence is not currently known.

1 Introduction

Our ultimate goal is to generate or construct Steiner sys- tems whose existence has yet to be determined. As a first step, we have demonstrated that genetic algorithms can be used to generate some Steiner triple systems (whose exis- tence is already known) more efficiently than has been done by exhaustive search algorithms. To facilitate understand- ing the application of genetic algorithms to the generation of Steiner triple systems, sections 2 and 3 discuss Steiner systems and genetic algorithms. Section 3.1 is an introduc- tion to the use of genetic algorithms to solve NP problems, which is closely related to our work. Section 4 describes the genetic algorithm program we used to generate Steiner sys- tems. The results of our research to date are presented in section 5. Sections 6 discusses our conclusions and section 7 the directions of our research in the future.

2 Steiner Systems

For three integers t, k, v, where 2 5 t < k < v, a Steiner system S(t, k, v) is a pair (S, V) where S is a set of v elements and V is a collection of subsets of S, each of size k, such that any subset of S of size t is con- tained in exactly one member of V. A Steiner triple sya- tern S(2,3,v) is a set of triples (order not important in

permission to copy without fee all or part of this material is grant4 provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notlce and the title of the publication and its date appear, and notice is given that copying is by permission of the Il%xXiatiOn for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission.

0 1993 ACM O-89791-558-5/93/0200/0366 $1.50

Aaron H. Konstam Department of Computer Science

Trinity University San Antonio, TX 78212

(512) 736-7484 akonstaraQshrew.cs.trinity.edu

a triple) of elements from a set S of v elements such that each pair of elements from S is contained in exactly one triple. For the set .S = {A, B, C, D, E, F, G, II, I) of nine elements, an example Steiner triple system S(2,3,9)

is {(MW), (AJW), WJ’3, (A,H,I), (B,W), O%E,H), (WV), (GD,I), (WX), (W,H), (D,G,H), W,Ol. In 1847, T. P. Kirkman proved that Steiner triple systems ex- ist if and only if v is congruent to 1 mod 6 or 3 mod 6.

Colbourn and Oorschot [l] discuss the role of Steiner sys- tems as a particular kind of combinatorial design problem and mention some practical applications for Steiner systems. For example, consider a communications network for v ma- chines consisting of a number of local area networks (LANs). Suppose that each LAN can accommodate or has the capac- ity to handle only three machines. Further, suppose that for economic reasons we want any pair of machines to be able to communicate directly on just one LAN, in other words, for any pair of machines there is to be just one LAN to which both are attached. The existence of a Steiner triple system S(2,3, v) would indicate whether or not it is possible to sat- isfy the constraints. The generation of all such Steiner sys- tems would show the number of ways this communications network could be set up.

For a Steiner system S(t, k, v) to exist, two necessary con- ditions must be satisfied (C(z, y) means % choose y”):

(1) S(t, k, v) exists only if C(v - i, t - i)/C(k - i, t -i) is an integer for all 0 < i < t, and

(2) S(t, k, v) exists only if v-t+1 2 (kJt+2)(k-t+l).

Each of the following is known [12] to be a necessary and sufficient condition for existence: S(2,3,v) exists if and only if v = 1 or 3 mod 6; S(3,4, v) exists if and only if v = 2 or 4 mod 6; S(2,4, v) exists if and only if v = 1 or 4 mod 12; S(2,5, v) exists if and only if v = 1 or 5 mod 20. There are no similar necessary and sufficient existence conditions known for other categories of Steiner systems.

Steiner systems “nest” or “embed”: if a S(t, k, v) exists, then a S(t -i, k-i, v-i) exists for all 1 <, i < t. Conversely, if a S(t, k, v) does not exist, then a S(t + i, k + i, v + i) does not exist for all i 2 1.

In addition to those Steiner systems satisfying the above necessary and sufficient conditions, the following are known [5] to exist: S(4,5,11), S&6,12), S(3,5,17), S(3,6,22), S(4,5,23), S(5, f&24), S(4,7,23), S(5,8,24), S(3,5,25),

366

Page 2: [ACM Press the 1993 ACM conference - Indianapolis, Indiana, United States (1993.02.16-1993.02.18)] Proceedings of the 1993 ACM conference on Computer science - CSC '93 - Using genetic

S(3,6,26), S(4,6,27), S(5,7,28), and S(2,6,31). The following are known not to exist: S(4,5,15), S(2,6,16), S(5,6,16), S(4,6,18), and S(2,6,21). The existence or non-existence of the following is not yet known: S(4,5,17), S(4,5,21), S(6,7,25), and S(4,5,27). It is not yet known [l] if any S(6, k, v) exist.

2.1 Generating Steiner Systems

Hall [8] describes some recursive and iterative methods in- volving quasi-groups that can be used to construct Steiner triple systems. Since these methods are not applicable to higher order Steiner systems, mathematicians have used computers to perform exhaustive searches in looking for higher order Steiner systems. The last major discovery about higher order Steiner systems with the aid of a com- puter [ll] used the two non-isomorphic forms (ones that are not just a relabeling of the elements of S) of S(2,3,13) as embeddings to find four non-isomorphic forms of S(3,4,14). Using these four as starting points in an exhaustive search, no S(4,5,15) was found to exist. The situation for S(4,5,17) is much more computationally complex: there are 80 non- isomorphic forms of S(2,3,15) and more than 31,300 of S(3,4,16).

A solution to S(t, k, u) has IS(t, k, v)I = C(u, t)/C(k, t) k-tuples (k-tuple means subset of size k). If a S(& k, v) ex- ists, then the C(u,t) t-tuples of S can be partitioned into IS(t, k, u)I sets, each of size C(k, t) (each k-tuple “contains” or “covers” this many t-tuples). For example, S(2,3,9) has 12 3-tuples in a solution (]S(2,3,9)1 = 12), and it has 36 2- tuples and 84 3-tuples over the 9 elements in S. lS(4,5, I7)l is 476, and there are 2380 4-tuples and 6188 5-tuples.

A “brute force” computer program could be written that would look at all possible sets of k-tuples of size ]S(t, k, u)I to see if each of the C(u,t) t-tuples is contained in exactly one k-tuple in the set. For S(2,3,9), this program would examine C(84,12) # 10” sets of btuples of size 12 to see if the set contains each of the 36 2-tuples exactly once. In fact, for Steiner triple systems one needs to consider only sets of 3- tuples as candidate solutions that begin {ABC, ADE, AFG, AHI, . . . } since any solution is isomorphic to one starting in this way. There are C(84 - 4,12 - 4) x 3 x 10” of these to be checked (4 = IS(l, 2,8)1, the size of the “embedded” or “nested” Steiner system). The table in Figure 1 shows the complexity of a brute-force computer search for a number of Steiner systems.

As a first alternative to the brute-force search technique, the authors have treated generating Steiner systems as a search tree optimization problem. The search space is treated as a tree, where each node of the tree is a k-tuple and each path from the root to a leaf node represents a poten- tial solution to be evaluated. The authors wrote a program that takes as input three positive integers t, A, and u, where t < k < u 5 32, and attempts to generate a Steiner system S(t, k, u). Some combinations oft, k, and u can be ruled out immediately by the necessary conditions.

The program attempts to build the tree by placing k- tuples on the nodes of the tree, subject to certain checks and using a backtracking algorithm. If at any time there is a path to a leaf node whose length (number of nodes from root to leaf) is lS(t, k, u)l, then we have a solution and the

System Size of Number of Approximate S(t, k, u) k-tuples Complexity

S(2,3,9) 12 84 3 x loI= S(2,3,13) 26 286 1.8 x 103’ S(2,3,W 35 455 2.4 x 10” S(2,3,W 57 969 3.4 x 10”’ S(2,3,21) 70 1330 5.3 x 1oro4 S(2,3,25) 100 2300 4.2 x 10nro S(2,3,27) 117 2925 2.8 x 101s3 S(2,3,31) 155 4495 1.2 x 1o269 S(4,5,17) 476 6188 > 105sz

Figure 1: Brute-Force Complexity.

program stops. When placing a k-tuple on a node of the tree, the program makes sure that that k-tuple contains no t-tuples already contained in a k-tuple along the path back to the root. This check is done by laying out all C(u, k) k-tuples in an array. When placing a k-tuple on the tree, the algorithm %rosses off in the above array of alI k-tuples those k-tuples that have a t-tuple “in common” with the one being placed in the tree. Then the algorithm advances to the next available (not yet %rossed off”) k-tuple in the array and places it in the tree. The program does this until it has enough for a solution or there are no more k-tuples available in the array. It backtracks when there are no more available. The algorithm then starts down another branch of the tree, and makes available again (“un-crosses off”) in the above array the k-tuples that were crossed off going down the previous branch. This algorithm will find a solution, if one exists, or report that no solution is possible by exhausting the tree.

The program includes two heuristics: Yransition” checks, and backtracking immediately when not enough k-tuples are available in the array to complete a partial candidate solu- tion. While building a candidate partial solution, there may be a change or transition in the k-tuples. For example, the partial candidate solution so far might be (A.. . , . . . , B.. . , . ..( B.. .). At this point, suppose that there are no more B ..* available in the array of all k-tuples, so we try a C.. . . The program checks to make sure there are enough Bs in the k-tuples in the candidate partial solution generated so far. If there are not enough Bs, the algorithm backtracks.

Figure 2 shows the search tree for S(2,3,9), pruned by both heuristics mentioned above and annotated with their decisions, with the solution obtained given along the bottom of the figure.

The table in Figure 3 shows how many search iterations and CPU seconds to find a solution thii program takes run- ning on a Sun Microsystems MP690 for some values of t, k, and u. This program uses 32-bit words as bit-sets to repre- sent the t-tuples and k-tuples, so the program cannot handle u > 32. The program generates and prints a solution for all Steiner triples S(2,3,u), u 5 32, that are known to exist, except for S(2,3,21), S(2,3,25), and S(2,3,27). For these three parameter sets, the program has run for months with- out finding a solution. Any gaps in Figure 3, except the three Steiner triple systems mentioned, represent parame-

367

Page 3: [ACM Press the 1993 ACM conference - Indianapolis, Indiana, United States (1993.02.16-1993.02.18)] Proceedings of the 1993 ACM conference on Computer science - CSC '93 - Using genetic

ABC ADE

AQG ABI

BDQ BEG

CDG bad trmrition backtrack. pop BEG

BEB BGI

CM: CEQ no .or. to take

brektmek. pop CEQ

CEI too f*w remain backtrack. pop CEI

CQE too ia! remin backtrack. pop CQB too few remin backtrack. pop CDG

CDE CEQ no .or. to ttkw

backtrack. pop CEQ C&G too fws rrdn

backtrack. pop CEG CEI no wre to take

backtrack, pop CEI too few remain backtrack. pop CDB

CD1 CEQ too few remin

backtrack. pop CEQ

CEO CQII

DGB EQ1

ABC IDE AQG ABI BDQ BEE BGI CD1 CEO CQB DGB EQ1

Figure 2: Search Tree for 5(2,3,9).

ter sets, u 5 32, for which it is impossible to construct a Steiner system, such as S(2,6,16), S(4,6, IS), S(5,6,16), or for which the answer is not known, such as S(4,5,17) and

W, k, 4.

3 Genetic Algorithms

A genetic algorithm is a search or optimization technique based on a genetic model that was originally developed by Holland [9] (a detailed description of the technique can be found in books by Holland [9], Goldberg [S], and Davis [3]). The technique depends on the use of an encoding scheme and a fitness or objective function. The encoding scheme is used to construct representations of the potential opti- mal solutions. These representations, called chromosomes, consist of strings of symbols of uniform length. These sym- bols can be bits, floating point numbers, letters, or members of any other symbol set deemed adequate to represent the solutions.

The fitness function is designed to measure the fitness of the problem solutions being encoded. In general we are in- terested in finding the solution that gives the maximum or minimum fitness in the solution space being searched.

Once a coding scheme and fitness function has been cho- sen, the genetic algorithm proceeds as follows. A population of chromosomes is generated. Then a set of genetic oper- ators is applied to the population of chromosomes. These genetic operators are chosen so that they generate a new

Number Solution Iterations CPU System ktuples Size to Solve sea. S(2,3,7) 35 7 7 0.02 S(2,3,9) 84 12 23 0.02 S(2,3,13) 286 26 4279 0.42 S(2,3,15) 455 35 35 0.02 S(2,3,19) 969 57 616733 148.95 S(2,3,21) 1330 70 not found S(2,3,25) 2300 100 not found S(2,3,27) 2925 117 not found S(2,3,31) 4495 155 155 0.48 S(2,4,13) 715 13 13 0.02 S(2,4,16) 1820 20 2033 1.12 S(2,5,21) 20349 21 21 0.28 S(2,6,31) 736281 31 205 53.73 S(3,4,8) 70 14 14 0.02 5(3,4,W 210 30 75 0.03 S(3,4,14) 1001 91 97773 35.22 S(3,4,16) 1820 140 140 0.18 S(3,4,20) 4845 285 4882145 18609.97 q3,4,32) 35960 1240 1240 32.03 S(3,5,17) 6188 68 8232 27.37 S(3,6,22) 74613 77 77 2.37 S(4,5,11) 462 66 116 0.05 s(4,7,23) 245157 253 253 21.42 S(5,6,12) 924 132 182 0.12 s(5,8,24) 735471 759 759 174.78

Figure 3: Search Tree Program Results.

population with more fit individuals. This new population, therefore, will have a greater average fitness than the pre- vious population. The period over which the application of genetic operators transforms the old population to a new population is called a generation. The process is repeated for successive generations until the resulting population con- verges to a state in which one or more of the chromosomes have the desired optimum fitness.

The basic genetic algorithm generall$uses at least the fol- lowing three genetic operators to attain the optimal state: reproduction, crosrouer, and mutation. Reproduction, which is generally the first genetic operator applied to a popula- tion, initially calculates the fitness of all the chromosomes in the population. Then a new population is generated using the stochastic rule that the probability of a chromosome ap- pearing in the new population is proportional to the fraction of the total fitness represented by the chromosome being re- produced. For example, if the fitness of a chromosome is 3 and the sum of the fitnesses of sll the chromosomes is 15, then the probability of that chromosome being reproduced is 3/15 or 0.2. Other more complicated reproductive strate- gies have been used in the literature, but this one, called the roulette-wheel strategy, is the simplest to understand.

Crossover also takes several forms. The crossover method we used is a variation of what is called uniform crorsouerand is applied to pairs of chromosomes in the new population created by reproduction. In its simplest form this crossover operator exchanges symbols in the corresponding positions

368

Page 4: [ACM Press the 1993 ACM conference - Indianapolis, Indiana, United States (1993.02.16-1993.02.18)] Proceedings of the 1993 ACM conference on Computer science - CSC '93 - Using genetic

of the chosen pair of chromosomes, called the parents, to produce two chromosomes, the children, that replace their parents in the population. The probability of this exchange occurring is .5, so that roughly half the symbols in the par- ents will be exchanged. The crossover operator is applied to pairs of chromosomes with a probability PC, the crosdouer probability.

The mutation operator causes symbols in the chromc- somes to be altered with a given probability Pm, the mu- tation probability.

As it turns out, the robustness of the genetic algorithm as an optimization method is somewhat dependent on the cor- rect choice of a coding method and fitness measure. In ad- dition, as our work indicates, changes in the implementation of these or other genetic operators can make the difference between failure and success of the search process.

3.1 NP Problems

Since the problem of generating Steiner triples is NP but not P, it seemed worthwhile to take note of how genetic al- gorithms were used to solve NP problems in general [4] and the n-queens problem in particular [2]. The approach used in these two papers was to treat the problem as a boolean satisfiabiity problem. The boolean satisfiability problem, which itself is NP-complete, consists of an arbitrary boolean expression of n variables. The problem is to find an assign- ment to these n variables which will result in the boolean expression being true.

The boolean satisfiability problem has at least one ideal property for solution through genetic algorithms. The pos- sible solutions to the problem are easily coded into a binary string where each symbol in the string is a boolean 1 or 0. The ith bit in the string represents the value of the ith boolean variable in the expression.

An appropriate choice for the fitness function is less ob- vious. One possibility is to use the value of the boolean ex- pression represented by the chromosome as its fitness. This would result in the fitness being 1 or true at the optimum and 0 or false everywhere else in the search space. We would like a more informative fitness function that would not only tell us when we were at an optimum but would also indi- cate how close a given chromosome was to the optimum. De Jong and Spears [4] have given a rather complete analysis of appropriate fitness functions and we describe our fitness function more fully in light of their work in a subsequent section.

4 A GA for Steiner Systems

A standard generational genetic algorithm program, SGA- C, a C-language translation and extension [7] of the original Pascal SGA code presented in Goldberg’s book [6], was mod- ified to generate Steiner systems. Each chromosome is a bit string of length equal to the total number of k-tuples over the set S of v elements. Each bit encodes whether or not the corresponding k-tuple is in the potential Steiner system rep- resented by the chromosome. Since the number of bits set to 1 in each chromosome corresponds to the number of L-tuples in a solution, and since this number is known in advance, the

program was further modified to keep constant the number of bits set to 1 in each chromosome. Any chromosome with a different number of bits set to 1 could not possibly encode a solution. All the randomly-generated members of the ini- tial population are constructed with the correct number of bits set to 1. As described below, mutation and crossover were modified to preserve the count of bits set to 1 in all chromosomes.

4.1 The Fitness Function

The fitness function is patterned on the fitness function used in genetic algorithm programs solving the satisfiabiity prob- lem [2,4]. It works as follows. In a chromosome being eval- uated, the bits set to 1 represent t-tuples in the candidate solution encoded by the chromosome. The evaluation func- tion determines how many times each f-tuple is “covered” or included in any k-tuple in the chromosome. If the chromo- some were actually a valid solution Steiner system, then thii count would be exactly 1 for each l-tuple. For each t-tuple over S, the fitness function counts how many times that t- tuple is contained in any of the k-tuples in the chromosome. The counts are then adjusted by setting to 0 all those counts that are not exactly 1. Then the fitness value is set equal to the square of the average of all the counts.

This is equivalent to the fitness function used in [4] for the satisfiability problem, where the boolean equation rep resents the logical value of the statement that each t-tuple occurs exactly once in the set of k-tuples represented by the chromosome.

4.2 Specialized Genetic Operators

In order to preserve the count of bits set to 1 in each chro- mosome, the mutation operator was modified so that if a bit was chosen at random to be flipped then some other bit set oppositely would be chosen at random to be flipped. Thus the number of bits set to 1 in the chromosome is kept con- stant. We call this count-preserving mutation.

The crossover operator was modified to preserve the num- ber of bits set to 1 in chromosome pairs chosen for crossover. If two chromosomes are chosen for crossover, then two lists are built, both related to the bit positions in the chromo- some strings where the bits differ. The first list, called uherebitsdifferup in the program, is a list of all bit positions where the bit in this position in the first chromo- some is 1 whereas the bit in the same position in the second chromosome is 0. The second list, vherebits-dif f erdovn, is a list of all bit positions where the bit in this position in the first chromosome is 0 whereas the bit in the same posi- tion in the second chromosome is 1. These two lists turn out to be always of the same length. Next, using bit positions from the two lists, the bits in the two chromosomes are ex- changed with probability 0.5. Thus the number of bits set to 1 in each of the two chromosome is kept constant. This is called count-preserving crossover.

An example will illustrate this modified crossover opera- tor. Suppose the two chromosomes chosen for crossover are 010110110 and 110010101. Then vherebits-differap is 3,7 and vherebitsdifferdovn is 0,8. The crossover op- eration now “flips” a fair coin twice. With probability 0.5,

369

Page 5: [ACM Press the 1993 ACM conference - Indianapolis, Indiana, United States (1993.02.16-1993.02.18)] Proceedings of the 1993 ACM conference on Computer science - CSC '93 - Using genetic

the bits at positions 3 will be exchanged and the bits at positions 0 will be exchanged (preserving the counts of bits set to 1 in each of the two chromosomes), And then, with probability 0.5, the bits at positions 7 will be exchanged and the bits at positions 8 will be exchanged (again preserving the counts). Suppose the first exchange is not done and the second exchange is. When crossed over in thii fashion, the chromosome pair becomes 010110101 and 110010110.

An additional operator, called goal-directed mutation, was added to the program to improve its performance. It is applied to chromosomes with a probability Psdm, the gool- directed mutation probability, and works as follows. If a chro- mosome is chosen to have this operator applied, then four lists are built for the chromosome. The first two lists are: a list of all k-tuples that cover a t-tuple that is covered more than once in the chromosome; and a list of all A-tuples which could be included in the solution to cover some t-tuple that is not now covered at all. The second two lists are: a sub- list of the first list containing those k-tuples in the chromo- some which cover t-tuples 11 of which are “over-covered,” i.e. covered more than once; and a sublist of the second list containing those k-tuples not now in the chromosome which cover t-tuples all of which are not covered at all by L-tuples in the chromosome.

If both of the second two lists are non-empty, then at ran- dom one k-tuple is chosen from each list. If one of the second two lists is empty, then the first two lists are examined. If they are both non-empty, then at random one k-tuple is cho- sen from each list. In either case, the first of the two chosen is removed from the chromosome and the second of the two chosen is added to the chromosome, preserving the count of the number of bits that are set to 1 in the chromosome.

The idea here is to remove from the chromosome, if pos- sible, a k-tuple that is redundant, in the sense that it covers t-tuples already covered by some other k-tuple; and to add to the chromosome a k-tuple that would cover t-tuples not covered by any k-tuple in the chromosome. Even better, if there is a k-tuple in the chromosome, all of whose covered t-tuples are redundantly covered, and if there is another k- tuple not in the chromosome, all of whose covered t-tuples are not covered by any k-tuple in the chromosome, then those two will be removed and added, respectively.

5 Results

The above genetic algorithm for generating Steiner sys- tems was evaluated first without the goal-directed mutation and then with goal-directed mutation. The table in Fig- ure 4 shows the performance of the algorithm without goal- directed mutation. The table shows how many generations and CPU seconds the program takes, running on a Sun Mi- crosystems MP690, to find a solution to S(t, k, u) for some count-preserving mutation and crossover probabilities. The population size is 100. If after 10,000 generations, conver- gence has not been obtained, that is, the current population does not contain at least one chromosome that represents a valid Steiner system, then the current population is dis- carded, a new initial population created, and another at- tempt made for at most 10,000 generations. At most ten such attempts will be made. Solutions were generated for

Cross. Mut. Generations CPU System Prob. Prob. to Solve sets. S(2,3,7) 0.1 0.001 10011 245.30 s(2,3,7j 0.1 0.005 62 S(2,3,7) 0.1 0.01 29 S(2,3,7) 0.7 0.001 7 S(2,3,7) 0.7 0.005 40 S(2,3,7) 0.7 0.01 71 S(2,3,9) 0.1 0.001 not found S(2,3,9) 0.1 0.005 4431 S(2,3,9) 0.1 0.01 44478 S(2,3,9) 0.7 0.001 749 S(2,3,9) 0.7 0.005 31548 S(2,3,9) 0.7 0.01 6044

1.48 0.67 0.20 0.98 1.77

150.07

1532.7 26.48

1090.2 215.30

Figure 4: Results Without Goal-Directed Mutation.

S(2,3,7) and S(2,3,9), but without goal-directed mutation, convergence for no other parameters was ever obtained.

The table in Figure 5 shows the performance of the al- gorithm with a goal-directed mutation probability fixed at 0.8 for all runs. No convergence to a solution has yet been attained for S(2,3,25) or S(2,3,31).

6 Discussion and Conclusions

For all runs in which u = 7, convergence resulted fairly rapidly (in under 100 generations) for nearly all combina- tions of the crossover and mutation operations that we tried. For larger values of v (9, 13, . . . ), final convergence was more elusive. With the probabilities given in Figure 4 and using just count-preserving crossover and mutation, the runs for u = 9 nearly always converged. But for larger values of w, convergence was either rare or did not occur at all. Conver- gence, even when it occurred for these cases, turned out to be very dependent on the random number generator seed. Convergence would proceed to a state where, for example, two 2-tuples were covered twice and two 2-tuples were not covered at all, and then the algorithm got stuck.

Goal-directed mutation turned out to be an essential op- erator in forcing the genetic algorithm to converge. With this operator, together with reproduction and the count- preserving crossover and mutation operators, convergence was obtained for values of u through 21, resulting in some solutions that were unobtainable by the tree search method shown in Figure 3.

Plots of the log of the CPU time versus values of u are more or less linear for the various combinations of count- preserving crossover and mutation probabilities from Fig- ure 5 (plots not shown due to space limitations). In each case the probability of goal-directed mutation was constant at 0.8. Therefore, if we take CPU time as a measure of com- putational complexity and u as the parameter in the Steiner triples systems that measures problem size, we see that the complexity of our algorithmic generation of Steiner triples is roughly O(e”).

We expected that convergence would benefit from the randomness introduced by mutation. Our results indicate

370

Page 6: [ACM Press the 1993 ACM conference - Indianapolis, Indiana, United States (1993.02.16-1993.02.18)] Proceedings of the 1993 ACM conference on Computer science - CSC '93 - Using genetic

Cross. Mut. Generations CPU System Prob. Prob. to Solve sees.

S(2,3,7) 0.1 0.001 4 0.22 S(2,3,7) S(2,3,7) S(2,3,7) 5(2,3,7) S(2,3,7) S(2,3,9) S@, 399) w, 319) SC& 399) S(2,3,9) S(2,3,9) SC4 3,131 S(2,3,13) S&3,13) S(2,3,13) S(2,3,13) S(2,3,13) S(2,3,15) S(2,3,15) S(2,3,15) S(2,3,15) S&3,15) S(2,3,15) S(2,3,19) S(2,3,19) S(2,3,19) S(2,3,W S(2,3,W S(2,3,19) S(2,3,21) S(2,3,21) S(2,3,21) S(2,3,21) S(2,3,21)

0.1 0.005 0.1 0.01 0.7 0.001 0.7 0.005 0.7 0.01 0.1 0.001 0.1 0.005 0.1 0.01 0.7 0.001 0.7 0.005 0.7 0.01 0.1 0.001 0.1 0.005 0.1 0.01 0.7 0.001 0.7 0.005 0.7 0.01 0.1 0.001 0.1 0.005 0.1 0.01 0.7 0.001 0.7 0.005 0.7 0.01 0.1 0.001 0.1 0.005 0.1 0.01 0.7 0.001 0.7 0.005 0.7 0.01 0.1 0.001 0.1 0.005 0.1 0.01 0.7 0.001 0.7 0.005

3 0.17 2 0.10 3 0.18 5 0.23 4 0.22 8 0.72

93 7.72 20 1.73 11 0.98 11 0.98 17 1.48 42 9.78 37 8.58

1400 319.17 142 33.03

1405 330.62 96 22.48

546 189.25 232 80.82 194 66.38 266 96.33

30661 10961 1385 493.82

28434 20174 19468 13811 11727 8318.8 11603 8266.1 34571 24608 79130 56286 32538 30862 62559 59337 12541 11895 4056 3944.2

29589 28732 74124 72135 S(2,3,21) 0.7 0.01

Figure 5: With Goal-Directed Mutation (Psd,,, = 0.8).

the greater effectiveness of mutation when compared to crossover. But our count-preserving mutation was not good enough to force convergence for u > 9. The effect of count- preserving mutation turned out to be too random. What was needed was a more goal-directed heuristic operator. Goal- directed mutation turned out to be the effective choice for this heuristic operator. Once goal-directed mutation was in- troduced into the operator mix, convergence was attainable.

Our results show that genetic algorithms provide an ef- fective tool for the generation of Steiner triples. We have every reason to believe these same techniques will be effec- tive in generating Steiner systems for S(t,k,u), t > 2 and k > 3, which become increasingly difficult by the other ex- isting methods. Once the generating tools for these more general Steiner systems are developed, work can proceed in determining the existence of Steiner systems whose existence is currently not known.

7 Further Work

The goal of thii research is to find a S(4,6,17) and a S(6, li, u). One approach for improving the performance of the genetic algorithm so that larger Steiner systems can be generated is parallelizing the algorithm. Several parallel pro- cesses can work with independent populations for a number of generations and then exchange chromosomes with high fitness values, as described in [lo].

Another approach for improving performance is designing new crossover and mutation operators that create chromo- somes with higher fitness values than the operators currently being used in the algorithm.

References

[l] C. J. Colbourn and P. C. van Oorschot, “Applications of Combinatorial Designs in Computer Science,” ACM Computing Surveys, Vol. 21, No. 2, June 1989, pp. 223- 250.

[2] K. D. Crawford, “Solving the n-Queens Problem Us- ing Genetic Algorithms,” Proceedings of the 1992 ACM/SIGAPP Symp. on Applied Computing, Kansas City, MO, March l-3, 1992, pp. 1039-1047.

[3] L. Davis, Handbook of Genetic Algorithms, Van Nos- trand Reinhold, 1991.

[4] K. A. DeJong and W. M. Spears, “Using Genetic Algo- rithms to Solve NP-Complete Problems,” Proceedings of the 3rd International Conference on Genetic Algo- rithms, San Mateo, CA, June 4-7, 1989, pp. 124-132.

[S] J. Doyen and A. Rosa, “A Updated Bibliography and Survey of Steiner Systems,” Ann. Discrete Math., Vol. 7, 1980, pp. 317-349.

[6] D. E. Goldberg, Genetic Algorithms in Search, Opti- mization and Machine Learning, Addison Wesley, 1989.

[7] D. E. Goldberg, SGA-C (~1.1) - A Simple Genetic AC gorithm, 1986, C version by Robert E. Smith, Univ. of Alabama, ~1.1 modifications by Jeff Earickson, Boeing Company.

[8] M. Hall, Combinatorial Theory, Blaisdell Publishing, 1967.

191 J. H. Holland, Adaptation in Natural and Artificial Sys- terns, Univ. of Michigan Press, Ann Arbor, MI, 1975.

[lo] A. H. Konstam, S. J. Hartley, and W. L. Carr, “Opti- mization in a Distributed Processing Environment us- ing Genetic Algorithms with Multivariate Crossover,” Proceedings of the 20th Annual ACM Computer Sci- ence Conference, Kansas City, MO, March 3-5, 1992, pp. 109-116.

[ll] N. S. Mendelsohn and S. H. Y. Hung, “On the Steiner Systems S(3,4,14) and S(4,5,15),” Utilitas Mathematics, Vol. 1, 1972, pp. 5-95.

[12] J. Schijnheim, “On Coverings,” Pacific Journal of Mathematics, Vol. 14, 1964, pp. 1405-1411.

371