Is Motor Control harder than Checkers?

October 28, 2008

One of the projects we are currently pursuing is to explore the relationship between energetic cost of arm movements and the movements we choose to make. To reach to an object in space, there are an infinite number of potential hand trajectories (each associated with a unique set of joint angular changes over time) that will succeed in reach the target. How does the nervous system choose which trajectory to execute? How does the nervous system learn over time, which trajectories to prefer? One possibility is that the nervous system becomes sensitive to the energetic (e.g. metabolic) cost of executing a given arm movement trajectory. When faced then with the task of reaching for an object in space, the nervous system is able to select a trajectory (and the associated set of neural control signals to muscles) that minimizes the cost.

We have a mathematical model of two-joint (shoulder,elbow) planar arm movements that includes a physiologically detailed muscle model (Kistemaker et al., (2007) Biol Cybern. 96 (3), 341-50). We also have recently coded up the equations to calculate energetic cost of a movement – at the level of individual muscles.

Can we perform an optimization to figure out what is the optimal trajectory (and associated neural control signals) for a given reaching movement from an initial position to a final position in space?

We started with a scheme in which the parameters to optimize were simple 6 via-points equally spaced in time, for each of six muscles (two single-joint shoulder muscles, two single-joint elbow muscles, and two biarticular muscles). This gives 36 parameters to optimize. The cost function takes into consideration hand position at movement end (it should equal the target), velocity at movement end (it should be zero) and acceleration at movement end (it should also be zero). 

We started using simulated annealing (and later genetic algorithms) to try to find the optimal vector in 36-dimensional space (i.e. the optimal set of neural control parameters) to minimize the cost function. Each forward simulation takes roughly 500 ms. This means in 24 hrs we can evaluate roughly 172,800 potential solutions, per computer (we were running this on 4 machines, each with 4 cores). So a total of roughly 2.7 million potential solutions. That sounds like a lot, but see below.

Here is the sort of thing we were seeing:

After running the optimizations for a few days, then a few weeks, and not knowing if we were even close to finding a global minimum, we decided to step back and consider the mathematical implications of this problem.

If we discretize the input space, with for example 20 possible levels for each muscle stimulation, between 0 and 1.0, then we have 20 ^ 36 = 6.87 x 10^46 possible inputs to evaluate. This is a large number.

Checkers, for example, has a search space of 5 x 10^20. It took researchers approximately 18 years of computation (1989 to 2007) to solve checkers.

Assuming we can simplify the problem even more, by for example, optimizing our Matlab code to make our simulations run 100 times faster (5 ms instead of 500 ms per movement, so 0.005 seconds), and assuming we didn’t need to evaluate ALL potential solutions but only 1/1000th percent of them, and assuming we use a discretization of the muscle stimulations in 10 steps, not 20, we would still need 5 x 10^28 seconds of computing time. Even if we split this across 4 machines with 4 cores each (16 cores) this represents 9.9 x 10^19 YEARS of computing time. Let’s say we refactor our code for use on a massively parallel cluster (e.g. SHARCNET, with the cluster having 3072 CPUs) this represents 5 x 10^17 YEARS of computing time.

We have decided we need to re-think our approach…