A Language for the cellular Automata
What I can do with the cellular Automata?
this is a question that me has done to since began studies on cellular automata, already 7 years ago, the first thing that think of is "a device or technology that do complex computations for solve complex problems ", the cellular Automata are not how neuronal networks, devices that facts to learn or detect, certain behavior and reproduce or give us the classification, from my point of view the cellular Automata are a technology that they define a computational language which we don't know as programming. The objective should be to define an interface man-automata, to inexpert user in cellular Automata or in programming, where the interface guided to user to give instructions to cellular Automata generate and this wanted behavior. The first step in this sense has been taken with the game of the life implemented as computer game, the users don't know nothing about cellular Automata but they use it.
Von Neumann considered to the Automata cellular like a universal constructor, demonstrating that Automata cellular can emulate the behavior of a machine Turing and therefore they can reproduce any algorithm behavior, the question is that way to interact with these, how do for that give an initial state can generate the awaited result.
A cellular automaton (plural: cellular automata) is a discrete model studied in computability theory, mathematics, and theoretical biology. It consists of an infinite, regular grid of cells, each in one of a finite number of states. The grid can be in any finite number of dimensions. Time is also discrete, and the state of a cell at time t is a function of the state of a finite number of cells called the neighborhood at time t-1. These neighbors are a selection of cells relative to some specified, and do not change (Though the cell itself may be in its neighborhood, it is not usually considered a neighbor). Every cell has the same rule for updating, based on the values in this neighbourhood. Each time the rules are applied to the whole grid a new generation is produced.
One example of a cellular automaton (CA) would be an infinite sheet of graph paper, where each square is a cell, each cell has two possible states (black and white), and the neighbors of a cell are the 8 squares touching it. Then, there are 29 = 512 possible patterns for a cell and its neighbors. The rule for the cellular automaton could be given as a table. For each of the 512 possible patterns, the table would state whether the center cell will be black or white on the next time step. This is an example of a two dimensional cellular automaton. See Conway's Game of Life for the most popular CA of this form.
It is usually assumed that every cell in the universe starts in the same state, except for a finite number of cells in other states, often called a configuration. More generally, it is sometimes assumed that the universe starts out covered with a periodic pattern, and only a finite number of cells violate that pattern. The latter assumption is common in one-dimensional cellular automata.
Cellular automata are often simulated on a finite grid rather than an infinite one. In two dimensions, the universe would be a rectangle instead of an infinite plane. The edges are usually handled with a toroidal arrangement: when you go off the top, you come in at the corresponding position on the bottom, and when you go off the left you come in on the right (This essentially simulates an infinite periodic tiling). This can be visualized as taping the left and right edges together to form a tube, then taping the top and bottom edges of the tube together to form a torus (doughnut shape). Universes of other dimensions are handled similarly. This is done in order to solve boundary problems with neighborhoods. For example, with a 1-dimensional cellular automaton, like the examples below, the neighborhood of a cell xi t—where t is the time step (vertical), and i is the index (horizontal) in one generation—is xi-1t-1, xit-1, xi+1t-1, there are obviously going to be problems when a neighbourhood on a left border is going to reference the upper left cell as part of its neighborhood, which it cannot, since it is not in the cellular space!
(The cellular automata definition is taken from http://en.wikipedia.org )
Comparison of cellular Automata's Language with the Languages that we know?
We are customary to work with sequential, parallel programming languages, distributed, structured, not structured, etc. A language for cellular Automata is not looked like any of these, The traditional languages including the parallel distributed ones and are designed to follow a structure of linear thought, the programs are thought about sequential form with some point of synchronisation with other similar processes or different, the cellular Automata are totally parallel, are element of calculus with the same algorithm or rule that is executed in synchronous form, that wishes to program cellular Automata must think this way about chaotic form, and a language for cellular Automata must as well contemplate this characteristic, is not due to hope that exactly in the following iteration the awaited state will be obtained but surely it is that will have to wait for t time passages to arrive at the awaited state.
That kind of problems is due To attack
The cellular Automata are applicable to any kind of problems, nevertheless for all the problems are not recommendable the cellular Automata. For example I do not imagine a cellular Automata to take the accounting, however for the image processing he is ideal.
Before everything we must delimit the reach of this language, to orient it in first instance to solve problems that can be modeled in a board of two dimensions, image processing, simulations, etc. and soon extend it to another type of simulations, processing in other dimensions and other board.
That one sets out
Many investigators have looked for the way to classify and to interpret the behavior of the cellular Automata with the objective to detect the form to predict the behavior of the same one and thus to improve to find the form efficient so that any problem can be implemented with cellular Automata, this is very important, nevertheless it is necessary to establish a line of development of the man-Automata interface that can be accessible to I publish generic people who do not know or are studious of cellular Automata.
That characteristic it must have
· It must be a graphical language
· It must be able to be combined with traditional languages, an application of this must generally be framed in a project where this Automata will be a piece but, so that is effective she must be able to be combined with other language.
· It must have a process of debug
· It must be able a user to place the states and an internal process to deduce the Automata who takes you to another one from a state.
Conclusion
We need a language to use the cellular Automata and to operate all their potential, and to offer to I publish in general to explore kindness of the programming based on the chaos.
Note: their commentaries are important, this document is the first look to a very interesting project