.. Fracnetics documentation master file, created by sphinx-quickstart on Mon Oct 6 21:09:46 2025. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Fracnetics Documentation ======================== **Fracnetics** is a high-performance **C++ library with Python bindings** for **Genetic Network Programming (GNP)** — an evolutionary approach that evolves **directed graph structures** for decision-making and control tasks. The Library extends **Genetic Network Programming (GNP)** with **variable-size** networks and **fractal geometry**, designed to model adaptive, recursive, and self-similar network structures inspired by biological evolution and natural growth patterns. It is designed for researchers and developers exploring: - Evolutionary network design - Directed multigraph network architecture - variable-size networks - Complex systems with self-similar topology .. toctree:: :maxdepth: 2 :caption: Contents: cpp_api python_api examples Installation --------------------- ``` pip install fracnetics ``` Architecture Overview --------------------- Fracnetics is organized into three core components: 1. **Population** – Manages selection, mutation, crossover, and generations 2. **Network** – Directed multigraph with evolutionary operators and fitness functions 3. **Node** – Basic unit (start, judgment, processing) Key Features ------------ **Population Management** - Create and manage a full population of ``Network`` individuals. - Graph-Based Evolution: Networks evolve as directed graphs with judgment nodes (conditional decisions) and processing nodes (actions), enabling node reuse and cyclic execution paths **Fitness Evaluation** - Built-in support for OpenAI Gymnasium environments - Traverse a network path via ``callTraversePath`` and calculate any own fitness/ target function **Selection & Elitism**: Tournament selection with configurable size. **Mutation Operators** - **Edge mutation** – altering connections between nodes. - **Boundary mutations** (multiple variants): - Uniform - Normally distributed - Network-size dependent sigma scaling - Edge-count dependent sigma scaling - Fractal-based mutation **Crossover**: Node exchange between individuals. **Innovative Operators** - **Add/Delete Nodes** – dynamic structural changes in networks. - **Fractal Geometry Integration** – hierarchical boundary generation via production rules (L-systems-style subdivision). Applications ------------ Fracnetics targets domains requiring **adaptive, interpretable graph structures**: - Real-time control and robotics - Classification - Reinforcement learning problems - Combinatorial and parameter optimization - Time series prediction with recurrent connections