EAT is a Python implementation of the algorithms described in the research paper "Evolution of Algebraic Terms 4: Biological Beam Algorithms." Given an arbitrary performance specification, the program systematically designs digital circuits using binary logic on groupoids of size 3 or larger. The program's success is documented by its ability to consistently find such designs from an incredibly vast search space in fractions of a second.
EAT designed to be run as a stand alone Command Line Application (CLI). To install it you will need to open the command line (terminal) on your computer and use PIP, the standard package manager for Python.
A command line application is a program you run by typing commands in a text-based interface called a "terminal" or "command prompt." Instead of clicking buttons with your mouse, you type instructions and press Enter. Think of it like having a conversation with your computer using text commands.
- Press Windows key + R
- Type cmd and press Enter
- A black window will open - this is your command prompt
- Press Command + Space to open Spotlight
- Type terminal and press Enter
- A window will open - this is your terminal
- Press Ctrl + Alt + T or search for "Terminal" in your applications
- Python 3.7 or higher (Download Python)
- pip (usually comes with Python)
Check your Python version by typing the following on the terminal and clicking ENTER on your keyboard:
python --version
To install choose the option that best suits you and type the commands on the terminal. Submit each command by pressing ENTER on your keyboard.
pip install evolution-of-algebraic-terms
For modifying the code:
git clone https://github.com/nick-falco/eat.git
cd eat
pip3 install -e .
Or:
python3 setup.py develop
# Create virtual environment
python -m venv env
# Activate it
# Windows:
env\Scripts\activate
# macOS/Linux:
source env/bin/activate
# Install EAT
pip install evolution-of-algebraic-terms
python -c "import eat; print('EAT installed successfully!')"
Please see the 📘 EAT Wiki for detailed program usage examples.
Import Error:
ModuleNotFoundError: No module named 'eat'
Solution: pip install evolution-of-algebraic-terms
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
The source code for this project is organized as follows:
eat/
├── README.md # Project documentation
├── LICENSE # Project usage license
├── setup.py # Package installation
└── eat/ # Main package
├── runeat.py # Main entry point
├── core/ # Core mathematical components
├── beam_algorithm/ # Biological beam algorithms
├── deep_drilling_algorithm/ # Deep drilling algorithm
├── utilities/ # Helper functions
├── tests/ # Test suite
[0] L. Spector, D. Clark, B. Barr, J. Klein, I. Lindsay, Genetic programming for finite algebras,
GECCO 2008 Proceedings, pp 1291-1298.
[1] David M. Clark, Evolution of algebraic terms 1: Term to term operation continuity,
International Journal of Algebra and Computation, Vol. 23, No. 5 (2013) 1175–1205.
[2] David M. Clark, Maarten Keijzer, Lee Spector, Evolution of algebraic terms 2: Deep drilling algorithm,
International Journal of Algebra and Computation, Vol. 26, No. 6 (2016) 1141–1176.
[3] David M. Clark, Lee Spector, Evolution of algebraic terms 3: evolutionary algorithms,
International Journal of Algebra and Computation, Vol. 28, No. 5 (2018).
[4] David M. Clark, Nicholas C. Falco, Evolution of algebraic terms 4, Biological beam algorithms, (in preparation).