David M. Clark ([email protected])
Nicholas C. Falco ([email protected])
Given an n-element groupoid G
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 a prompt like:
C:\Users\YourName>
- Press Command + Space to open Spotlight
- Type
terminaland press Enter - You’ll see a window with a prompt like:
yourname@Your-Mac ~ %
- Press Ctrl + Alt + T or search for “Terminal” in your applications
- You’ll 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 in the Terminal 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 and Linux: 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-termsIf that doesn’t work, try:
python3 -m pip install evolution-of-algebraic-termsIf 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 were developed in the publications [1], [2], [3], [4] and [5], culminating in [4] that includes a summary of the others. EAT offers access to the three most successful programs:
- the Deep Drilling Algorithm (DDA) of [2],
- the Female Beam Algorithm (FBA) of [4] and
- the Male-Female Beam Algorithm (MFBA) of [4].
An EAT program takes, as input, a groupoid, a target operation that is a term operation of that groupoid and one of the three algorithms. An n-element groupoid is specified by listing the entries in its table from left to right and then top to bottom. EAT has three ways to specify a target operation:
-
-ttdthe ternary discriminator operation$d(a, b, c) = c$ if$a = b$ , else$a$ -
-trga randomly generated operation, by listing its values at each triple -
-ta user chosen target, by listing its values at each triple.
For example, try entering eat -g 2 1 2 1 0 0 0 0 1 -a MFBA -ttd, (return). EAT will use the 3-element groupoid -a MFBA with either -a FBA or -a DDA and replace -ttd with either -trg or your own chosen ternary operation to get similar results. For example, try entering eat -g 1 2 0 1 2 2 0 1 0 -a DDA -t 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1.
A central theme of the EAT publications referenced below, summarized in [4], is to determine which finite groupoids will yield terms with these algorithms. Experimental and theoretical evidence indicates that the proportion of n-element groupoids that do grows quickly with n and appears to approach one as n gets large, but takes rapidly more run time as n grows larger. Figure 17 in [4] gives a sense of this by looking at ten random groupoids of sizes 3, 5 and 7. Using the MFBA, 30% were successful for n = 3, 60% for n = 5 and 90% for n = 7. Using the DDA the percents are slightly smaller and the term sizes much larger. The FBA, a stepping stone to the MFBA, could not find terms for n > 4 in an acceptable time frame. Entering just eat <return> will give other command line options that can be used.
Given a finite groupoid G
We say that
The EAT programs use this idea with the three methods of specifying target operations. Using -ttd, the discriminator operation -trg is used, random values are assigned to all triples except idempotent triples −t is used, an error message is produced if some idempotent triple
[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), pp. 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), pp. 1141–1176.
[3] David M. Clark, Lee Spector. Evolution of algebraic terms 3: Term continuity and beam 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).
[5] V. L. Murskı̆ı. A finite basis of identities and other properties of “almost all” finite algebras. Problémy Kibérnetiki, Vol. 30 (1975), pp. 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 2008 Hummie Competition.)