David M. Clark (clarkd@newpaltz.edu)
Nicholas C. Falco (ncfalco@gmail.com)
Given an
EAT is a standalone Command Line Application. To install it, you need a command line terminal and a current version of Python.
- Press Windows key + R.
- Type
cmdand press Enter. - You'll see a black window with:
C:\Users\YourName>.
- Press Command + Space to open Spotlight.
- Type
terminaland press Enter. - You will see a window with:
yourname@Your-Mac ~ %.
- Press Ctrl + Alt + T or search for Terminal in your applications.
- You will see a prompt like:
yourname@yourmachine:~$.
If your computer does not already have Python 3.7 or higher installed, you will need to install it. To find out what version, if any, you already have, enter either python --version or python3 --version, (return). To install a current version, go to https://www.python.org/downloads and following the instructions for your operating system.
For Mac: After installing Python, you may need to restart your terminal or use python3 instead of python.
For Windows: A message about installing Python from the Microsoft Store means Python is not yet installed. You can either visit python.org to install it manually (recommended) or install it directly from the Microsoft Store. Be sure to restart your terminal after installation.
Once Python is installed, you can install EAT by entering
pip install evolution-of-algebraic-terms
If that doesn't work, try
python3 -m pip install evolution-of-algebraic-terms
If the instillation is successful, you will get a confirmation message. You can then activate EAT by entering either
eat or python3 -m eat
Once EAT is installed you will be ready to use the EAT programs.
The algorithms for the EAT programs that evolve terms were developed in the publications [1], [2], [3] and [4], culminating in the
Male-Female Beam Algorithm (MFBA)
of [4], which builds on and summarizes the Deep Drilling Algorithm (DDA) of [2], the Beam Enumeration Algorithm (BEA) of [3] and The Female Beam Algorithm (FBA) of [4].
The MFBA takes as input a finite groupoid and a target operation that is a term operation of that groupoid. It then tries to find a term that has that target operation as its term operation. For example, consider the 3-element primal groupoid
eat -g 2 1 2 1 0 0 0 0 1 -a MFBA -t 2 0 1 1 2 . . . . . . 2 0 2 0 1
This command will invoke the (-a) MFBA to use the (-g) groupoid
(0, 0, 0)→2, (0, 0, 1)→0, (0, 0, 2)→1, (0, 1, 0)→1, (0, 1, 1)→2, . . . ,(2, 2, 2)→1.
Here "MFBA" can be replaced by either "FBA" or "DDA" and -t can be followed by any 27 values from {0, 1, 2} that you choose. If you find entering 27 random values tedious, you can instead use the random target command -trg. Just enter
eat -g 2 1 2 1 0 0 0 0 1 -a MFBA -trg
and let the program produce a randomly generated target operation for you.
In order to use our programs effectively you will need to know something about which groupoids will yield terms with them and which target operations are term operations of those groupoids. Answering these questions is a central theme of the EAT publications referenced below, summarized in [4]. We will give two tests that will help you to identify groupoids that yield terms. We will then give evidence that groupoids which pass both tests do reliably yield terms and that the proportion of n-element groupoids that pass both tests rapidly approaches one as n gets larger.
Asymptotic Completeness Test. Our first test is done by using the algorithm from [2] that runs on our AC program. Given a triple
eat -g 2 1 1 3 3 0 2 1 1 3 2 0 2 2 1 2 -a AC -d 2 3 0
it will return a sequence of probability distributions from the 4-element groupoid
27 0.147766 0.278100 0.396522 0.177612,
giving the probabilities that a term of height at most
As another example, an element
To do this test, run AC with any one of
Ternary Discriminator Test. It turns out that there is one special operation that must be a term operation on
A groupoid
eat -g 2 1 1 3 3 0 2 1 1 3 2 0 2 2 1 2 -a MFBA -ttd
The MFBA will quickly return a discriminator term, showing that
An
The other requirement our algorithms need is that
To see how these conditions play out in practice, we examined the 30 randomly generated groupoids at the end of [4], 10 with 3 elements, 10 with 5 elements and 10 with 7 elements, to compare the ones that were both IPr and TC with the ones that passed both the TD and the AC+ Test. There were two significant outcomes.
- There were 17 of the thirty that passed both of our tests. Exactly those 17 were the ones that were IPr and TC and also exactly the ones that reliably returned terms with the MFBA.
- Looking at those 17 we found that 3 were 3-element groupoids, 5 were 5-element groupoids and 9 were 7-element groupoids. In other words, the proportion of groupoids that reliably return terms with the MFBA is low for the smallest groupoids but rapidly approaches one as groupoids get larger.
[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, International Journal of Algebra and Computation, (to appear).
[5] V. L. Murskii, A finite basis of identities and other properties of “almost all” finite algebras, Problemy Kibernetiki 30 (1975), 43-56.
[6] L. Spector, D. Clark, B. Barr, J. Klein, I. Lindsay, Genetic programming for finite algebras, GECCO 2008 Proceedings, pp. 1291-1298. (First place winner in the GECCO 2008 Hummie Competition.)