Chapter 8
Abstract models to think with
The abstraction of this model
As mentioned earlier, the idea of using abstract models to represent real world systems is that you can cut out all irrelevant detail. The simpler you can make the model the less chance there is to get side tracked and go off at a tangent. Such models can then be used to acquire the Zen-ness, that allows you to be more competitive.
Without these models of the marbles and Hilbert space it might be very difficult to see how a bottom up strategy can achieve efficiency. This leaves you no alternative but to use a top down approach. But now imagine a top down approach competing against a bottom up approach. Think of how each has to react if the other gets an advantage. The top down strategy would have to expensively examine and redesign the system, the bottom up strategy would simply alter a few dimensions to change the systems position in Hilbert space so that the results were better than those of the competitors.
The way we are working here, with the concept of a Hilbert space modelling an object, is simply manipulating a list of dimensions; this can be a numbered list. Instead of using the descriptions of the dimensions, you can just use the line numbers on the list to represent the dimensions and another number to represent the value of the dimension, i.e., line 1 of the green frog's dimensions might be "color", and the number 5 representing "green". In this way the color dimension in Hilbert space would be "1:5"
In the case of the emotional Hilbert space and the exotic fruit, the emotions can be given numbers and the extent of each emotion given a value on a scale of 1 to 10. Thus the emotional reaction of the object represented by its Hilbert space could be (1:3 , 2:9 ,3:7) where its state could be described as: 1 (fear) = value 3; 2 (hunger) = value 9; 3 (interest) = value 7.
By using such numerical codings, an object described by its Hilbert space could be represented as arrays of numbers. By changing the numbers, you can effectively push something around in a Hilbert space to make it morph into all kinds of manifestations to function flexibly in a variety of different ways and test how effective it is at anything you want it to do
This is the essence of genetic algorithms where you use numbers to effectively push something around in Hilbert space with a computer program. After every push, you can check to see if it is functioning efficiently and if not you can change a number to push the software somewhere else where its performance may be better. Genetic algorithms go one stage further though, they mix and match different combinations in a way that moves the solution more quickly towards the desired result.
Once you can get this picture into your mind - of pushing an object that is described by its dimensions around in space by changing the values of its dimensions - you have a powerful model to deal with complex environments. This is because you don't have to know what every dimension is or what values or parameters are associated with the object. All you need be aware of is that by picking a dimension and changing its value you can make the object in Hilbert space move somewhere else where it performs differently.
If we go back to the marble model, it's as if all the marble throwers are objects in Hilbert space and their marbles are the dimensions. If a throw of the marbles results in getting nearer to the hole you know that that object is making an improvement. If the throw doesn't result in getting nearer to the hole you know that the throw didn't work. You don't have to know anything about the marble player or the way the marble thrower throws, all you have to know is whether or not a throw gets the marble throwers nearer to the target.
Now one of the special features about object oriented thinking is that you can combine objects together to make them form virtual objects. So, if we put all the marble players into a group we can get them all to throw their marbles together. Then, when they all throw their marbles the nearest marble of all the marbles will point the way to the target: effectively choosing the best out of many haphazard, random different positions. This will get the whole group progressing faster towards the target than any single marble thrower.
This is exactly what was happening with the "Street Theatre" designers. Their designs were all over the place. But, we were taking the nearest (closest to be what was being judged as best by the group selections) as the direction to go. These selections were then made the dimensions of another object in Hilbert space, the retail shop, to see which sold the best there. Those that sold the best indicated the direction for the shop to go in the same way as the nearest marble points the way to the target.
Again, in a general way, it is the same as Yvan Caron was describing as a "ready-aim-fire" approach and "fast-paced solution building".