alogos.systems.cfggp.mapping

Forward and reverse mapping functions for CFG-GP.

Functions

forward(grammar, genotype, parameters=None, raise_errors=True, return_derivation_tree=False, verbose=False)

Map a CFG-GP genotype to a string phenotype.

reverse(grammar, phenotype_or_derivation_tree, parameters=None, return_derivation_tree=False)

Map a string phenotype (or derivation tree) to a CFG-GP genotype.


Detailed object descriptions

alogos.systems.cfggp.mapping.forward(grammar, genotype, parameters=None, raise_errors=True, return_derivation_tree=False, verbose=False)[source]

Map a CFG-GP genotype to a string phenotype.

Parameters:
  • grammar (Grammar)

  • genotype (Genotype or data that can be converted to it)

  • parameters (dict or ParameterCollection, optional) – Following keyword-value pairs are considered by this function:

    • max_expansions (int): Maximum number of nonterminal expansions allowed in the derivation created by the mapping process.

  • raise_errors (bool, optional) – Possible values:

    • True: A mapping error will be raised if a derivation is not finished within a limit provided in the parameters.

    • False: A partial derivation is allowed. In this case, the returned string will contain unexpanded nonterminal symbols. Therefore it is not a valid phenotype, i.e. not a string of the grammar’s language but a so-called sentential form.

  • return_derivation_tree (bool, optional) – If True, not only the phenotype is returned but additionally also the derivation tree.

  • verbose (bool, optional) – If True, output about steps of the mapping process is printed.

Returns:

  • phenotype (str) – If return_derivation_tree is False, which is the default.

  • (phenotype, derivation_tree) (tuple with two elements of type str and DerivationTree) – If return_derivation_tree is True.

Raises:

MappingError – If raise_errors is True and the mapping process can not generate a full derivation before reaching a limit provided in the parameters.

alogos.systems.cfggp.mapping.reverse(grammar, phenotype_or_derivation_tree, parameters=None, return_derivation_tree=False)[source]

Map a string phenotype (or derivation tree) to a CFG-GP genotype.

Parameters:
  • grammar (Grammar)

  • phenotype_or_derivation_tree (str or DerivationTree)

  • parameters (dict or ParameterCollection, optional) – No keyword-value pairs are considered by this function. This argument is only available to have a consistent interface.

  • return_derivation_tree (bool, optional) – If True, not only the genotype is returned but additionally also the derivation tree.

Returns:

Raises:

MappingError – If the reverse mapping fails because the string does not belong to the grammar’s language or the derivation tree does not represent a valid derivation.