- M Nielson and I Chuang, Quantum Computation and Quantum Information, 2000, p. 3
image courtesy pixabay.com/en/users/742680-742680
Nature has long been a means of resources for humanity long before advancement in technology when the only concerns were food and shelter. As human existence progresses, we learn to observe different natural occurrence in the study of biological, physical and chemical patterns, and with these observations, we come up with laws and principles. These laws and principles guide the foundation of our technological advancement, from the creation of electricity and light bulbs; to more advanced achievement such as the creation of aircraft or control of diseases.
With the development of computing, the role of nature becomes more than just foundational. It is now possible to draw computational ideas from natural occurrence and phenomenon (i.e. inter-connection of neurons within the brain or move of foraging ants), or use natural materials for computation (i.e. DNA Computing). This is what the field of natural computing is all about. It adapts a highly simplified version of natural occurrence for computational purposes. In most cases, the simplification makes it possible to manage computation with a potentially large number of entities. It also helps to highlight the minimal features necessary to reproduce and observe the natural phenomena. Think Occam’s Razer - if a simple technique exists for a task, why use complicated ones?
The ideas in natural computing are broken down into 3:
With these aims, natural computing can be deemed as an interdisciplinary discipline that combines computing, and hence computer science, with more traditional engineering fields such as biology, physics and chemistry. This makes it imperative to have knowledge and understanding across different disciplines in order to gain an appreciable understanding of the field, as well as to be able to come up with a significant contribution to the advancement of the study.
As a means to better understand the primary idea behind natural computing, let’s looks at 2 different natural occurrences, and see how some things that look quite complicated, might just be guided by some very simple rules.
To clean up their nest, some ant species group together corpse of dead ants or ant parts. At the surface, this can be assumed as a task that requires complex planning and implementation. Studies have however shown this to be no more than an attraction mechanism between the dead ants/parts, facilitated by the living ants The actual clustering can be modeled using 2 very simple rules that the ants follow:
With time, all the dead items get clustered together, simply as a result of the individual ants following these very simple rules without any other form of group coordination. There have been implementations of this behaviour, in form of Ant clustering Algorithms, with practical applications in Exploratory Data Analysis and Bio-informatics Data.
On seeing a group of birds (a flock) moving together in the sky, it is a common (but wrong) assumption to think that they are been lead by the bird at the front edge of the flock. However, just like with the ant behaviour that is previously discussed, research has shown that there is no leader within a flock, and each bird only moves with 3 very simple individual rules:
By modeling this simple rules in a computer environment, it is possible to observe this behaviour and transfer the simulated environment where it is required. Such application can be seen in popular movies such as Batman Returns, 1992 - bat swarm and penguin flocks, as well as the stampede scene in Lion King.
Beyond these 2 examples, there are other natural phenomena that are been used for natural computing. Popular amongst these are Neural Networks, DNA Computing (a subfield of Molecular Computing) and Quantum Computation. We will be visiting more of the Neural Networks in future posts. DNA Computing and Quantum Computation, however, are out of the scope of this discussion. There might be a need to discuss some of these as we proceed, and explanations and simplification around those discussions will be provided as need be.
While deciding on whether to use natural computing approach for a task at hand, here are some hints on when it’s a good idea to consider NC:
In future posts, we will go deeper into the techniques and ways in which computing is inspired by nature.