Complementary crossover for genetic software architecture synthesis

Techniques exist to synthesize software architecture using genetic algorithms that employ transformations based on mutations and crossover. In this paper, we demonstrate that complementary crossover can significantly improve this technique. We study two versions of complementary crossover, one in which parents are selected so that they complement each other but the genes are inherited randomly from the parents, and another in which the genes are inherited in a more purposeful way. Empirical studies on two sample systems suggest that the complementary crossover outperforms the traditional crossover in genetic software architecture synthesis especially in the presence of mutations that provide delayed reward.

[1]  Erkki Mäkinen,et al.  Genetic Synthesis of Software Architecture , 2008, SEAL.

[2]  D. W. Zeh,et al.  The evolution of polyandry I: intragenomic conflict and genetic incompatibility , 1996, Proceedings of the Royal Society of London. Series B: Biological Sciences.

[3]  Caro Lucas,et al.  A GENETIC ALGORITHM APPROACH TO DESIGN EVOLUTION USING DESIGN PATTERN TRANSFORMATION , 2010 .

[4]  Michael de la Maza,et al.  Book review: Genetic Algorithms + Data Structures = Evolution Programs by Zbigniew Michalewicz (Springer-Verlag, 1992) , 1993 .

[5]  Yuanyuan Zhang,et al.  Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications , 2009 .

[6]  Kalyanmoy Deb,et al.  Evolutionary Algorithms for Multi-Criterion Optimization in Engineering Design , 1999 .

[7]  Zbigniew Michalewicz,et al.  Genetic Algorithms + Data Structures = Evolution Programs , 1992, Artificial Intelligence.

[8]  Juan Julián Merelo Guervós,et al.  Opposites Attract: Complementary Phenotype Selection for Crossover in Genetic Programming , 2002, PPSN.

[9]  C. Fernandes,et al.  A study on non-random mating and varying population size in genetic algorithms using a royal road function , 2001, Proceedings of the 2001 Congress on Evolutionary Computation (IEEE Cat. No.01TH8546).

[10]  Christopher L. Simons,et al.  A cross-disciplinary technology transfer for search-based evolutionary computing: from engineering design to software engineering design , 2007 .

[11]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[12]  Erkki Mäkinen,et al.  Empirical study on the effect of crossover in genetic software architecture synthesis , 2009, 2009 World Congress on Nature & Biologically Inspired Computing (NaBIC).

[13]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[14]  Erkki Mäkinen,et al.  Scenario-Based Genetic Synthesis of Software Architecture , 2009, 2009 Fourth International Conference on Software Engineering Advances.

[15]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[16]  Mark Allen Weiss,et al.  Data structures and problem solving using Java , 1997, SIGA.

[17]  Mark Harman,et al.  A New Representation And Crossover Operator For Search-based Optimization Of Software Modularization , 2002, GECCO.

[18]  Outi Räihä,et al.  A survey on search-based software design , 2010, Comput. Sci. Rev..

[19]  Mark Weiss Data Structures and Problem Solving Using C , 1999 .

[20]  Geoffrey T. Parks,et al.  A Comparative Study of Selective Breeding Strategies in a Multiobjective Genetic Algorithm , 2003, EMO.