xegaDerivationTrees: Generating and Manipulating Derivation Trees

Derivation tree operations are needed for implementing grammar-based genetic programming and grammatical evolution: Generating a random derivation trees of a context-free grammar of bounded depth, decoding a derivation tree, choosing a random node in a derivation tree, extracting a tree whose root is a specified node, and inserting a subtree into a derivation tree at a specified node. These operations are necessary for the initialization and for decoders of a random population of programs, as well as for implementing crossover and mutation operators. Depth-bounds are guaranteed by switching to a grammar without recursive production rules. For executing the examples, the package 'BNF' is needed. The basic tree operations for generating, extracting, and inserting derivation trees as well as the conditions for guaranteeing complete derivation trees have been presented in Geyer-Schulz (1997, ISBN:978-3-7908-0830-X). The use of random integer vectors for the generation of derivation trees has been introduced in Ryan, C., Collins, J. J., and O'Neill, M. (1998) <doi:10.1007/BFb0055930> for grammatical evolution.

Getting started

Package details

AuthorAndreas Geyer-Schulz [aut, cre] (<https://orcid.org/0009-0000-5237-3579>)
MaintainerAndreas Geyer-Schulz <Andreas.Geyer-Schulz@kit.edu>
LicenseMIT + file LICENSE
Version1.0.0.6
URL https://github.com/ageyerschulz/xegaDerivationTrees
Package repositoryView on CRAN
Installation Install the latest version of this package by entering the following in R:
install.packages("xegaDerivationTrees")

Try the xegaDerivationTrees package in your browser

Any scripts or data that you put into this service are public.

xegaDerivationTrees documentation built on April 16, 2025, 5:11 p.m.