Monday, 15 September 2014

A few examples of where beside IT nondeterminism works

There is a continuously growing interest in nondeterministic methods since traditional logic has proved to have failed utterly in several domains. Just before listing a few examples for you let me just define what does traditional and complex systems logic mean to me.

Traditional logic - that's mainly a true/ false logic which dates its beginnings to antic Greeks and blossomed during the second half of middle age (producing a few dozens of so called syllogisms). A modern form of this logic is called Boolean algebra - I guess a well known subject to anyone who has once studied a little bit of math, logic, statistics or computer programming. Putting aside math related details important here is that starting from Renaissance this logic has been used by empiricists as a set of building blocks that when used in the model may help making the world around us predictable. In other words a scholar could suggest a hypothesis in the form of "providing that a exists b will follow" or "if you want to establish c use a formula d". Then such a hypothesis has to be proved or rejected in the series of experiments. This simple yet ingenious framework has given us Newton's laws, antibiotics, radio, TV and many more useful ideas and products that make our living better.

Complex system logic - there is no one single logic that embraces all phenomenas described here as nondeterministic systems. Instead there are many of them like chaos theory, fuzzy logic, systemic thinking or stochastic processes to name just a few. A common feature of all of them is that they don't represent true/false logic, in most cases have a continuous (therefore not discrete) result function and may produce different results in time.
Arguably the most known complex system logic among IT folks  is feedback loop logic. The foundation of this logic is build on 3 building blocks: a stabilising loop, a runaway loop and a delay. The famous example of feedback loops is when you hire cheap but not experienced developers to deliver a project. At first you get results quickly (runaway loop), but soon sloppy design and spaghetti code begins to impede progress (stabilising loop with a delay) and thus the immediate effect differs from what you get later on.

Now it's the right time for a few examples:

  1. Neuroscience - it's proved that there are two neuron layers which are responsible for vision, namely: a neuron per pixel in the eye layer and lines recognition layer. This discovery earned Nobel prize and soon scientists realised that if there were more such deterministic layers to find then we would have to have an order of magnitude more neurons in our brains than we actually posses. You need to think in terms of complex system to understand what's going on further. 
  2. Spread of disease - it seems to be a very hard task to forecast how a disease will spread. But if you use a few simple rules and feed a looping system based on those rules with proper input you get a decent prediction. Results vary completely based on input and there is no continuous pattern between the results in function of input values
  3. Modern steering systems - fuzzy logic, neuron networks and other nondeterministic modelling systems are backbone of all modern steering systems (beside those processing simple tasks)
  4. Quantum physics - "God does not play dices!" argued Einstein but with all respect to his breakthrough discoveries he was wrong and you need to use stohastic logic (characteristic to complex systems) to predict behaviour in nano-scale world
For all of you who want to learn more on complex systems and see further examples of their usage in modern science I would recommed this lecture by prof. Robert Sapolsky

No comments:

Post a Comment