1. Monoids, computer science and evolution
Vladimir Cuesta †
Instituto de Ciencias Nucleares, Universidad Nacional Aut´noma de M´xico, 70-543, Ciudad de M´xico, M´xico
o e e e
Abstract. I present a model for computing as an arithmetic of base two, additionally I represent it as two monoids
({0, 1}, +) and ({0, 1}, ·), where ” + ” is a sum and ” · ” is a product. Later, I define a model for reverse evolution,
the pass of generations in opposite order, genealogical tree or family tree by the numbers 0 and 1 for the sum and the
product of the previous monoids. I present a different couple of monoids and I show diagrams for a lot of generations.
1. Introduction
Computer science is one pillar in our private and social life, the impact in the science of our time and specifically in
modern technology is indisputable. By other side, medical and genetic science are important in our century, too. In
the present paper, using medical ideas I show a model in computing for describing genealogical trees with zeros and
ones, with that model we can walk backward along generations, for doing that I use basic graph theory, because the
use of the theory of monoids and binary arithmetic is not enough. I hope that the model can be use forward in time.
2. Computer Science, binary arithmetic and monoids
2.1. Computer science and binary arithmetic
Theoretical computing is one of the most important branches inside of computer science (see [1] and [2] for further
study), it serves as a platform for making progress in our present technology. In this subsection and all along the
present work I understand computing as an arithmetic of the numbers 0 and 1 with base two and as products based
on the number two. Let a be a natural number or zero, we can express a as
a = 2 × s + r, (1)
I mean, we can write a as two times s plus a residue r where s and r are natural numbers, we will understand the
number a as the residue r in an arithmetic of base two (or the arithmetic of the computer science). I show some
examples
0 = 2 × 0 + 0 = 2 0, 1 = 2 × 0 + 1 = 2 1, 2 = 2 × 1 + 0 = 2 0, 3 = 2 × 1 + 1 = 2 1,
4 = 2 × 2 + 0 = 2 0, 5 = 2 × 2 + 1 = 2 1, 6 = 2 × 3 + 0 = 2 0, 7 = 2 × 3 + 1 = 2 1, (2)
and so on. I will understand computing as sums ” + ” and products ” · ” of the numbers 0 and 1, in the previous
notation = 2 means the result in base two.
As a second step of the construction I present the following set of products
0 = 0 · 0 = 2 0, 0 = 0 · 1 = 2 0, 0 = 1 · 0 = 2 0, 1 = 1 · 1 = 2 1, (3)
which will be useful, too.
† vladimir.cuesta@nucleares.unam.mx
2. Monoids, computer science and evolution 2
2.2. Computer science and monoids
Let A be a non empty set and ∗ an application of the form (or composition law)
∗ : A × A → A, (4)
We understand a monoid as a pair (A, ∗), where A is a non empty set and ∗ is a composition law (see [3] for details).
With the previous definition, we can understand computing as two monoids (A, +) and (A, ·), where A = {0, 1},
” + ” is the sum of base two and ” · ” is the product of base two.
+ 0 1 · 0 1
0 0 1 0 0 0
1 1 0 1 0 1
3. Evolution
3.1. Generations
I was born in a historical moment, I have brothers and sisters all of us have parents and my parents had parents and
so on. In the following subsection I present an illustrative diagram based on non oriented graphs (see [4] for details) or
equivalently tree diagrams, according to this the upper side is the first generation counting in the opposite direction
of time, the second row represents the second generation and the last one is the third generation and so on.
Daughter, son (5)
Mother Father
Maternal grandmother Maternal grandfather Paternal grandmother Paternal grandfather
.
. .
. .
. .
. .
. .
. .
. .
.
. . . . . . . .
in the paper I use a theory based in the previous diagram. I present the evolution of different generations in the
opposite arrow of time, I use the model for the usual binary arithmetic of computing and a different construction (the
interested reader can see the use of genetic models in computing at [5] and in the references therein).
3.2. Usual binary arithmetic
First and second generations (for the sum)
The usual binary arithmetic for computing is the following:
+ 0 1
0 0 1
1 1 0
I have presented this table a lot of times. However in our case I present it as a tree diagram and the result is
0 1 1 0 (6)
0 0 0 1 1 0 1 1
the upper side is the first generation and the lower side is the second.
5. Monoids, computer science and evolution 5
0 0 0 1 (18)
1 0 1 0 1 0 1 1
1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1
.
. .
. .
. .
. .
. .
. .
. ..
.. .
. .
. .
. .
. .
. .
. ..
.. .
. .
. .
. .
. .
. .
. ..
.. .
. .
. .
. .
. .
. .
. .
.
. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .
3.3. Second example
In this subsection I present a different construction for computing, I define a new operation using the sum ” + ” and
product ” · ”, ∗2 is a new one and the product ” · ” is the usual
a ∗2 b = 1 + b + a · b, (19)
∗2 0 1 · 0 1
0 1 0 0 0 0
1 1 1 1 0 1
First and second generations (for the ∗2 operation)
The tree diagrams resume the previous table of the ∗2 operation
0 1 1 1 (20)
0 1 0 0 1 0 1 1
First, second, third generations and so on (for the ∗2 operation)
The opposite arrow of time for the first three generations is represented for the diagrams
0 0 0 (21)
0 1 0 1 0 1
0 1 0 0 0 1 1 0 0 1 1 1
.
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
. . . . . . . . . . . . . . . . . . . . . . . .
1 (22)
0 0
0 1 0 1
.
. .
. .
. .
. .
. .
. .
. .
.
. . . . . . . .
1 1 1 (23)
1 0 1 0 1 0
0 0 0 1 1 0 0 1 1 1 0 1
.
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
. . . . . . . . . . . . . . . . . . . . . . . .
6. Monoids, computer science and evolution 6
1 1 1
1 1 1 1 1 1
0 0 0 0 0 0 1 0 0 0 1 1
.
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
. . . . . . . . . . . . . . . . . . . . . . . .
1 1 1
1 1 1 1 1 1
1 0 0 0 1 0 1 0 1 0 1 1
.
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
. . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 (24)
1 1 1 1 1 1
1 1 0 0 1 1 1 0 1 1 1 1
.
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
. . . . . . . . . . . . . . . . . . . . . . . .
The tree diagrams for the product is the same as in the previous subsection and I do not show it.
4. Conclusions and perspectives
Along this work I have studied computing as a theory based on binary arithmetic and a couple of monoids, I have
defined different operations and I have presented another pair of monoids. Additionally I paint a set of diagrams
representing the inverse evolution for generations in computer science.
For future work I discuss the following, I have the sum table ” + ” for computing. However, I can study another
set of tables, for example a ∗3 b = 1 + a + b + a · b, a ∗4 b = a + b + a · b and so on.
Another option is the study of mutations or modifications in the genealogical tree, I mean in the sum table for
” + ” we use 0 + 0 =2 0, 0 + 1 =2 1, 1 + 0 =2 1 and 1 + 1 =2 0. However, in a moment we can force the appearance of
another diagram, for example, 1 + 1” =2 ”1 and the genealogical tree will be modified.
References
[1] Harris, John W., Stocker Horst, Handbook of mathematics and Computacional Science, New Haven, Connecticut and Frankfurt,
Germany, Springer-Verlag (1998),
[2] Manna, Zohar, Mathematical Theory of computation Stanford University, Dover (1974),
[3] Gentile, Enzo R., Estructuras algebraicas I, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires; Buenos Aires,
Argentina (1967),
[4] Trudeau, Richard J., Introduction to graph theory, Kent State University, Dover (1993),
[5] Carpentieri, Marco, A Genetic System Based on Simulated Crossover: Stability Analysis and Relationships with Neural Nets,
Evolutionary Computation 17 (2): 167-2001, MIT (2009).