FinchGE: A Modular Grammatical Evolution Library
FinchGE is a modern, modular, and user-friendly Python library for Grammatical Evolution (GE) - a powerful evolutionary algorithm that uses formal grammars to evolve programs, expressions, and solutions.
Features
- Define grammars using BNF-style syntax
- Supports standard genetic operations: selection, crossover, mutation, replacement
- Flexible fitness evaluation for various problem domains
- Modular and extensible design allowing conveniently plugin custom components
- Easy-to-read in-built logging and visualization
- Intuitive API with extensive documentation and examples
- Benchmark suite for regression, logic and control problems
Why finchGE
- Modular and extensible: Plug-and-play mutation, selection, fitness, and search strategies.
- Designed for research and industry: Convenient and flexible API for quicker implementation.
Installation
For further details on installation, please check. InstallationQuick Example
Using finchGE is straightforward.
Step 1. Define grammar
Step 2. Define a Fitness Evaluator
Python
# Initialize Fitness Evaluator
fitness_evaluator = FitnessEvaluator(
fitness_functions=StringMatchFitness(target="hello"),
mapper=GenotypeMapper(grammar=grammar)
)
Step 3. Create GrammaticalEvolution instance and run
Python
ge = GrammaticalEvolution(config=FinchConfig.default(),
grammar=grammar,
fitness_evaluator=fitness_evaluator)
ge.run()
For further details and more advanced usage, please check. Getting Started, API Reference and Examples
Development Status
Note: This is version 1.0.1-beta.12 - a beta release. Expect breaking changes and bugs.
What to expect:
- Bugs and unexpected behavior
- Rapid API changes
- Frequent updates
- Limited test coverage