**Separating Points**

The recommended reading for this article is
Pissanetzky(2012b).

This article describes a computational experiment that demonstrates the basics of two important topics in causal logic: learning without a teacher, and object recognition. Input data is obtained from a camera when beams of light shine on an array of photosensitive cells. The illuminated cells become activated and generate signals, all at the same time. Hence a causal relation exists between a cell that is illuminated and the signal it generates, the cell and the light being the causes and the signal being the effect. The collection of all those cause-effect relations is the partial order in the input causal set.

The problem can not be solved in its totality, because it is too large and requires specialized hardware, as explained in the paper. The specialized hardware is not yet available. Nevertheless, several basic techniques essential for image recognition in causal logic are explained, and a partial solution is obtained.

The photosensitive array consists of 345 square cells of size 1 x 1 (the
units are irrelevant), arranged in 15 columns and 35 rows, with their sides
parallel to the coordinate axes. The cells overlap by 0.5 in both the x
direction and the y direction. In other words, if a cell is located in such a
way that its center is at position (0, 0), then there is going to be other cells
with centers at positions (0.5, 0), (0, 0.5), and (0.5, 0.5), and so on. A point
contained in a cell activates that cell. A point on an edge separating two
cells activates both cells, and a point on a vertex formed by 4 cells activates
all 4. When a point activates a cell we say that a *match* exists between
the point and the cell. One single point of light can match as many as 9 cells
at the same time. A cell can contain 0 or more points. The *resolution* of
the photosensitive array is 0.5 x 0.5.

The beams of light project points of light on the cells. There are 167 points in total, numbered 0 to 166, scattered over the photosensitive array. The (x, y) coordinates of the points, and the number of matches for each point, are given in file PSPointCoordinates.txt.

The elements of the causal set are the 167 points of light, which are
initialized by input data, namely by the (unknown) beams of light, the 345
cells, and the 921 matches. Note that the *coordinates of the points do
not enter as data*. It will suffice for the causal set to know the causal
relations between the points and the cells. At the bottom of the table there is
another table giving the number of points matching each cell. Since the 0's
indicate cells that contain no points, the table gives some rather coarse idea
of the distribution of the points on the plane. The actual distribution is shown
in Figure 4 of
Pissanetzky(2011a), but can not be reproduced here because it is protected
by copyright.

It is better for the reader not to see the plot, at least not yet. I am
trying to confuse the reader as much as I can in order to help him/her to
concentrate attention on the data in the tables and the power of causal logic. Our visual system is very
powerful. A reader who sees the plot will solve the problem
in about 0.5 sec. But the goal is to solve
the problem *without* using any of the human's abilities. The *only*
data available to causal logic are the point/cell cause-effect relationships,
and these are represented in the causal set in file
PSCausalSet.txt. This file
illustrates what causal logic really is. Compare with Boolean logic, for
example, or with predicate logic. Causal logic is supposed to "make sense" of
that information. Precisely that information and nothing else.

It is also useful to imagine a programmer who is given file PSCausalSet.txt, without any explanations, even without the numbering of the relations, and nothing else, and asked to "make sense" of it. How would that problem be treated? As cryptography? Now also imagine that the 167 points are plotted on a plane as in Figure 4 of that paper, and shown to the programmer. The programmer would "make sense" of it in 0.5 sec. See the difference? I did the experiment once. I showed the plot to an audience, and they immediately reported: "There are three groups of points!"

After having obtained the causal set, the next step in causal logic would be to find a set of legal least-action permutations and calculate the block system. With the available resources, I was able to find only 4, but none of them is guaranteed to have the least action. The block system can not be calculated.

However, it is still possible to carry an analysis for connectivity of the
causal set, using, for example, the permutation shown in file
PSPermutation.txt. Consider the
permutation written in a single column. Then draw vertical lines between pairs
of elements, in correspondence with precedence relations in the causal set.
These lines are known as *flux lines*, because they indicate the flow of
information from element to element in the causal set. The drawing will
immediately show that the causal set is partitioned into three subsets, which
are internally connected but disconnected from each other. Further analysis
shows that the three subsets correspond to the three groups of points existing
in the plot, the ones that had been detected by human observers. Causal logic
has classified the points into three areas, defined by the set of cells that
match the corresponding points. This feature is used for *edge identification*,
which is an essential step in image recognition. Note also that not one single
line of code has been written telling the logic how to identify edges. This
study demonstrates basic techniques for learning without a teacher, by acquiring
information directly from sensors, and for edge identification, which is an
essential component of image recognition.