The Entrepreneurial Web
Chapter 8
Abstract models to think with

A strategy that can ignore the unknowns

It is at this point that a top down, logical mind set gets stymied. It is logical that you can represent a system by a descriptive list of its qualities and characteristics. It is logical that you can use that list to represent the system as a point in multi dimensional space. But, the fallacy appears to be that with a complex system, most of the list is likely to be missing and the Hilbert space location will be short of many of its dimensions. The top down mind set will then ask, "If these dimensions are unknown or unknowable, how can you possibly accurately fix a system's position in Hilbert space?".

This seeming impasse reveals why the concept of Hilbert space is so powerful in a complex environment. With Hilbert space you don't need to have a full list. Dimensions can be separated out and dealt with in isolation, so, the list can be incomplete and yet still have a position in Hilbert space. You can deal with any unknowns simply by ignoring their existence.

Just like the observer with the marble throwers, there is no need to know all there is to know about the marbles or the marble throwers to get to a point in space. All you need to know is which is the nearest marble to the hole. The observer, that is the designer or decision maker, doesn't have to know anything other than where the marbles fall when they are thrown. By the same token, a designer of a complex system doesn't have to know what the system consists of. All that needs to be known is whether or not by altering one or more of a system's parameters or components the system becomes more or less efficient

In "Magical A-Life Avatars" I showed how this model could be used to design complex software systems, where the dimensions were in the form of a list of software modules (objects). Together, all these modules of computer code combined and interacted with each other to form a single complex system. The list of these software modules could then be thought of as describing where in Hilbert space the complex object was positioned: with each module representing a dimension. Changing the way any module functioned, or, adding or removing modules caused the whole system of interacting modules to react differently in any particular situation.

Having a list of the modules isn't enough. They are simply the dimensions that can provide variable responses. What is also needed is a value for each dimension. Just as the color dimension of the green frog needs to be set to the green position along the color dimension, so each of the modules has to be set to the appropriate place along the dimension line that covers its range of possibilities.

The system described in "Magical A-life Avatars" could make decisions and take actions according to artificial emotions. (Note: These artificial emotions were not some esoteric metaphysical states; they were simply values given to variables acting as weighting factors to enforce decision rules). There was an emotion associated with each module in the system.

These emotions could be arranged to be positive or negative, strong or weak; each emotion controlling a particular action. The problem was that the object had to learn how to play a competitive game and it started out without having any settings for the emotions that guided its decision making and actions. How could it acquire values for those emotions if there wasn't a designer with the knowledge to set them?

In other words, each module is flexible enough to perform a number of different variations of its function and you have to specify exactly the right emotion value for each and every module to get the system to respond appropriately. This would seem to be impossibly difficult and even more complex than any Christmas tree light problem.

If we think of the system as being described in a Hilbert space, we can forget about the details of how the code modules are constructed and just concentrate on the emotions that influence the way the system reacts. This allows us to use a Hilbert space where the dimensions are not the modules themselves but simply the emotions. It will be a Hilbert space where every dimension is an emotion and wherever the system is in this Hilbert space will specify the values of all the emotions.

In this way, we can think of the system as having different sets of emotional response in different places in Hilbert space. If we keep testing different places to see how each place causes the system to react we can know when one place is better than another. In other words, which set of emotions is better than another set.

If this seems somewhat confusing, just think of Hilbert Space as having just three dimensions, where the dimensions are: fear; hunger; interest. Then think of this Hilbert space as being an object with these emotions and this object sees an exotic looking fruit growing on a strange tree. At one point in that space the value of the fear emotion might be very great and the emotions of hunger and interest small. At this point in its Hilbert space the object will move away from the fruit.

At another point in this Hilbert space the fear emotion might be very low and the humger and interest might be very high. With the object's emotions set at this point in Hilbert space it will rush eagerly towards the exotic fruit.

By varying the values of the various emotions of fear, hunger and interest, effectively moving around in Hilbert space, the object will elicit a whole range of different reactions upon seeing the exotic fruit. A suitable mix of emotions would see the object approaching the fruit cautiously. Another mix would see it reluctantly moving away. By moving a point around in this object's Hilbert emotional space it's actions and attitudes towards the fruit can be made infinitely variable.

If you wanted to find a place where this object would stand still, you could play around with the values of the emotions until you came to a point where the object was torn equally between its fear of the fruit and its interest and hunger. At this point in Hilbert space the values for the emotions would be cancelling each other out and cause the object to stand still: not being able to decide one way or another whether to go forward or backwards.

Finding this place could fairly easily be arranged by altering the different emotions one way or another to gradually slow up its movement until it stopped. A sort of trial and error guided by observing what the object does after you make adjustments to the values of its emotional dimensions.

Isn't this similar to the hole in the field problem? There we had to find a position in space. Didn't we solve that by throwing marbles? That is what we can do in Hilbert space. We can do the equivalent of throwing marbles, by randomly choosing sets of emotions. The set that results in the nearest to the response we are looking for is the equivalent of being the marble nearest to hole.

This is where a paradigm shift is needed. How do you determine the right values to make the system perform optimally? The trick is to start by giving all the emotions a random value. This will send the software object into a random place in Hilbert space. At this random position you can try out the object to see how well it performs the required function - with the emotions that are specific to that location. This is like throwing a single marble into a field.

Using the emotional Hilbert space and the exotic fruit example you would simply give random values to fear, hunger and interest to see what it did. This is the equivalent of initialising the system to get a first fix on what effect the values have.

Now if you repeat this ten times with different random values for the emotions and this would be the equivalent of throwing ten marbles into a field where they land in ten different positions. By seeing how the system performs each time you change the value of the emotions, you can find out which set of emotions performs best. So, ten trials with randomly different emotional value settings will allow you to choose the set of random emotional values that work the best. It not the optimum values but like the first throw of the marbles it allows you to take a positive directional step towards the goal.

By changing one or more emotional values and testing again each time, you can see if the changes cause the system to perform better or worse. Retaining good changes and cancelling bad changes, you can steadily steer the system towards a position in Hilbert space where it is performing optimally. At this place, the emotional values will be set at their best values. No calculations, you just follow a route marked out by trial and error testing that will lead you directly to the solution.

This can be easily visualised by creating a control system for an object where forward and backward movements are controlled by three variables. You wouldn't have to know anything about the system itself, you could get the object to take up a stationary position simply by steadily adjusting the values of the variables to different values to make it slow up and eventually stop altogether. Who cares whether its an electro mechanical system, a software system or a biological system? You don't have to know: all you need to care about is that you can get the system to a state where it will do what you want it to do.

This example is describing a system of objects made up of computer code, but, the magic of Hilbert's multidimensional space is that it can be used to model practically anything. Hilbert himself said it could be used to model tables, chairs, beer mugs and beer mats. More importantly, from the point of e-commerce, it can model Web sites, e-business and e-commerce solutions and, most valuable of all, communication strategies.

As this is so important, bear with this abstract explanation for a moment while we flesh it out a little, then, in the subsequent chapters we can develop some really powerful paradigms for use in Internet strategies.