Using Software Engineering Knowledge to Drive Genetic Program Design Using Cultural Algorithms

Exploiting the Synergy of Software Engineering Knowledge in Evolutionary Design
  • David A. Ostrowski
  • Robert G. Reynolds
Part of the Genetic Programming Series book series (GPEM, volume 6)


In this paper, we use Cultural Algorithms as a framework in which to embed a white and black box testing strategy for designing and testing large-scale GP programs. The model consists of two populations, one supports white box testing of a genetic programming system and the other supports black box testing. The two populations communicate by sending information to a shared belief space. This allows a potential synergy between the two activities. Next, we exploit this synergy in order to evolve an OEM pricing strategy in a complex agent-based market environment. The new pricing strategy generated over $2 million dollars in revenue during the assessment period and outperformed the previous optimal strategy.

Key words

Genetic Programming Cultural Algorithms Hybrid Genetic Programming Environments Agent-Based Modeling OEM strategy evolution Black box testing White Box Testing 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Beizer, B. (1998). Software Testing Techniques, Data Systems Analysts, Inc. Van Nostrand Rhinholdt Co.Google Scholar
  2. Bilchev, George, Parmee, Ian, Darlow, Andrew. (1996). The Inductive Genetic Algorithm with Applications to the Fault Coverage Test Code Generation Problem. In Proceedings of EUFIT 96, Aachen, Germany.Google Scholar
  3. Chen, J., Rine, D. C. (1997). Training Fuzzy Logic Based Software Components for Reuse. In Proceedings of ISMVL, pp. 189–194.Google Scholar
  4. Eiben, A. E., van der Hauw, J. K. (1997). Solving 3-SAT by Gas Adapting Constraint Weights. IEEE.Google Scholar
  5. Garey, Michael R., Johnson, David S. (1985). Computers and Intractibility: A Guide to the Theory of NP-Completeness. New York, N. Y. : W. H. Freeman and Company.Google Scholar
  6. Jones, B. F., StHammer, H. H., Eyres, D. E. (1996). Automatic Structural Testing using Genetic Algorithms. Software Engineering Journal Google Scholar
  7. Jones, B. F., Eyres, D. E., StHammer, H. H. (1998). A Strategy for using Genetic Algorithms to Automate Branch and Fault-Based Testing. The Computer Journal 42(2). Google Scholar
  8. Kaner, C, Falk, Jack, Nguyen, Hung Quoc, (1995). Testing Computer Software, Second Edition. Thompson Computer Press.Google Scholar
  9. Koza, John R. (1990). Genetically Breeding Populations of Computer Programs to Solve Problems in Artificial Intelligence. In Proceedings of the Conference on Tools for Artificial Intelligence, pp. 819–827.Google Scholar
  10. Maletic, J. (1995). The Software Service Bay: A Methodology for Knowledge-Based Software Maintenance. Phd. Thesis, Wayne State University, Detroit MI.Google Scholar
  11. Miconi, Thomas. (2001). A Collective Genetic Algorithm. Artificial Life, Adaptive Behavior and Agents. Google Scholar
  12. Ostrowski, D., Reynolds, R. G. (1999). Knowledge-Based Software Testing Agent Using Evolutionary Learning with Cultural Algorithms. In Proceedings of CEC ’99. Google Scholar
  13. Ostrowski, D., Tassier, T., Everson, M., and Reynolds, R. G. (2002). Using Cultural Algorithms to Evolve Strategies in Agent-Based Models. In Proceedings of the 2002 Congress on Evolutionary Computation, pp. 741–746.Google Scholar
  14. Porter, R., Sattler, P. (1999). Patterns of Trade in the Market for Used Durables: Theory and Evidence. NBER Working Paper No. W7149.Google Scholar
  15. Pressman, Roger S. (1997). Software Engineering: A Practitioners Approach. McGraw Hill.Google Scholar
  16. Reynolds, R. G. (1994). An Introduction to the Cultural Algorithms. In Proceedings of the 3rd annual Conference on Evolutionary Programming, pp. 131–139. Sebalk, A. V. Fogel L. J, River Edge, NJ. World Scientific Publishing.Google Scholar
  17. Rychtychkyj, N., and Reynolds, R. (2000). Assessing the Performance of Cultural Algorithms for Semantic Network Re-Engineering. In Proceedings of the 2000 Congress on Evolutionary Computation, pp. 1482–1491. July 16–19, La Jolla, CA, IEEE PressGoogle Scholar
  18. Schultz, A., Grefenstette, J., and DeJong, K. (1995). “Learning to Break Things: Adaptive Testing of Intelligent Controllers. ” In Handbook of Evolutionary Computation. Google Scholar
  19. Simon, Herbert A. (1986). Whether Software Engineering Needs to Be Artificially Intelligent. IEEE Transactions on Software Engineering 1(SE-12): 726–732.CrossRefGoogle Scholar
  20. Sommerville, I. (1996). Software Engineering Addison-Wesley.Google Scholar
  21. Weiser, M. (1984). Program Slicing. IEEE Transactions on Software Engineering SE-10. Google Scholar
  22. Zannoni, Elena and Reynolds, R. G. (1994). Learning to Understand Software Using Cultural Algorithms. In Proceedings of the third annual Conference on Evolutionary Programming. Sebald Antony V. and Fogel, Lawrence J., editors. World Scientific Press.Google Scholar
  23. Zannoni, E., and Reynolds, R. G. (1997). Learning to Control the Program Evolution Process in Genetic Programming Systems Using Cultural Algorithms. Journal of Evolutionary Computation 5(2): 2:181–211Google Scholar

Copyright information

© Springer Science+Business Media New York 2003

Authors and Affiliations

  • David A. Ostrowski
    • 1
  • Robert G. Reynolds
    • 2
  1. 1.Ford Motor Company Scientific Research LaboratoriesDearbornUSA
  2. 2.Dept. of Computer ScienceWayne State UniversityDetroitUSA

Personalised recommendations