Systems and Abstractions

My previous post was a bit of a mess, and I’m starting to think it’s because I put that topic too early in the sequence. This post (and possibly the next couple, we’ll see) should have come first. Anyways.

Abstractions are a key part of systems theory. Recalling our base terminology for systems, an abstraction is a way of talking about collections of elements as single entities. The glider from our trusty example of Conway’s Life is a perfect example of this. From the pure systems-level view of Life, there exists nothing but the grid of cells. However, the glider abstraction lets us talk about a particular set of cells in a particular pattern (there’s that word again) that exhibits a particular behaviour.

The movement of a “glider” in Conway’s Life (image from Wikipedia).

It’s interesting (and important) to note that gliders exhibit their own, higher-level behaviour that can be expressed in rules without apparent reference to the underlying system rules: they cycle through a set of four states, and move diagonally by one cell each time they complete a cycle. The underlying system has no concept of movement, cells simply turn on and off – but we say that the gliders move, nonetheless.

Now consider a Life setup that consists of a couple-dozen gliders scattered about, and nothing else (all other cells are “off”). What does this resemble? Another system! Except instead of talking about cells as elements, with the property of location and being on or off, we talk about gliders as elements with the property of location, state, and moving in a direction. But it’s the same system. We say the latter, by grouping the elements of the former, is an abstraction on top of it.

However, there’s a catch; what happens in our shiny new abstract system if two gliders collide? The simple rules above say nothing about collision, so they just sort of cross over each other and keep going, but of course reality is different.  The underlying system doesn’t know about gliders, and so following the “real” rules of cell life and death, the gliders may disappear entirely or form some other pattern (depending on the precise nature of the collision). It is here where the abstraction breaks down; it lets us hide the messy details of cell manipulation and deal with higher-level gliders, but there’s a situation in which that simplicity doesn’t track and the abstraction is wrong.

(If you’re familiar with information theory then there’s all sorts of neat stuff we can say at this point about the informational content and rule complexity of abstractions versus the underlying system etc, but it’s not strictly necessary. Fun math though.)

In this case we call the glider-abstraction an incomplete system; it is a system that matches the underlying reality to a point, but not perfectly. The base system of cells is, naturally, called a complete system.

Introduction to Systems Theory

As I mentioned last week, we have now reached the home-stretch of our foundational work. Systems theory is a logical structure (practically algebraic, in fact) which has earned its place this early in the project through how incredibly useful it is. My systems theory (not to be confused with this one) is an abstract, rational structure, with all that that entails as far as it’s truth.

A system consists of three sets: a set of properties, a set of elements, and a set of rules. A property is just some useful name. An element is a mapping from each property in the system to a distinct piece of information. A rule describes how elements (or more precisely their associated information) change over time.

While there are many examples of systems that meet this definition, one of the simplest and most interesting is Conway’s Game of Life (I expect to return to Conway’s game numerous times in this section as it provides a bounty of useful examples). To lay it out explicitly according to my definition of a system, Conway’s game has an infinite number of elements, each with the following two properties: location (a Cartesian x/y coordinate) and state (alive or dead). Every location property is unique and static (there is exactly one element at each location, and it does not move over time). Element state over time is governed by the following rules:

  1. Any live cell with fewer than two live neighbours dies.
  2. Any live cell with two or three live neighbours lives on.
  3. Any live cell with more than three live neighbours dies.
  4. Any dead cell with exactly three live neighbours becomes a live cell.

A cell’s “neighbours” are the eight other elements at distance exactly one from it; literally its neighbours if the system were layed out on a grid as it usually is. In Conway’s game, time is a discrete thing (element state changes in distinct steps) but this is not a requirement of systems theory; it works equally well on continuous systems.

This post suffices for a plain definition and an example to whet your appetite. In future posts I will dig into systems theory in more detail, exploring many of the useful concepts that fall out of it and some of its applications.