Breaking the Limits on Design Complexity

Jordan Pollack, Brandeis University

As we contemplate microelectromechanical systems (MEMS) and nanotechnologies (nano), we must study the history of the design of circuits and software, especially software that is supposed to have cognitive function, or artificial intelligence (AI). Having been working in the field of AI for 25 years, I can say with some authority that nanotechnology will not solve the AI problem. In fact, the repeated failures of AI artifacts to live up to claims made by their proponents can shed light on human expectations of nano and on the capacity of human teams to design complex objects.

We think that in order to design products "of biological complexity" that could make use of the fantastic fabrication abilities of new nano and MEMS factories, we must first liberate design by discovering and exploiting the principles of automatic self-organization that are seen in nature.

A brain has 1011 connections. Chemistry often works with 1023 molecules. Advanced software is the most complex (and profitable) of all of human artifacts, yet each application only comprises between 10 million and 100 million lines of code, or a maximum of around 108 moving parts. Suppose an animal brain, rather than requiring the specifying over time of the bonds for every molecule, ONLY required the equivalent of 1010 uniquely programmed parts. Why can't we engineer that?

In circuits, achieving even a function as lowly as the "bit" of memory creates a means to replication. Now we have 32 million bits on a single chip, and that is an achievement. Building blocks that can be replicated via manufacturing in hardware make things like memory chips and CPUs faster and more capable. This replication capacity and speedup of hardware enables Moore's law, a doubling of computer power, and even disk space, every 18 months. However, this periodic doubling of computer power has not led to equivalent doubling of human capacity to manufacture significantly more complex software. Moore's law does not solve the problem of engineering 10 billion lines of code!

The simple reason we haven't witnessed Moore's law operate for software is that 32 million copies of the same line of code is just one more line of code — the DO loop. Thus today's supercomputers run the same sized programs as the supercomputers of the 1970s, which are the desktops of today. The applications can use lots of floating point multiplication, but the complexity of the tasks hasn't grown beyond word processing, spreadsheets, and animations. Faster and faster computers seem to encourage software companies to write less and less efficient code for the same essential functionality — Windows is just DOS with wallpaper.

We've learned this hard lesson from the field of software — which isn't even constrained by material cost or by physical reality: there are limits on the complexity of achievable design. This is true even when throwing larger and larger teams of humans at a problem, even with the best groupware CAD software, even with bigger computers. Therefore, assumptions that new fabrication methodologies will lead to a breakthrough in design complexity ought to be taken with a grain of salt.

Yet many nano pundits expect that smaller-scale manufacturing, rather than leading to homogenous materials competitive with wood and plastic, will automatically lead to artificial objects of extraordinary complexity and near life-like capacity. They seem to ignore the technical challenges of understanding and modeling cognition, plugging in portals to our brains, and programming Utility Fogs of nanobots that are intelligent enough to swarm and perform coordinated missions. The reality is that making life-sized artifacts out of molecules may require the arranging of 1030 parts.

AI is stalled because it is starved of the much more complex blueprints than anyone has any clue how to build. Software engineering seems to have reached a complexity limit well below what computers can actually execute. Despite new programming languages and various movements to revolutionize the field, the size of programs today is about the same as it has been for 40 years: 10-100 million lines of code. Old code finally collapses under the cost of its own maintenance.

The high-level languages, object-oriented programming systems, and computer-assisted software engineering (CASE) breakthroughs have all seemed promising, yet each new breakthrough devolves back into the same old thing in new clothes: the Fortran compiler plus vast scientific libraries. The power of each new programming tool, be it PL/1, Turbo Pascal, Visual Basic, Perl, or Java, is located in the bundled collections of subroutine libraries, which eventually grow to surpass our merely human cognitive ability to remember or even look them up in burgeoning encyclopedias.

The problem illustrated here is still Brooks' Mythical Man Month: We can't get bigger and better software systems by putting more humans on the job. The best original software, whether DOS, Lotus 123, or Wordstar, have been written by one or two good programmers; large teams extend, integrate, copy, and maintain, but they do not create. The more programmers on a task, the more bugs they create for each other.

The opportunity available today is that the way out of this tarpit, the path to achieving both software and nano devices of biological complexity with tens of billions of moving parts, is very clear: it is through increasing our scientific understanding of the processes by which biologically complex objects arose. As we understand these processes, we will be able to replicate them in software and electronics. The principles of automatic design and of self-organizing systems are a grand challenge to unravel. Fortunately, remarkable progress has been shown since the computer has been available to refine the theory of evolution. Software is being used to model life itself, which has been best defined as that "chemical reaction, far from equilibrium, which dissipates energy and locally reverses entropy."

Much as logic was unconstrained philosophy before computer automation, and as psychological and linguistic theories that could not be computerized were outgunned by formalizable models, theories on the origin of life, its intrinsic metabolic and gene regulation processes, and the mechanisms underlying major transitions in evolution, are being sharpened and refuted through formalization and detailed computer simulation.

Beyond the basic idea of a genetic algorithm, the variety of studies on artificial life, the mathematical and computational bases for understanding learning, growth, and evolution, are rapidly expanding our knowledge and our know-how.

My laboratory, which studies machine learning and evolutionary computation, has focused on how semi- and fully-automatic design can help design complex systems like robot hardware and software. We have used a collection of methods called "co-evolution," in which the idea is to create a sustained "arms-race" amongst or between populations of simple learning systems in order to achieve automatic design of various structures such as sorting nets, cellular automata rules, game players, and robot bodies and brains (Fig. B.13).

The field of evolutionary design, which aims at creation of artifacts with less human engineering involvement, is in full force, documented by the books edited by Peter Bentley, as well as a NASA-sponsored annual conference on evolutionary hardware. Evolutionary robotics is a related field that started with Karl Sims' virtual robots and has grown significantly in the last 5 years.

So far, few artificial evolutionary processes have produced software or systems beyond those that can be designed by teams of humans. But they are competitive, and they are much cheaper than human designs. More importantly, thus far, they have not hit a barrier to complexity as seen in software engineering. Automatic design converts surplus computer time into complex design, and this will be aided by Moore's law. As inexpensive one-of-a-kind fabrication becomes possible, mass manufacture will no longer be necessary to amortize the fixed costs of engineering design, and automatic design will become necessary to generate complex designs with low cost. Success in this field holds keys to surpassing today's limits on complexity.

Figure B.13. Semi- and fully automatic design can help design complex systems like robot hardware and software.

0 0

Post a comment