  We study a simple model for the evolution of the cost (or more generally the
performance) of a technology or production process. The technology can be
decomposed into $n$ components, each of which interacts with a cluster of $d-1$
other, dependent components. Innovation occurs through a series of
trial-and-error events, each of which consists of randomly changing the cost of
each component in a cluster, and accepting the changes only if the total cost
of the entire cluster is lowered. We show that the relationship between the
cost of the whole technology and the number of innovation attempts is
asymptotically a power law, matching the functional form often observed for
empirical data. The exponent $\alpha$ of the power law depends on the intrinsic
difficulty of finding better components, and on what we term the {\it design
complexity}: The more complex the design, the slower the rate of improvement.
Letting $d$ as defined above be the connectivity, in the special case in which
the connectivity is constant, the design complexity is simply the connectivity.
When the connectivity varies, bottlenecks can arise in which a few components
limit progress. In this case the design complexity is more complicated,
depending on the details of the design. The number of bottlenecks also
determines whether progress is steady, or whether there are periods of stasis
punctuated by occasional large changes. Our model connects the engineering
properties of a design to historical studies of technology improvement.
