Whenever I visit my grandfather, he has a puzzle sitting on his small desk in the corner of his apartment, often with a finished border and nothing more. I watch him work as certain sections start to build up, one puzzle piece turning into two, and then into ten, and then into fifty, until areas come together, and eventually the puzzle is finished. I would complete the same set of rules over and over again: scanning the board, finding a spot with a missing piece, looking at the disconnected pieces that could fit, testing them to see if they were correct. I loved the idea that this simple set of steps resulted in something that seemed so complex and worthwhile. I tend to think of my grandfather’s puzzles when I talk about Cellular Automata, and maybe after I explain it a bit, you will too. Cellular Automata consists of a grid of filled-in or empty boxes which are programmed to evolve based on how the boxes are placed. They have a certain set of rules that fill in new boxes or clear old boxes to create different complex patterns. For example, the program may analyze a set of four boxes in a “T” shape, shown below. If certain boxes are filled in, it will activate the program, which contains rules of what should happen next. Let’s say the program says that if no two consecutive boxes form a horizontal line, the boxes surrounding it will then fill in, but if there are at least two consecutive boxes forming a horizontal line, the program will not run and instead the entire section will disappear. Still confused? Probably. Here’s another visual to help. You can now see a few possible combinations and their outcomes. The 1s on the bottoms indicate that the conditions are met, while the 0s indicate that they are not. The program with filling in outer boxes will run if the program yields a 1, but will remove all of the boxes if it yields a 0. It’s that simple. Usually, you will see something more like this. The program is simultaneously analyzing every box set and carrying out the rules based on which boxes are filled in throughout the grid.
John Conway’s Game of Life is a perfect place to see this in action. You are able to choose which boxes to start with and run the program to watch your creation evolve. Below the program is the list of rules that it follows, and you are able to adjust the scale of the grid and the speed of the program. I encourage you to play around with it and challenge yourself to find starting shapes that “stay alive” for the longest. Here is the link: https://bitstorm.org/gameoflife/ The uses of Cellular Automata are endless. One example is using it for random number generation for cryptography, where the changing configurations can serve as the random sequences. However, it is most often used to model biological systems and natural occurrences, from the formation of snowflakes to analyzing gas behavior. It can also represent the formation of artificial life and be used to understand self-reproduction emerging from the right conditions. Self-reproduction is modeled by the creation of certain components within the program due to the conditions, and I believe that it will eventually evolve into modeling how simple organisms are created from practically nothing. There is a lot to learn from the concept of Cellular Automata and I have no doubt that the evolution of the idea will be extraordinary. Sources: https://mathworld.wolfram.com/ElementaryCellularAutomaton.html http://www.mjyonline.com/CellularAutomataUses.htm#:~:text=Cellular%20automata%20can%20be%20used%20directly%20to%20create%20visual%20or,model%20physical%20and%20biological%20systems. https://bitstorm.org/gameoflife/
0 Comments
Leave a Reply. |
Details
AuthorKatie Zelvin Archives
September 2020
Categories
All
|