Package io.jenetics.prog.op
Operations
When creating a new program tree, it is not necessary to implement own instance of theProgramGene
or ProgramChromosome
class. The
extension point for own programs is the Op
interface.
public interface Op<T> {
public String name();
public int arity();
public T apply(T[] args);
}
final Op<Double> myop = Op.of("myop", 3, v -> v[0]*v[1] + v[2]);
NOTE: The class MathOp
in the
defines a set of mathematical standard operations/functions.
ProgramChromosome
we must
distinguish two different kind of operations:
- Non-terminal operations have an arity greater than zero and form their own sub-tree
- Terminal operations have an arity of zero and form the leaves of a program tree.
Var
,
Const
and
EphemeralConst
.
Var
TheVar
operation defines a variable of a program, which are set
from the program arguments.
final ISeq<Op<Double>> terminals = ISeq.of(
Var.of("x", 0), Var.of("y", 1), Var.of("z", 2)
);
Const
TheConst
operation will always return the same, constant, value
when evaluated.
final Op<Double> one = Const.of(1.0);
final Op<Double> pi = Const.of("π", Math.PI);
EphemeralConst
An ephemeral constant is a special constant, which is only constant within an tree. If a new tree is created, a new constant is created, by the `Supplier
function the ephemeral constant is created
with.
final Op<Double> rand1 = EphemeralConst.of(Math::random);
final Op<Double> rand2 = EphemeralConst.of("R", Math::random);
- Since:
- 3.9
- Version:
- 3.9
-
Interface Summary Interface Description Op<T> Operation interface. -
Class Summary Class Description Const<T> Represents an operation which always returns the same, constant, value.ConstRewriter<T> This class rewrites constant expressions to its single value.EphemeralConst<T> Implementation of an ephemeral constant.MathExpr This class allows you to create a math operation tree from an expression string.Program<T> This class composes a given operation tree to a new operation.Val<T> This is the sealed base class for unmodifiable values.Var<T> Represents the program variables. -
Enum Summary Enum Description BoolOp This class contains basic and secondary boolean operations.MathOp This class contains operations for performing basic numeric operations.