Natural Computing
Wednesday, Jul 18, 2018
Often the most profound insights in science come when we develop a method for probing a new regime in Nature.

- 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:

  • Computing inspired by nature - As suggested, this uses nature as inspiration for problem-solving techniques.
  • Simulation and emulation of nature - This is a way of simulating natural occurrence and phenomenon in computers, as a way of gaining a better understanding of that occurrence.
  • Computing with natural materials - Instead of using silicon for computers as is traditional, this uses natural materials, thus creating a totally new programming paradigm, as replacement or supplement for silicon-based computing.

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.

Seemingly complex natural occurrence with simple rules

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.

Clustering of dead ants

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:

  • Pick up rule - An ant wonders around till it finds a dead ant/body. The probability it picks it up (or not) is inversely proportional to the number of ants in the region the dead item is found. i.e the more dead items clustered together, the lower the probability of any one of them been picked up. This also suggests that a single dead ant/body has the most probability of been picked up.
  • Dropping rule - This is quite the opposite of the first rule. As the ant wanders around, there is a chance of it dropping the item it’s carrying when it finds other dead items. The chance of it dropping the item it is carrying is directly proportional to the number of items in that region. This also suggests that it will most likely not drop the dead item in an area that is occupied by only one other dead item.

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.

Flocking birds

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:

  • Collision avoidance and separation - try as much as possible to not collide with neighbouring flock mates.
  • Velocity matching and alignment - try to match average speed and direction of neighbouring flock mates.
  • Flock centering or cohesion - try to stay close to the average position of neighbouring flock mates.

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.

When to use Natural Computing approaches

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:

  • The task is complex, i.e it involves a large number of variables or possible solutions, is very dynamic, non-linear e.t.c.
  • It is impossible to guarantee the absolute best (or optimal) solution to the task, but it is possible to measure how good a solution is, in comparison to other kinds of solutions.
  • The solution to the task cannot be modeled. It is possible however to “teach” the system how to solve the problem from known examples, i.e. learning from example.
  • A single solution is not good enough. Since most standard solution techniques are deterministic, i.e. they can only provide a single solution to a problem, natural computing come in handy since it is composed of probabilistic methods.
  • Biological, physical and chemical systems have to be simulated in an artificial setting. This is, in a way, the difference between Euclidean vs fractal geometry. Euclidean geometry is typically used for man-made form, and it does not work well for natural patterns. Because nature is fractal, fractal geometry works well in modeling nature.
  • The limit of current technology is reached, and new approaches have to be sought out.

In future posts, we will go deeper into the techniques and ways in which computing is inspired by nature.