12

Genetic Programming to Design Communication Algorithms for Parallel Architectures

  • Upload
    upc

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Parallel Processing Lettersc World Scienti�c Publishing CompanyGENETIC PROGRAMMING TO DESIGN COMMUNICATIONALGORITHMS FOR PARALLEL ARCHITECTURES �F. COMELLASy, and G. GIMENEZDepartament de Matem�atica Aplicada i Telem�aticaUniversitat Polit�ecnica de CatalunyaCampus Nord, Edi�ci C308034 Barcelona, Catalonia, SpainReceived (1st January, 1997)Revised (30th January, 1998)Communicated by (Name of Editor) ABSTRACTBroadcasting is an information dissemination problem in which a messageoriginating at one node of a communication network (modeled as a graph)is to be sent to all other nodes as quickly as possible. This paper describesa new way of producing broadcasting schemes using genetic programming.This technique has proven successful by easily �nding optimal algorithms forseveral well-known families of networks (grids, hypercubes and cycle connectedcubes) and has indeed generated a new scheme for butter ies that improvesthe known upper bound for the broadcasting time of these networks.Keywords: Broadcasting, genetic programming, butter y graph

Parallel Processing Letters, to appear (1998).

1 IntroductionThere is considerable interest in the study of the propagation of information ininterconnection networks. This research area is important because the ability of anetwork to e�ectively disseminate information is a good measure of the suitabilityof the network for parallel computing. Broadcasting is one of the most studiedproblems in communication networks and refers to the sending of a message fromone node of the network to all the other nodes as quickly as possible, subject tothe constraints that each call involves only two nodes, a node which already knowsthe message can only inform one of the nodes to which it is connected and eachcall requires one unit of time. Optimal broadcasting schemes are known for somesimple topologies such as grids, hypercubes and cube connected cycles. For othernetworks that are considered good candidates to implement parallelism (butter ies,�Part of this research was done while F.C. was visiting the School of Computing Science,Simon Fraser University, Burnaby, Canada. This work was supported with a grant from theDirecci�on General de Investigaci�on Cient���ca y T�ecnica, Ministerio de Educaci�on y Ciencia, Spain(ref. PR95-179) and by the CICYT, Spain, under Project TIC94-0592 and the EU-HCM programERBCHRX-CT920049.ye-mail: [email protected] 1

de Bruijn, Kautz, star graphs, etc.), there is still work in progress and no generaltechnique is known to help in the design of communication algorithms that, veryoften, are found by inspection.On the other hand, in recent years we have seen the introduction of methodsthat may deal with di�cult combinatorial problems and produce good solutions in areasonable computational time. These methods include simulated annealing, neuralnetworks, genetic algorithms, and more recently genetic programming. In this paperwe show the ability of genetic programming to generate easily good communicationschemes. The main aim of this paper is to provide a new computational tool forresearchers looking for such schemes. The technique described here may be used togenerate them automatically when, until now, they were produced by inspection.Therefore we do not focus on the analysis of the schemes produced, that in somecases may be extremely di�cult, see [4].The paper is organized as follows. The next section will introduce the notationand give some general de�nitions. Section 3 presents the genetic programmingtechnique, based on genetic algorithms and in Section 4 we describe some detailsof the implementation considered. Finally, in Section 5, we present the resultsobtained and in Section 6 we suggest new possible applications.2 Notation and Known ResultsIn this paper we will model a network using graphs. A graph, G = (V;A), consistsof a non empty �nite set V of elements called vertices and a set A of pairs ofelements of V called edges. The number of vertices N = jGj = jV j is the order ofthe graph. If (x; y) is an edge of A, we say that x and y (or y and x) are adjacent.The degree of a vertex �(x) is the number of vertices adjacent to x. The degree ofG is � = maxx2V �(x). A graph is regular of degree � or �-regular if the degree ofall vertices is �. The distance between two vertices x and y, d(x; y), is the numberof edges of a shortest path between x and y, and its maximum value over all pairsof vertices, D = maxx;y2V d(x; y), is the diameter of the graph.A graph is vertex symmetric if its automorphism group acts transitively on itsset of vertices. Loosely speaking we say that the graph looks the same from anyvertex. The interest in vertex symmetric graphs comes from the fact that in theassociated network each node is able to execute the same communication softwarewithout modi�cations and in this way these graphs may be considered for easyimplementation of parallelism. We refer to [1] for other basic concepts in graphtheory not de�ned here.The topologies considered in this work are:The directed 2-grid Mm�n = Pm2Pn: Let Pm and Pn be directed paths on mand n vertices. The 2-grid digraph, or mesh, is the cartesian product of those paths.It has m � n vertices, maximum degree 4 and minimum degree 2. Its diameter isD = m+n�2. This is the only directed graph considered (in which the edges havea given direction) and also the only non vertex symmetric graph.The 2-torus graph Tm�n = Cm2Cn: It is a 4-regular graph on m � n verticesarising from the cartesian product of the cycles Cm and Cn. Its diameter is D =2

bm2 c+ bn2 c.The hypercube graph Hk: A hypercube Hk is a graph on N = 2k vertices, eachdenoted by a k-bit binary number. Edges join vertices whose labels di�er in preciselyone bit. Hk is k-regular and has diameter D = k = log2N .The cube connected cycles graph CCCk: This graph is a modi�cation of thehypercube Hk, obtained by replacing each vertex by a cycle of k vertices. Theorder of the CCCk is k2k. The degree is three.The butter y graph BFk : The butter y graph has k2k vertices labeled with apair of numbers (l; x). l is called the level (0 � l � k�1) and x = x0x1 � � �xk�1 is ak-bit string. Each vertex (l; x) is connected by a straight edge to (l+1 (mod k); x)and by a cross edge to (l+1 (mod k); x0 � � �xl�1 �xlxl+1 � � �xk�1). BFk has degreefour and diameter b 3k2 c.Broadcasting in a graph is the process of spreading a message known initiallyby one vertex, subject to the following rules: The transfer of the message from onevertex to another (termed a call) takes one unit of time. A vertex can only call anadjacent vertex. A vertex can participate in at most one call per unit of time. Abroadcast scheme is a formal description of that process.Given a connected graphG and a vertex u, the broadcast time of u, denoted b(u),is the minimum number of time units required to broadcast a message originatingat u. The broadcast time of the graph G is de�ned b(G) = maxfb(u)ju 2 Gg. Forany vertex u in a connected graph with jV j vertices, b(u) � dlog2 jV je, since duringeach time unit the number of vertices informed can at most double. For a vertexsymmetric graph, the broadcast time is equal to the broadcast time of any of itsvertices.Optimal broadcasting algorithms are known, for example, for 2-grids (b(Mm�n) =m+n�2 = D), 2-torus (b(Tm�n) = D, ifm and n are even and b(Tm�n) = D+1 oth-erwise), hypercubes (b(Hk) = D = log2N) and cube connected cycles (b(CCCk) =d 5k2 � 1e), see [4]. For some other networks the known broadcasting algorithmsgive only upper bounds on the broadcasting time. In [7], for example, the authorspresent a broadcasting algorithm for the butter y network of dimension k that leadsto an upper bound of 2k � 1 on the broadcasting time.3 Genetic Algorithms and Genetic ProgrammingA general overview of genetic algorithms (GA) may be found in the article of Hol-land in Scienti�c American [6]. For a detailed introduction, with discussion ofimplementation issues, see Goldberg's book [5].In a classical genetic algorithm the starting point is a collection of solutionsgenerated at random, known as a population. A suitable encoding of each solutionin the population is used to compute its �tness through a cost function.At each iteration a new population, or generation, is obtained by mating the bestof the old solutions with one another. To create the next generation, new solutionsare formed through reproduction, crossover andmutation. The solutions that will beconsidered for crossover are probabilistically selected according to the �tness valuesfrom the set that constitutes the current generation. This new population becomes3

the parent pool. In Goldberg's approach a constant number of solutions are selectedso that a �xed size population is maintained. Crossover creates two new childsolutions from two solutions sampled from the parent pool. In this way, �tter parentshave a better chance of producing children. This is done for the whole population.Children solutions are obtained by interchanging random parts of their parents.Some randomness is also introduced through the mechanism called mutation toensure that the algorithms avoid getting stuck at local minima. Mutation changesselected parts of a solution. The crossover and mutation operations are done with�xed probabilities, thus ensuring that some solutions from the current generationwill be kept in the new generation.Once a new generation is created, the �tness of all solutions is evaluated and thebest solution is recorded. The process is repeated until either the results stabilizeor the optimal solution, when it can be identi�ed, is reached.The main aspects to decide are the representation of the solutions, the costfunction and the crossover and mutation operators. Important parameters are thepopulation size and the probabilities of crossover and mutation.Numerous modi�cations have been made to the classical genetic algorithm, andcertain variations appear to be more or less useful depending on the problem beingoptimized. One common version of the GA which has several advantages overthe classical model is the steady-state GA . In this paradigm, a single populationof individuals is maintained at any given time, and the reproduction operator isreplaced by a selection operator that chooses which individuals to crossover. Thenewly created solutions are then returned to the single population by means of thereplacement operator, which selects the individuals to be removed. The steady-state GA provides greater control over which individuals are removed from thepopulation, and also requires substantially less computer memory to operate.Genetic algorithms have been used successfully to solve combinatorial optimiza-tion problems related to network design such as the assignment problem for radionetworks [2] and to solve planarization problems related to VLSI [3].GA may evolve a large variety of structures, although the most frequently usedare strings or lists. In particular, they have been used to evolve trees, representingprograms or algorithms. John Koza, in 1987, considered a GA to evolve Lisp ex-pressions and started using the term genetic programming to describe this method,see [8]. Lisp expressions, or S-expressions as are also known, have become the usualrepresentation of solutions for GP. An S-expression consists of a function followed,or not, by arguments. Each argument is also an S-expression. A function in anexpression is called a node. Functions with no arguments are called terminals. Aspecial function, PROGn, is used to join together n other functions into a proceduralprogram.In our broadcasting schemes, for example, it is possible to represent \If theinformation has reached the node from an upper vertex, move it next using a crosslink" as the following S-expression (IfProc Up MoveCross), where IfProc Up is aconditional function and MoveCross a terminal.An important property of S-expressions is closure. It is possible to use an S-4

expression as an argument of another and still have a valid S-expression. This factfacilitates the implementation of the crossover and mutation operators.4 Implementation DetailsTo perform the experiments we adapted the GP software written by Andy Singletonand described in the February 1994 issue of BYTE [9]. The package is known asGPQUICK and version 2.1 was used. It consists of several modules written in C++and it is publicly available for non commercial purposes from the author. A modi�edversion, with an explanation of the changes made, is accessible on the WWWa.GPQUICK uses a steady state GA, tournament selection, three types of muta-tion, and subtree crossover. It uses tournament selection with a tournament size ofsix, and a kill tournament size of 2. It uses node mutation (switching a node foranother node of the same arity), constant mutation (small adjustments to constantvalues) and shrink mutation (promote a sub-subtree to replace a subtree) 10% ofthe time each, a copy with reevaluation on new cases 10% of the time, and subtreecrossover 70% of the time.The package was adapted by modifying the �le chrome.cpp and its header �leand creating a new �le speci�c for each graph (or family of graphs) considered.None of the original GA parameters of the package were changed (rates of mutation,crossing, etc.). In some runs params[pMaxExpr] and params[pInitExpr], that �xthe maximum expression size in nodes and the maximum initial expression depth,were changed to bigger values to deal more easily with possible large expressions.Functions and terminals: The graphical representation of a network very oftensuggested the choice of the function set and terminal set.After preliminary experiments using conditional functions with parameters, andto speed the testing process, we decided to expand the number of conditionalfunctions. For example, instead of using (IfProc param) with param one of fup, down, left, rightg we use four di�erent conditional functions: IfProc Up,IfProc Down, IfProc Left and IfProc Right.Fitness: To evaluate the �tness of a possible solution, it is executed on thegraph. A broadcasting scheme is an inherently parallel process, but the programthat tests it is sequential, so we may reach a situation in which two (or more) nodescould inform the same node at a given broadcasting step. We choose the optionthat the actual node that will transmit the message will be the node that receivedit �rst. On the other hand, the scheme is executed in the order that is written.Therefore it is possible to generate schemes containing conditional functions thatwill never be used. Fitness is calculated by counting the number of vertices reachedby the algorithm penalized by its length (number of nodes of the correspondingS-expression). Each new vertex reached increases the �tness by T (an adjustableparameter). Each conditional function and the null action decreases the �tness bytwo. Other actions decrement it by four. Finally, connective functions do not a�ectthe �tness value.ahttp://www-mat.upc.es/~comellas/genprog/genprog.html5

Some preliminary tests were compiled on a PC 486 under MS Windows 3.1 usingBorland C++, but most of the results were obtained on Sun Sparc2 and HP Apollo715 workstations with their standard ANSI C++ compilers. The CPU time to �ndan acceptable solution ranged from a few seconds -to �nd the optimal algorithmfor a simple instance of the directed 2-grid- to around 10 hours {to obtain a newbroadcasting scheme for butter ies (k = 7). The most time consuming task is theevaluation of the �tness of a given S-expression. A typical run found a solutionafter less than 60000 such evaluations were performed and typically between 10000and 20000.5 Results5.1 Directed 2-gridThe �rst graph studied was the directed 2-grid. It was chosen for the simplicity ofits known optimal broadcasting algorithm:\The originating vertex (upper left of the grid) informs its horizontal neighbourat the �rst step and its vertical neighbour at the second.Each node that is informed by a horizontal neighbour �rst informs its otherhorizontal neighbour and then its vertical neighbour.If a node is informed by a vertical neighbour it informs its other vertical neigh-bour." To �nd a broadcasting scheme for this directed graph, the function and--------------------

? ? ? ? ?? ? ? ? ?? ? ? ? ?? ? ? ? ?rrrrrrrrrrrrrrrrrrrrrrrrr

Fig. 1: Directed 2-grid M(5; 5)terminal sets were considered as follows:Function set: fIfOri, IfProc Ver, IfProc Hor, If turn 0, If turn 1, Prog4,Prog3, Prog2, Prog1gTerminal set: fMoveHor, MoveVer, NullgWith theM5�5 2-grid, and running the system with a population of 500 individu-als, a value of T=280 and after 12340 iterations (40" CPU time on an SPARCstationSLC) the following S-expression, with a �tness value of 6678, is found:(Prog3 (IfOri (Prog2 (If_turn_0 MoveHor)(If_turn_1 MoveVer)))(IfProc_Hor (Prog3 (If_turn_0 MoveHor)(If_turn_0 MoveVer)(If_turn_1 MoveVer)))(IfProc_Ver (If_turn_0 MoveVer)))This expression corresponds exactly to the known optimal broadcasting algo-rithm. Note that the function (If turn 0 MoveVert) is redundant and will neverbe used. More iterations should eliminate it.6

The program also generates a visualization of the propagation of the information(for the solution), as shown in Figure 2.step 0 step 1 step 2 step 3 step 4 step 5 step 6 step 7 step 80oooo *1ooo **2oo ***3o ****4 ***** ***** ***** *****ooooo ooooo 2oooo *3ooo **4oo ***55 ***** ***** *****ooooo ooooo ooooo 3oooo *4ooo **5oo ***66 ***** *****ooooo ooooo ooooo ooooo 4oooo *5ooo **6oo ***77 *****ooooo ooooo ooooo ooooo ooooo 5oooo *6ooo **7oo ***88Fig. 2: Broadcasting in the directed 2-grid M5�55.2 Toroidal gridThis graph is vertex symmetric, and the originating vertex may be chosen arbitrar-ily. We decided to put it at the upper left of the graphical representation.The degree of the graph is four for any member of the family of graphs andtherefore this is the number of possible movements for the information. Thereforewe decided to use the following functions and terminals:Function set: fIfOri, IfProc Up, IfProc Down, IfProc Right, IfProc Left,If turn 0, If turn 1, If turn 2, If turn 3, Prog6, Prog5, Prog4, Prog3,Prog2, Prog1gTerminal set: fMoveUp, MoveDown, MoveRight, MoveLeft, NullgConsidering the graph T8�5 with a population of 800, T = 280, and after 23420iterations we found this solution:(Prog3 (Prog2 (IfProc_Down (Prog3 (If_turn_0 MoveUp)(If_turn_0 MoveLeft)(Prog3 (If_turn_0 MoveRight)(If_turn_1 MoveLeft)(If_turn_2 MoveRight))))(Prog3 (IfProc_Up (Prog3 (If_turn_0 MoveDown)(If_turn_0 MoveRight)(Prog3 (If_turn_0 MoveLeft)(If_turn_1 MoveLeft)(If_turn_2 MoveRight))))(IfProc_Right (Prog3 (If_turn_0 MoveLeft)(If_turn_0 MoveDown)(Prog3 (If_turn_1 MoveDown)(If_turn_1 MoveUp)(If_turn_2 MoveUp))))(IfOri (Prog4 (If_turn_0 MoveRight)(If_turn_1 MoveLeft)(If_turn_2 MoveUp)(If_turn_3 MoveDown)))))(IfProc_Left (Prog3 (If_turn_0 MoveRight)(If_turn_1 MoveUp)(If_turn_2MoveDown)))(Prog2 (If_turn_0 MoveUp)(If_turn_1 MoveDown)))We observe several redundancies that do not a�ect the performance of the al-gorithm. Again, the scheme corresponds to the known optimal algorithm for this7

family of graphs, that is: \If a vertex is informed by one of its vertical neighbours,it sends the message to its other vertical neighbour. Otherwise, it �rst sends themessage to its other horizontal neighbour, then to its upper vertical neighbour, and�nally to its lower vertical neighbour".step 0 step 1 step 2 step 3 step 40oooooooooo *1ooooooooo **2ooooooo2 ***3ooooo3* ****4ooo4**ooooooooooo ooooooooooo ooooooooooo ooooooooooo 44oooooooo4ooooooooooo ooooooooooo ooooooooooo ooooooooooo oooooooooooooooooooooo ooooooooooo ooooooooooo ooooooooooo oooooooooooooooooooooo ooooooooooo ooooooooooo ooooooooooo 44oooooooooooooooooooo ooooooooooo ooooooooooo 33ooooooooo **4oooooooostep 5 step 6 step 7 step8 step 9*****5o5*** ******6**** *********** *********** *************5oooooo5* ***6oooo6** ****7777*** *********** ***********55oooooooo5 **6oooooo6* ***7oooo7** ****8888*** ***********55ooooooooo **6ooooooo6 ***7ooooo7* ****88oo8** ******99*****5oooooooo ***6oooooo6 ****77ooo7* ******oo8** ******99******5oooooo5 ****66ooo6* ******oo7** ******88*** ***********Fig. 3: Broadcasting process in the graph T11�65.3 HypercubeLet 0 be the originator. For this family, the function set di�er depending on thedimension of the graph (the degree increases with the dimension). On the otherhand, due to the standard labeling of its vertices we decided to use functions andterminals based on the equivalent numerical value of each label.As an example, for the hypercube of dimension k = 6 we consider:Function set: fIfOri, IfProc Big, IfProc Small, If turn 0, If turn 1, If turn 2,If turn 3, If turn 4, If turn 5, Prog6, Prog5, Prog4, Prog3, Prog2, Prog1gTerminal set: f MoveBig, MoveSmall, NullgThe scheme found is:(Prog2 (IfProc_Ori (Prog5 (If_turn_0 MoveBig)(If_turn_1 MoveBig)(If_turn_2 MoveBig)(If_turn_3 MoveBig)(Prog2 (If_turn_4 MoveBig)(If_turn_5 MoveBig))))(IfProc_Menor (Prog4 (If_turn_0 MoveBig)(If_turn_1 MoveBig)(If_turn_2 MoveBig)(If_turn_3 MoveBig)(If_turn_4 MoveBig))))This solution is equivalent to the optimal broadcasting algorithm for the hyper-cube: \At step i, each informed vertex sends the message in dimension i, 1 � i � k."5.4 Cube-Connected-CyclesFor this graph we use the graphical representation of �gure 4 in which each column ofvertices corresponds to one of the cycles. This representation suggests the followingset of functions and terminals: 8

r r r r r r r rr r r r r r r rr r r r r r r r� � � �� � � � � � � �� � � �� �� � � �� �012 000 100 010 110 001 101 011 111Fig. 4: The cube connected cycles CCC3Function set: fIfOri, IfProc Up, IfProc Down, IfProc Trans, If turn 0, If turn 1,If turn 2, Prog5, Prog4, Prog3, Prog2, Prog1gTerminal set: fMoveUp, MoveDown, MoveTrans, NullgThe solution found was (population=800, T=350, iterations=23420):(Prog3 (Prog2 (IfProc_Trans (Prog3 (If_turn_0 MoveTrans)(If_turn_0 MoveDown)(If_turn_1 MoveUp)))(IfProc_Down (Prog4 (If_turn_0 MoveTrans)(If_turn_0 MoveUp)(If_turn_1 MoveUp)(If_turn_2 MoveDown))))(IfProc_Up (Prog3 (If_turn_0 MoveTrans)(If_turn_0 MoveDown)(If_turn_1 MoveDown)))(IfOri (Prog3 (If_turn_0 MoveTrans)(If_turn_1 MoveDown)(If_turn_2 MoveUp))))If we remove the redundant functions, we obtain the optimal algorithm: \�rstrelay the message to the hypercube neighbour (MoveTrans function), then to theright neighbour of the ring(MoveDown function), then to the left neighbour (MoveUpfunction)".5.5 Butter y graphFor these graphs no optimal broadcasting algorithm is known. The best previouslyknown upper bound was given by Klasing, Monien, Peine and St�ohr [7]: BFk �2k�1. Here we improve the upper bound to BFk � 2k�2 for, at least, 7 � k < 16.r r r r r r r rr r r r r r r rr r r r r r r rr r r r r r r r@@@ @@@ @@@ @@@��� ��� ��� ���HHHHHHHHHHHH������ ������ HHHHHHHHHHHH������ ������XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX����������� ����������� ����������� �����������

0120000 100 010 110 001 101 011 111

Fig. 5: Butter y graph BF3The graphical representation of butter ies suggests the following choice:9

Function set: fIfOri, IfProc VertSup, IfProc VertInf, IfProc DiagSup,IfProc DiagInf, If turn 0, If turn 1, If turn 2, If turn 3,Prog6, Prog5, Prog4, Prog3, Prog2, Prog1gTerminal set: fMoveVertSup, MoveVertInf, MoveDiagSup, MoveDiagInf, NullgFor k = 7 and with a population of 800 individuals, T=350 and 32424 iterations wefound the following solution that improved the best known broadcasting time forthis graph by one:(Prog5 (IfProc_VInf (Prog3 (If_turn_0 MoveDiagSup)(If_turn_0 MoveVertSup)(If_turn_1 MoveVertSup)))(IfProc_DiagInf (Prog3 (If_turn_0 MoveDiagSup)(If_turn_0 MoveVertInf)(Prog3 (If_turn_0 MoveVertSup)(If_turn_1 MoveVertSup)(If_turn_2 MoveVertInf))))(IfProc_DiagSup (Prog5 (If_turn_0 MoveDiagInf)(If_turn_0 MoveVertSup)(If_turn_0 MoveVertInf)(If_turn_1 MoveVertInf)(If_turn_2 MoveVertSup)))(IfOri (Prog4 (If_turn_0 MoveDiagInf)(If_turn_1 MoveDiagSup)(If_turn_2 MoveVertSup)(If_turn_3 MoveVertInf)))(IfProc_VSup (Prog3 (If_turn_0 MoveDiagInf)(If_turn_0 MoveVertInf)(If_turn_1 MoveVertInf))))We tested this scheme for other graphs of the same family with 7 � k < 16 andfor all these graphs the broadcasting time was one unit less than the time obtainedby the algorithm of Klasing et al., see Table 1. For butter ies with k < 7 ouralgorithm gives the known times. Figure 6 shows its execution on BF5.k lower bound upper bound order2 3 3 83 5 5 244 7 7 645 8 9 1606 10 11 3847 11 12 * 8968 13 14 * 20489 15 16 * 460810 16 18 * 1024011 18 20 * 2252812 19 22 * 4915213 21 24 * 10649614 23 26 * 22937615 24 28 * 491520Table 1: New upper bounds for the broadcasting time of BFk. Values with an asterisk were foundusing GP. 10

step 0 step 10ooooooooooooooooooooooooooooooo *ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo o1oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooostep 2 step 3*ooooooooooooooooooooooooooooooo *oooooooooooooooooooooooooooooooo*oooooooooooooooooooooooooooooo o*ooooooooooooooooooooooooooooooooo2oooooooooooooooooooooooooooo o3o*oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ooooooo3oooooooooooooooo3ooooooooooooooooooooooo2ooooooooooooooo 3ooooooooooooooo*ooooooooooooooostep 4 step 5*4oooooooooooooooooooooooooooooo **oooooooooooooo5oooooooooooooo54*oooooooooooooooooooooooooooooo **o5oooooooooooooooooooooooooo5oo*o*oooooooooooooooooooooooo4ooo o*5*oooooooo5ooooooo5ooo5ooo*oooooo4o4o*4ooooooo4ooooooo*ooooooo 55o*o*o**ooooooo*ooooooo*ooooooo*oooooooooooooo4*ooooooooooooooo *oooooo5ooo5o5o**5oooooooooooooostep 6 step 7**6oooooooooooo6*oooooo6ooo6o6o* ***7ooo77oo7o7o**oo7o7o*o7o*7*7***o*oooooooooo6oo6oooo6ooo6o6o*o **o*o77ooo7o7o*77*7o7o*o7o*o*o*76***6oo66ooo*ooo6ooo*ooo*ooo*o6o *****7o**ooo*o7o*oo7*o7o*o7o*7*o**o*o*6**ooooooo*ooooooo*6oooooo **7*7****7ooooo7*7ooooo7**7o7ooo*6o6o6o*o6o*o*o***oooooo6oooooo6 **o*o*o*7*o*o*7***7oooo7*oo7o7o*step 8 step 9****88o**8o*8*8**88*8*8*8*8***** ******9***9***********************8*8**888*8*8*****8*o*8*o*8*8** *********************9***9************8**o88*8*8*88**8*8*8*o***8 *********9*****************9**************88888***88888****8*888 **********************************8*o*8***8*8******888o**88*8*8* ****9*****************9*********Fig. 6: Broadcasting process for the BF5 on 160 vertices.6 ConclusionsGenetic programming has proved successful by easily �nding optimal broadcastingalgorithms for several well known networks. An example of its potential is that wewere able to �nd in a straightforward way a new upper bound for the broadcastingtime of butter y graphs. GP uses a genetic algorithm that it is a robust techniquethat works for a wide range of parameters. Therefore, it is possible to look for newcommunication schemes without expending time tuning these parameters. On theother hand, the choice of the function and terminal sets is also non-critical (consid-ering extra functions, for example, a�ects the running time to �nd an acceptablesolution, but not its quality).We expect that simple variations of the algorithm presented here should beuseful to �nd new upper bounds for the broadcasting time of networks such as thede Bruijn, Kautz or star graphs, where improvement is possible. It should also bepossible to adapt GP to deal with other models of broadcasting such as the lineartime model, or for use in other communication problems like gossiping.References1. G. Chartrand and L. Lesniak. Graphs & Digraphs. 2nd edition, Wadworth andBrooks Cole Advanced Books and Software, Monterey, California, USA, 1986. ISBN0-534-06324-1.2. F. Comellas and J. Oz�on,. Graph coloring algorithms for assignment problems inradio networks. Applications of Neural Networks to Telecommunications 2. J. Al-spector, R. Goodman and T.X. Brown (Eds.), Lawrence Erlbaum Ass., Inc., Publis.,Hillsdale, NJ (1995), pp. 49{56; ISBN 0-8058-2084-1.11

3. F. Comellas. Using genetic algorithms for planarization problems. Computationaland Applied Mathematics, I. Algorithms and Theory., C. Brezinski and U. Kulish(Eds.), Elsevier Science Publishers B.V. (1992), pp. 93{100; ISBN 0-444-89701-1.4. P. Fraigniaud and E. Lazard, Methods and problems of communication in usualnetworks. Discrete Appl. Math. C-53, pp. 79{133, 1994.5. D. E. Goldberg. Genetic Algorithms in Search, Optimization, and Machine Learn-ing, Addison-Wesley, 1989, ISBN 0-201-15767-5.6. J.H. Holland. Genetic algorithms, Scienti�c American, 267, 44-50, 1992.7. R. Klasing, B. Monien, R. Peine and E. A. St�ohr, Broadcasting in butter y and deBruijn networks. Discrete Applied Math., 53, pp. 183-197, 1994.8. J. Koza, Genetic Programming, MIT Press, 1992. ISBN 0-262-11170-59. A. Singleton, Genetic Programming with C++. BYTE, February 1994, pp. 171-176.

12