|
|
|
Evolutionary Computing with PushProject Documentation and CodeLee Spector (lspector@hampshire.edu) |
Push is a programming language designed for evolutionary
computation, to be used as the programming language within which
evolving programs are expressed. A
concise introduction to the newest version of the language ("Push3") is
contained in The Push
3.0 Programming Language Description, which also serves as a
language reference. Versions of Push written in Lisp, C++, JavaScript,
Java, and Scheme are available (see below).
PushGP is a genetic programming system that evolves programs in the Push programming language. PushGP has been used for a variety of applications, ranging from intelligent agent design to automatic quantum computer programming. Features include:
The best introduction to the Push project is probably the 2002 article in the journal Genetic Programming and Evolvable Machines, although that article was based on Push1 and one should therefore subsequently read the GECCO paper introducing the major new features of Push3.
A variety of Push-based evolutionary computation sytems other
than PushGP have been developed, including:
There is a Push email list and a new Push project blog.
Unless otherwise noted, the following code is available for non-commercial educational and research uses only.
Push3 (the current version):
Older versions:
Push2:
Push1 (Lisp implementation of Push and PushGP):
Related projects:
Spector, L., and J. Klein. 2008. Machine Invention of Quantum
Computing Circuits by Means of Genetic Programming. In AI-EDAM: Artificial Intelligence for
Engineering Design, Analysis and Manufacturing, Vol. 22, No. 3,
pp. 275-283. (pdf 174KB)
Spector, L., D. M. Clark, I. Lindsay, B. Barr, and J. Klein. 2008.
Genetic Programming for Finite Algebras. In Proceedings of the Genetic and
Evolutionary Computation Conference (GECCO-2008). ACM Press. (associated web
page, including link to full text and code)
Klein, J., and L. Spector. 2008. Genetic Programming with
Historically Assessed Hardness. In Genetic
Programming Theory and Practice VI, edited by R. L. Riolo, T.
Soule, and B. Worzel. New York: Springer-Verlag. In press. (pdf
144KB)
Klein, J., and L. Spector. 2007. Unwitting Distributed Genetic
Programming via Asynchronous JavaScript and XML. In Proceedings of the Genetic and
Evolutionary Computation Conference (GECCO-2007), pp. 1628-1635.
ACM Press. (associated
web page, including link to full text)
Spector, L., J. Klein, and M. Keijzer. 2005. The Push3 Execution Stack and the Evolution of Control. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2005), pp. 1689-1696. Springer-Verlag. (pdf: 136KB)
Spector, L., J. Klein, C. Perry, and M. Feinstein. 2005. Emergence
of Collective
Behavior in Evolving Populations of Flying Agents. In Genetic
Programming and
Evolvable Machines, Vol. 6, No. 1, pp. 111-125. (pdf
254KB)
Spector, L., and J. Klein. 2005. Trivial Geography in Genetic
Programming. In Genetic Programming
Theory and Practice III, edited by T. Yu, R.L. Riolo, and B.
Worzel, pp. 109-124. Boston, MA: Kluwer Academic Publishers. (pdf
1.2MB)
Spector, L., C. Perry, J. Klein, and M. Keijzer. 2004. Push 3.0 Programming Language Description. http://hampshire.edu/lspector/push3-description.html.
Spector, L. 2004. Automatic Quantum Computer Programming: A Genetic Programming Approach. Boston, MA: Kluwer Academic Publishers. (Cover and links, PDF brochure with mail/fax order form, description and online order form)
Crawford-Marks, R., L. Spector, and J. Klein. 2004. Virtual Witches and Warlocks: A Quidditch Simulator and Quidditch-Playing Teams Coevolved via Genetic Programming. In Late-Breaking Papers of GECCO-2004, the Genetic and Evolutionary Computation Conference. Published by the International Society for Genetic and Evolutionary Computation. (pdf 308KB, Raphael's page on the project, additional movies).
Spector, L., J. Klein, and C. Perry. 2004. Tags and the Evolution of Cooperation in Complex Environments. In Proceedings of the AAAI 2004 Symposium on Artificial Multiagent Learning. Melno Park, CA: AAAI Press. (pdf: 140KB)
Spector, L., C. Perry, and J. Klein. 2003. Push 2.0 Programming Language Description. http://hampshire.edu/lspector/push2-description.html.
Spector, L., J. Klein, C. Perry, and M. Feinstein. 2003. Emergence of Collective Behavior in Evolving Populations of Flying Agents. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2003). Springer-Verlag. pp. 61-73. (associated web page, including link to full text)
Spector, L., and H.J. Bernstein. 2003. Communication Capacities of Some Quantum Gates, Discovered in Part through Genetic Programming. In J.H. Shapiro and O. Hirota, Eds., Proceedings of the Sixth International Conference on Quantum Communication, Measurement, and Computing (QCMC). Princeton, NJ: Rinton Press. (prepress version with additional figures: pdf 1.2MB)
Spector, L., and A. Robinson. 2002. Genetic Programming and Autoconstructive Evolution with the Push Programming Language. In Genetic Programming and Evolvable Machines, Vol. 3, No. 1, pp. 7-40. (pdf 216KB)
Spector, L. 2002. Adaptive populations of endogenously diversifying Pushpop
organisms are reliably diverse. In R. K. Standish, M. A. Bedau, and H.
A. Abbass
(eds.), Proceedings of Artificial Life VIII, the 8th International
Conference
on the Simulation and Synthesis of Living Systems, pp. 142-145.
Cambridge, MA:
The MIT Press. (pdf
488KB)
Spector, L., and J. Klein. 2002. Evolutionary Dynamics Discovered via
Visualization
in the BREVE Simulation Environment. In Bilotta et al. (eds), Workshop
Proceedings
of the 8th International Conference on the Simulation and Synthesis of
Living Systems,
pp. 163-170. Sydney, Australia: University of New South Wales. (associated
web page, including link to full text)
Spector, L., and J. Klein. 2002. Complex Adaptive Music Systems in the
BREVE Simulation
Environment. In Bilotta et al. (eds), Workshop Proceedings of the
8th International
Conference on the Simulation and Synthesis of Living Systems, pp.
17-23. Sydney,
Australia: University of New South Wales. (associated
web page, including link to full text)
Spector, L., and A. Robinson. 2002. Multi-type, Self-adaptive Genetic Programming as an Agent Creation Tool. In Proceedings of the Workshop on Evolutionary Computation for Multi-Agent Systems, ECOMAS-2002, International Society for Genetic and Evolutionary Computation. (pdf 527KB)
Crawford-Marks, R., and L. Spector. 2002. Size Control via Size Fair Genetic Operators in the PushGP Genetic Programming System. In W. B. Langdon, E. Cantu-Paz, K. Mathias, R. Roy, D. Davis, R. Poli, K. Balakrishnan, V. Honavar, G. Rudolph, J. Wegener, L. Bull, M. A. Potter, A. C. Schultz, J. F. Miller, E. Burke, and N. Jonoska (editors), Proceedings of the Genetic and Evolutionary Computation Conference, GECCO-2002, pp. 733-739. San Francisco, CA: Morgan Kaufmann Publishers. (pdf 586KB)
Robinson, A., and L. Spector. 2002. Using Genetic Programming with Multiple Data Types and Automatic Modularization to Evolve Decentralized and Coordinated Navigation in Multi-Agent Systems. In Late-Breaking Papers of GECCO-2002, the Genetic and Evolutionary Computation Conference. Published by the International Society for Genetic and Evolutionary Computation. (pdf 33KB)
Spector, L. 2001. Autoconstructive Evolution: Push, PushGP, and Pushpop. In Spector, L., E. Goodman, A. Wu, W.B. Langdon, H.-M. Voigt, M. Gen, S. Sen, M. Dorigo, S. Pezeshk, M. Garzon, and E. Burke, editors, Proceedings of the Genetic and Evolutionary Computation Conference, GECCO-2001, 137-146. San Francisco, CA: Morgan Kaufmann Publishers. (pdf 547KB).
Slides from a presentation ("Autoconstructive Evolution: Push, PushGP, and Pushpop") at the 2001 Genetic and Evolutionary Computation Conference (GECCO-2001). (pdf 35KB)
Robinson, A. 2001. Genetic Programming: Theory, Implementation, and the Evolution of Unconstrained Solutions. Hampshire College Division III (senior) thesis. (pdf 652KB)
This project is supported by the Defense Advanced Research Project Agency (DARPA) and the Air Force Research Laboratory (AFRL) through funding for the project "Multi-type, Self-adaptive Genetic Programming for Complex Applications," and by the National Science Foundation through funding for the project "Acquisition of Instrumentation for Research in Genetic Programming, Quantum Computation, and Distributed Systems" (NSF Major Research Instrumentation program and Research in Undergraduate Institutions program). It is also supported by a National Science Foundation Director's Award for Distinguished Teaching Scholars.