Sunday 22 April 2012

The kolmogorov complexity of tai chi

Building on mathematical tai chi way of thinking previously discussed I wondered...What is the Kolmogorov Complexity of tai chi. I.e. how simply can it be described in a scientific sense? Kolmogorov Complexity might be the answer. It is an abstract construct used to describe the minimum amount of information required to represent a particular object/process/concept. For example the higher the number of different sub components that make up an object the higher its Kolmogorov Complexity will be.

Although there is currently no really good way to measure Kolmogorov Complexity except on simplified mathematical problems, I would consider this a good measure for scientifically assessing different people's tai chi. I would hypothesise that for a given tai chi form, there is a notionally "perfect" way of doing it that has the minimum Kolmogorov Complexity possible. In other words, this perfect form uses only a couple of simple building blocks and just rearranges them in every movement. It is completely flowing and smooth such that the trajectories are easily described mathematically etc. Anyone performing the form would have removed all superfluous movements and every instance would be a perfect embodiment of tai chi principles.

By contrast, when anyone demonstrates the same form they are going to be not quite as perfect. Where two postures should in fact be built upon the same building block the practitioner has not quite appreciated this, and so they are actually performed differently. This difference increases the Kolmogorov Complexity, because whereas in the perfect form I could just say both postures were X now have to say one is X and one is Y. Similarly if I don't quite move perfectly smoothly, the trajectories are more complicated to describe mathematically and so the Kolmogorov complexity increases.

How good a student is at tai chi can therefore be directly postulated in a scientific way, as a percentage error between the Kolmogorov Complexity of the student performing the form, and the notional theoretically perfect implementation of the form.

So how can you go about quantifying this "performance measure"? Well as I said above the mathematics of this still has a long way to come and would be exceptionally challenging. However the first step would be to be able to perfectly measure the movement. For a long time I have thought that motion capture technology could be used to achieve this and so was glad to see that recently a tai chi master has actually done so. Once we can capture the movements of different people we can use computers to analyse similarities and differences and in effect determine who is better (should we wish). [Of course it's not quite as simple as that as a less advanced student might deliberately simplify bit is of the form....]

At the end of the day however, to say how good individual practitioners are is not really what is important. What this would represent would be a way to test my hypothesis that the best tai chi is tai chi that has the lowest Kolmogorov Complexity. In otherwords good tai chi is simple tai chi. And good tai chi is self consistant tai chi. Perhaps in the further such mathematical metrics could also be used used to form the basis of a new wave of interactive tai chi learning systems.


  1. I think a good place to start would be the skeletal system. Muscles expand and contract for every move, but the shapes of bones are essentially constant on short time scales. Bones act as levers which are well-described by mathematics. It should be possible to make a virtual skeleton as a system of simple levers. Stanford's OpenSim project is a great example. I think the minimum number of measurement points would be the ends of bones. That way each bone is simplified as a line segment in 3D space. The trajectories of the bones' endpoints could be the data used for evaluation. There's a really good TED talk by Vijay Kumar about making robots move gracefully. At about 5min 20sec he says the key is to program the robots to minimize "snap" (2nd derivative of acceleration) for every movement. Perhaps combining elements of OpenSim software with that of Kumar's robots would yield movements similar to a tai chi master's. What do you think?

  2. Thanks for that excellent comment Konzept! That OpenSim software looks really interesting - one mythical day when I have more time for this sort of thing I would love to play around with it to see what it could tell us, about tai chi.

    Minimising snap would also be an interesting study and I suspect would be a promising place to start, but I find it difficult to imagine exactly what snap means. For example, in my Tai Chi form there are fajing movements which are explosive bursts of speed and energy. Relating those to minimising snap would be interesting, as even though it is fast and explosive, there are still the right way and a wrong way to do it. A lot of food for thought, thanks!

  3. I'm glad you liked it! I think "minimizing snap" is a way for a computer to produce fluid/graceful movements, not necessarily gentle ones. Imagine the trajectory of one's hand during a strike. if the 3D line for that path is perfectly smooth (no jitters, shivers, or sharp changes in direction), then snap should be minimal. The velocities at the ends of the trajectory are less important.

    I found something else you might find interesting: a device that tracks limb movements and uses vibrations to tell the user when he/she is moving incorrectly. The college students who built it intended to aid weightlifters, but it is easy to imagine a full-body version made for martial artists. You could program such a suit to either compare a user's movements with a certain sequence of moves or to measure "snap" in real time. Or both. With a lot of work, such a suit might give tai chi students instant feedback on their form while away from their teachers. I wonder if such a system could dramatically accelerate the learning process for martial artists.