Parallel Algorithms for Encoding and Decoding Blob Code

A bijective code is a method for associating labeled n-trees to (n−2)-strings of node labels in such a way that different trees yield different strings and vice versa. For all known bijective codes, optimal sequential encoding and decoding algorithms are presented in literature, while parallel algorithms are investigated only for some of these codes. In this paper we focus our attention on the Blob code: a code particularly considered in the field of Genetic Algorithms. To the best of our knowledge, here we present the first parallel encoding and decoding algorithms for this code. The encoding algorithm implementation is optimal on an EREW PRAM, while the decoding algorithm requires O(logn) time and O(n) processors on CREW PRAM.

[1]  Uzi Vishkin,et al.  PRAM-on-chip: first commitment to silicon , 2007, SPAA '07.

[2]  W Y Chen,et al.  A general bijective algorithm for trees. , 1990, Proceedings of the National Academy of Sciences of the United States of America.

[3]  David K. Smith,et al.  Some novel locality results for the blob code spanning tree representation , 2007, GECCO '07.

[4]  Saverio Caminiti,et al.  On coding labeled trees , 2007, Theor. Comput. Sci..

[5]  A. Cayley A theorem on trees , 2009 .

[6]  Dorothea Heiss-Czedik,et al.  An Introduction to Genetic Algorithms. , 1997, Artificial Life.

[7]  G. Kreweras,et al.  Tree codes that preserve increases and degree sequences , 1991, Discret. Math..

[8]  Saverio Caminiti,et al.  Parallel Algorithms for Dandelion-Like Codes , 2009, ICCS.

[9]  John H. Reif,et al.  Synthesis of Parallel Algorithms , 1993 .

[10]  Ömer Egecioglu,et al.  Bijections for Cayley trees, spanning trees, and their q-analogues , 1986, J. Comb. Theory, Ser. A.

[11]  George C. Caragea,et al.  Models for Advancing PRAM and Other Algorithms into Parallel Programs for a PRAM-On-Chip Platform , 2006, Handbook of Parallel Computing.

[12]  Rossella Petreschi,et al.  Computing Prüfer codes efficiently in parallel , 2000, Discret. Appl. Math..

[13]  Joseph JáJá,et al.  An Introduction to Parallel Algorithms , 1992 .

[14]  J. Moon Counting labelled trees , 1970 .

[15]  David K. Smith,et al.  Recent Advances in the Study of the Dandelion Code, Happy Code, and Blob Code Spanning Tree Representations , 2006, 2006 IEEE International Conference on Evolutionary Computation.

[16]  Stephen Gilmore,et al.  Flexible Skeletal Programming with eSkel , 2005, Euro-Par.

[17]  Colin R. Reeves,et al.  Genetic Algorithms: Principles and Perspectives: A Guide to Ga Theory , 2002 .

[18]  Saverio Caminiti,et al.  Linear-time Algorithms for Encoding Trees as Sequences of Node Labels , 2006 .

[19]  Bryant A. Julstrom,et al.  The blob code is competitive with edge-sets in genetic algorithms for the minimum routing cost spanning tree problem , 2005, GECCO '05.

[20]  Saverio Caminiti,et al.  String Coding of Trees with Locality and Heritability , 2005, COCOON.

[21]  Vamsi Boppana,et al.  Full fault dictionary storage based on labeled tree encoding , 1996, Proceedings of 14th VLSI Test Symposium.

[22]  James B. Orlin,et al.  Line-digraphs, arborescences, and theorems of tutte and knuth , 1978, J. Comb. Theory, Ser. B.

[23]  Sanguthevar Rajasekaran,et al.  Handbook of Parallel Computing - Models, Algorithms and Applications , 2007 .

[24]  Anurag Agarwal,et al.  Distributed Maintenance of a Spanning Tree Using Labeled Tree Encoding , 2005, Euro-Par.

[25]  Richard P. Brent,et al.  The Parallel Evaluation of General Arithmetic Expressions , 1974, JACM.

[26]  Paulius Micikevicius,et al.  A New Encoding for Labeled Trees Employing a Stack and a Queue , 2002 .

[27]  E. H. Neville,et al.  The codifying of tree-structure , 1953, Mathematical Proceedings of the Cambridge Philosophical Society.