Archive for December, 2010

Alternative node selection methods in Clojush

Wednesday, December 8th, 2010

Clojush now supports alternative node selection methods for mutation and crossover. In addition to the :unbiased method (which was all that was previously available) there is now also :leaf-probability (which allows for Koza-style selection of 90% internal nodes / 10% leaves, or any other percentages) and a novel method, :size-tournament (see below). Brian Martin drafted these changes, which I subsequently tweaked with input also from Kyle Harrington.

Available as usual from: https://github.com/lspector/Clojush

20101208: - Added alternative methods for node selection, used in mutation
            and crossover (drafted by Brian Martin, with suggestions
            from Kyle Harrington). This introduced three new globals:
            global-node-selection-method, global-node-selection-leaf-probability,
            and global-node-selection-tournament-size, each of which holds
            an atom, and three new parameters to pushgp: node-selection-method,
            node-selection-leaf-probability, and node-selection-tournament-size.
            The node-selection-method can be :unbiased (in which case nodes
            are selected using the uniform distribution that was previously
            used -- this is the default), :leaf-probability (in which case
            the value of the node-selection-leaf-probability argument,
            which defaults to 0.1, specifies the probability that leaves,
            as opposed to internal nodes, will be selected -- this is the
            method used by Koza and others in tree-based GP), or
            :size-tournament (in which case the value of the
            node-selection-tournament-size argument, which defaults to 2,
            determines the tournament size for node tournaments, with the
            largest subtree in the tournament set being selected).

Clojush minor fixes, intertwined spirals

Sunday, December 5th, 2010

Clojush minor enhancements/fixes, intertwined spirals.

Available as usual from: https://github.com/lspector/Clojush

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.