Genetic Programming an Introduction

Total Page:16

File Type:pdf, Size:1020Kb

Genetic Programming an Introduction Genetic Programming An Introduction On the Automatic Evolution of Computer Programs and Its Applications Wolfgang Banzhaf Peter Nordin Robert E. Keller Frank D. Francone dpunkt.verlag - Morgan Kaufmann Publishers, Inc. dpunkt San Francisco, California Verlag fuer digitale Technologie GmbH Heidelberg Copublished by dpunkt.verlag and Morgan Kaufmann Publishers, Inc. Morgan Kaufmann Publishers, Inc. dpunkt.verlag Sponsoring Editor Michael B. Morgan Sponsoring Editor Michael Barabas Production Manager Yonie Overtoil Production Manager Josef Hegele Production Editor Elisabeth Beller Copyeditor Andrew Ross Cover Design Ross Carron Design Cover Photo Chris Howes/Masterfile Cover Illustration Cherie Plumlee Proofreader Robert Fiske Printer Courier Corporation This book has been author-typeset using LaTEX. Designations used by companies to distinguish their products are often claimed as trademarks or registered trademarks. In all instances where Morgan Kaufmann Publishers, Inc. and dpunkt GmbH are aware of a claim, the product names appear in initial capital or all capital letters. Readers, however, should contact the appropriate companies for more complete information regarding trademarks and registration. Available in Germany, Austria, and Switzerland from dpunkt —Verlag fur digitale Technologic GmbH Ringstrasse 19 D-69115 Heidelberg Germany Telephone +49/6221/1483-12 Facsimile +49/6221/1483-99 Email [email protected] WWW www.dpunkt.de Available in all other countries from Morgan Kaufmann Publishers, Inc. Editorial and Sales Office 340 Pine Street, Sixth Floor San Francisco, CA 94104-3205 USA Telephone 415/392-2665 Facsimile 415/982-2665 Email [email protected] WWW www.mkp.com Order toll free 800/745-7323 © 1998 Morgan Kaufmann Publishers, Inc. and dpunkt—Verlag fur digitale Technologic GmbH All rights reserved Printed in the United States of America 02 01 543 No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means—electronic, mechanical, photocopying, recording, or otherwise—without the prior written permission of the publisher. Library of Congress Cataloging-in-Publication Data Genetic programming—an introduction : on the automatic evolution of computer programs and its applications / Wolfgang Banzhaf... [et al.]. p. cm. Includes bibliographical references and index. ISBN 1 -55860-510-X 1. Genetic programming (Computer science) I. Banzhaf, Wolfgang, date. QA76.623.G46 1998 006.3'1—dc21 97-51603 CIP MKP ISBN: 1-55860-510-X dpunkt ISBN: 3-920993-58-6 To Pia, Teresa, Benedikt and Judith, who had to sacrifice many evenings and weekends for this book to become possible. Wolfgang Banzhaf To my family and friends, who were there when times got tough. To the lovely Miss Christina Espanto, who makes even the tough times good. Frank D. Francone To those who missed me while I was working on this book. Robert E. Keller To my parents Set and Inga. Peter Nordin Foreword by John R. Koza Genetic programming addresses the problem of automatic program¬ ming, namely, the problem of how to enable a computer to do useful things without instructing it, step by step, on how to do it. Banzhaf, Nordin, Keller, and Francone have performed a remark¬ able double service with this excellent book on genetic programming. First, they have written a book with an up-to-date overview of the automatic creation of computer programs by means of evolution. This effort is especially welcome because of the rapid growth of this field over the past few years (as evidenced by factors such as the more than 800 papers published by some 200 authors since 1992). G Second, they have brought together and presented their own in¬ novative and formidable work on the evolution of linear genomes and machine code in particular. Their work is especially im¬ portant because it can greatly accelerate genetic programming. The rapid growth of the field of genetic programming reflects the growing recognition that, after half a century of research in the fields of artificial intelligence, machine learing, adaptive systems, au¬ tomated logic, expert systems, and neural networks, we may finally have a way to achieve automatic programming. When we use the term automatic programming, we mean a system that 1. produces an entity that runs on a computer (i.e., either a com¬ puter program or something that is easily convertible into a program), 2. solves a broad variety of problems, 3. requires a minimum of user-supplied problem-specific informa¬ tion, 4. in particular, doesn't require the user to prespecify the size and shape of the ultimate solution, 5. implements, in some way, all the familiar and useful program¬ ming constructs (such as memory, iteration, parameterizable subroutines, hierarchically callable subroutines, data structures, and recursion), 6. doesn't require the user to decompose the problem in advance, to identify subgoals, to handcraft operators, or to tailor the system anew for each problem, 7. scales to ever-larger problems, 8. is capable of producing results that are competitive with those produced by human programmers, mathematicians, and spe¬ cialist designers or of producing results that are publishable in their own right or commercially usable, and 9. is well-defined, is replicable, has no hidden steps, and requires no human intervention during the run. w Genetic programming is fundamentally different from other ap¬ proaches to artificial intelligence, machine learning, adaptive systems, automated logic, expert systems, and neural networks in terms of (i) its representation (namely, programs), (ii) the role of knowledge (none), (iii) the role of logic (none), and (iv) its mechanism (gleaned from nature) for getting to a solution within the space of possible solutions. Among these four differences, representation is perhaps the most important distinguishing feature of genetic programming. Computers are programmed with computer programs - and genetic programming creates computer programs. Computer programs offer the flexibility to perform computations on variables of many different types, perform iterations and recur¬ sions, store intermediate results in data structures of various types (indexed memory, matrices, stacks, lists, rings, queues), perform al¬ ternative calculations based on the outcome of complex calculations, perform operations in a hierarchical way, and, most important, em¬ ploy parameterizable, reusable, hierarchically callable subprograms (subroutines) in order to achieve scalability. In attacking the problem of automatic programming, genetic pro¬ gramming does not temporize or compromise with surrogate struc¬ tures such as Horn clauses, prepositional logic, production rules, frames, decision trees, formal grammars, concept sets, conceptual clusters, polynomial coefficients, weight vectors, or binary strings. Significantly, human programmers do not commonly regard any of the above surrogates as being suitable for programming computers. Indeed, we do not see computers being ordinarily programmed in the language of any of them. My view is that if we are really interested in getting computers to solve problems without explicitly programming them, the structures that we need are computer programs. This book will be coming out almost exactly ten years since my first run of genetic programming in October 1987 (solving a pair of linear equations and inducing the Fibonacci sequence). Certainly I could not have anticipated that this field would have grown the way it has when I thought of the idea of genetic programming while flying over Greenland on my return from the 1987 meeting of the International Joint Conference on Artificial Intelligence in Italy. We know from Yogi Berra that predictions are risky, particularly when they involve the future. But, it is a good guess that genetic programming will, in the future, be successfully expanded to greater levels of generality and practicality. In trying to identify future areas for practical application, the presence of some or all of the following characteristics should provide a good indication: 1. areas where the interrelationships among the relevant variables are poorly understood (or where it is suspected that the current understanding may well be wrong), 2. areas where finding the size and shape of the ultimate solution to the problem is a major part of the problem, 3. areas where conventional mathematical analysis does not, or cannot, provide analytic solutions, 4. areas where an approximate solution is acceptable (or is the only result that is ever likely to be obtained), 5. areas where small improvements in performance are routinely measured (or easily measurable) and highly prized, 6. areas where there is a large amount of data, in computer read¬ able form, that requires examination, classification, and inte¬ gration (such as molecular biology for protein and DNA se¬ quences, astronomical data, satellite observation data, financial data, marketing transaction data, or data on the World Wide Web). 1 Genetic Programming as Machine Learning Contents 1.1 Motivation 4 1.2 A Brief History of Machine Learning 7 1.3 Machine Learning as a Process 9 1.4 Major Issues in Machine Learning 12 1.5 Representing the Problem 12 1.5.1 What Is the Problem Representation? 12 1.5.2 Boolean Representations 14 1.5.3 Threshold Representations 17 1.5.4 Case-Based Representations 19 1.5.5 Tree Representations 20 1.5.6 Genetic Representations - 21 1.6 Transforming Solutions with Search Operators 23 1.6.1 Generality/Specificity Operators 23 1.6.2 Gradient Descent Operators 24 1.6.3 Genetic Programming Operators 24 1.7 The Strategy of the Search 25 1.7.1 Blind Search 25 1.7.2 Hill Climbing 26 1.7.3 Beam Search 27 1.8 Learning 28 1.9 Conclusion 29 1 Genetic Programming as Machine Learning Evolution is Nature's ijiistake. Intelligence is its insistence on mak¬ ing the same mistake. S.LEM, GOLEM XIV, 1981 1.1 Motivation Automatic programming will be one of the most important areas of computer science research over the next twenty years. Hardware speed and capability has leapt forward exponentially.( Yet software consistently lags years behind the capabilities of the hardware. The gap appears to be ever increasing.
Recommended publications
  • SEN-R9913 May 31, 1999 Report SEN-R9913 ISSN 1386-369X
    Centrum voor Wiskunde en Informatica REPORTRAPPORT Late-Breaking Papers of EuroGP-99 Edited by: W.B. Langdon, R. Poli, P. Nordin, T. Fogarty Software Engineering (SEN) SEN-R9913 May 31, 1999 Report SEN-R9913 ISSN 1386-369X CWI P.O. Box 94079 1090 GB Amsterdam The Netherlands CWI is the National Research Institute for Mathematics and Computer Science. CWI is part of the Stichting Mathematisch Centrum (SMC), the Dutch foundation for promotion of mathematics and computer science and their applications. Copyright © Stichting Mathematisch Centrum SMC is sponsored by the Netherlands Organization for P.O. Box 94079, 1090 GB Amsterdam (NL) Scientific Research (NWO). CWI is a member of Kruislaan 413, 1098 SJ Amsterdam (NL) ERCIM, the European Research Consortium for Telephone +31 20 592 9333 Informatics and Mathematics. Telefax +31 20 592 4199 Late-Breaking Pap ers of EuroGP-99 Edited by W.B. Langdon, Riccardo Poli, Peter Nordin, Terry Fogarty PREFACE This b o oklet contains the late-breaking pap ers of the Second Europ ean Workshop on Genetic Programming (EuroGP'99) held in Goteb org Sweden 26{27 May 1999. EuroGP'99 was one of the EvoNet workshops on evolutionary computing, EvoWork- shops'99. The purp ose of the late-breaking pap ers was to provide attendees with information ab out research that was initiated, enhanced, improved, or completed after the original pap er submission deadline in December 1998. To ensure coverage of the most up-to-date research, the deadline for submission was set only a month b efore the workshop. Late-breaking pap ers were examined for relevance and qualityby the organisers of the EuroGP'99, but no formal review pro cess to ok place.
    [Show full text]
  • Ornithopter from Wikipedia, the Free Encyclopedia Jump To: Navigation, Search
    Ornithopter From Wikipedia, the free encyclopedia Jump to: navigation, search Cybird Radio-Controlled Ornithopter An ornithopter (from Greek ornithos "bird" and pteron "wing") is an aircraft that flies by flapping its wings. Designers seek to imitate the flapping-wing flight of birds, bats, and insects. Though machines may differ in form, they are usually built on the same scale as these flying creatures. Manned ornithopters have also been built, and some have been successful. The machines are of two general types: those with engines, and those powered by the muscles of the pilot. Contents [hide] • 1 Early history of the ornithopter • 2 Manned flight • 3 Applications for Unmanned Ornithopters • 4 Ornithopters as a hobby • 5 Aerodynamics • 6 In popular culture • 7 See also • 8 References • 9 Further reading • 10 External links [edit] Early history of the ornithopter The idea of constructing wings in order to resemble the flight of birds dates to the ancient Greek legend of Daedalus (Greek demigod engineer) and Icarus (Daedalus's son). The Chinese Book of Han records that Xin Dynasty Emperor Wang Mang oversaw the earliest ornithopter flight test in 19 CE. One man said that he could fly a thousand li in a day, and spy out the (movements of the) Huns. (Wang) Mang tested him without delay. He took (as it were) the pinions of a great bird for his two wings, his head and whole body were covered over with feathers, and all this was interconnected by means of (certain) rings and knots. He flew a distance of several hundred paces, and then fell to the ground.[1] Among the first recorded attempts with gliders were those by the 11th century monk Eilmer of Malmesbury (recorded in the 12th century) and the 9th century poet Abbas Ibn Firnas (recorded in the 17th century); the reported flights were probably just glides and resulted in injury.[2] Roger Bacon, writing in 1260, was also among the first to consider a technological means of flight.
    [Show full text]
  • Corel Ventura
    EVOLUTIONARY ROBOTICS Mitchell A. Potter and Alan C. Schultz, chairs EVOLUTIONARY ROBOTICS 1279 Creation of a Learning, Flying Robot by Means of Evolution Peter Augustsson Krister Wol® Peter Nordin Department of Physical Resource Theory, Complex Systems Group Chalmers University of Technology SE-412 96 GÄoteborg, Sweden E-mail: wol®, [email protected] Abstract derivation of limb trajectories, is computationally ex- pensive and requires ¯ne-tuning of several parame- ters in the equations describing the inverse kinematics We demonstrate the ¯rst instance of a real [Wol® and Nordin, 2001] and [Nordin et al, 1998]. The on-line robot learning to develop feasible more general question is of course if machines, to com- flying (flapping) behavior, using evolution. plicated to program with conventional approaches, can Here we present the experiments and results develop their own skills in close interaction with the of the ¯rst use of evolutionary methods for environment without human intervention [Nordin and a flying robot. With nature's own method, Banzhaf, 1997], [Olmer et al, 1995] and [Banzhaf et evolution, we address the highly non-linear al, 1997]. Since the only way nature has succeeded in fluid dynamics of flying. The flying robot is flying is with flapping wings, we just treat arti¯cial or- constrained in a test bench where timing and nithopters. There have been many attempts to build movement of wing flapping is evolved to give such flying machines over the past 150 years1. Gustave maximal lifting force. The robot is assembled Trouve's 1870 ornithopter was the ¯rst to fly. Powered with standard o®-the-shelf R/C servomotors by bourdon tube fueled with gunpowder, it flew 70 me- as actuators.
    [Show full text]
  • Genetic Programming
    Lecture Notes in Computer Science 1802 Genetic Programming European Conference, EuroGP 2000 Edinburgh, Scotland, UK, April 15-16, 2000 Proceedings Bearbeitet von Riccardo Poli, Wolfgang Banzhaf, W.B. Langdon, Julian F. Miller, Peter Nordin, Terence C. Fogarty 1. Auflage 2000. Taschenbuch. x, 361 S. Paperback ISBN 978 3 540 67339 2 Format (B x L): 15,5 x 23,5 cm Gewicht: 567 g Weitere Fachgebiete > EDV, Informatik > Informatik > Logik, Formale Sprachen, Automaten Zu Inhaltsverzeichnis schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte. Preface This volume contains the proceedings of EuroGP 2000, the European Confer- ence on Genetic Programming, held in Edinburgh on the 15th and 16th April 2000. This event was the third in a series which started with the two European workshops: EuroGP’98, held in Paris in April 1998, and EuroGP’99, held in Gothenburg in May 1999. EuroGP 2000 was held in conjunction with EvoWork- shops 2000 (17th April) and ICES 2000 (17th-19th April). Genetic Programming (GP) is a growing branch of Evolutionary Computa- tion in which the structures in the population being evolved are computer pro- grams. GP has been applied successfully to a large number of difficult problems like automatic design, pattern recognition, robotic control, synthesis of neural networks, symbolic regression, music and picture generation, biomedical appli- cations, etc.
    [Show full text]
  • Vehicle Electronics & Connected Services 2018 11.4 Gothenburg
    11.4 & 12-13.4 Gothenburg – Vehicle Electronics & Connected Services 2018 11.4 Gothenburg Cooperation Day Sweden-Finland-France-Irland 12.00: Finland group meeting / lunch before the joint pre-meeting. 14.00: Registration 14.30: 1 hour introduction/presentation … companies from Finland, France and Ireland Automotive cluster Vehicle ICT Arena Telematics valley Lindholmen Drive Sweden Mobility X-lab 15:30-15.45: Short paus and coffee 15:45: 1,5 hours introduction Ab Volvo Volvo cars CEVT Autoliv/Zenuity 16:15: 1-2 hours networking Possible matchmaking 12-13.4 Gothenburg – Vehicle Electronics & Connected Services 2018 Program: http://insightevents.se/vehicle-electronics-connected-services/program-detailed/ Experts from companies: Day1 12.4.2018 08:30 Coffee & Registration 09:00-12:20 THE CHANGING DEMAND FOR AUTOMOTIVE Lars Stenqvist, Executive Vice President Group Trucks Technology, Volvo Group Roger Lanctot, Director, Automotive Connected Mobility, Global Automotive Practice Dr. Patrick Ayad, Partner and Global Head of Automotive and Mobility, Hogan Lovells Mikael Cato, Chief Digital Officer, Scania Sofia Granath, Director Digitalization, Autoliv Research Hans-Martin Duringhof, Vice President Engineering & Product Development, NEVS 13.30-17.20 TRACK1 TECHNICAL CHALLENGES AND SOLUTIONS Mohsen Nosratinia, Senior Software Developer for Automated Driving, Zenuity Lars Rosqvist, Senior Consultant, MathWorks Dan Gunnarsson, Team Lead Remote Software Update, BMW Niclas Nygren, Senior Director Strategy & Innovation, Software & Electronics, Volvo
    [Show full text]
  • Learning Biped Locomotion from First Principles on a Simulated Humanoid Robot Using Linear Genetic Programming
    Learning Biped Locomotion from First Principles on a Simulated Humanoid Robot using Linear Genetic Programming Krister Wol® and Peter Nordin Dept. of Physical Resource Theory, Complex Systems Group, Chalmers University of Technology, S-412 96 GÄoteborg, Sweden fwolff, [email protected] http://www.frt.fy.chalmers.se/cs/index.html Abstract. We describe the ¯rst instance of an approach for control programming of humanoid robots, based on evolution as the main adap- tation mechanism. In an attempt to overcome some of the di±culties with evolution on real hardware, we use a physically realistic simulation of the robot. The essential idea in this concept is to evolve control pro- grams from ¯rst principles on a simulated robot, transfer the resulting programs to the real robot and continue to evolve on the robot. The Genetic Programming system is implemented as a Virtual Register Ma- chine, with 12 internal work registers and 12 external registers for I/O operations. The individual representation scheme is a linear genome, and the selection method is a steady state tournament algorithm. Evolution created controller programs that made the simulated robot produce for- ward locomotion behavior. An application of this system with two phases of evolution could be for robots working in hazardous environments, or in applications with remote presence robots. 1 Introduction Dealing with humanoid robots requires supply of expertise in many di®erent ar- eas, such as vision systems, sensor fusion, planning and navigation, mechanical and electrical hardware design, and software design only to mention a few. The objective of this paper, however, is focused on the synthesizing of biped gait.
    [Show full text]
  • Lecture Notes in Computer Science 1598 Edited by G
    Lecture Notes in Computer Science 1598 Edited by G. Goos, J. Hartmanis and J. van Leeuwen 3 Berlin Heidelberg New York Barcelona Hong Kong London Milan Paris Singapore Tokyo Riccardo Poli Peter Nordin William B. Langdon Terence C. Fogarty (Eds.) Genetic Programming Second European Workshop, EuroGP’99 G¨oteborg, Sweden, May 26-27, 1999 Proceedings 13 Volume Editors Riccardo Poli University of Birmingham, School of Computer Science Egdbaston, Birmingham B15 2TT, UK E-mail: [email protected] Peter Nordin Chalmers University of Technology, Department of Physical Resource Theory S-412 96 G¨oteborg, Sweden E-mail: [email protected] William B. Langdon Centrum voor Wiskunde en Informatic Kruislaan 413, 1098 SJ Amsterdam, The Netherlands E-mail: [email protected] Terence C. Fogarty Napier University 219 Colinton Road, Edinburgh EH14 1DJ, UK E-mail: [email protected] Cataloging-in-Publication data applied for Die Deutsche Bibliothek - CIP-Einheitsaufnahme Genetic programming : second European workshop ; proceedings / EuroGP ’99, G¨oteborg, Sweden, May 26 - 27, 1999. Riccardo Poli . (ed.). - Berlin ; Heidelberg ; New York ; Barcelona ; Hong Kong ; London ; Milan ; Paris ; Singapore ; Tokyo : Springer, 1999 (Lecture notes in computer science ; Vol. 1598) ISBN 3-540-65899-8 CRSubject Classification (1998): D.1, F.1, I.5, J.3 ISSN 0302-9743 ISBN 3-540-65899-8 Springer-Verlag Berlin Heidelberg New York This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, re-use of illustrations, recitation, broadcasting, reproduction on microfilms or in any other way, and storage in data banks.
    [Show full text]
  • Liability for Damages Caused by Artificial Intelligence
    computer law & security review 31 (2015) 376e389 Available online at www.sciencedirect.com ScienceDirect www.compseconline.com/publications/prodclaw.htm Liability for damages caused by artificial intelligence * Paulius Cerka a, Jurgita Grigiene_ a, , Gintare_ Sirbikyte_ b a Cerka and Partners Advocates Bureau, Vytautas Magnus University, Faculty of Law, Department of Private Law, Kaunas, Lithuania b Cerka and Partners Advocates Bureau, Kaunas, Lithuania abstract Keywords: The emerging discipline of Artificial Intelligence (AI) has changed attitudes towards the Artificial intelligence intellect, which was long considered to be a feature exclusively belonging to biological Liability for damages beings, i.e. homo sapiens. In 1956, when the concept of Artificial Intelligence emerged, Legal regulation discussions began about whether the intellect may be more than an inherent feature of a AI-as-Tool biological being, i.e. whether it can be artificially created. AI can be defined on the basis of Risks by AI the factor of a thinking human being and in terms of a rational behavior: (i) systems that Respondeat (respondent) superior think and act like a human being; (ii) systems that think and act rationally. These factors Vicarious liability demonstrate that AI is different from conventional computer algorithms. These are sys- Strict liability tems that are able to train themselves (store their personal experience). This unique feature enables AI to act differently in the same situations, depending on the actions previously performed. The ability to accumulate experience and learn from it, as well as the ability to act independently and make individual decisions, creates preconditions for damage. Factors leading to the occurrence of damage identified in the article confirm that the operation of AI is based on the pursuit of goals.
    [Show full text]
  • United States Patent [19] [11] Patent Number: 5,946,673 Francone Et Al
    US005946673A United States Patent [19] [11] Patent Number: 5,946,673 Francone et al. [45] Date of Patent: Aug. 31, 1999 [54] COMPUTER IMPLEMENTED MACHINE Chris Gatercole & Peter Ross, “Dynamic Training Subset LEARNING AND CONTROL SYSTEM Selection for Supervised Learning in Genetic Program ming”, Feb. 25, 1994, pp. 1—10, Department of Arti?cial [76] Inventors: Frank D. Francone, 4806 Fountain Intelligence University of Edinburgh, Edinburgh EH1 1HN Ave., Suite 77, Los Angeles, Calif. 90029; Peter Nordin, Dacapo Ab UK. Torggatan 8, S-411 05 Gothenburg, Sweden; Wolfgang Banzhaf, Ackerstr, (List continued on next page.) 16 44575, Castrop-Rauxel, Germany Primary Examiner—Robert W. Downs [21] Appl. No.: 08/679,555 Attorney, Agent, or Firm—Arter & Hadden LLP; David G. [22] Filed: Jul. 12, 1996 Alexander [51] Int. Cl.6 .................................................... .. G06F 15/18 [57] ABSTRACT [52] US. Cl. .............................. .. 706/13; 395/81; 701/301 [58] Field of Search ................................ .. 395/13, 22, 81; In a computer implemented learning and/or process control 701/210, 301; 706/13 system, a computer model is constituted by the most cur rently ?t entity in a population of computer program entities. [56] References Cited The computer model de?nes ?tness as a function of inputs and outputs. Acomputing unit accesses the model with a set U.S. PATENT DOCUMENTS of inputs, and determines a set of outputs for which the 4,697,242 9/1987 Holland et al. ......................... .. 706/13 ?tness is highest. This associates a sensory-motor (input 4,821,333 4/1989 Gillies ............. .. 382/308 output) state with a ?tness in a manner that might be termed 4,881,178 11/1989 Holland et al.
    [Show full text]