GEP Toolkit
Implementation of Gene Expression Programming in Rust. Supports SL-GEP (Self-Learning Gene Expression Programming), check out references at the bottom of this README.
Usage
Add the GEP Toolkit dependency in your Cargo.toml file:
[]
= "0.2.1"
Use KExpression
s as your genetic population chromosomes, and use k_expr.expression(ExpressionTreeType::RGEP)
to build an expression tree and compute it (GEP and PGEP are not supported yet).
use *;
use PrimitiveOperationSet;
use KExpressions;
use ;
Note that the library is intended for expression trees generation and computing them. In order to run a simulation, you will need to use a separate GA library. Check out examples.
Examples
- Example 1 – running a GEP simulation on oxigen
- Example 2 – save/load operation set and K-Expressions
TODO
- Saving/loading operation set and expressions
- Support
KExpression.mutate()
with regard to ADFs and SLEs positions - More concise K-Expression display format
- GEP and PGEP expressions parsing (only RGEP is supported currently)
- Support pure ADFs without arguments
- Support restricting usage of primitive operations in main expression to support only-ADFs approach
References
- Gene Expression Programming, 2001 – Candida Ferreira
- Prefix Gene Expression Programming, 2005 – Xin Li, et al.
- Automatically Defined Functions in Gene Expression Programming, 2006 - Candida Ferreira
- Robust Gene Expression Programming, 2011 – Noah Ryan, et al.
- Self-Learning Gene Expression Programming, 2015 – Jinghui Zhong, at al.