The two faces of behaviour

In distributed systems, local subsystems have distinct behaviour that together contribute to a desired overall behaviour. The local behaviour is typically simple algorithmically compared to the overall.

On the other side, some classes of systems composed of subsystems (like particles) also have distinguishable behaviour that can be modelled and expressed mathematically (like fluid flow).

It is interesting to think of the logical relationships between the local behaviours and the overall behaviour that results. Surely the sequencing and structuring of local behaviours plays a role in informing the overall behaviour. But what's needed is a deeper understanding of the primitives of behaviour and their composition - an algebra of sorts.

A concrete example would help. Fluid flow is commonly described by a model involving differential equations of mass, momentum and energy called the Navier-Stokes equations. Car traffic has been also modelled using the same equation, meaning that car traffic exhibits a behaviour analogous to fluids. However, in car traffic, humans are the droplet, and thus each of our own individual behaviour contributes to what can collectively be described as the flow of traffic. We know our own behaviour, and it definitely has nothing to do with laminating the traffic, and yet a higher-level pattern emerges that looks like this!

Mathematically, what happens during that phenomenon can be explained by the following. If we discretize the fluid flow system, we can write it down as an infinite sum of terms whose coefficients determine the shape of the flow and its mathematical behaviour. This can be done using the Taylor series for example and if applicable in this particular case, or perhaps wavelets. Each term has a weight - a coefficient - that determines the term's importance in shaping the curve that is being approximated. Inside each car, each driver is continuously performing a decision function that outputs a set of weights for selected terms of the infinite expansion of the traffic's flow. The outputs of the local decision function are given in the form of an acceleration vector, which is the second time differential of the position of the car.

Now what remains to be done is find an infinite expansion for the Navier-Stokes systems - probably in the numerical methods or mechanical engineering literature. And we also need to model how the driver translates abstract decision elements such as time and money into one output vector - apart from the gas pedal. In one sense, the driver is participating in solving a particular Navier-Stokes system while he's driving!

Could an automated solver help the driver make better decisions while driving?