sort by:
Revision Author Date Message Commit Date
6287d3c Version bump. 12 March 2012, 17:30:56 UTC
7c24ab6 Added tagged_when_<num> handling and tagged-when-instruction-erc. 12 March 2012, 17:27:29 UTC
8de8ed9 Version bump. 11 March 2012, 23:22:23 UTC
788680e Cleanup. 11 March 2012, 23:20:35 UTC
65c0cac Fixed bug with false literal; added exec_when instruction. 11 March 2012, 23:13:27 UTC
779403d Reformulated geometry example. 11 March 2012, 22:40:02 UTC
ac871e8 Cleaned up geometry.clj. 09 March 2012, 20:50:30 UTC
1a428fc Removed experimental stuff from geometry.clj. 04 March 2012, 18:17:52 UTC
b4002c5 Fixed bug that HAH not actually used in select. 03 March 2012, 20:03:06 UTC
a7d8b7c version bump 03 March 2012, 02:35:37 UTC
0b182e0 Deleted class files. 03 March 2012, 02:34:46 UTC
9e51baf version bump 03 March 2012, 01:08:24 UTC
205e595 Separated HAH error from total error. 03 March 2012, 01:04:20 UTC
0eea0f0 fixed lazy bug in compute-total-error 02 March 2012, 20:23:56 UTC
3ccc921 wild experimentation in geometry.clj 02 March 2012, 20:06:14 UTC
cec60f7 Version bump. 18 February 2012, 12:55:09 UTC
ccfe052 Added historically-assessed hardness feature. 18 February 2012, 12:54:16 UTC
3577816 Added geometry.clj example. 17 February 2012, 21:56:51 UTC
e234b8f version bump 10 February 2012, 22:20:31 UTC
2af4941 Added float_regression.clj example. 10 February 2012, 22:19:07 UTC
1546645 version bump 07 February 2012, 20:11:28 UTC
ccd25ef Logs now print last Git commit hash and link to GitHub. 04 February 2012, 15:00:16 UTC
1aad5d2 Version bump. 23 January 2012, 02:42:23 UTC
867af8f Much better lshuffle, uses Java's shuffle with a custom random source. 15 December 2011, 01:08:59 UTC
ea49df3 Removing the reverse for lists, as Lee pointed out, order doesnt matter at that point. 14 December 2011, 15:54:58 UTC
26cdf4f Adding lshuffle. This function is slower than the built-in java shuffle, but it uses a thread-local random generator. 14 December 2011, 15:30:20 UTC
dfe2c64 Version bump. 19 November 2011, 16:29:04 UTC
7393baf Merge branch 'master', remote-tracking branch 'origin' into simplification_fix 19 November 2011, 04:47:22 UTC
2efc76b Version bump. 18 November 2011, 20:49:05 UTC
7c53c60 Version bump. 18 November 2011, 15:24:36 UTC
e1be43b Fixed version number printing to catch all errors. Also, will now print version number even if it is not of the form #.#.# 18 November 2011, 14:58:13 UTC
048f2b9 Version bump. 18 November 2011, 13:53:57 UTC
824b7ca Added flatten-seqs for use in auto-simplify, otherwise vectors (such as in examples/dsoar.clj) will by flattened. 17 November 2011, 20:43:01 UTC
0f63644 Added printing of Clojush version to pushgp output. Also, some minor re-formatting of the pushgp function using Clooj's auto-formatting. 16 November 2011, 16:40:32 UTC
da4db60 Bumped version to 1.0.0. 15 November 2011, 16:04:35 UTC
1e4c75f registered-instructions is now a set. 12 November 2011, 19:52:08 UTC
bcb85a7 Changing define-registered to update the existing instruction, but not conj to registered-instructions. 12 November 2011, 19:46:58 UTC
1d3ce9b Merge remote-tracking branch 'origin/master' into optional_single_threading 12 November 2011, 17:09:01 UTC
97a57b5 Obsoleted the README version history in favor of the github commit log. 12 November 2011, 16:40:17 UTC
f67457a Merge branch 'master' of github.com:lspector/Clojush 12 November 2011, 11:08:14 UTC
5faf586 Merge remote branch 'origin/master' into optional_single_threading 11 November 2011, 15:47:21 UTC
34a01b9 Added log about string stack to README.txt. 11 November 2011, 14:52:51 UTC
c21a53b Changing define-registered to check if an instruction already exists in the instruction table. 11 November 2011, 13:40:42 UTC
74eb07a Merge remote branch 'origin/master' into optional_single_threading 11 November 2011, 13:33:29 UTC
0647397 Optional single threading, random-seed, lrand-nth, and replacements of non-local random generator calls. 11 November 2011, 12:56:55 UTC
09f1c11 merge. 11 November 2011, 08:25:45 UTC
0eb5de0 Overlap adjustment. 11 November 2011, 08:19:54 UTC
63eccbc Removed testing file string_tests.clj. 05 November 2011, 00:38:35 UTC
07f8d2e Removed sin_regression.clj. This was just a file to test out using PushGP. 05 November 2011, 00:29:59 UTC
e54dbc7 Added a second, more interesting PushGP run to string.clj. 05 November 2011, 00:17:11 UTC
c9b6b26 Modified example problem string.clj. 04 November 2011, 18:40:05 UTC
7454314 Add string_length. 04 November 2011, 18:13:58 UTC
8bc6e43 Add string_take, which uses the top of the integer stack to shorten the top of the string stack to that length. 03 November 2011, 23:48:40 UTC
eeaab1e Add string_concat instruction. 03 November 2011, 23:28:10 UTC
a1bc91a Got simple pushgp string example working. 28 October 2011, 19:37:46 UTC
5941ae1 Add simple pushgp problem using strings. 28 October 2011, 19:24:10 UTC
d3020bb Add string literals in Clojush. 28 October 2011, 17:00:18 UTC
a90dd2e Added file to test string stack. 28 October 2011, 16:17:31 UTC
fabcb34 Fix bug in string-rand instruction. 27 October 2011, 20:06:20 UTC
7fce375 Add instruction string-rand. 27 October 2011, 16:19:12 UTC
7ab3e61 Add instructions for string stack that are same as for other types. 27 October 2011, 15:35:39 UTC
d6cbbdd Added a string stack, and reformatted a few things. 27 October 2011, 15:26:57 UTC
fcb4545 Added an example use of Clojush to the src/examples/ directory. 26 October 2011, 22:16:08 UTC
c197910 Merge branch 'master' of github.com:lspector/Clojush 11 September 2011, 20:56:06 UTC
b15d8e9 first commit after move to Clooj/Leiningen environment 11 September 2011, 19:56:58 UTC
98e05e1 20110809: - Several additions/enhancements by Kyle Harrington: - Converted problem-specific-report to a parameter in pushgp. - Added reporting of program repeat counts in population. - Added "error-reuse" parameter to pushgp for use in stochastic and dynamic problems (for which reuse would be turned off). - Added examples/mackey_glass_int.clj, a symbolic regression problem as described in Langdon & Banzhaf's 2005 paper (citation in file). - Added examples/pagie_hogeweg.clj problem, a difficult symbolic regression problem when coevolution is not used. Introduced by Pagie & Hogeweg's 1997 paper (citation in file). 09 August 2011, 22:21:03 UTC
3c7d9ad Added "trace" argument to eval-push and run-push, for accumulating traces in states. 20110714: - Added "trace" argument to eval-push and run-push. If this is true then the resulting state will map :trace to a list of executed instructions and literals, in reverse order of execution. If the argument is :changes then instructions that have no effect on the state will be excluded. 14 July 2011, 08:49:12 UTC
d3e29c1 20110702: - Several fixes/refinements to tagged-code macros: - Fixed incorrect no-op of arg-free calls with empty tag space. - Added :additional_args to tagged-code macro structure; the value should be a list of items and these will be executed in order before calling the macro's instruction. - Added optional 5th arg to tagged-code-macro-erc; this should be a function of zero args that will be called to produce the value of :additional_args (e.g. if you want to have one random integer arg then you could specify a 5th arg of (fn [] (list (lrand-int 101))). - Changed format produced by abbreviate-tagged-code-macros to handle :additional_args and to be slightly more concise. 02 July 2011, 19:04:36 UTC
d9e210f 20110629: - Fixed abbreviate-tagged-code-macros printing of empty lists. - Added seq condition to walklist to permit walking of seqs that aren't actually full-fledged lists. 29 June 2011, 17:32:03 UTC
c1b1314 20110624(b): - Replaced walk-based code-manipulation with walklist functions that only traverse list structure. This fixes an interaction between map literals (e.g. tagged-code macros) and program structure. 24 June 2011, 21:50:19 UTC
338057e Tagged-code macros, bug fixes for examples, and other minor changes 20110624: - Replaced lawnmower and dsoar examples with bugfixed versions (thanks to Kyle Harrington). - Added namespace and made miscellaneous other changes to clojush-tests.clj. - Added support for tagged-code macros. Tagged-code macro calls have the effect of code instructions, but they take their code arguments from the tag space and they tag their code return values. They are implemented as macros to leverage the existing code instruction set; note that this means that a single call will contribute more than one iteration step toward the evalpush-limit. Tagged-code macros appear in programs as hash maps that map :tagged_code_macro to true, :instruction to a code instruction, :argument_tags to a sequence of tags to be used to acquire arguments, and :result_tags to a sequence of tags to be used for tagging results. Execution of a macro expands the needed code onto the exec stack to grab arguments from the tag space and push them on the code stack, execute the code instruction, and tag results. Note that results will also be left on the code stack if global-pop-when-tagging is false. Conceptually, tag values are "baked in" to these macros in much the same way that tag values are "baked in" to the instruction names for stackless tag instructions; we use hash maps simply because there is more information to bake in and this prevents us from having to parse the names (which would get messy and also waste time). Because the maps make it difficult to read programs, however, a utility function called abbreviate-tagged-code-macros is provided to produce copies of programs with more human-readable (but not currently executable) representations of tagged-macro calls. A tagged-code-macro-erc is provided to generate random tagged-code macros in pushgp runs. A new example, codesize20, provides a simple demonstration of the use of tagged-code macros. 24 June 2011, 15:58:01 UTC
1876afd 20110618: - Switched to Kyle Harrington's version of overlap; it's more clear, possibly faster, and may fix a hard-to-trace bug that cropped up in a long evolutionary run (?). 18 June 2011, 14:08:12 UTC
473fb5b Added overlap, overlap-demo, code_overlap; removed complex number support 20110607: - Added overlap utility function, overlap-demo (which just prints some examples to show how overlap works), and code_overlap instruction. Overlap can be applied to any two (possibly nested) things and it returns a number between 0 (meaning no overlap) and 1 (meaning exact match). The overlap utility function returns a ratio, but the code_overlap instruction pushes a float. - Removed complex number support from 20110505. There were previous reports of problems and I've noticed problems from the fact that (apply + ()) => zero (as opposed to 0) in the clojush namespace defined by the code as revised for complex number support. If someone knows how to re-introduce complex number support without such problems then please let me know. 08 June 2011, 01:20:07 UTC
76ab89b 20110526: - Enforce size limits on zipper manipulation results. 26 May 2011, 12:43:28 UTC
b089c80 Added support for Keijzer-style error scaling. 20110517: - Added a "scaled-errors" function to support error-scaling as described by Maarten Keijzer in Scaled Symbolic Regression, in Genetic Programming and Evolvable Machines 5(3), pp. 259-269, September 2004. This must be used in a problem's error function, and then the outputs of the evolved program must be "unscaled." See the documentation string for scaled-errors and also examples/scaled_sextic.clj for details. - Added examples/scaled_sextic.clj to demonstrate the use of scaled-errors. - Changed examples/sextic.clj to use squared errors and an error threshold, in order to facilitate comparisons between the versions that do and don't use error scaling. - Made minor changes to the korns_regression_p12 example. 17 May 2011, 19:21:19 UTC
cb302b8 Complex number support (by Brian Martin) 20110505: - Added complex number support. New instructions for the 'complex' stack include: pop, dup, swap, rot, flush, eq, stackdepth, yank, yankdup, shove, rand, add, sub, mult, divide, fromfloat, frominteger, fromfloats, fromintegers, conjugate, magnitude, and principal_sqrt. (Brian Martin) 08 May 2011, 20:44:13 UTC
537a4e7 Gaussian mutation, Gaussian mutation demo, Korns regression example 20110424: - Added Gaussian mutation for floating point literals. This is a genetic operator on par with ordinary mutation, crossover, and simplification, with the probability for applying this operator set with the gaussian-mutation-probability argument to pushgp (which defaults to zero). The behavior of this operator, when used, is controlled by two other arguments to pushgp, gaussian-mutation-per-number-mutation-probability (which is the probability that any particular floating point number in the program will actually be mutated -- this defaults to 0.5) and gaussian-mutation-standard-deviation (which specifies the standard deviation of the Gaussian noise generator that is used to produce changes to numbers -- this defaults to 0.1). - Added examples/gaussian_mutation_demo.clj to demonstrate Gaussian mutation. - Added examples/korns_regression_p12.clj, a symbolic regression problem based on Michael Korns's draft chapter from GPTP11. 25 April 2011, 02:18:05 UTC
abb78ec Removed no-pop hackage from mux example (thanks Kyle). 10 April 2011, 02:48:17 UTC
58c8560 Added support for no-pop tagging. 20110409: - Added support for no-pop tagging through a var called global-pop-when-tagging (holding an atom with a boolean value) and a boolean argument to pushgp called pop-when-tagging. The defaults are true, for backwards compatibility. If @global-pop-when-tagging is false (which will result from passing false as a :pop-when-tagging keyword argument to pushgp) then executing instructions of the form tag_<type>_<number> will tag a value as usual, but the tagged item will not be popped from its source stack. 10 April 2011, 01:28:46 UTC
4c70592 Tag reference bug fixed; mux example added. 20110322: - Tag reference bug fixed in closest-association (>= changed to <=). - Added mux (multiplexer) example (a couple of approaches in one file). 28 March 2011, 02:22:57 UTC
63f6974 tagged_code_<number> instructions, evalpush-time-limit=0 (default) means no time limit 20110118: - Added support for tagged_code_<number> instructions. These are like tagged_<number> instructions except that retrieved values are pushed onto the code stack rather than the exec stack. Without these the only way to get tagged values onto the code stack is to wrap values with code_quote prior to tagging. An alternative approach is to add new tagging instructions that automatically perform code_quote wrapping, but for full generality that would require new instructions for each type; also quote-tagged values would always be destined for the code stack, while the scheme adopted here allows any stored value to be retrieved either to exec or to code. - A value of 0 for the evalpush-time-limit parameter of pushgp now means that no time limit will be enforced. This is also now the default. 19 January 2011, 01:22:54 UTC
ac0bbf9 Fixed type (bzip_rot -> zip_rot, thanks Kyle). 14 January 2011, 16:05:10 UTC
cbc57dd fixed typo in dsoar.clj top-level call ("tournament") (tx Brian) 13 January 2011, 13:45:51 UTC
82288b4 Fixed zipper bugs. 12 January 2011, 23:33:28 UTC
5a36624 Fixed zipper bugs. 12 January 2011, 23:33:02 UTC
3225eba Zippers, registered-nonrandom, and examples/dsoar.clj 20110111: - Added zipper stack and functions (thanks to Kyle Harrington for draft code, although this was re-written). - Added registered-nonrandom function. - Modified odd.clj example to use registered-nonrandom. - Added examples/dsoar.clj, a version of the "Dirt-Sensing, Obstacle-Avoiding Robot" (DSOAR) problem first described in: Spector, L. 1996. Simultaneous Evolution of Programs and their Control Structures. In Advances in Genetic Programming 2, edited by P. Angeline and K. Kinnear, pp. 137-154. Cambridge, MA: MIT Press. http://helios.hampshire.edu/lspector/pubs/AiGP2-post-final-e.pdf This version was written by Brian Martin in 2010-2011. 12 January 2011, 06:05:11 UTC
1d57330 Added alternative node selection methods for use in mutation and crossover. 09 December 2010, 02:31:25 UTC
bdce86e Minor enhancements/fixes, intertwined spirals. 20101204: - Added pushgp-map, which allows pushgp calls on maps of arguments, and a demonstration of its use in argmap_regression.clj. - Added :gen-class and -main definition (thanks Kyle Harrington). - Fixed eval-push termination to return :abnormal for exceeding time-limit (thanks Kyle Harrington). 20101205: - Added modified version of Kyle's version of the intertwined spirals problem. - Minor changes to this README. 05 December 2010, 14:08:16 UTC
71e6bd6 Minor enhancements/fixes, intertwined spirals. 20101204: - Added pushgp-map, which allows pushgp calls on maps of arguments, and a demonstration of its use in argmap_regression.clj. - Added :gen-class and -main definition (thanks Kyle Harrington). - Fixed eval-push termination to return :abnormal for exceeding time-limit (thanks Kyle Harrington). 20101205: - Added modified version of Kyle's version of the intertwined spirals problem. - Minor changes to this README. 05 December 2010, 14:05:34 UTC
0fe9b64 Minor enhancements/fixes and intertwined spirals. 20101204: - Added pushgp-map, which allows pushgp calls on maps of arguments, and a demonstration of its use in argmap_regression.clj. - Added :gen-class and -main definition (thanks Kyle Harrington). - Fixed eval-push termination to return :abnormal for exceeding time-limit (thanks Kyle Harrington). 20101205: - Added modified version of Kyle's version of the intertwined spirals problem. - Minor changes to this README. 05 December 2010, 14:03:14 UTC
aef3112 20101106: - Tweaked parameters in ant examples; among other things, increased simplification since bloat was an issue. Also added some evolved solutions in comments. 20101107: - Added Koza's lawnmower problem example; this demonstrates how to add a new type/stack on a problem-specific basis, without altering clojush.clj. 07 November 2010, 15:57:35 UTC
73ce5e5 Added stackless tagging, along with several minor fixes and enhancements: 20101102: - Switched to new clojure.core/frequencies from depricated seq-utils/frequencies (h/t Kyle Harrington), and similarly for flatten. - Added :include-randoms keyword argument for registered-for-type. Defaults to true, but if specified as false then instructions ending with "_rand" will be excluded. - Raised invalid output penalty in tg8 (it was lower than reasonable errors for that problem). 20101103: - Converted evalpush-limit and evalpush-time-limit into vars (global-evalupush-limit and global-evalpush-time-limit) bound to atoms that are reset by calls to pushgp (keyword arguments :evalpush-limit and :evalpush-time-limit). - Changed pushgp parameters in the tg8.clj example. 20101104: - Implemented stackless tagging (see http://push.i3ci.hampshire.edu/ 2010/10/28/stackless-tagging/). Tag instructions take one of the following forms: tag_<type>_<number> create tage/value association, with the value taken from the stack of the given type and the number serving as the tag untag_<number> remove the association for the closest-matching tag tagged_<number> push the value associated with the closest-matching tag onto the exec stack (or no-op if no associations). Here "closest-matching" means the tag with lowest number that is greater than or equal to the number of the tag being matched, or the lowest-numbered tag if none meet this criterion. Tag instructions are not implemented in the same way as other instructions; they are detected and handled specially by the interpreter (see execute-instruction). Tag instructions can be included in pushgp runs by using the new ephemeral random constant functions tag-instruction-erc, untag-instruction-erc, and tagged-instruction-erc, each of which takes a limit (for the numerical part) as an argument. - Added examples using tags: tagged_ant, tagged_regression, and tagged_tg8. 05 November 2010, 02:59:47 UTC
680cbb2 20101017: - Reverted from records to structs; wasn't significantly faster and structs allow for greater flexibility in use of state as map. 17 October 2010, 23:05:50 UTC
704dd20 Ack NSF 14 October 2010, 14:45:50 UTC
5df679b 20101014: - [Artificial ant, krypto, tg8, decimation] - Added articial ant example from Koza (via Luke). - Added "tg8" integer symbolic regression problem. - Added krypto number puzzle example. - Added pushgp "decimation" feature, in which elimination tournaments, conducted after fitness testing, reduce the size of the population to a specified fraction of its original size (specified in a decimation-ratio argument to pushgp; the tournament sized is specified via decimation-tournament-size). The ordinary tournament-size parameter is still used for subsequent selection from the decimated population. Any specified trivial geography applies both to decimation and to subsequent selection. 14 October 2010, 14:18:03 UTC
05e96f5 Jars readded (not sure why they were removed). 06 October 2010, 01:01:57 UTC
2a8cd79 With agent error-handlers. 06 October 2010, 01:01:08 UTC
d0ba989 first commit with auto directory 25 September 2010, 20:15:02 UTC
c6a1189 fixed namespace names in examples 25 September 2010, 19:50:18 UTC
c44de20 - Converted structures to records (a clojure 1.2 feature, should be faster). 22 September 2010, 02:40:57 UTC
back to top