Saturday 27 July 2013

Is it progress if a cannibal uses knife and fork?





The North American XB-70 Valkyrie was a (beautiful!) tri-sonic bomber developed in the early sixties. It was, even by today's standards, an exceptionally sophisticated and advanced machine. What strikes is the short time it took to develop and build - we intentionally omit the information here since, by today's standards it would make many (aerospace) engineers blush. Why is it  that in the days of slide-rules they could beat today's supercomputers and all other technological goodies? A few reasons are:
  • One company did everything - there was no useless geographical dispersion, management was simpler.
  • Complex systems have been successfully built even though complexity was not a design goal - the reason is that product development and manufacturing was much less complex.
  • Engineers were better trained than today - they understood mechanics better that today's youngsters.
  • The average age of engineers was much higher than today.
  • Companies had clearer roadmaps and were more motivated - today it's all about shareholders value not about building great planes.
  • Aerospace companies were run by people who understood the business.
  • Designers didn't have to struggle with super-complex super-huge software systems.
  • Companies were profitable (because they were run by people who understood the business) hence were not forced to squeeze every penny out of sub-contractors, causing them to deliver worse results ....
  • Because of the above, companies could do plenty of R&D - today, R&D is where (incompetent) management make the first cost cuts.
Today, highly complex products are engineered without taking complexity into account. When coupled with extremely complex and dispersed multi-cultural manufacturing, assembly, procurement, design and management issues you run into trouble if you don't keep complexity under control. It is not surprising that TODAY people doubt that man ever went to the Moon! In fact, those who make similar claims cannot possibly conceive of such a complex project being viable because of their poor preparation.








Friday 26 July 2013

Do We Really Understand Nature?




According to the Millennium Project the biggest global challenges facing humanity are those illustrated in the image above. The image conveys a holistic message which some of us already appreciate: everything is connected with everything else. The economy isn't indicated explicitly in the above image but, evidently, it's there, just as the industry, commerce, finance, religions, etc. Indeed a very complex scenario. The point is not to list everything but to merely point out that we live in a highly interconnected and dynamic world. We of course agree with the above picture.

As we have repeatedly pointed out in our previous articles, under similar circumstances:
  • it is impossible to make predictions - in fact, even the current economic crisis (of planetary proportions) has not been forecast
  • only very rough estimates can be attempted
  • there is no such thing as precision
  • it is impossible to isolate "cause-effect" statements as everything is linked
  • optimization is unjustified - one should seek acceptable solutions, not pursue perfection
The well known Principle of Incompatibility states in fact that "high precision is incompatible with high complexity". However, this fundamental principle, which applies to all facets of human existence, as well as in Nature, goes unnoticed. Neglecting the Principle of Incompatibility constitutes a tacit and embarrassing admission of ignorance. One such example is that of ratings. While the concept of rating lies at the very heart of our economy, and, from a point of view of principle, it is a necessary concept and tool, something is terribly wrong. A rating, as we know, measures the Probability of Default (PoD). Ratings are stratified according to classes. One example of such classes are shown below:

Class       PoD
1              =<0.05%
2              0.05% - 0.1%
3              0.1% - 0.2%
4              0.2% - 0.4%
5              0.4% - 0.7%
6              0.7% - 1.0%
etc.

A rating affects the way stocks of a given company are traded - this is precisely its function. What is shocking in the above numbers, however, is the precision. A PoD of 0.11% puts a company in class 3, while a 0.99 in class 2. How can this be so? Isn't the world  supposed to be a highly complex system? Clearly, if even a crisis of planetary proportions cannot be forecast, it not only points to high complexity (see the Principle of Incompatibility) but it also says a lot about all the Business Intelligence technology that is used in economics, finance, or management and decision making. So, where does all this precision in ratings come from? From a parallel virtual universe of equations and numbers in which everything is possible but which, unfortunately, does not map well onto reality. But the understanding of the real universe cannot be based on a parallel virtual universe which is incorrect.

The above example of PoD stratification reflects very little understanding of Nature and of its mechanisms. In fact, economic crises of global proportions suddenly happen. As Aristotle wrote in his Nikomachean Ethics: an educated mind is distinguished by the fact that it is content with that degree of accuracy which the nature of things permits, and by the fact that it does not seek exactness where only approximation is possible.








 

Driving Complexity-To-Target: Application to Portfolio Design





Driving the complexity of a given system to a prescribed target value has numerous applications, ranging from engineering (who wouldn't want a simpler design that performs according to specs?) to management, advanced portfolio design, wealth management or investment strategy.

But more than just complexity it is also the robustness of systems that is of most concern. When considering portfolios both diversification and volatility are of concern

We know that in system design (and this applies to portfolios) the mini-max principle, whereby you maximise something (e.g. the expected return) while minimising at the same time something else (e.g. risk) leads to inherently fragile solutions. Taking simultaneously many things to the limit is of course possible but the price one pays is a rigid and fragile solution: you basically push yourself into a very tight corner of  the design space where you have little margin of manoeuvre in case things go wrong. And things do go wrong. Especially if you think that most things in life are linear and follow a Gaussian distribution you should prepare yourself for a handful of surprises.

Portfolio diversification and design can be accomplished differently based on complexity and, in particular, on these two simple facts:


  • High complexity increases exposure - a less complex portfolio is better than a more complex one.
  • A less complex portfolio accomplishes better diversification (more or along the lines of the MPT and Markowitz logic).
Let us see an example. Suppose you want to build a portfolio based on the Dow Jones Industrial Average Index and its components. Without going into unnecessary technicalities, below is an example of our first portfolio. We observe that:

Its complexity is 64.3 (pretty close to the critical value of 68.75)
Entropy is 823
Robustness is 66.8%
Rating: 2 stars

Nothing to celebrate.





Suppose now that you wish to increase the robustness to, say, 85%. Using our Complexity-To-Target Technology it is possible to "force" the robustness of the portfolio to this target value. Since robustness and complexity are linked it is possible to do this either for robustness or complexity or even both. The new portfolio is illustrated below.



Complexity is now 50.9
Entropy is 542 - this tells us that the behaviour of the portfolio is substantially more predictable
Robustness is 84.9%
Rating: 4 stars

The hubs of the portfolio (red discs) have now changed but that is another matter.




www.ontonix.com


www.rate-a-business.com



Thursday 25 July 2013

Software Complexity and What Brought Down AF447


After the recovery of the black boxes from the ill-fated Air France flight 447, it has been concluded that pilot error, coupled with Pitot-tube malfunction have been the major causes of the tragedy. It appears, however, that this is yet another "loss of control" accident. Based on black box data, the aircraft stalled at very high altitude. But, you cannot stall an A330. By definition. The airliner (and many other fly-by-wire aircraft) is software packed to such an extent that it won't let you stall it even if you wanted to commit suicide. That's the theory. But in reality, you don't fly an airliner - you fly the software.  The degree of automation is phenomenal. That is precisely the problem.
Pilots say that they have become button pushers. Here are some comments on the AF447 accident taken verbatim from a Professional Pilots blog:


"We need to get away from the automated flight regime that we are in today."

"Pilots must be able to fly. And to a better standard than the autopilot!"

"To be brutally honest, a great many of my co-pilot colleagues could NOT manage their flying day without the autopilot. They would be sorely taxed."

"It will cost a lot of money to retrain these 'button pushers' to fly again, ..."

"It appears as if the sheer complexity of the systems masked the simplicity of what was really going on. "

"Just so I understand correctly, then there is no way to take direct control of the aircraft unless the computer itself decides to let you, or perhaps more correctly stated, decides you should. Sounds like Skynet in "The Terminator". "


This accident is a very complex one. It is not going to be easy to understand why the plane really came down. It will take time to analyse the data thoroughly and to understand why highly trained pilots pulled the nose up when the stall alarm went off. The theory is that they must have received a large volume of information of very highly confusing nature in order to do so. Apparently, they managed to crash a flyable aircraft.



We have our own view as to the nature of the problem, not to its cause. We believe that it is the excessive complexity of the system that is to be blamed. Modern aircraft carry over 4 million lines of code. That is a huge amount of real-time code. The code, organised into modules, runs in a myriad of modes: "normal law", "alternate law", " approach", "climb", etc., etc. The point is however this. No matter what system you're talking of, high complexity manifests itself in very unpleasant manner - the system is able to produce surprising behaviour. Unexpectedly. In other words, a highly complex system can suddenly switch mode of behaviour, often due to minute changes of its operating conditions. When you manage millions of lines of code, and, in addition, you feed into the system faulty measurements of speed, altitude, temperature, etc., what can you expect? But is it possible to analyse the astronomical number of conditions and combinations of parameters that a modern autopilot is ever going to have to process? Of course not. The more a SW module is sophisticated - number of inputs, outputs, IF statements, GOTO, read, write, COMMON blocks, lines of code, etc., etc. - the more surprises it can potentially deliver. But how can you know if a piece of SW is complex or not? Size is not sufficient. You need to measure its complexity before you can say that it is highly complex. We have a tool to do precisely that - OntoSpace. It works like this. Take a SW module like the one depicted below.

























It will have a certain number of entry points (inputs) and produce certain results (outputs). The module is designed based on the assumption that each input will be within certain (min and max) bounds. The module is then tested in a number of scenarios. Of great interest are "extreme" conditions, i.e. situations in which the module (and the underlying algorithms) and, ultimately the corresponding HW system in question is "under pressure". The uneducated public - just like many engineers - believe that the worst conditions are reached when the inputs take on extreme (min or max) values. This is not the case. Throw at your SW module hundreds of thousands or millions of combinations of inputs - you can generate them very efficiently using Monte Carlo Simulation techniques - and you will see extreme conditions, which do not involve end values of the inputs, to emerge by the dozens. And once you have the results of a Monte Carlo sweep just feed them into OntoSpace. An example with 6 inputs and 6 outputs is shown below.



 
























The module, composed of four blocks (routines) has been plugged into a Monte Carlo loop (Updated Latin Hypercube Sampling has been used to generate the random values of the inputs). As can be observed the module obtains a 5-star complexity rating. Its complexity is 24.46. The upper complexity bound - the so-called critical complexity - is equal to 34.87. In the proximity of this threshold the module will deliver unreliable results. Both these values of complexity should be specified on the back of every SW DDD or ADD (Detailed Design Document and Architectural Design Document). So, this particular module is not highly complex. The idea, of course, is simply to illustrate the process and to show a Complexity Map of a SW module. In other words, we know how to measure the complexity of a piece of SW and to measure its inclinations to misbehave (robustness).
 

But how complex is a system of 4 million lines of code? Has anyone ever measured that? Or its capacity to behave in an unexpected manner? We believe that the fate of AF447 was buried in the super-sophisticated SW which runs modern fly-by-wire airliners and which has the hidden and intrinsic ability to confuse highly trained pilots. You simply cannot and you should not design highly sophisticated systems without keeping an eye on their complexity. Imagine purchasing an expensive house without knowing what it really costs or embarking on a long journey without knowing how far you will need to go. If you design a super sophisticated system and you don't know how sophisticated is really is it will one day turn its back on you. It sounds a bit like buying complex derivatives and seeing them explode (or implode!) together with your  favourite bank. Sounds familiar, doesn't it?



www.ontonix.com


www.design4resilience.com



Wednesday 24 July 2013

Model-free methods - a new frontier of science



When we make decisions or when we think our brain does not use any equations or math models. Our behaviour is fruit of certain hard-wired instincts and experience that is acquired during our lives and stored as patterns (or attractors). We sort of "feel the answer" to problems no matter how complex they may seem but without actually computing the answer. How can that be? How can a person (not to mention an animal) who has no clue of mathematics still be capable of performing fantastically complex functions? Why doesn't a brain, with its immense memory and computational power, store some basic equations and formulae and use them when we need to make a decision? Theoretically this could be perfectly feasible. One could learn equations and techniques and store them in memory for better and more sophisticated decision-making. We all know that in reality things don't work like that. So how do they work? What mechanisms does a brain use if it is not math models? In reality the brain uses model-free methods. In Nature there is nobody to architecture a model for you. There is no mathematics in Nature. Mathematics and math models are an artificial invention of man.  Nature doesn't need to resort to equations or other analytical artifacts. These have been invented by man but this doesn't mean that they really do exist. As Heisenberg put it, what we see is not Nature but Nature exposed to our way of questioning her. If we discover that "F = M * a" that doesn't mean that Nature actually  computes this relationship each time a mass is accelerated. The relationship simply holds (until somebody disproves it).

Humans (and probably also animals) work based on  inter-related fuzzy rules which can be organised into maps, such as the one below. The so-called Fuzzy Cognitive Maps are made of nodes (bubbles) and links (arrows joining the bubbles). These links are built and consolidated  by the brain as new information linking pairs of bubbles is presented to us and becomes verifiable. Let's take highway traffic (see map below). For example, a baby doesn't know that "Bad weather increases traffic congestion". However, it is a conclusion you arrive at once you've been there yourself a few times. The rule gets crystallised and remains in our brain for a long time (unless  sometimes alcohol dissolves it!). As time passes, new rules may be added to the picture until, after years of experience, the whole thing becomes a consolidated body of knowledge. In time, it can suffer adjustments and transformations (e.g. if new traffic rules are introduced) but the bottom line is the same. There is no math model here. Just functions (bubbles) connected to each other in a  fuzzy manner, the weights being the fruit of the individuals own experience.


 


As a person gains experience, the rules (links) become stronger but, as new information is added, they can also become more fuzzy. This is the main difference between a teenager and an adult. For young people - who have very few data points on which to build the links - the rules are crisp (through two data point a straight line passes, while it is difficult for 1000 points to form a straight line - they will more probably form something that looks like a cigar). This is why many adults don't see the world as black or white and why they tend to ponder their answers to questions. Again, the point is that there is no math model here. Just example-based learning which produces sets of inter-related Fuzzy Cognitive Maps that are stored in our memory. Clearly, one may envisage attaching a measure of complexity to each such map.

OntoSpace, our flagship product, functions in a similar manner. It doesn't employ math models in order to establish relationships between the parameters of a system or a process. Essentially, it emulates the functioning of the human brain. 








Is it Possible to Make Predictions?



Prediction of the future has always been man's dream. However, there is an overwhelming amount of physical evidence that this is quite impossible. This is because the future is permanently under construction. Therefore, as every second passes, the future is changed. The cause of this are the laws of physics. If the future were predictable with all likelihood we would have different physical laws and life would probably not even exist.

But man is a subborn species. The unhealthy desire to predict the future has pushed mathematicians to devise utterly  unnatural methods which, in virtue of prolonged and often distorted use, are now deeply rooted in the practises in virtually all spheres of social life. Scientists speak of predictive models, just as the economists, the weather man, etc. Some people believe in horoscopes while others buy lucky  lottery numbers.

Much of the contemporary "predictive machinery" is based on statistics - looking back in time, building some model of what has actually happened, extrapolating into the future. The concept of probability plays a central role here. Bertrand Russel is known to have said, back in 1929, that "probability is the most important concept in modern science, especially as nobody has the slightest notion what it means". In fact, probability is not a physical entity and it is not subjected to any laws in the strict scientific meaning. As a matter of fact, there are no laws of probability. If a future event will take place, it will do so irrespective of the probability that we may have attached to it. If an extremely  unlikely event will happen, it's probability of occurrence is already 100%.

Predictions are of major interest in the realm of uncertainty. Clearly, one can predict with a high degree of accuracy when an object will hit the ground when it is dropped from a certain height (providing it is not a feather). What we are more concerned with is the desire to predict phenomena and events of interest to economists, investors, managers or politicians.
But there is another problem with predictions. Suppose you do indeed know with certainty that an event of interest to you will happen at a specific time in the future.  You will surely take action based on that knowledge. What this can cause, however, is a change in the chain of events such that you inevitably alter that event. As an example, suppose that you are extremely wealthy and that you know the exact value of certain stocks some months in advance. You will immediately start to buy and /or sell massive amounts of these stocks. This will surely cause other investors to react. Inevitably, the flow of events will be such that the predicted values of these stocks will not be the ones you knew with "certainty". What does this mean? It means that you can only verify a prediction if you do nothing. The moment you act based on your knowledge of the future you automatically alter it and the prediction cannot be verified.  Consequently, the phrase "predictive model" is an oxymoron. As mentioned, because of the way the laws of physics work, the future is permanently under construction. And if you add Goedel to the picture ...... The Creator is indeed very smart!

So, it seems that our efforts to devise some sort of predictive analytical machinery is futile. The current planetary meltdown of the economy eloquently underscores this fact. The severity and depth of this crisis has not been predicted (had this been the case we would have taken measures, right?) and this speaks of the quality of the contemporary economic and econometric models and of their predictive capability. With all respect, their predictive capability is not too exciting.

In actual fact, we still don't even really understand the crisis and its multiple causes. But how can one speak of predicting phenomena which  are poorly understood? Shouldn't we change the order of things? Shouldn't we try to first understand better the dynamics of   highly complex interconnected  and turbulent economic systems and devote less resources to fortune telling and high-tech circle-squaring? How about:

  • Taking a holistic view of things, analysing systems of entities not single entities.
  • Searching for recognisable patterns, not repeatable details. The closer you look the less you see!
  • Moving from sophisticated (and subjective) models to model-free approaches.
  • Developing a new kind of maths, which is less "digital" and closer to reality.
  • Dedicating more effort to understanding the way things work, the way Nature works.

What cannot be achieved should not be pursued. Our efforts and resources should be focused on real problems that admit real solutions. Omnis ars naturae imitatio est.








 

FREE account for Measuring Business Complexity and Rating






If you wish to measure the complexity of your business, or assess its Resilience Rating, just follow these instructions:


1. go to http://www.rate-a-business.com/index.php

2. login as User: freerating    Pwd: freerating


Don't forget to read the short tutorial!




www.ontonix.com