[Push] Push updates
Lee Spector
lspector at hampshire.edu
Tue Apr 13 15:37:39 EDT 2004
Push list people,
FYI a few updates have recently been made to the Push2 language
specification and to the Lisp implementation of Push and PushGP. There
are a couple of important bug fixes and a few minor new features,
including some new Push instructions. The recent segments of the
version histories are included below, and all of the new files are now
available from http://hampshire.edu/lspector/push.html.
The C++ implementation is now also nearly up to the current Push2
specification, and we'll be posting a new version of that very soon
(and I'll drop a note here). These updates do *not* include any of the
more radical revisions that were kicked around here and in private
email a couple months ago, although I am finally clearing my plate
enough to return to these issues and perhaps to incorporate some of
them into future revisions. FYI some of what has been on my plate
recently has been a book I've just written which will include a lot of
material on Push and PushGP (Automatic Quantum Computer Programming: A
Genetic Programming Approach -- coming out from Kluwer in about 6
weeks).
-Lee
==== Push2 version history ====
20031116: Changed consp to listp in EVALPUSH, completing transition
from t/nil to true/false.
20031130: Added defaults for all types (for GET).
Changed arg order for CONTAINS.
20031202: Fixed NOOP conditions for SHOVE.
20031205: Fixed NOOP conditions for YANK and YANKDUP.
20031206: Fixed SET and GET for special cases with NAME.SET and
NAME.GET.
Added pushparamters for random number limits.
20031229: Minor changes for openmcl.
Added support for constant instructions defined in config
files, including SETCONSTANT for setting them.
Added RANDOM-SEED push parameter, which can occur in
config files.
20031230: Changed config file extension to .pconf (instead of .pst).
20040111: Fixed off-by-1 error in random-code handling of max-points.
20040112: Changed *./ and *.% (divide and mod templates) to NOOP instead
of pushing zero when denominator is zero.
Changed *.GET to NOOP instead of pushing default values for
unbound names.
20040413: (actually sometime earlier) Added CODE.FROMBOOLEAN,
CODE.FROMINTEGER, CODE.FROMFLOAT, CODE.FROMNAME,
CODE.DO*COUNT,
CODE.DO*TIMES.
==== PushGP version history (since Fall 2003) ====
20030831 - Commented out complete-push-configuration to allow for
configuration from file with push2
20030918 - Removed push configuration parameters
- Changed examples to conform to new runpush syntax
20030925 - Crashed-proofed fitness testing in PUSHGP, so it needn't be
done in individual fitness functions.
- Added *fitness-for-invalid-program*.
20031229 - Added regression example with input from a constant, rather
than the stack.
- Added ADD and REMOVE mutation methods.
- Removed obsolete call to complete-push-configuration.
- Removed problem-specific-initialization.
- Switched random seeding to be based on the pushparameter
*RANDOM-SEED*.
- The effective seed will be the configured seed PLUS the
host number (which is 1 if not running on a cluster).
- Documentation revised for posting with Push2.
20031230 - Changed config file extension to .pconf (instead of .pst).
20040412 - Fixed bug in fair mutation (was previously mutating only
at extremes of range).
20040413 - Changed default problem to FLOAT regression of
y = x^4 + x^3 + x^2 + x, {x in [-1,1]}
--
Lee Spector
Dean, Cognitive Science + Associate Professor, Computer Science
Cognitive Science, Hampshire College, Amherst, MA 01002
lspector at hampshire.edu, http://hampshire.edu/lspector/
Phone: 413-559-5352, Fax: 413-559-5438
More information about the Push
mailing list