The logic of consciousness. Part 3. Holographic memory in a cellular automaton
Earlier, we described a cellular automaton in which waves can appear that have a tricky internal pattern. We have shown that such waves are able to spread information over the surface of an automaton. It turned out that any place on the machine can be either a receiver or a source of waves. To receive a wave in any place, it is enough to see what pattern is obtained in it at the moment of wave passage. If this pattern is remembered and subsequently reproduced in the same place, then a wave will propagate from this pattern, repeating the pattern of the original wave in its path. All this is very similar to radio. Anywhere on earth you can receive a message and remember. Then, from anywhere, it can be aired again. At the same time, broadcast broadcasting does not imply a specific recipient, but the availability of the signal for everyone.
The automaton that we describe has a memory. More precisely, all its elements possess memory. The memory of an element is specific. The only thing that the machine element sees is a pattern made up of the activity of its neighbors. The only way an element can react to a particular pattern is to either become active itself, or, conversely, turn off. An element’s memory is a set of patterns that it remembers indicating how to respond to them: turn it on or off.
Interference of patterns in a cellular automaton
The presence of elements of the automaton of its own memory allows you to use the cellular automaton itself as a universal storage device that implements an associative array. An associative array is a repository of key-value pairs. To be able to manipulate stored data, an associative array must support operations: adding a pair, searching for a pair (by key or by data) and deleting a pair. We show how this can be implemented in our cellular automaton.
For great analogies with the cerebral cortex, we pass from a planar cellular automaton to a volume automaton. Arrange the elements at the nodes of the regular spatial lattice. We replace the flat tracking space with the volumetric one forming the cylinder. We assume that the thickness of the automaton is significantly less than the size of its surface. For observation, we single out a cylindrical volume, the dimensions of which are comparable with the tracking area of the elements of the machine (figure below). We will call a volume of this size elementary, implying that this is the minimum volume that can guarantee a wave to start if a fragment of the pattern of this wave is reproduced inside this volume.

Spatial cellular automaton and selected cylindrical fragment
Suppose that we sequentially launched two information waves in the automaton. Suppose that the first wave carries the value that we want to preserve, and the second wave - the unique key that we want to make an identifier of the stored information. Each of the waves will spread its pattern throughout the entire space of the automaton, that is, in each of its places two patterns sequentially formed by the first and second waves, respectively, will pass. In the observed fragment, the first wave will leave a trace, for example, such as shown in the figure below.

Trace from an information wave that carries a value that needs to be remembered
Let the elements remember their recent state. That is, after the passage of the wave, the activity of the elements disappears, but the fact that they were active is stored by the elements until the general reset signal. In other words, a trace left by the wave is preserved until the general discharge.
The second wave will leave its mark in the same volume (figure below). Denote the elements of each wave by their color, while some elements can get two colors at once.

Traces of two waves. Yellow are elements that encode a value. Black - the elements that encode the key
Now, let's memorize. To do this, we will remember the pattern formed by the elements of black color on all elements of yellow color. In turn, on all black elements we remember the pattern formed by the yellow elements. The first captures the information pattern with the required key. The second, on the contrary, captures the key pattern, while the “key” is the information pattern itself. As a result of such a peculiar “interference”, a key-value pair will remain in the indicated volume.
The reverse playback process is very simple. Run the key in the machine. That is, let’s launch the same black wave. In the volume that we are following, yellow elements are activated. For them, the pattern of black elements will be a signal stored in their memory and causing their activity. As a result, we will restore the yellow pattern, which is the value for the corresponding key. This yellow pattern will trigger a wave that will spread the information retrieved from the memory through the space of the automaton. Actually, the described - this is the implementation of the recording of information and its search by key.
If all the keys are unique, the reproduction of information by the key will cause a single response information wave corresponding to the value of the pair for this key. If the value codes are also unique, then a reverse key search by value will be possible.
To save one information key-value pair, it is enough to perform memorization in one elementary volume. If in some way, when storing, indicate to the automaton the place where we want to store the memory, then we can get a spatially distributed storage system. However, nothing prevents the "redundant" distributed storage. That is, remember the same information not in one place, but in the entire space of the cellular automaton. Both of these are very important properties that we will need in the future.
Each elementary volume can store many memories. The size of its memory is proportional to how many patterns a single element of the machine can store. If one memorized pattern is, for example, two percent of the activity of all elements, then the total number of possible memories for the elementary volume will be approximately 20-30 times more than the memory of one element.
The peculiar interference of two information waves and distributed memory make the described mechanism extremely similar to optical holography. The principles of holography were discovered and described by Denesh Gabor. If we have a light source with a stable frequency, then dividing it by means of a translucent mirror into two, we get two coherent light fluxes. One stream can be directed to the object, and the second to the photographic plate.

Creating a hologram
As a result, when the light reflected from the object reaches the photographic plate, it will create an interference pattern with the stream illuminating the plate. The interference pattern, imprinted on a photographic plate, will store information not only about the amplitude, but also about the phase characteristics of the light field reflected by the object. Now, if you illuminate the previously exposed plate, then the original light flux will be restored, and we will see the remembered object in its entire three-dimensional volume.

Hologram Playback A hologram has several amazing properties. Firstly, the luminous flux preserves the volume, that is, looking at the phantom object from different angles, you can see it from different sides. Secondly, each section of the hologram contains information about the entire light field. So, if we cut the hologram in half, first we will see only half the image. But when we look at the hologram from the side, then beyond the edge of the remaining hologram we can make out the second “cropped” part. The smaller the fragment of the hologram, the lower its resolution, but even through a small area you can, as through a keyhole, view the entire image.
Accordingly, the described memory, by its very nature, may well be called holographic, but with the caveat that it is not based on classical wave interference, but somewhat different in its algorithm of interference patterns. Although, if you dig deeper, then in the concept of digital physics , which considers space as a cellular automaton, these interferences can be identical in nature.
Description of the state of the machine through a bitmap
Any elementary volume of the machine can be associated with a bitmap. In the initial state, all its elements are equal to zero. The passage of the wave converts some of the elements into units. In a cellular automaton, after the passage of the wave front, the elements return to an inactive state. In the mapped bitmap, we introduce slightly different rules. We will leave the bits of the array in a single state, accumulating activity after the passage of the next wave. We will perform a general reset of the state of the array when we consider it necessary.
Each wave encodes only one concept. The addition of wave traces allows you to create a description consisting of several concepts simultaneously. Resetting the state of the bitmap resets the description. Successive passage of waves creates a description. A complete description appears when all the necessary waves propagate.
The described structure corresponds to a Bloom filter . Suppose we have a set C consisting of the concepts with which we operate. To each element c i of the set C, we associate a binary code b i of the capacity m containing k units. We will select the positions of units at random. We compose the set I from several concepts of the set C.
The Bloom filter contains a bit array B of m bits. In the initial state, it is reset to zero. Adding an element to a Bloom filter is a reversal into a unit of those filter elements that correspond to the binary units of the added element. The mapping of the set I to the Bloom filter is equivalent to the logical addition of the binary codes of the elements that make up I, and the transfer of the resulting code to the binary array of the filter.
The Bloom filter allows you to check whether any element of the set C belongs to the set I. To check, you need to take the binary code of the element and make sure that all units of the code correspond to units in the Bloom filter. If at least one of the filter positions does not match, then the element is not guaranteed to belong to the set I. If the test is passed, then with high probability, which depends on the filter parameters, the element is contained in I. An example of verification is shown in the figure below.

Bloom filter The element w does not belong to the given set {x, y, z}
One concept in a cellular automaton in an elementary volume is encoded by a pattern consisting of a small number of elements with respect to the total number of elements in this volume. Accordingly, one can speak of a binary code of a concept as a long binary discharged code.
After the formation of a bitmap corresponding to a long description, the density of units will increase, which will correspond to a long binary medium-low coding.
For our machine, we will assume that the total bit depth, equal to the number of elements in the elementary volume, is quite high, the total number of concepts used is reasonably limited, and that the possible number of concepts in one description is not particularly large. Then it becomes possible to take the bitmap obtained after transmitting the description, consisting of several concepts, and restore the original concepts themselves. To do this, try on the bitmap, as a Bloom filter, the codes for all possible concepts and see which of them will give a positive result. In the assumptions made, it is possible to ensure that when checking the probability of false positives is low.
This means that the total binary codes can be used as analogues of the original description. That is, in each place of the machine, the resulting binary code obtained after the distribution of the complex description will contain the entirety of the original description.
Creating a hash of complex descriptions in a cellular automaton
To save a complex description in the cellular automaton in its entirety, it is enough to carry out the memorization procedure described above. Create a flashback identifier and interfere with the description and id. When memorizing the elements encoding the pattern of the identifier of the memory, you will have to remember the picture of the description, containing a lot of units. In computer simulation of a cellular automaton, this is not a problem, but, as will be shown later, memorization with a large number of signals is difficult for the biological system. Accordingly, the question arises: is it possible to reduce the number of active elements that make up the description (or identifier), reducing their number to the amount of discharged coding?
As a result, we arrive at the hash problem. Hashing is a conversion by a certain algorithm of an input data array of arbitrary length into an output bit string of a fixed length. Such transformations are also called hash functions or “convolution functions”, and their results are called a hash code or “message summary”.
To bring our cellular automaton to the conditions of the hashing problem, we introduce for the elementary volume a new bit hash array of relatively small length.
The hash transformation we need to reduce the length of the long binary code to the size of the hash. A good hash function should minimize the number of possible collisions. That is, it is desirable that the probability that two different descriptions can get the same hash is minimal.
We will not dwell on what hash function is better to use in our case. This question is quite interesting, but complicated. Just give one example of one of the simplest options.
You can divide the elements of the original bitmap into groups and calculate any one-bit logical function of the elements of the group (see figure below). Then generate a hash code from the received bits.

Example of calculating one hash bit for a group of elements
We introduce additional elements into the cellular automaton that will correspond to the elements of the hash array. We will not touch on the regular lattice of the original cells. We create for our new elements our own lattice located in the same geometric space. Let the old elements of the automaton see the picture of the activity of the surrounding hash elements and give them the opportunity to remember it.
In addition, we modify the initial elements so that they can accumulate information about their activity for those few waves while the message is being transmitted.
Let's try to remember a complex description consisting of several concepts. To do this, we sequentially distribute the waves corresponding to the concepts from the description throughout the space of the automaton. We accumulate activity information. That is, we will form a total picture of the trace of waves in the entire volume of the automaton. Then, calculate the activity of the hash elements.
The figure below shows the result of the addition of several wave patterns and the result of their hash transformation. Green elements form a hash code pattern. These elements exist separately from the original basic elements, but are in the same space with them. That is, they are available for observation.

Adding Multiple Patterns

The result of the hash transformation
Now we distribute the key and save the memory. Only now the elements participating in the key pattern will not remember the informational picture of the activity of the main elements, but the pattern of the resulting hash.
After completing the recording, we can reset the activity of the machine and re-submit the original description. The picture of the activity of the main elements will be repeated, the hash calculated from it will be repeated. The appearance of a familiar hash code will cause the appearance of a pattern corresponding to the key of a previously made memory.
If the description corresponds to a single event, then the machine can extract and distribute the identifier of this event. If in memory there are several memories with the same descriptions, then a total picture will be made up of identifiers of these descriptions. This situation requires more complex processing.
To summarize:
- Two information waves can “interfere” with each other. One wave marks the elements that should remember something, and another wave draws a pattern of what they should remember;
- Too dense a pattern when memorizing, you can replace it with a hash;
- You can memorize locally in a small area of the machine. Then you can store something of your own in every place;
- You can memorize globally. Then in each place of the machine will be stored its own copy of the same information.
It is not by chance that I focus on the possibilities of local and global memorization. Further, I will show that it is these two mechanisms that are key to understanding the functioning of the brain.
Alexey Redozubov
The logic of consciousness. Entry
Logic of consciousness. Part 1. Waves in a cellular automaton.
Logic of consciousness. Part 2. Dendritic waves.
Logic of consciousness. Part 3. Holographic memory in a cellular automaton.
Logic of consciousness. Part 4. The secret of brain memory.
Logic of consciousness. Part 5. A semantic approach to the analysis of information.
Logic of consciousness. Part 6. The cerebral cortex as a space for calculating meanings.
Logic of consciousness. Part 7. Self-organization of the space of contexts.
Logic of consciousness. Explanation "on the fingers"
The logic of consciousness. Part 8. Spatial maps of the cerebral cortex.
Logic of consciousness. Part 9. Artificial neural networks and mini-columns of the real cortex.
Logic of consciousness. Part 10. The task of generalization. The
logic of consciousness. Part 11. Natural coding of visual and sound information.
Logic of consciousness. Part 12. Search for patterns. Combinatorial space