Close
About
FAQ
Home
Collections
Login
USC Login
Register
0
Selected
Invert selection
Deselect all
Deselect all
Click here to refresh results
Click here to refresh results
USC
/
Digital Library
/
University of Southern California Dissertations and Theses
/
A biologically inspired DNA-based cellular approach to developing complex adaptive systems
(USC Thesis Other)
A biologically inspired DNA-based cellular approach to developing complex adaptive systems
PDF
Download
Share
Open document
Flip pages
Contact Us
Contact Us
Copy asset link
Request this asset
Transcript (if available)
Content
A BIOLOGICALLY INSPIRED DNA-BASED CELLULAR APPROACH TO DEVELOPING COMPLEX ADAPTIVE SYSTEMS by George Elias Zouein A Dissertation Presented to the FACULTY OF THE GRADUATE SCHOOL UNIVERSITY OF SOUTHERN CALIFORNIA In Partial Fulfillment of the Requirements for the Degree DOCTOR OF PHILOSOPHY (MECHANICAL ENGINEERING) May 2009 Copyright 2009 George Elias Zouein ii Dedication A Tribute to the Life and Memory of My Father, Elias Zouein. iii Acknowledgments Firstly I would like to express my deepest and utmost gratitude and appreciation to my Ph.D. advisor Yan Jin for his continual support and guidance throughout this journey. He has been an outstanding advisor who has taught me much not only about academia, but about life as well. He always respected my opinion and tried to see things from my point of view even when it conflicted with his own. Yan has always encouraged me to strive for logic, clarity, but more importantly to not only challenge the existing state-of-the-art, but also myself as well. Working with him on this project has showed me what people are truly capable of when they open their minds past the realm of standard thinking. I am a better person for having known you and I will forever be indebted to you. Next I would like to acknowledge my committee members: Dr. Ron Blackwelder, Dr. Dr. Stephen C-Y. Lu, Dr. Geoffrey Shiflett, Dr. Dave Wong, and Dr. Yong Chen. Their constructive criticism and advice allowed me to push this research into exciting and challenging directions. I would particularly like to thank Dr. Shiflett who also served as my undergraduate advisor for his guidance and mentorship early on in my academic career. He constantly pushed me to strive for better because he always believed in me, even at times when I did not believe in myself. I thank you sir for your friendship. It is something that I have and will continue to hold dear to me. iv Next I would like to thank the other members of the aerospace and mechanical engineering faculty who have had an impact on my academic career. Firstly I would like to thank my other Master’s Advisor, Dr. Paul Ronney for allowing me the opportunity to do meaningful research in his combustion laboratory. The invaluable lessons you taught me about research I have carried with me and applied them to this work and will carry and apply them to all my future projects. I would like to thank Dr. M. Oussama Safadi, who has been a great friend and mentor of mine since my sophomore year. If it were not for your caring advice, I honestly believe I would not be were I am today. I would also like to thank another of my former professors and friends, Dr. Sati Sadhal who was instrumental for me receiving my Ph.D. fellowship. Your confidence in me and support paved the way for this work. I would like to acknowledge my colleagues from the Impact Laboratory as well, who, through discussions have helped me add to and refine this work: Dr. Pawat “Tum” Chusilp, Dr. Mathieu Geslin, Dr. Wei Li, Dr. Qingfeng “Anna” Li, Dae-Hwan Kim, Majid Yahyaei, Winston Chiang, Chang Chen, Qianyu “Cherry” Liu. I would especially like to acknowledge the contributions which Hung Fu “Aaron” Chang has made to the simulation development phase of this research. The selfless generosity of his time contributed significantly to that aspect of the research. I thank you for your help and look forward to reading your dissertation soon my friend. v Finally I would like to thank my friends and family for their unconditional love and support. I would especially like to thank my brother Roni for showing me how to relax and enjoy life despite an extensive schedule both at school and work. I very much look forward to your graduation from medical school in the next couple of years. To my mom Dr. Georgette Zouein, I would not be the person I am had you not showed me the true meaning of courage, determination, and perseverance. Your selfless acts of love and compassion showed me that there was more to life than work. Thank you for your help and guidance not just during this Ph.D. journey, but throughout my life’s journey as well. Lastly to my dad Elias, my biggest supporter, my greatest mentor, at times my only friend, and always my hero. You not only showed me what it means to be a man, but more importantly what it means to be a human being. Your strength, honor, kindness, and love for your family, your friends, and to everyone around you instilled in me a sense of one’s greater overall self-worth. The person I have become today is because of the person who you were. Let this work serve as a testament to you, for had you not been in my life, none of this would have been possible. You were there with me for every step of this long and difficult road, and even though you are no longer with us to share in its conclusion, I know you are and will always be with me in spirit. You will live on in our hearts, forever. vi Table of Contents Dedication......................................................................................................................ii Acknowledgments........................................................................................................iii List of Figures ..............................................................................................................ix Abstract ........................................................................................................................xi Chapter 1: Introduction...............................................................................................1 1.1 Background and motivations ...............................................................................1 1.2 Research Questions and Approach ......................................................................4 1.3 Thesis Overview ..................................................................................................9 1.4 Thesis Organization...........................................................................................14 Chapter 2: Related work............................................................................................17 2.1 Introduction........................................................................................................17 2.2 Complex Adaptive Systems...............................................................................19 2.2.1 Self-Reconfigurable Systems....................................................................20 2.2.1.1 Modular Systems...........................................................................20 2.2.1.2 Heterogeneous Systems.................................................................23 2.2.2 Self-Organizing Systems ..........................................................................24 2.2.2.1 Self-Repairing Systems .................................................................24 2.2.2.2 Self-Assembling Systems..............................................................26 2.2.2.3 Self-Reproducing Systems ............................................................26 2.3 Engineering Design Theory and Methodology..................................................27 2.3.1 Systematic Design ....................................................................................27 2.3.2 Axiomatic Design .....................................................................................29 2.3.3 General Design .........................................................................................30 2.3.4 TRIZ .........................................................................................................30 2.4 Biologically Inspired Engineering.....................................................................32 2.4.1 Bio-Inspired Artifacts ...............................................................................33 2.4.1.1 Mobile Systems .............................................................................33 2.4.1.2 Immobile Systems .........................................................................38 2.4.2 Bio-Inspired Design Processes .................................................................40 2.4.3 Bio-Inspired Evolutionary Computation ..................................................42 2.4.3.1 Evolutionary Computation ............................................................43 2.4.3.2 Genetic Algorithms .......................................................................44 vii 2.4.3.3 Genetic Programming ...................................................................45 2.5 Conclusion .........................................................................................................46 Chapter 3: Self-Organizing System Design Framework (SOS Framework)........47 3.1 Motivation..........................................................................................................47 3.1.1 Divide and Conquer..................................................................................48 3.1.2 Limitations of D&C to Complex Systems................................................49 3.2 SOS Framework.................................................................................................51 3.2.1 Global Goals of SOS.................................................................................53 3.2.2 Modeling Challenges of SOS....................................................................55 3.3 Why Biology?....................................................................................................56 3.3.1 Two Assumptions .....................................................................................58 3.3.2 Added Benefits of a Biological Approach................................................58 3.4 Conclusion .........................................................................................................59 Chapter 4: cFORE, Cellular System Formation and Representation for Adaptive System Design .............................................................................................................60 4.1 Overview of the Approach.................................................................................60 4.2 Bio-Principle Extraction and Synthesis.............................................................60 4.2.1 Initial Goals ..............................................................................................60 4.2.2 Shortcomings ............................................................................................62 4.2.3 Procedure ..................................................................................................63 4.2.4 Biological Investigation Results...............................................................66 4.3 Bio-Concept Model and Applications to System Design..................................74 4.3.1 Introduction...............................................................................................74 4.3.2 Cellular Product Representation...............................................................76 4.3.2.1 mechaniCELLs..............................................................................77 4.3.3 Design DNA, dDNA and System Genome, sGenome ..............................80 4.3.4 dDNA vs. Function, Form.........................................................................93 4.4 Case Example: Cellular Chair Design ...............................................................95 4.4.1 Problem Description .................................................................................95 4.4.2 Cellular Chair Modeling and Design........................................................95 4.4.3 Simulation Results....................................................................................99 4.5 Conclusion and Remarks .................................................................................101 Chapter 5: Multi-Agent Cellular System Self-Growth and Reconfiguration.....102 5.1 Simulation Introduction...................................................................................102 5.1.1 Objectives ...............................................................................................102 5.1.2 Multi-Agent System................................................................................104 5.1.3 MASON Simulation Environment .........................................................105 5.1.4 Expected Results.....................................................................................106 5.2 Design Problem ...............................................................................................107 viii 5.2.1 Tying Biology to Engineering ................................................................111 5.3 Spider / Snake Simulation ...............................................................................114 5.3.1 Simulation Space ....................................................................................114 5.3.2 CPM Control Algorithm.........................................................................119 5.3.3 Simulation Results..................................................................................124 5.3.3.1 Initial Tests..................................................................................124 5.3.3.2 Spider / Snake Results.................................................................128 5.3.4 Discussions .............................................................................................131 5.3.4.1 Conflict Resolution .....................................................................135 5.3.4.2 Cellular Communication .............................................................137 5.3.4.3 MASON, JAVA and the CPM Algorithm ..................................139 5.3.4.4 Information of dDNA ..................................................................140 5.3.5 Conclusions.............................................................................................143 5.3.6 Limitation ...............................................................................................146 Chapter 6: Contributions and Future Direction ...................................................147 6.1 Contributions ...................................................................................................147 6.2 Future Work.....................................................................................................149 Bibliography..............................................................................................................151 Appendices ................................................................................................................168 A-1 Bio-Chair Protein Set .....................................................................................168 A-2 DNADemoWithUI Class................................................................................171 A-3 DNADemo Class............................................................................................173 A-4 Agent Class.....................................................................................................176 A-5 Cell Class........................................................................................................177 A-6 Input Class......................................................................................................182 A-7 Message Class ................................................................................................196 A-8 StopPoint Class...............................................................................................197 ix List of Figures Figure 2.1 Proposed and related research................................................................17 Figure 2.2 Complex adaptive system’s landscape ...................................................19 Figure 2.3 Bio-inspired engineering landscape........................................................33 Figure 3.1 Divide & Conquer approach through its layers of decomposition......48 Figure 3.2 D&C technique applied to Standard Systems and Complex Systems....50 Figure 3.3 The three cornerstones of the SOS Design Framework........................52 Figure 3.4 A biological system decomposition .........................................................57 Figure 4.1 Structure of cFORE .................................................................................60 Figure 4.2 Goals and procedure of cFORE ..............................................................61 Figure 4.3 Categorization of the various cells found in multi-cellular organisms 78 Figure 4.4 An illustration of a mechanical cell ........................................................80 Figure 4.5 A natural system’s lifecycle.....................................................................81 Figure 4.6 Multilayered dDNA structure .................................................................82 Figure 4.7 mechaniCELL chromosome....................................................................83 Figure 4.8 Multilayered dDNA matrix......................................................................84 Figure 4.9 Natural production process and its engineering analog .......................91 Figure 4.10 The multilayered dDNA structure with relationships to key design elements .......................................................................................................................94 Figure 4.11 Coordinate system with feeding location .............................................96 Figure 4.12 dDNA of a bio-inspired chair ................................................................97 Figure 4.13 SGP for bio-inspired chair.....................................................................99 Figure 4.14 Screenshots of self-assembly simulation.............................................100 Figure 4.15 Cellular expression of the soft function shown in light blue ............101 x Figure 5.1 MASON control window .......................................................................106 Figure 5.2 Spider / Snake simulation overview......................................................110 Figure 5.3 Simulation window with coordinate system ........................................115 Figure 5.4 mechaniCELL definition within simulation space..............................116 Figure 5.5 Spider dDNA...........................................................................................117 Figure 5.6 Cell face labeling scheme.......................................................................118 Figure 5.7 Snake dDNA............................................................................................119 Figure 5.8 CPM algorithm overview ......................................................................122 Figure 5.9 Algorithm test case.................................................................................125 Figure 5.10 Distance calculation .............................................................................125 Figure 5.11 Algorithm test case...............................................................................127 Figure 5.12 Spider / Snake demonstration (1 st Run) .............................................129 Figure 5.13 Spider / Snake demonstration (2 nd Run) ............................................130 Figure 5.14 Insect dDNA ..........................................................................................133 Figure 5.15 Spider / Insect demonstration .............................................................134 Figure 5.16 Undeveloped spider..............................................................................136 Figure 5.17 Blastula system lock .............................................................................141 Figure 5.18 Cellular expression of form with no function ....................................143 xi Abstract The development of most engineered systems usually involves large amounts of investment, yet their value may decrease significantly when operation environments change. The out-of-date systems are often discarded because upgrading usually costs more than replacing. While it has been recognized that system adaptability is required by both economical and mission-critical needs, there has been little research that explores and develops theories and methodologies for designing adaptive systems partly due to the traditional “static design” framing of engineering design problems. A general way to solve design problems is to “Divide and Conquer” the problem whereby the design is decomposed through its various hierarchical layers in the hopes that it becomes simpler to address and realize at the lower levels. The systems which the D&C approach is suited to be applied to are those systems with a limited level of complexity, i.e. statically connected system elements. Adaptability requires flexibility which calls for allowing system elements to have dynamic connections. Doing so results in an increase of system complexity because more information is required to define it. As a result, the D&C based approach may find its limitations when being applied to such complex systems because one may not even know where to begin dividing. In order to cope with the complexity problem of adaptive systems design and avoid potential limitations of the D&C type top-down approach, we explore a more bottom-up approach to design. The basic idea of this approach is two-fold. First, to allow a system to exhibit adaptability the system must be able to self-organize xii itself in case of situational changes. Second, for an adaptive system to maintain its designated functionality, it must possess mechanisms that allow the system to keep its functional information and regulate its self-organizing process. We develop and discuss a Self-Organizing System Design Framework or SOS Framework for the development of adaptive systems and draw insights for it from principles and concepts extracted from biology. In this dissertation we expand one facet of SOS by developing an artificial DNA-based Cellular Formation Representation framework (cFORE) for representing and constructing artificial systems in a manner which mimics biological systems. One of the key issues in achieving high adaptability in artificial systems is how to dynamically capture, represent and apply design information pertaining to the designed functions and changing environmental situations. Biological DNA in natural systems plays the key role in keeping, maintaining and transferring such “design information” within and between individuals. Resembling biological DNA, we developed an “artificial DNA” called dDNA (Design DNA) which maintains design information and provides an avenue for generating new designs adaptively. In this dissertation, we present a discussion of the overall SOS framework along with the modeling of its first facet, cFORE. A simple case example along with a more detailed multi-agent based computer simulation study is provided to demonstrate the power of SOS and cFORE towards the development of mechanical self-organizing cellular adaptive systems. 1 Chapter 1: Introduction 1.1 Background and motivations The development of most engineered systems usually involves large amounts of investment. Yet the value of these systems may decrease significantly as the requirements and operation environments change over time. The out-of-date systems are often discarded because upgrading them may cost more than buying new ones. For the systems of special missions, such as space exploration vehicles and military robots, the system’s capability of adapting to the situations of unpredictable events, e.g., malfunctions and being incapacitated by enemy fire, is often the key for accomplishing the planned missions. While it has been recognized that system adaptability is required by both economical and mission-critical needs, there has been little research that explores and develops theories and methods for designing adaptive systems partly due to the traditional “static design” framing of design problems. System design is a field of science concerned with the process of developing and defining the architecture of a system including its sub-systems, parts, components, and their associated interfaces. Traditional approaches to design range from loose heuristic based approaches to more formal techniques. A general way to solve design problems is to “Divide & Conquer” the problem whereby the design is decomposed through its various hierarchical layers in the hopes that it becomes simpler to realize at the lower levels. Divide & Conquer in the traditional sense is typically applied to the 2 design of systems with deterministically or statically connected elements throughout the system’s various layers. The need for statically connected elements is a necessity in Divide & Conquer as system decomposition becomes near impossible without as one would not even know where to begin dividing. The result of designing and developing systems in such a manner are systems with rigidly defined hierarchies, specifically at the hard linked component level. Such a development strategy does not allow systems to cope with changing or unknown requirements because adaptability requires flexibility. Increasing system flexibility implies relaxing the rigid links which bond a system together through shifting the interconnection paradigm of system elements from static and deterministic to dynamic and non-deterministic. This notion is built upon the Law of Requisite Variety which states that the more states (variety) a system is capable of possessing, the more requirements it is capable of achieving and the more disturbances it is capable of rejecting (Ashby 1956). An important consequence of doing so is that the complexity of the system increases because more information is required to define it. Complexity in this context is defined as the information required to describe and characterize a system including all of its composing elements and their interrelations. Therefore the introduction of more complexity into the system is regarded as a necessity to increasing a system’s adaptability. This somewhat counterintuitive notion is seen again from Ashby (1956), who states that in order for a system to be capable of surviving in a complex environment, the level of complexity of the system must 3 increase to at least the same level as its environment. Thus an increase in the system’s complexity is critical in achieving a system robust enough to handle a complex environment and with enough variety to adapt to its changes (Ashby, 1956). As a result, the Divide & Conquer based technique may find its limitations when being applied to such complex system design. D&C requires systems to have a limited amount of complexity, i.e. statically connected elements, such that one may be capable of decomposing the system through its various layers in a top-down fashion. But since system complexity is increasing, complete decomposition may be difficult to achieve. Hence the need for the development of a new approach arises. In order to cope with the complexity problem of adaptive system design and avoid potential limitations of the D&C type top-down approach, we explore a more bottom- up approach to design. The basic idea of this approach is two-fold. First, to allow a system to exhibit adaptability the system must be able to self-organize itself in case of situational changes. Second, for an adaptive system to maintain its designated functionality, it must possess mechanisms that allow the system to keep its functional information and regulate its self-organizing process. Self-organizing systems are defined as systems whose internal components organize and arrange themselves through a process of attraction or repulsion without being guided by an outside source. Our conviction is that systems which self-organize have the added benefits of being more adaptive and resilient in the face of change. 4 Self-organization is seen in many areas of science including the formation of the universe, chemical compounds, molecules and the like. This formation strategy which we call “universally-based” design is an almost purposeless process whereby entities form as a result of purely the self-organization of their composing elements. On the contrary, physical or “human-based” design is a functionally driven process which is very purposeful in the sense that the produced systems are created as a result of strict requirements defined by customers. These two types of design processes are on opposite ends of the design spectrum. Therefore in developing this new approach, which on the one hand should be purposeful while on the other should have elements of self-organization, we needed to find an appropriate balance between the two. “Biologically-based” design is that balance. This type of design is minimally purposeful in that most of the systems produced simply try to fulfill one purpose, survival. Yet this approach still maintains some aspects of guided (DNA-based) self- organization seen in cellular interactions. As such, to develop and validate our position we have turned to biological systems for insight and inspiration. 1.2 Research Questions and Approach In our research on design of adaptive systems, we take a biological synthesis approach. The basic ideas behind this approach can be described as follows. First, natural systems including animals and plants are highly adaptive to their changing environments and can be viewed as the ultimate adaptive systems. The principles and mechanisms employed by these biological systems provide us both inspirations and 5 insights for our research on adaptive systems. Second, common to all biological systems, cellular structure is indispensable for these systems to grow, reproduce, and adapt. To design and create highly adaptive engineered systems, we need a cellular or cell-based product definition framework that treats a product as a composition of cells or cellular components as opposed to the components in the traditional sense. Lastly, one of the key issues in achieving high adaptability is how to dynamically capture, represent and apply design information pertaining to the designed functions and changing environmental and operational situations. Biological DNA in natural systems plays the essential role in keeping, maintaining and transferring such “design information”, i.e., genome, within and between individuals. Resembling biological DNA, we need to develop a rich artificial design DNA scheme that can be used to capture and maintain design information throughout the product lifecycle. In this research, a mechanical lifelike cellular adaptive system, which can be called CAS for short, is a system that ideally (1) can adapt to the changes of the system itself and those of the environment by following mechanisms that are similar to those found in biological systems (e.g., animals and plants) and (2) is formed based on a finite number of limitedly heterogeneous (i.e., only a small number of types of) mechanical cell components. As basic mechanisms for adaptation, the capability of growing or making part or the whole of the system itself is unique to CAS. We contemplate that to make such lifelike CAS an effective reality, both the structure of system form and the process of system formation (or construction) should resemble those of general 6 biological forms. This contemplation calls for a biology based system engineering theory and associated methodologies. Similar to real life forms, a CAS should be able to grow itself in order to attain functional capabilities. Unlike real life forms, however, a CAS does not need to grow from scratch. It can be given a common basis, similar to the concept of an embryo, and the growing capability can be built onto the basis. The requirement of self-growth implies that the design of the system must be carried by the system in a similar way as real life forms carry their genome via DNA. We can call such design information system genome, or sGenome for short, and the information carrier design DNA, or simply dDNA. It is envisioned that the dDNA of a CAS can be altered either purposefully or by accident. The result of altering the dDNA can be catastrophic loss of functions or creation of new functions. It is further considered that a new sGenome, thus a new CAS, can be created by composing a set of given dDNAs. Successful dDNA compositions can lead to new functional CASs. It can be seen that the dDNA is the basis for both growing and reproduction. All life forms are constructed by cells. The cellular structure of these life forms plays a chief role in determining the capabilities of self-growing, reproduction, and adaptation. We consider that for a CAS to have the similar capabilities, they must exhibit some kind of cellular system structure. In biological systems, a cell has three basic functions, namely, cell growth and metabolism, cell creation (or cell division), 7 and protein synthesis. For our mechanical analog, determining what functions a synthetic cell should perform and how they should be performed is a fundamental research question. We hypothesize that a synthetic cell in a CAS should be able to store and apply or convert energy, process information (i.e., capable of sensing signals and generating responses), and perform functions designated by its corresponding dDNA. The ultimate goal of this class of research, of which this particular work is a foundational facet, is the development of a mechanical life-like cellular adaptive system capable of self-invention, self-growth, and reconfiguration as a means of attaining and maintaining required designated functionality. The primary objective of this research is to develop an artificial DNA based cellular system representation scheme which will be used as a vessel in later research in the development of CAS as a means of increasing the adaptability of engineered systems. As the first step towards this goal, we introduce the concept of a cellular adaptive mechanical system and present and demonstrate a DNA-based design and product representation framework that maps biological concepts and processes into mechanical products and processes. Furthermore, we initiate the development of the self-growth and reconfiguration aspects of CAS through inspirations attained from parallel biological phenomena. 8 The key research issues to be addressed are as follows: (1) To what extent can we apply the concepts and processes of biological systems to the development of adaptive mechanical systems? (2) What are the characteristics that determine the adaptability of such mechanical lifelike cellular adaptive systems? (3) What are the technological issues and requirements for realizing such lifelike cellular adaptive systems? Academic Objectives The academic objectives of this research are therefore as follows: (1) To develop a new design framework based on self-organization principles inspired by biology which address issues of adaptive systems design. (2) To investigate and understand the field of biology with respect to biological system design and development, system composition (both at the micro scale and macro), system representation, design information representation and retention, system to environment interaction and system to system interactions. (3) To model the design information comprising the field of system design, such as function, form and behavior based upon the information and principles extracted from biology. (4) Validate the proposed framework with a computer based simulation study demonstrating the capability for system self-growth and reconfiguration. 9 1.3 Thesis Overview The contributions of this research relate to both the fundamental understanding of biological system design and the ways in which they may be applied to engineering system design in order to ultimately produce a new class of life-like adaptive systems. System design is a fairly old discipline with many significant findings and applications. One of the most significant methodologies applied to this area is as discussed previously, the Divide and Conquer approach which involves the division of an overall design into simpler tasks in the hopes that the simpler tasks are easier to address and solve. The study of biology is one of the oldest research areas of the scientific community. Bio-inspired engineering as a field of study is an emerging area of research and science which blends engineering with biology. But most work conducted in this field is strictly conducted on mimicking local desired mechanisms found in biological systems rather than digging deeper into biology in order to gain a better understanding of the global principles which govern those mechanisms. The results of such work are synthetic systems which are almost identical copies of their biological counterparts. The work which will be presented in this thesis differs from such endeavors in that we have identified those global principles and applied them to the development of a general system representation framework which ultimately will be applied towards the design and development of a new class of adaptive artificial systems. 10 Although a few design methodologies are available which attempt to unify biology with engineering design, they are lacking in the level of thoroughness which they include. A methodology called BIO-TRIZ developed by Julian Vincent and his colleagues (Vincent and Mann, 2002; Bowyer et al., 2003; Vincent et al., 2005; Vincent et al., 2006a) look to combine biological principles into the TRIZ matrix in order to provide engineering designers with biological solutions to their design conflicts. This methodology is not a process which a designer may apply in the development of a complete system; rather it is mainly a conflict resolution technique based upon biology. Another methodology developed by Lily Shu and her colleagues (Vakili and Shu, 2001; Shu, 2002, 2004; Shu et al. 2003) look to provide designers an avenue for the proper selection of biological systems to emulate. This research is useful because it provides designers a quick means of selecting biological systems based upon the characteristics of their design. But again this approach differs from the one which will be presented in that it does not provide the designer a framework for the complete design of their system; rather it is a biological selection aid tool. In this research we started by investigating biology because of the self-organizing traits found governing its systems as well their keen ability of adapting to change. We built our framework around the two key principles found exclusively in biological systems: cellular structure and DNA. These two concepts are lacking in modern 11 engineering systems and we believe that when coupled together will provide artificial systems with the adaptive prowess which biological systems possess. This thesis contains a detailed description of cFORE (Cellular System Formation and Representation) which is a powerful representation framework based on cellular structure and DNA created as the first step of addressing the issues of adaptability in system design. This framework attempts to unify the two distinctly different worlds of engineering systems and biological systems by extracting key concepts unique to each and synergizing them to form a new class of systems. Modeling the information extracted from biology in a way which is useful to engineers developing adaptive systems is a difficult challenge. Furthermore, blending this information with concepts unique to artificial systems such as function, form and behavior is also equally as challenging. Biology does not have a strict definition for function, form, and behavior per se, thus tying these critical concepts with unique biological elements is key for adding value to the new approach. This thesis focuses extensively on the background research which serves as cFORE’s foundation as well as the elements which the representation scheme is built upon. A detailed discussion is also provided of the overall design methodology, called the SOS Design Framework, in which cFORE is only one of its three cornerstones. The SOS Design Framework is presented in response to the possible limitations faced by the D&C approach with regards to adding complexity towards the design of adaptive systems. The framework is validated through a simulation based study which demonstrates the capability of growth of a 12 mechanical system similar to how biological systems develop and grow through the use of the cFORE representation scheme. The simulation is represented as a multi- agent system whereby each interacting cell of the system is characterized as an intelligent agent whose actions and interactions are governed by a biologically inspired decentralized control algorithm based upon morphogenesis with top-level guidance through DNA. Furthermore, since the mechanical system’s representation is achieved through a cellular strategy, reconfiguration is also investigated as a means of achieving greater functionality in increasing a system’s adaptability. The knowledge created through the simulation has given us insights into mechanical system design and development as well as biological systems. The application domain which we believe this research can best be applied to are those systems with either minimal or no human contact during their product life-cycles. Current trends in scientific research have shifted towards planetary exploration of such planets as Mars amongst others in our solar system. Much time, energy and funding has been focused on the development of those systems, such as exploration robots for example, which are capable of autonomously surveying and exploring unknown areas for the purposes of advancing our fundamental knowledge. Such systems pose an interesting challenge to engineering designers as often times the development team is required to develop a system without knowing the exact environment, i.e. requirements, the system is to be operating in. In this regard, the success of such missions rests solely on the capability of these systems to meet many unknown 13 requirements based upon pre-designed functions which the designers believe such a system may need. The key for success of such systems lies in their adaptive prowess, namely the more adaptive they are the greater is their likelihood for success. Many of these systems such as the Spirit and Opportunity Mars rovers developed at JPL are engineering systems designed and developed in the traditional static system composition sense discussed earlier. Mobility of these systems is often achieved using wheels in various configurations. As such these systems are highly specialized to the area in which they are designed to explore and map. Encountering a terrain where wheels no longer offer a viable mode of transportation, such as a steep incline or decline for example, results in either failure of the system to resume exploring that area or continuing with the possible risk of catastrophic system damage. Similarly in the situations where fitting through a tight crevice or hole is desired, possibly in between two giant boulders for example, the system would simply not be unable to it as it is limited by its statically defined system volume. One possible avenue available to meet such demands of changing or unknown environments is through system reconfiguration requiring a non-deterministic system composition. We feel that ideally a system utilized for space exploration need not be built on earth and sent to its respective exploration site based upon the requirements which the designers believe could be encountered. Rather it would be desirable to send a collection of cells to the exploration site and allow them to self-configure and self-grow based upon dynamic recognition of the encountered environmental 14 requirements. Furthermore, since such a system has the capability of self-growth, it should further have the capability of reconfiguring when its environment changes. Hence in the situation where an incline or decline is encountered, the system can reconfigure to a system with legs capable of walking either up or down the encountered terrain. In the situations where fitting through a tight crevice or hole is required, the system can reconfigure to form a snake. It is important to note though that in this research we do not design a robotic system per se; rather our aim is to develop and demonstrate the capability of a mechanical system to achieve self-growth and reconfiguration which ultimately may be applied to such robotic exploration systems. The demonstration is achieved through a simulation study of the self-growth capabilities of a mechanical system (defined by dDNA) from a collection of cells in a manner similar to how biological systems develop and grow. We further investigate the system’s adaptive capability through the reconfiguration of its cells as a means of meeting changing environmental requirements. The knowledge which we attain from the simulation studies will serve as the foundation of future research which will deal with the development of physical systems capable of producing the same results as demonstrated in the computer-based ones. 1.4 Thesis Organization Chapter II: Related work This chapter presents a thorough literature review of the relevant work done in three specific areas this doctoral work is built upon: biological studies, complex adaptive systems, and engineering design. With our goal of designing a new class of adaptive 15 systems, we discuss significant results attained in each discipline and suggest the benefits of synthesizing them into a common framework. The legitimacy and benefits of proposing such a new approach are discussed and demonstrated at the end of the chapter. Chapter III: Self-Organizing System Design Framework (SOS Framework) This chapter discusses the overall proposed design framework in which the contributions from this research comprise the complete development of one of three major cornerstones. A discussion of our motivations, limitations of current approaches and expected results are presented. Chapter IV: cFORE, Cellular System Formation and Representation for Adaptive System Design In this chapter we outline the process which we have gone through in developing the first cornerstone of the SOS Design Framework, namely the Cellular System Formation and Representation (cFORE) component. We discuss the procedures followed in extracting fundamental concepts and principles synthesized from biology. We outline the methods used in their transformation and application to the area of system design. We present our model including all relevant definitions and concepts and demonstrate its use through a simple case example of the growth of a bio-inspired chair. 16 Chapter V: Multi-Agent Cellular System Self-Growth and Reconfiguration This chapter discusses the initial development of an important component of the second cornerstone of the SOS Design Framework, namely the morphogenesis system formation rule set associated with the self-organizing algorithms for self-design / adaptation facet. An investigation through a JAVA-based MASON simulation study is conducted as a means of demonstrating the power of SOS and cFORE towards the development of self-organizing complex engineering systems as well as reconfigurable adaptive systems. The insights generated from this process has given us substantial knowledge towards the creation of more life-like adaptive mechanical systems as well as a greater understanding behind the development of biological systems. These findings along with other key observations and conclusions will be presented. Chapter VI: Contributions and Future Direction This chapter concludes the dissertation with a discussion of the major contributions of the research along with its possible extensions and also with suggestions of future directions of interest. 17 Chapter 2: Related work 2.1 Introduction Our work is built upon three research cornerstones that have been extensively investigated for the purposes of drawing concrete results from. As this research looks to develop a new class of adaptive systems based upon biological systems, the work is strongly related to the field of biologically inspired engineering. In addition to this field our work is also connected to the field of complex adaptive system design. Finally our research bares a strong relation to the field of engineering design theory and methodology. Much insight was drawn from these fields and it was this inspiration which allowed us to transform our idea into a research thesis. A graphical representation of interrelation of these fields and the emergence of our research may be seen in figure 2.1. Figure 2.1 Proposed and related research Complex Adaptive Systems: This area is concerned with the development of artificial system capable of environmental adaptation based upon the concept of Engineering Design Theory and Methodology Engineering Design Theory and Methodology Proposed Research Proposed Research Proposed Research Proposed Research Bio-Inspired Engineering Bio-Inspired Engineering Bio-Inspired Engineering Bio-Inspired Engineering Complex Adaptive Systems Complex Adaptive Systems Complex Adaptive Systems Complex Adaptive Systems 18 reconfiguration. Reconfiguration is a process by which a system’s composing elements are able to either fully or semi autonomously reconfigure into required geometries based upon changing environmental conditions. Engineering Design Theory and Methodology: This is area is concerned with the development of theories and methodologies which may aid the designer in the development of systems or processes. Engineering design is often an open ended problem with no clear cut solutions, therefore without proper guidance the complexities associated with it as a process may often produce great difficulties for the completion of the required tasks by an engineer or a collaborative team. Biologically Inspired Engineering: This area of research is concerned with the development of engineering systems and processes based upon principles and methods extracted from the natural world. A majority of the work done in this area is, as previously discussed, based upon one-to-one single mechanism emulation. Work in such an area involves the development of artificial systems based upon animal locomotion such as walking, running, jumping, flying, swimming and undulating. A small portion of work in this area, which will also be presented, involves the application of biomimetics towards the understanding and application of biological principles to engineering design. Finally a thorough discussion will be presented on evolutionary principles and genetic algorithms as they pertain to system design. 19 In the following sections we present the results of the reviews from each of the fields discussed when developing our approach to adaptive system design. We will first discuss innovative systems capable of adaptability based upon a unique characteristic of system reconfigurability. Next we will discuss the most prevalent approaches and methodologies found in the field of engineering design theory. Finally we will discuss accomplishments in biologically inspired engineering which pertain to system design, design process development and evolutionary approaches to system’s development. 2.2 Complex Adaptive Systems The area of complex adaptive systems has come about because of the need for autonomous artificial systems to be capable of dynamically adapting and reacting to a changing environment while still performing their predefined tasks. The magnitude of such systems to remote exploration tasks, missions of special importance such as for example military applications has become an area of growing attention. The sections to follow will discuss the various types of complex adaptive systems. The landscape of complex adaptive systems may be seen in figure 2.2. Figure 2.2 Complex adaptive system’s landscape Complex Adaptive Systems Self- Reconfigurable Systems Modular Systems Heterogeneous Systems Self-Healing Systems Self-Repairing Systems Self-Assembling Systems Self-Reproducing Systems 20 2.2.1 Self-Reconfigurable Systems The general definition of the term reconfiguration is that of the change of shape or restructuring of an object. As a means of adaptation, natural systems have used reconfiguration as a tool to maintain survival. As a way of attaining food, escaping from predators and surviving the elements, reconfiguration has been notoriously used in the natural world. Common examples of this behavior include: amoebas reconfiguring to create food vacuoles around their prey, or frogs pumping themselves full of air to enlarge their stature to scare potential predators, or humans huddling “chest to knee” as a means of staying warm. 2.2.1.1 Modular Systems By definition, most organic systems fall under the classification of modular systems because most are composed entirely of identical cells each with a particular level of functional complexity. Much of the early work in the late 80’s and early to mid 90’s looked to apply a modular strategy to the formation of systems because of the recognition of the previously discussed advantages such an approach provided. One of the earliest attempts at a fully autonomous modular robotic system was from the team of Fukuda and Nakagawa from the University of Tokyo. In their work (Fukuda and Nakagawa, 1987, 1988a) the team introduced and discussed the methods and technologies for the realization of such systems. Addressing these points the authors in Fukuda and Nakagawa (1988b) developed a dynamically reconfigurable robotic system known as DRRS. Jumping roughly ten years we move to the next significant modular robotic system from MIT called the Molecule. In Kotay et al. (1998) the 21 authors explored autonomous reconfigurable modular robotics by constructing systems based upon chemistry whereby complicated structures can be built from simple molecules. In their later work (Butler et al., 2002a) the team develops a generic decentralized locomotion algorithm for self-reconfigurable robots based upon the notion of cellular automata using geometric rules to control module actions. The next system we will discuss is called I-Cubes from Carnegie Mellon University. The authors in Unsal et al. (1999, 2001) and Unsal and Khosla (2000) focused on creating a very simplistic system and testing to see whether they can fully realize the full potential of this class of systems. The elements are a set of active links and passive cubes. Active elements are “capable of attaching / detaching from / to the passive elements (cubes), which can be positioned and oriented using links.” The subsequent system which will be presented is PolyBot, a system developed at the Xerox Palo Alto Research Center. PolyBot has gone through several updates over the years (Yim, 1993, 1994; Casal and Yim, 1999; Yim et al., 2000, 2002) but acquired notoriety by being the first robot that according to the authors “demonstrated sequentially two topologically distinct locomotion modes by self configuration.” The idea behind PolyBot is that although each unit cannot accomplish much by itself, many units when organized properly, can accomplish relatively complex tasks. The next system developed at MIT known as a Crystalline Robot looks at reconfiguration in a slightly different manner. Conventional homogenous systems 22 reconfigured by moving individual units across the surface of the structure. This process is both time consuming as well as logistically difficult. In Rus and Vona (1999, 2000, 2001) the authors discuss their system as being more of an “amoeba” like structure, where the changes and transformations take place internally through contraction and expansion of the entire body. The “crystalline” modules are small cubes which are capable of expanding to twice their size using internal motors and a rack and pinion system, contracting (2 inches on each face) or expanding (4 inches on each face). The final system which will be presented in this section is SuperBot from the University of Southern California’s Information and Sciences Institute. SuperBot (Shen et al., 2006) contains design elements from the group’s previous generations of adaptive systems M-TRAN, CONRO, ATRON (Castano et al., 2000; Castano and Will, 2000; Stoy et al., 2002; Shen et al., 2002). SuperBot is composed of a series of homogeneous modules each of which has three joints and three points of connection. Using a simulation system called Galina which the team developed the authors were able to establish six practical modes of movement including rolling, walking and climbing of slopes up to 40 degrees. Control of SuperBot is naturally inspired and achieved through what the authors describe as the “hormone” control algorithm (Shen et al., 2000a, 2000b, 2002; Salemi et al., 2001). 23 2.2.1.2 Heterogeneous Systems Heterogeneous self-reconfiguring system research on average has not been as popular as research on modular systems for the simple reason that heterogeneous systems do not provide the same level of adaptability as modular systems. More of a restriction is placed on such systems as far as component pairings because physically there are only so many different components which are capable of docking with one other; therefore what results is a somewhat constrained system. Although it is more difficult to achieve adaptability with heterogeneous systems, often times what results is a much more functionally capable system than its modular counterpart. Some of the earliest work in this area can be seen in (Beni, 1988; Hackwood and Wang, 1988). In the work (Beni, 1988) the author looked to lay some groundwork for this type of research because at the time it was still relatively new. Beni recognized the importance of having a robotic system that, regardless of being heterogeneous or homogenous, had decentralized control. Beni outlines what he calls a Cellular Robotic System (CRS). The CRS is a completely conceptual model of a robotic system. It relies on the fundamental definition of a robot system as something that can “process both information as well as matter.” The three main fundamental properties of the conceptual CRS model are: Heterogeneity, Kinetics, and Asynchrony. Some of the later work in this area includes Iagnemma et al. (2000) which focused on Jet Propulsion Laboratory’s Sample Return Rover (SRR), and analyzed how SRR’s reconfiguration could improve its stability and ground traction. The SRR was capable 24 of “reconfiguring” in the sense that it had the ability to reposition its center of mass. The final work which will be discussed in this section was that of Fitch et al. (2003) which focused on the development of the necessary algorithms for heterogeneous system reconfiguration. Their models of a heterogeneous system are known as a “sliding cube model,” where each component is heterogeneous only in the fact that it is assigned a specific type or class (physical size and characteristics are the same among components). 2.2.2 Self-Organizing Systems A self-organizing system is one whose internal components through a process of attraction or repulsion organize and increase their complexity without being guided by an outside source. Self organization is readily seen in biology, chemistry, economics, human society, cybernetics, and artificial systems. The systems elaborated upon further pertain to the area of self-organizing artificial systems. 2.2.2.1 Self-Repairing Systems Self-repairing systems have become an increasingly popular sub-field of research into adaptive systems. Self-repairing artificial systems have deep rooted principles and draw a great deal of inspiration from organic systems. As a concept, adaptability is strongly dependant upon whether or not a system is able of repairing itself. Namely, the greater is a system’s self-repairing capability, the more adaptive it is. Self-repair comes in many forms from the more unconventional regeneration abilities of certain lizards, to the more mundane healing of cuts by scabbing in human beings. It is safe 25 to say that most, if not all, natural systems exhibit some form of self-healing capability and it is because of their great ability to adapt that such a field has begun to gain popularity. Much of the work done in this field can be co-categorized within the realm of reconfigurable systems, both modular and heterogeneous which were discussed in the previous sections. Reconfiguration is often a tool which intelligent systems use to adapt and “repair” themselves by means of reorganization of working components in order to still achieve desired system goals. Therefore much of the work conducted in the areas of reconfigurable systems actually also dealt with the ideas of self-repair, and for the purposes of minimizing repetition will not be discussed any further. One particular work which was not previously discussed regarding self-repair will be presented here because of its unique method of achieving self repair. The work discussed in Bongard et al. (2006) describes a robotic system capable of autonomous damage recovery through an active process called “continuous self-modeling.” The authors developed a four-legged machine which uses “actuation-sensation relationships to indirectly infer its own structure, and it then uses this self-model to generate forward locomotion. When a leg part is removed, it adapts the self-models, leading to the generation of alternative gaits,” which allow the robot to continue moving forward even after damage has occurred. 26 2.2.2.2 Self-Assembling Systems The early origin of self-assembly according to Whitesides and Grzybowski (2002) were rooted in organic chemistry and has become a rapidly growing field for two key reasons. The first reason being that as a concept it is critically important for understanding the structures in biology. And secondly it is one answer to the problem of structural synthesis of elements larger than molecules. According to Whitesides and Boncheva (2002) since this field is largely related to chemistry and biology, quite a few examples on molecular self-assembly may be found (Desiraju, 1989; Evans and Wennerstrom, 1999; Jones and Chapman 1995; Thomas, 1999; Kuman et al., 1995; Grantcharova et al., 2001; Neidle, 1999; Bongrand, 1999). Influenced by biology much of the non-biological work found in this field is conducted at the micro and nano-scale levels (Hosokawa et al., 1996; Oliver et al., 2001; Tien et al., 1998; Vauthey et al., 2002). 2.2.2.3 Self-Reproducing Systems Self-reproducing systems according to Zykov et al. (2005) systems are “systems capable of constructing a detached, functional copy of themselves.” This definition slightly differentiates self-assembly from self-reproduction whereby the “resulting system is not able to make, catalyze or in some other way induce more copies of itself.” Self-reproducing systems have been largely investigated in simulation (Bulter et al., 2002b; Mytilinaios et al., 2004; Rubenstein et al., 2004). According to Zykov et al. (2005), “to date, physical machine self-reproduction was shown by Penrose (1959) using tumbling wooden tiles and by Chirikjian (2002) using a two-dimensional 27 machine comprising four different components that are assembled by following tracks.” In both of these works, the issue of scalability is discussed, in particular scaling up these systems would require a significant redesign of each system’s composing elements. In Zykov et al. (2005) the authors address the issue of self- reproduction and scaling with the development of their modular system. Each module is a 10cm cube split into halves (along the diagonal of the cube) allowing each half to swivel about the other in increments of 120 degrees. The system was successfully tested to reproduce a 4-module version of itself by assembling from a feeding station in 2 minutes and 34 seconds. 2.3 Engineering Design Theory and Methodology Engineering design theory and methodology is a crucial process which engineers of all disciplines must undertake. System development times rely on the efficiency of such a process. The quicker one is able to design and develop a product, the quicker one is able to get it to market and, in theory, the more profit one will make. As such, there are quite a few design theories and methodologies available for engineers to use. 2.3.1 Systematic Design Systematic Design (Pahl and Beitz 1996) was developed based the observations made through years of engineering design practice. Design is approached from a systematic as well as a practical point of view. It provides insights into the design process from the early design stages, where the design problem is not clearly defined, all the way to the later stages of the design where the details of the design are well known. The 28 design process is divided into four components, which include the planning and clarifying the task phase, the conceptual design phase, the embodiment design phase, and finally the detailed design phase. Step 1 Planning and Clarifying the Task: In accordance with the market need, the company and the economy, production planning must be conducted as a search and survey for product ideas. Clarification of the task requires information collection regarding product requirements and existing constraints and their requirements. Step 2 Conceptual Design: This phase determines the principle solutions by essential problem abstraction, functional structure establishment, searching for suitable working principles to fulfill sub-functions, combining those principles into working structures, choosing appropriate combinations, principle solution variants are firmed up, and criteria evaluation of principle solutions. Step 3 Embodiment Design: Starting from the working structure, the design is developed in accordance with economic and technical criteria. This phase results in layout specifications. Step 4 Detail Design: The results of this phase are specifications of production. This phase consists of a specification of dimensions, forms, arrangements, and surface properties of all individual parts, production possibilities, material specification and estimated costs. 29 2.3.2 Axiomatic Design Axiomatic design is a system design methodology developed by Nam P. Suh (1990, 2001) to systematically analyze the transformation of a customer need to a product or system which fulfills that need. Suh describes the process as an interplay between four key domains, which include, the customer domain, the functional domain, the physical domain, and the process domain. Customer needs (CNs) give rise to functional requirements (FRs) which are subsequently satisfied by design parameters (DPs). Process variables (PVs) finally relate the design parameter to a manufacturing process. The framework also consists of two axioms called the independence and information axioms. Zig-zag mapping is carried out from left to right between the four domains with top-down decompositions conducted with the boundaries of the four domains. This mapping is further aided through use of these two axioms. The independence axiom states that one should “maintain the independence of functional requirements.” In maintaining the independence axiom a design can be labeled as a decoupled design because a change in a particular design parameter would only have an effect on a sign function. Designs incapable of fulfilling this axiom are said to be coupled. The information axiom states that one should “minimize the information content of a design,” suggesting that the simplest design is often the best. 30 2.3.3 General Design General design (Yoshikawa 1981; Tomiyama 1995) regards the design process as that which makes design solutions from design specifications. This process has three basic elements: the entity and entity sets, attributes and attribute values, and functions. Entity sets are sets which contain entities which themselves are real objects which existed in the past, exist in the present, or will exist in the future. Attributes are properties which may be observed by scientific means, including physical, mechanical, chemical, geometrical, and others. A function (visible) is a particular behavioral manifestation corresponding to a specific circumstance. The total of the visible functions is known as a latent function. This theory provides a detailed description of the ideal world relation of an entity’s attributes and functions and also the required knowledge to deal with real world situations when the ideal knowledge is nonexistent. 2.3.4 TRIZ TRIZ or Teoriya Resheniya Izobretatelskikh Zadatch roughly translated as the theory of inventive problem solving was developed by Genrich Altshuller and his colleagues since 1946 (Altshuller and Shulyak 1998). While working at the department of Inventioneering & Rationalizing of the Caspian Flotilla in Baku, Altshuller and his colleagues began developing the TRIZ methodology. They reviewed tens of thousands of patent abstracts in order to identify the innovation which had taken place in the conception of these products. In short, TRIZ provides an objective framework 31 for accessing solutions from other technologies and sciences (Altshuller 1999; Salamatov 1999). Darrell Mann (2001) gives a good introduction into the world of TRIZ. He identifies one of the key findings of TRIZ as being the fact that only a very small number of inventive principles and strategies guide and describe innovation. The four pillars of TRIZ include contradictions, ideality, functionality, and use of resources (Mann 2001). 1. Contradictions They are represented in a 39 by 39 contradiction matrix with between three and four desirable strategies for design problem solution involving the 1482 most common contradiction types. 2. Ideality In reviewing the numerous patents, the founder of TRIZ noted that systems generally tended to evolve towards increasing ideality through a review of S-curve characteristics. Mann writes that ideality is “used as a problem definition tool, the ideality part of TRIZ encourages problem solvers to break out of the traditional start from the current situation type of thinking, and start instead from what is described as the Ideal Final Result (IFR).” IFRs are defined as solutions containing only benefits with no costs or harms such as environmental etc. 3. Functionality Functionality can be broken down into three key points. The first involves the idea that a system possesses a Main Useful Function (MUF) with any system component 32 being labeled as harmful if it does not contribute to it. The second being that TRIZ places great emphasis on describing both the positive and negative relationships contained within a system and more importantly on “using function analysis as a means of identifying the contradictions, in-effective, excessive and harmful relationships in and around a system. Function and attribute analysis thus becomes a very powerful problem definition tool.” 4. Use of Resources This portion deals with the great emphasis placed on the maximization of use of everything which the system contains. TRIZ requires an extensive search within the system for resources (‘anything in the system which is not being used to its maximum potential’) which provides opportunities through which the system may be improved. 2.4 Biologically Inspired Engineering Much of the research being conducted in this field lies in the creation of systems or products which mimic nature. Various robotic systems and innovative products, such as engineering tools and materials, result from this endeavor. Most of this research is a result of one-to-one mapping between biology and engineering, whereby researchers emulate desired mechanisms found in nature. Other researchers in the field, although not as many, concentrate on the processes which produce the products. Although Nature does not have a manufacturing process per se, nature still undergoes a process of creation. The process behind biology, specifically biological design, has been investigated by a few researchers and will be discussed in greater detail in the following sections. Finally the overall controlling mechanism behind Nature is 33 evolution which encompasses the ideas of natural selection and mutation. Studies of adaptation through DNA, mating, and offspring inheritance through generations have been available for many years in the field of biology. Over the past several years though, such concepts have begun to gain recognition in the engineering community as a means of producing products and systems. Evolutionary computation, or evolutionary design, has been quite a popular field both for computer scientists and mechanical engineers resulting in some interesting and quite notable results. A landscape of the research in this area may be seen in figure 2.3. A more complete discussion of such findings will be presented in the following sections. Figure 2.3 Bio-inspired engineering landscape 2.4.1 Bio-Inspired Artifacts 2.4.1.1 Mobile Systems As the fields of artificial intelligence, robotics, and controls become more sophisticated, the level at which we are able to successfully emulate natural systems has become exceptionally advanced. Robots mimicking natural systems have become Bio-Inspired Engineering Bio-Inspired Artifacts Mobile Systems Immobile Systems Bio-Inspired Design Process Design Methodology Evolutionary Computation Genetic Algorithm Genetic Programming 34 increasingly popular over the past decade and a half. Rather than presenting all of the different types of work in this area, which is extremely substantial, we will rather present a flavor from each of the different sub-groups which comprise this research. The various groups included in this section are walking/running/jumping systems, flying systems, aquatic systems, and undulatory systems. Cockroach emulation has been a research area in which several groups have been actively engaged in. Cockroaches are a desired biomimetic candidate for walking / running robots because of their great agility and speed relative to their size. In the work by Watson and Ritzmann (1997a, 1997b), Bachman et al. (1997), and Nelson and Quinn (1998), the authors chose the Blaberus Discoidalis as their source of inspiration for the design of their hexapod robot. In Watson and Ritzmann (1997a, 1997b), the authors used a combination of high-speed video motion analysis of the insect’s legs in motion on a treadmill with electromyogram (EMG) recordings from its leg muscles, to understand and model their motion. This work was used by Bachman et al. (1997) in the design and fabrication of the cockroach-like hexapod robot. The robot was fabricated from machined aluminum, weighing roughly 30 pounds. Control of the robot was instated and described in Nelson and Quinn (1998). 35 A second group (Cham et al. 2000, 2002, 2004; Bailey et al. 2000; Clark et al. 2001) also chose the Blaberus Discoidalis cockroach in building their Mini-Sprawl system and their later versions Sprawlita and Sprawl. Analysis of cockroach locomotion by Full and Tu (1991), and Full et al. (1991) lead the authors to believe that cockroaches have both a low and rear oriented center of mass. In Clark et al. (2001) the researchers developed a manufacturing technique called Shape Deposition Manufacturing (SDM) which allowed for construction of a robot with joints of varying flexibility, using various plastics and wax as substrates. Biomimetics of walking locomotion is not limited to insects, for more researchers have begun turning to relatively more complex species for inspiration and emulation. Pratt et al. (1997) have built a various planar bipedal walking robots whose leg geometries and motion slightly resemble those of turkeys and flamingoes. But perhaps the most sophisticated and famous of all biologically inspired robots is the Honda Humanoid Robot ASIMO described in Hirai (1997) and Hirai et al. (1998). Similar to the notions of walking, running, or jumping a solid understanding of the concept of flight is crucial in achieving a successful mimicking system. As such there are quite a few research endeavors put forth to understand the very complex nature of the flight of birds and insects. Understanding wing anatomies, the mechanisms of wing rotations and frequencies, and their associated aerodynamic forces can be quite a daunting yet highly important task. In Sun and Wu (2002), the authors studied power requirements and high lift mechanisms for forward flight in small insects such as the 36 honey bee. In Sun and Xiong (2005), the authors investigated the longitudinal dynamic flight stability of a hovering honeybee using the method of computational fluid dynamics to compute its critical aerodynamic characteristics. In Deng et al. parts I and II (in press), the authors analyzed and mimicked the blow fly Calliphora in their robotic insect. In the work, Deng et al., create both a general schematic for a robotic Calliphora and a Virtual Insect Flight Simulator (VIFS) that allows for the testing of different configurations and controls. It relied heavily on another team’s robot design, called Robofly (Dickinson et al. 1999; Fearing et al. 2000). Robofly has two 25cm wings which properly mimic the wing motion of flying insects, namely the fruit fly (Drosophila). In the work by Spedding et al. (2003), the research team focused on the study of energy associated with bird flight, specifically that of the Thrush Nightingale. This was accomplished through a study of the velocity profile of the wake following a flying bird in a wind tunnel. In this work’s follow-up, Rosen et al. (2004) used a high speed camera to capture the wing beats of a Nightingale as it flew through a wind tunnel. Motivated by a desire to create engineered systems which behave and efficiently perform similar to fish, aquatic bionics has begun to gain increasing popularity over the past decade and a half. There are a number of papers available in the general area of fish locomotion, including a few review papers (Lindsey 1978; Webb 1994; Domenici and Blake 1997), while there are also a few papers that specifically 37 concentrate on aquatic biomimetics (Westneat and Walker 1997; Sfakiotakis et al. 1999; Tong 2000; Triantafyllou 2004). Triantafyllou, M. and Traintafyllou, G. (1995) and Barrett et al. (1996) from M.I.T. developed a suspended biomimetic system called RoboTuna utilizing carangiform aquatic locomotion based on a Bluefin Tuna. Carangiform aquatic locomotion is generally associated with fast moving fish with rapidly moving tails (Michael 2001). Typically these fish have large, high-aspect-ratio tails, and stiff bodies, generating a majority of their thrust through rear-tail motion (Michael 2001). Using the suspended robotic fish, Triantafyllou, M. and Traintafyllou, G. (1995), explored how fish can reduce drag and create propulsive jets by carefully controlling the development and positioning of vortices. Using RoboTuna, Barrett et al. (1996) modeled the oscillating foil tail movements with carangiform body kinematics. Anderson and Kerrebrock (1997) built their VCUUV (vorticity control unmanned undersea vehicle) mimicking the morphology and swimming motion of the Yellowfin Tuna. Using tail kinematics data from Robotuna, the VCUUV has demonstrated stable, steady swimming of up to 2.4 knots with aggressive maneuvering trajectories and turning rates up to 75 degrees per second. Other work on carangiform (tuna and mackerel) style swimming was studied by Mason and Burdick (1999, 2000) that resulted in the development of a three-link robot which was used to predict and test the thrust generated by a flapping tail. 38 Other systems have been developed based upon various types of fish including: Kumph and Triantafyllou (1998) development of a free-swimming robotic fish called RoboPike modeled closely after a Black Pike, Yu et al.’s (2003, 2004) development of a radio-controlled semi-autonomous robot fish based on a Carp, Hirata et al.’s (2000) development of an autonomous underwater robot based on the Sea Bream. Snake-like undulating robots have been actively investigated and constructed by various research groups. Chirikjian and Burdick (1991, 1992, 1994) concentrated on hyper-redundant motion (tentacle or snake-like motion i.e., robots which have a large or infinite degree of kinematic redundancy. Using this work as a starting point, Paap et al. (1996) created a semiautonomous snake (GMD SNAKE) which consisted of as little as six or as many as fifteen sections. The team followed-up their work in Klaassen and Paap (1999) and Paap et al. (1999) with the development of a new snake-like robot called the GMD SNAKE 2 which utilized a new algorithm for curvature path control. 2.4.1.2 Immobile Systems Synthetic material production through biomimetics usually requires a strong comprehension of microbiology phenomena because it is at these levels where materials usually acquire their unique characteristics. Sarikaya (1994) gives an introduction to biomimetics from a structural viewpoint by focusing on various animal species’ ability to fabricate complex structural materials. Wardle and Tomlinson (1997) discuss a systematic approach to structural damping through an evolutionary 39 approach of viscoelastic surface coating build up. Other structural advancements have come from more well-known natural systems, such as antler bones. For many years, antler bones have been known to exhibit exceptional resiliency and toughness, and, as such, Hansen (1999) has modeled and applied bone microcracking to helmet design. Jackson et al. (1989) have studied nacre (mother of pearl) and developed tough ceramics based on its properties. In 1983, Chaplin et al. patented (US Patent no. 4409274) a novel fibrous composite material based on fiber orientations in wood. But perhaps the single most successful biomimetic application not just in the realm of materials, but throughout the whole of biomimetics as described in Vincent and Mann (2002) was Velcro, 1955 (patent no. 721338). Other notable products which have resulted from biomimicry include highly insulated clothing based on penguin down (Dawson et al. 1999). Vincent and King (1996) developed a wood cutting technique based on the wasp ovipositor drill, which is currently waiting to be patented and produced. Adhesive mechanisms found in gecko feet have been studied (Autumn et al. 2001; Geim et al. 2003) and applied towards the design of dry adhesive tape. Mussel adhesives served as inspiration for the design and development of a type of underwater glue (Holl et al. 1993). Bechert et al. (1997, 2000) studied drag reduction techniques found in sharks and applied them to aircraft to observe around a 4% reduction in drag and in fuel consumption. 40 2.4.2 Bio-Inspired Design Processes The second component of the bio-inspired engineering landscape is the process element, by which the artifacts result from. In engineering systems, the process element can be regarded as the production element as well as the concept generation / design methodology element. Since Nature does not go through a design process, per se, in biological terms, this process element is purely the microbiological component whereby cells grow, multiply, reproduce, and join together to form more complex entities. Perhaps the single most difficult component of applying biomimetics to engineering design lies in identifying the appropriate natural system from which to draw inspiration from. Recently a few researchers have noted the need to develop a design methodology which systematically transfers and translates biological phenomena into engineering principles. Despite the importance of such a process, a relatively limited amount of work is available. One such work though is that of Vincent and Mann (2002) who investigated a systematic technology transfer from biology to engineering through TRIZ. In engineering design, the use of TRIZ optimizes the design process by reducing solution searching times. TRIZ is very efficient in not only showing where solutions lie but also where they do not. Biomimetics allows designers to “Tap into four billion years’ worth of ‘R&D’ in the natural world,” which often times will result in innovative solutions that designers probably would not have come up with on their own. The problem is providing a proper framework for designers to use. The 41 framework provided by TRIZ makes biological information “more readily available so that it will be easier to identify areas of biology likely to yield useful information for specific problems.” This article serves as a foundational work for this assimilation into TRIZ and provides case studies to demonstrate the benefit for both engineers and biologists. In their subsequent work, Bowyer et al. (2003) look to gather data for the purposes of creating a database of biological information which classifies and catalogues the effects of a given action, including mechanisms of functioning, in a given biological system. To achieve this goal the team has made “auxiliary contradiction tensors for biological structures and environments, and for causes and limits of actions; these allow them to break natural data into engineering-like chunks of information and cover the primary TRIZ constituents of function, effect and contradiction.” In Vincent et al. (2005), 500 biological phenomena were analyzed, covering more than 270 functions at various levels of hierarchy. In total, the researchers have analyzed about 2,500 conflicts and their resolutions in biology, sorting them by complexity. Another research effort currently investigating methods of assimilation of biology and engineering design is found in Vakili and Shu (2001). In this work, the researchers attempt to make the process of finding biomimetic ideas easier, faster, and more accessible. This work reiterates the idea that the main challenge in biomimetics is actually finding the natural system from which to draw inspiration from because 42 nature is a “vast and largely undocumented field.” The method which these researchers discuss is a function extraction method which requires the designer to first abstract the system by indicating its essential functions and then finding a system in nature which performs those similar functions. They introduce their syntactical idea of analogy identification, in which they search for appropriate engineering functions and their synonyms in various texts, as a means of identifying appropriate natural systems. They provide examples which use this idea through case studies of a design for a remanufacture system (Shu 2002, 2004) and for centering in micro-assemblies (Shu et al. 2003). Chiu and Shu (2004) expand on their previous work by using WordNet as a tool for searching for and generating the functional key words. 2.4.3 Bio-Inspired Evolutionary Computation The third element of the biomimetic landscape is the evolution component. A sustainable product (animal or plant) critically depends upon it, while processes such as mitosis or meiosis would be useless without it. DNA, genomes, trait inheritance and the like are key components necessary to maintain life and allow it to evolve. Animals and plants alike depend on this process for their long term survival. Likewise, cell division and reproduction would nearly be useless if it were not for DNA replication. After all, one of the main purposes of cell division is to expand the living system while maintaining its identity. Reproduction on the other hand is what allows for a system to pass on its traits, possibly evolved, to the next generation. This is the process by which species become more advanced and more capable entities. Since the mid 70s early 80s the engineering community has began tapping into this 43 process as a means of supporting engineering design and facilitating problem solving. Genetic algorithms (GA), genetic programming (GP), which has a slight variance from GA are what have been used and which will be discussed in greater detail below. 2.4.3.1 Evolutionary Computation The natural process of evolution, and engineering design processes have striking similarities that have been documented from a variety of sources (Holland, 1975; Goldberg, 1989, 1991; Koza, 1992, 1994; Fogel et al., 1996; Parmee, 1997; Bentley, 1999). These similarities led to a creation of a new branch of engineering design called evolutionary design. In evolutionary design, the algorithm adapts and searches for a solution in the same way that natural evolution adapts gene sequences (Lee et al., 2001). Recent work has shown that evolutionary design has not only the ability to search and modify current designs for maximum efficiency (Bentley, 199; Parmeee, 1997; Maher, 2001), but to also create completely new and original designs through the design process itself (Bentley, 1999; Koza, 1999). There are two main types of evolutionary coding systems. The first is genetic algorithms (GA). Genetic algorithms use binary coding to arrive at solution sets (Holland, 1975; Goldberg, 1989; Michalewicz, 1994). Genetic programming (GP) although is similar in that it uses the same fundamental principles; it uses hierarchical computer programming to arrive at solution sets (Koza, 1992, 1994, 1999). 44 2.4.3.2 Genetic Algorithms Genetic algorithms (GA) were created by John Holland in 1975. As Lee established, they serve to improve stochastic optimization on a global system scale. A variety of researchers have realized the potential of genetic algorithms in comparison to conventional optimization and searching algorithms, and as a result, GA study has been extensively studied and advanced (Goldberg, 1989; Michalewicz, 1994; Maher, 1996; Parmee, 1997; Bentley, 1998). Three major components comprise a genetic algorithm. The first component is the encoding scheme. The encoding scheme is the definition of the genotype space representation of the solution. This can either be defined as real number strings (Michalewicz, 1994) or binary strings (Goldberg, 1989). This encoding scheme is what provides the basis for the solution as it defines the components which can be manipulated in order to find a solution. The second component to genetic algorithms is a fitness function. The fitness function is what allows different solutions to be compared to one other. The final component to genetic algorithms is genetic operators. Genetic operators are what allow for the evolution and transformation of different solution sets. There are three main types of genetic operators: selection, mutation, and crossover. Selection can be divided into two subcategories of fitness proportion selection, and tournament selection. Fitness proportionate selection uses the fitness of an individual solution; this relative value is used to calculate a percentage that that particular solution is in fact the best possible solution. The second 45 subcategory of selection is tournament selection. In this mode a large tournament is run in which individual solutions go head to head. Mutation is a genetic operator used to bring about arbitrary changes into the population with a low possibility. Crossover is the final and most significant genetic operator. It allows for genetic solutions to reproduce with traits of each parent being transferred to the offspring solution. 2.4.3.3 Genetic Programming Genetic programming (GP) operates under the same principles as genetic algorithms (GA) but GP operates with tree structures (of non fixed size) instead of binary type languages (with fixed size). Genetic programming was initially created in 1985 by Cramer, and then significantly developed by Koza (Koza, 1992, 1994). Further researchers have established the flexibility of GP, as it is able to analyze a wider scope of problems than GA. One of the major drawbacks to GP is that it occasionally has what is known as “closure problem,” meaning that design solutions based off of the design knowledge is not ascertained. The problem of closure was in part counteracted by a series of researchers who added grammar-guided genetic operations (Whigham, 1995; O’Neil, 2000; Rodrigues, 2002). There are three important components of genetic programming (and are also not present in genetic algorithms). The first two are called the terminal and function sets. In a genetic programming tree, the terminals are a set which form all end (leaf) nodes. A terminal might be a constant, variable, or a function with no arguments. The third component to genetic programming is called Automatically Defined Function (ADF) 46 (Koza, 1994). The ADF is the region that is significantly evolved and altered during the execution of the GP, and both it and the calling program can evolve simultaneously. Both Genetic programming and genetic algorithms arrive at solution candidates in a similar manner. Both begin with a random population that through a series of evolutionary techniques (selection, crossover, and mutation) evolve through successive generations. Through each successive generation, the design processes evolves closer and closer to an acceptable solution (Kee et al., 2001). 2.5 Conclusion A thorough review of research in the related fields of biologically inspired engineering, complex adaptive systems, and engineering design theory and methodology which collectively provide a theoretical foundation for our research have been presented and discussed. Complex adaptive systems and biologically inspired engineering provide the basis upon which this research is established while engineering design theory and methodology is the domain to which that inspiration is applied to. In the coming chapter we will discuss the limitations of the current state of complex system design and present the need for the development and application of a new approach. 47 Chapter 3: Self-Organizing System Design Framework (SOS Framework) 3.1 Motivation Engineering design can often be regarded as the process of designing systems to meet a set of requirements established by a customer. The design of such a system satisfying these requirements requires the designer to specify the architecture of the system including all parts, components, interfaces and also the data passing between them. Various techniques have been devised to assist the designer or team of designers in achieving such a task ranging from loose heuristic based techniques to a more intuitive Divide and Conquer (D&C) approach. D&C is a reductionism approach to problem solving which originated in the area of mathematics. Its application to the design realm has proved exceptionally successful in many notable design ventures. This approach has its advantages which will be presented later; but its key drawback with regards to its application to complex system design is primarily what this research is based upon. When the technique was introduced, the systems of the era were relatively simple and almost always had statically connected system elements, therefore the application of D&C was not only straightforward, it was uncomplicated and highly successful. But as the complexity of current and future systems continues to increase specifically with regards to our introduction of dynamically connected system elements, the application of this approach may become difficult. This unavoidable inconsistency with regards to the current and future state 48 of the art and current practice has provided us with the necessary motivation to pursue this research. 3.1.1 Divide and Conquer The D&C approach has been extensively used in industry over the years because of its relative ease of application to design problems. This approach is a logic based approach which is almost entirely purpose driven. Given the complexity level of the design is manageable, this process is highly efficient. It has low uncertainty with regards to the expected results; namely when applying this technique, you know more or less what you will be getting at the end. An illustrative representation of the main reductionism concept of the technique decomposing a system through its various hierarchy levels can be seen in figure 3.1 below. Figure 3.1 Divide & Conquer approach through its layers of decomposition System Sub - System Part Sub - Part Component High Level of Complexity Low Level of Complexity 49 When applying such a technique the hope is that as one decomposes from the top layer (base) to the bottom (apex), that the design becomes simpler to address and realize. Especially when working with a large team of engineers such an approach may prove exceptionally useful when dividing tasks amongst specialized individuals. In the case of automotive design for example, this technique has been used to reduce overall design times allowing systems to be brought to market quicker. Vehicle design has many sub-systems associated with it including but not limited to chassis design, power-train design, drive-train design, style design, ergonomics design, and structural design to name just a few. The chief engineer of the system usually appoints a head engineer for each sub-system and designates teams to work under them. The head engineer next decomposes their respective sub-system into appropriate parts, sub- parts, and components. Finally low level engineers from each team are assigned to the design of each component or sets of components. Upon completion, the newly designed components are organized to form the sub-parts, sub-parts form the parts, parts form the sub-system, and finally sub-systems form the system. This approach’s application is based solely on the assumption that adequate, straightforward decomposition can be achieved through the various layers of the system and is achieved mainly with systems with statically connected system elements. 3.1.2 Limitations of D&C to Complex Systems Complexity as previously defined is the information required to define and characterize a system including all of its composing elements and their interrelations. 50 As the systems which we design become more sophisticated, the composition of the system must become much more complex in order to achieve this level of sophistication. This not only results in an increase in sub-systems, parts, and components, but it also results in an increase in their interactions. Components are not interacting on a one-to-one level anymore with other components, parts or even sub- systems. Furthermore, shifting from the paradigm of statically connected elements to dynamic connections in order to achieve greater adaptability further adds to the overall system complexity. Therefore the traditional top-down D&C decomposition may begin to reach its limits when attempting to be applied to systems of increasing levels of complexity. An illustrative comparison of the two types of systems through D&C decomposition can be seen in figure 3.2. Figure 3.2 D&C technique applied to Standard Systems and Complex Systems One can note from the above figure that in the case of the standard system, following the D&C convention, decomposition between level 1 and level 2 results in a less complex system than was originally presented as designated by a smaller overall area. This is so because the interdependencies between level 1 concepts and level 2 concepts are easily visible and identifiable, therefore their decomposition is simple 51 and easily achievable. Yet the application of the technique to complex systems with regards to the level of simplicity resulting from the decomposition from level 1 to level 2 is barely discernible. This is so because the reductionism ideals do not apply to complex systems because by definition they tend to hold their level of complexity regardless of the layers which one attempts to decompose them to. Interdependencies are not as easily discernable and often times cannot be broken down further. Therefore if one is attempting to design relatively static, less complex (limited purpose / less variety) systems, the D&C approach is perfectly adequate. But based on our approach which looks to build in even more complexity into a system than is already present, D&C will begin to approach its limits. As a result the need for a new approach becomes an immense research issue. 3.2 SOS Framework In response to the inconsistencies of injecting more complexity into systems as a means of achieving more adaptability and the D&C approach we propose our SOS Framework. The name SOS has a double meaning in that at face value it’s an acronym which stands for Self-Organizing System Design Framework, but on a second level it’s a metaphor for the assistance this framework may provide to designers once complexity begins to become more prevalent in future designs. The framework consists of three key cornerstones as seen in figure 3.3. 52 Figure 3.3 The three cornerstones of the SOS Design Framework As one may note, the above framework is based primarily on the field of biology, the reasons behind which will be discussed in greater detail in the following section. But the important thing to note for now is that biological systems are orders of magnitude more complex than current artificial systems. Yet such systems are not only capable of overcoming the issues of complexity when undergoing their design, they are also exceptionally capable of adapting to both changing environments as well as unexpected changes to their bodies. What makes biological systems capable of such unique capabilities? The search for the answer to this question has led us to the development of this framework. The framework is comprised of three cornerstones; Cellular System Formation & Representation, Self-Organizing Algorithms for Self-Design / Adaptation, and •Morphogenesis-based algorithm for cellular self-organization •Automatic DNA formation (self-design) •Fitness function applications •DNA based checkpoint tests for proper system development • Cellular System Representation • DNA design information storage 53 Evaluation Mechanisms for SOS Algorithms. When this framework is fully developed, its application will eventually lead to the self-design and development of a new class of systems which more closely resembles biological systems. This framework approaches design based on top-down guidance and cell interaction based bottom-up self-organizing. This combined approach to system design strives for a balance between the desired functional capabilities of a system and its adaptability in response to dynamically changing environmental requirements. Essentially the idea behind SOS is that given a set of functional requirements and a set of local interaction rules, the system, guided by its DNA can self-organize its composing elements to fulfill those requirements by emerging its morphology and functionality. 3.2.1 Global Goals of SOS The global goals of SOS are twofold: (1) Global self-design through automatic DNA creation (2) System realization through a global DNA controlled decentralized cellular formation strategy Self design through the self creation of DNA, i.e. self-organization of the DNA’s elements, involves the automatic alteration of a system’s old DNA (alleles of a gene) to create a system’s new DNA based upon dynamic recognition of requirements imposed on the system by its environment. The automatic alteration of the DNA strand will need to be achieved through a genetic algorithm based approach with fitness functions guiding the process. This self-redesign procedure is situation driven 54 and has implications to self-adaptation with regards to addressing system change. The development of the 2 nd and 3 rd cornerstones of SOS, namely the Self-Organizing Algorithms for Self-Design / Adaptation, and the Evaluation Mechanisms for the SOS Algorithm exactly address this issue. Although this work touches upon the development of certain facets of the 2 nd cornerstone with regards to the development of the morphogenesis-based algorithm for cellular self-organization, the complete development of the 2 nd and 3 rd will be addressed and elaborated upon in subsequent future work. But an important milestone to reach before this future work can even begin to be addressed and achieved is the development of a strong DNA-based representation framework. This development is required because the need to properly document and retain design information is critical for the realization of this process. This is achieved through the development of the 1 st cornerstone of SOS and will be discussed in great detail in Chapter 4. The second goal of the SOS framework is system realization through a global DNA controlled decentralized cellular formation strategy. Biological systems are inherently self-organizing systems whereby cells self-organize to form tissues, tissues bond to form organs, organs join to form sub-systems, and sub-systems combine to form the system. Unlike the self-organization observed in the design of chemical systems for example, the self-organization of biological cells are conducted and guided through the system’s DNA. Hence although self-organization is by nature decentralized, biological self-organization is a globally controlled decentralized procedure. But 55 again in order to achieve such a goal of self-formation / self-growth we must first develop a rich and powerful DNA based cellular representation framework. Demonstration of this second global goal can be seen in the simulation study presented in chapter 5 which is built upon the ideas of the morphogenesis-based algorithm for cellular self-organization from the 2 nd facet of SOS. 3.2.2 Modeling Challenges of SOS The majority of this research effort is dedicated to the modeling of the concepts used in the Cellular System Formation & Representation component of the framework as well as the development of the morphogenesis-based algorithm for cellular self- organization. Extensive work was done in order to gain a proper understanding of the common unifying concepts which the hundreds of thousands to millions of species in biology share with regards to system formation, representation and production. The results of this investigation including all concepts, their interactions, and their ties to system design will be elaborated upon in greater detail in the next chapters. Throughout this process it was realized that biological system design may be regarded as a self-organizing process whereby cells multiply and divide, and interact to achieve required system functions. This self-organizing principle is a key deviation from the conventional design paradigm which we are accustomed to. Furthermore, biological self-organization, although it may seem as though it is random, is a highly regulated process (morphogenesis) whereby nearly every step of the system’s development process is guided by the system design blueprint: DNA. Evaluation mechanisms are 56 built into the DNA and used in order to successfully develop a system capable of meeting the functional requirements set forth by its environment. If the system is capable of achieving these requirements, the system survives and thrives in the environment. If it is incapable, the system dies. 3.3 Why Biology? In comparison to synthetic systems, biological systems have many layers of complexity built into them. On the surface though it may appear that artificial and bio-systems share many common traits with regards to the way in which they are organized. Similar to the notion of system / sub-system / part / component in artificial systems are the concepts of system / sub-system / organ / tissue in bio-systems. There appears to be a fairly good relation between the hierarchical conceptual elements of the two systems. But upon closer inspection one may note that biology has yet another vital decomposable layer: the cell. Furthermore, the cellular level can be regarded as its own super-system with 4 more layers of decomposition as seen in figure 3.4. 57 Figure 3.4 A biological system decomposition The key difference between biological systems and artificial systems is that the basis element for which artificial systems are defined by are components, whereas for bio- systems it is cells. Components are a finite collection of composing elements which comprise a part, but cells are an almost infinite collection of composing elements which comprise an organ. Furthermore, whereas components are lifeless compositional elements, cells are independently functioning living elements which collaborate with one another to achieve their desired goal. What we suggest in this research is to steer the composition of artificial systems in much the same way bio- systems are composed, namely compose parts of a system in the same manner that cells compose organs. Our research is based on two key assumptions, the Variety Assumption, and the Self-Organization Assumption. System Sub - System Organ Tissue Cell Organelle Macromolecule Atom Quark System Sub - System Organ Tissue Cell Organelle Macromolecule Atom Quark 58 3.3.1 Two Assumptions The Variety Assumption: This assumption states that in order to have a truly adaptive system one needs it to be highly complex. A high level of complexity correlates to a high level of variety. The foundation of this assumption is built upon the previously discussed Law of Requisite Variety (Ashby 1956). But since we are introducing extra decomposition layers to such systems thereby increasing their complexity, the current state-of-the-art with regards to system design, i.e. the D&C Technique, may reach its application limits. Therefore we introduce our second assumption, the Self- Organization Assumption as a means of addressing this inconsistency. The Self-Organization Assumption: This assumption states that an alternative way to designing highly complex, adaptive systems is through a bottom-up self-organizing approach. In much the same way that biological systems, guided by their DNA achieve their emergent morphology and functionality through the self-organization of their cellular compositional and functional elements, we believe that the design of complex adaptive mechanical systems should be achieved in much the same way. 3.3.2 Added Benefits of a Biological Approach There are a few noteworthy added benefits of approaching system design from a biological point of view. Developing systems which are composed from a cellular viewpoint utilizing self-organization as a means of functional realization provides an avenue to eventually have systems which are capable of designing themselves. Furthermore, ideally these systems could eventually be able to self-grow, develop and 59 possibly even produce other systems in much the same way that biological systems do as was discussed in the application domain section of chapter 1. This direction, when fully developed will ultimately lead to a new class of truly life-like mechanical systems which will have immense implications on systems of special missions such as future unmanned space exploration and military robots. 3.4 Conclusion In this chapter we have discussed the overall SOS Framework which has been developed in an effort to address two key issues; added complexity in adaptive system design and also the development of a new class of more robust and adaptive systems. We have also presented two key assumptions, namely the variety assumption and the self-organizing assumption which we have based our research upon. In the next chapter we will discuss in extensive detail the steps taken, the concepts mapped, and definitions developed in modeling the primary cornerstone of the SOS Framework, namely the Cellular System Formation & Representation component. 60 Chapter 4: cFORE, Cellular System Formation and Representation for Adaptive System Design 4.1 Overview of the Approach The cFORE architecture can be represented as follows in figure 4.1 using two main components: Figure 4.1 Structure of cFORE 4.2 Bio-Principle Extraction and Synthesis 4.2.1 Initial Goals Biology, the discipline concerned with the study of life, composes a vast area of science and research. Numerous subdivisions and specializations have been created just within the field along in order to make dealing with the great amount of knowledge more manageable. In embarking on this research we held the belief that despite the fact that the millions of various species which constitute the term life exist in such a science, that all must share some common characteristics which make them cFORE Bio-Principle Extraction and Concept Synthesis Bio-Concept Model Generation and Application to System Design 61 unique over artificial systems which we readily create. It is important to note that this research is not a direct investigation into biology; rather biology was used as an inspiration or a tool for the development of adaptive mechanical systems. Therefore we treated biology as a given rather than an unknown and used the information we ascertained from our investigation towards the development of cFORE. A schematic of the goals of creating cFORE along with its process can be seen in figure 4.2. Figure 4.2 Goals and procedure of cFORE The key questions which we attempted to address are as follows: 1) What are the key biological concepts and processes that can be applied to designing cellular mechanical systems? Biology Mechanical Engineering cFORE cFORE Function Form Behavior Cells Organs Tissues Embryo etc. Can be used to define & represent systems from Can be used to define & represent systems from Cellular Adaptive Systems Defines and Represents 62 2) What representation forms are effective for supporting design generation/creation and implementation? 3) What are the benefits of applying biological concepts and processes in representing cellular mechanical systems? 4) Can a system design representation framework be created based on concepts exclusive to biology while still harnessing critical elements such as function, form and behavior from mechanical design? 5) Can we devise a computer-based simulation study to validate our model? 4.2.2 Shortcomings With such an ambitious undertaking, the question of where to start became a monumentally important decision. The almost infinite number of species with their numerous categorizations made the task of selecting the starting point even more difficult. The issue of limiting the scope of the investigation became grand as biology is far too big of a discipline. Would we restrict our investigation to mobile species, in the sense of animals, or also include immobile, in the sense of plants and trees? Also the issue of which concepts would we need from biology in order to be able to define mechanical systems became another challenge which needed to be addressed. To do so we needed to select only those biological concepts which served a purpose in defining either the function, form, or behavior of those systems. Framing the problem and its scope became an obvious challenge. 63 4.2.3 Procedure In our investigation into biology, we looked to investigate three key areas of bio- system design and development; design information representation, system composition, and design realization. The starting point for our investigation was selected based upon papers written by Vogal (1998) and Ball (2001). Their belief is that in order to truly capture the unique characteristics and behaviors of a natural system, one must begin their investigations at the micro scale. Once this point was established, determining the key concept unifying all biological systems and differentiating them from man-made systems was defined. All biological systems, regardless of their shape, size, or specie and irrespective of whether or not they are plant or animal are composed of cells. Therefore it is through this composition which bio-systems are capable of achieving their robustness and resiliency in the face of change. Shifting our attention to cells we set out to understand their inner workings as well as their compositional elements. At first this seemed as though it would be trivial, but the more we delved into the topic, the more complicated we found it to be. On the surface it was believed the cell to be simply a compositional element of bio-systems with no more purpose than to simply express the form of the system. Through our investigation it was realized that the cell was a system onto itself with almost as much complexity as the system which it composes. Cells not only express the forms of the systems, but collectively they compose system level functions and behaviors as well. 64 This result had quite profound implications towards the development of the representation model as will be discussed in the next coming sections. After the issue of system composition was addressed, effort was shifted towards the understanding of the process behind biological design; if such a process indeed existed. Mechanical design is almost entirely functionally driven, whereby systems are developed in order to meet requirements set forth by entities the system is being designed for. The results of this important investigation were that the function or set of functions which a bio-system must fulfill is defined solely by the environment which the system is living in. The environment sets out a certain set of requirements; if the bio-system has the functional capabilities to meet those requirements the system survives and is allowed to reproduce and pass on those key traits which allowed it to survive. If the system can not meet those requirements, it simply dies. Therefore the actual design process, if one can call it that, is refined through generational selection. But in order to do so the documentation of the design (function, form and behavior) is also important, because without proper representation and storage, information will be lost and will not be passed on. How does Nature document its designs, and how is it different from the way in which we document ours? Information for our designs is stored in vast database facilities often requiring a huge amount of cost and man-power to maintain. Nature on the other hand stores the information regarding its designs in a very efficient manner; within the design itself. This is a significant deviation from artificial systems. The design, or genome, is stored within the system’s DNA. 65 Therefore DNA is a fundamental part of this overall process and a critical component which this research is built upon. The final component which needed a thorough investigation was the issue of how nature builds its systems. In the case of artificial systems the realization of the design process is the manufacturing process whereby parts are machined down from material in a fashion which expresses both the function and form of the design. Obviously Nature does not go about producing systems in the same way. The results of this third and final investigation led us to quite an interesting result which once again deviated significantly from how we realize artificial systems. Nature produces its systems in a bottom-up self-organizational strategy whereby individual cells organize to collectively form the system as a whole. In identifying the principles and concepts involved in this process we in effect limited the scope of our overall investigation. We had three key topics with which we would need to tie to mechanical engineering; DNA as a means of design information retention, cells and cellular structure as a means of system composition, and cellular self-organization as a means of system realization. Despite the fact that these three key topics were identified; mapping and modeling their composing elements, concepts and principles in a manner which may be of value to mechanical system design, specifically adaptive systems, was a huge undertaking. Furthermore, these three topics have a very wide array of concepts and principles associated with them, therefore selecting between the necessary and unnecessary ones became another important and difficult task. Creating a model is 66 demanding enough, but creating a concise model based on such a vast field as biology can be quite a challenging and strenuous task. In the coming section a list of those concise concepts and principles along with their mechanical analogs will be presented. 4.2.4 Biological Investigation Results Based on our investigation into the three key areas discussed above, namely design information representation, system composition, and design realization, a concise and comprehensive list of concepts and principles which can be seen on the next several pages was extracted (all definitions taken from Audesirk et al., 2001). These concepts which revolved around the notions of cells, DNA, and embryonic development were included based on the belief that they are required in the development of mechanical systems which behave similar to biological systems. Mechanical systems require a certain set of key concepts such as energy converters, control units, material converters etc. and as such these concepts where actively searched out for in biology and included. These biological concepts will be presented along with their analogs to engineering design; essentially in the following list, we present what we have selected and why we have selected them. 1. Class – The taxonomic category composed of related genera. Closely related classes form a division or a phylum. ◦ Classes in biology are similar to system types in engineering and are used as a differentiation tool between different system types. Each system type has a particular overall function which it must fulfill and as such groups systems of 67 similar function together. As an example, classes in engineering include automobiles, airplanes, furniture etc. 2. Specie – A group of very similar, potentially interbreeding organisms which may produce other fertile offspring. ◦ Species are analogous to system sub-types in engineering. As an example for Class automobile there are specie cars, trucks, buses etc. Both Species and Classes are used as categorization tools to collect systems into functionally similar groups. 3. Embryo – A multi-cellular diploid eukaryote in its early stages of development. The development of an embryo is known as embryogenesis. ◦ The concept of an embryo is required in the model as we set out to develop our bio- inspired systems from a standard basis set of cells. Biological systems are built around the same notion as the development from zygote to embryo takes a bio- system from a single cell to a collection of functionally diverse grouping of cells. 4. Germ Layer – During embryonic development the formation of different tissue layers are grouped into corresponding germ layers. a. Endoderm – The inner layer forming the lining of most of the body’s hollow organs. b. Ectoderm – The outer layer forming the tissue that covers the body and lines its inner cavities and nerve tissues. 68 c. Mesoderm – The middle layer between the endoderm and ectoderm forming muscle and, when present, the circulatory and skeletal systems. ◦ Germ layers in biology are used as a tool to collect tissues (cell groupings) in an embryo and group them into collections of similarly functioning entities. As such we included this concept as a means of differentiating between mechanical cells of varying levels and types of functionality. Since our proposed systems will be developed from a basis set of cells (functionally non-unique), the concept of germ layers is important to differentiate between their levels of functionality. 5. Organ – A structure composed of two or more distinct tissue types that function together. They are the structural and functional sub-unit of the body. ◦ Certain species of particular classes of biological systems develop specialized organs to fulfill required functions dictated by their environment. Similarly, certain classes of mechanical species will have functions which they are required to perform either by a customer or the environment and hence will require specific sub-systems to achieve those functions. Therefore, this concept has its analogy in engineering design in the concept of a functioning sub-system. Overall it may be regarded as a sub-system but it overlaps very closely with the concept of a function. 6. Cell – The smallest unit of life, consisting, at a minimum, of an outer membrane that encloses a watery medium containing organic molecules, including genetic 69 material composed of DNA. It is the structural and functional unit of all living organisms. Every organism is made up of at least one cell. a. Simple cells – Are non stem cells meaning that once differentiated into a specialized cell, remain that way until their death. b. Stem cells – They have the capability to reinvigorate themselves through mitotic cell division and also posses the ability to differentiate into a multitude of specialized cell types. ◦ Cells are necessary and are included because the framework which we have developed is centered around a cellular formation and composition strategy as all biological systems are devised in such a manner. 7. Nucleus – It is the membrane-bound organelle containing the hereditary information of the organism. It acts as the control center of the cell controlling activities by regulating gene expression. ◦ Mechanical Cells require a control center or a control unit as a means of achieving controlled functionality, hence the inclusion of this concept. 8. Mitochondria – They produce energy by aerobic metabolism. They generate most of the cell's supply of adenosine triphosphate (ATP), which is used as a source of chemical energy. 70 ◦ The inclusion of this concept is a result of the need for mechanical cells to have an energy conversion devise as a means of applying and using energy to express functions. 9. Lysosome – They contain intracellular digestive enzymes. They act as the digestive agents which digest excess organelles, food particles, viruses and bacteria. ◦ Mechanical Cells require a material converter as means of accepting and storing information and other materials, hence the inclusion of this concept. 10. Ribosome – An organelle consisting of two subunits, each composed of ribosomal RNA and protein; the site of protein synthesis, during which the sequence of bases of messenger RNA is translated into the sequence of amino acids in a protein. ◦ During self-organization, mechanical cells require instructions to be produced and given to them in order for them to achieve their desired goals. In biology, ribosomes are the site where the cellular actions (proteins) are created. Therefore the need for the inclusion of this concept arises. 11. Proteins – A polymer of amino acids joined by peptide bonds between the carboxyl and amino groups of adjacent amino acid residues. 71 a. Enzymes – They catalyze and control the rates of chemical reactions by lowering the reaction’s activation energy. b. Structural – They provide the structural rigidity to the otherwise fluid biological components. They also generate the forces in contracting muscles. c. Signaling – A method of cellular communication between different cells. Essentially they are proteins synthesized and sent by one cell and accepted as an instruction by another. d. Membrane – Protein receptors used to bind signals sent from outside the cell. ◦ In biology, proteins are instructions which cells use for expressing cellular functions written in the system’s DNA or for communicating with other cells as a means of cooperating to express global system goals and genes. Similarly, instructions are required by mechanical cells for adequate self-organization as a means of attaining functional capabilities, conveying forms, and expressing behaviors. They are also required for expressing individual cellular functions and therefore are needed for inclusion in the model. 12. RNA – A molecule composed of ribose nucleotides, each of which consists of a phosphate group, the sugar ribose, and one of the bases adenine, cytosine, guanine, or uracil; transfers hereditary instructions from the nucleus to the cytoplasm. ◦ In biology, RNA is used for interpreting and inscribing information from DNA and transporting it to the ribosome for protein production. The need for the inclusion of this concept is such because the system’s DNA which stores the system design 72 information needs to be expressed by the mechanical cells in the system’s self- growth and self-development. Therefore interpretation of this information is required before it may be applied. 13. Amino Acids – The individual subunits of which proteins are made, composed of a central carbon atom bonded to an amino group ( 2 NH − ), a carboxyl group ( COOH − ), a hydrogen atom, and a variable group of atoms denoted by the letter R. ◦ Amino Acids in biology are what the protein instructions are written in by the ribosome; they may be regarded as their own language whereby various combinations of the elements of this language create a particular protein type. Similarly the need for a similar concept in mechanical systems is required in order to write desired cellular instructions. 14. DNA – It is a nucleic acid which contains the genetic information and instructions used in the development and functioning of an organism. Their main function is for long term storage of this information. a. Genotype – The genetic composition of an organism; the actual alleles of each gene carried by the organism. It is the inscribed design information of the system. b. Phenotype – The physical characteristics of an organism; can be defined as outward appearance (such as flower color), as behavior, or in molecular terms 73 (such as glycoproteins on red blood cells). Essentially it is the physical expression of the inscribed genotype in the real world. ◦ DNA is necessary and is included because the framework which we have developed is centered around a DNA based design information storage and retention strategy as all biological systems are devised in such a manner. 15. Genome – The whole hereditary information encoded in the DNA including both the genes and the non-coding sequences of the DNA. ◦ The inclusion of this concept is a result of the need to group all the characteristics (genes) of an entire design into a collective grouping. 16. Genes – A unit of heredity that encodes the information needed to specify the amino acid sequence of proteins and hence particular traits; a functional segment of DNA located at a particular place on a chromosome. ◦ In biology genes are used to store the characteristics of a particular system. Namely if a bio-system has brown hair or brown eyes etc., that information is stored in the system’s DNA through genes. Similarly synthetic systems also need to store this information which includes the size and shape of the elements which define the system’s form. 74 17. Morphogenesis – It is a fundamental principle of developmental biology concerned with the shapes of organs and subsystems and their relative positions with respect to the formation of the entire organism. ◦ Morphogenesis is necessary and is included because the framework which we have developed is centered around a self-organization / self-growth and formation strategy as all biological systems are devised in such a manner. The above set of 17 concepts and principles are those ascertained and synthesized from our investigations into biological systems. This list constitutes those key elements which we believe are necessarily required to be a part of biological systems and in doing so gives them a direct advantage in terms of robustness and adaptability. These concepts and principles will be included in our model, discussed and applied to the field of adaptive system design. 4.3 Bio-Concept Model and Applications to System Design 4.3.1 Introduction Intrinsically biological systems vary greatly from artificial systems. Artificial systems undergo a process of design; whereby customer requirements get mapped to high-level functions, high-level functions get decomposed into lower levels, and low-level functions get mapped to corresponding components. While vast amounts of information is generated and stored in the files or databases, it is often the case that design rationale and background information of design decisions are not accessible. Furthermore, the production of the final product is subject to the interpretation of 75 accessible design information. The weak links between design rationale and design information and between design information and manufacturing have made it impractical for current engineered products to adapt and evolve as environments change. Biological systems on the other hand go about design, production and recycling in a completely different manner. Nature does not “design” for a particular “customer”; rather it produces and refines its products through millions of years of evolution to meet requirements set forth by the environment which the product is living in. The “design information”, i.e., genome information, used in the production and maintenance of the system is usually completed once fertilization has occurred. The newly formed DNA strand itself stores the design information as a pseudo information database. Furthermore, contrary to artificial design, the information regarding the design is stored within the design itself to be accessed by the design when needed. Production of biological systems is achieved through a process of bottom-up manufacturing and self-assembly, guided by the system’s DNA (Wilt and Hake 2004). The process of cellular division dictates the replication of cells in a manner such that each newly formed cell includes amongst other things, the entire system’s DNA information. This important distinction provides biological systems significant advantages in adaptability. Building systems in a bottom-up fashion while providing them the capability of storing complete system information within each building block allows for such systems the ability to self-heal through regeneration. Based on the 76 DNA held by each cell, repair to subsystems in certain animal and plant species is achieved through a replacement of deteriorated or ill functioning parts through phagocytosis and cellular division (Audesirk et al. 2001). This allows biological systems to be much more robust and fault tolerant than artificial systems. Furthermore, once a biological system’s lifecycle has expired the entire system is virtually recycled. This is achieved by allowing the cells of the deceased system to be either used as a source of energy by other systems or to be decomposed fully and integrated back into the environment. 4.3.2 Cellular Product Representation Biological classification is a highly organized process whereby animals and plants are grouped into multiple layers of order based upon their characteristics and behaviors. In essence, 8 levels of hierarchy exist that group organisms from the upper levels of DOMAIN to the lower levels of SPECIE (Audesirk et al. 2001). Utilizing a similar principle we define three levels of hierarchy for artificial systems. The upper level in our scheme is CLASS, the middle level is SPECIE, and the lower level is CELL. In biology, classes are what people commonly identify when classifying animals into groups, e.g., mammals, amphibians, reptiles. Species are the next common grouping that people can commonly distinguish, examples of which include for CLASS mammal SPECIE tiger, leopard, horse etc. In our model the lowest level of CELL is the most important because our model emphasizes cellular structure. Utilizing the paradigm of bottom-up self-assembly for realization of our bio-inspired systems requires the concept of the cell to be a prevalent and critical component of the model. 77 An example of our system categorization hierarchy is: CLASS: Furniture; SPECIE: Chair, Bench, Stool, Bed, Sofa, Futon, Table, Cabinet; CELL: mechaniCELL. Utilizing such a categorization scheme will have later implications when defining the DNA of our system known as design DNA or dDNA for short. 4.3.2.1 mechaniCELLs In Biology, cells are the building blocks of life and act as both the functional and structural units of all organisms. The very existence and survival of organisms on this planet are a direct result of the nature of cells and their interactions with one another. All system level functions of organisms are a result of cellular functions and their combinations across multiple cells (Audesirk et al. 2001). Organism forms and behaviors are also highly dependant upon the multiplication and self-organization of cells. Cells are also the design databases of organisms as they store the genetic information of the entire design within DNA. They provide an avenue by which biological systems gain an added level of robustness as they allow bio-systems to self- heal and self-repair. In biology there essentially exist two basic types of cells, stem cells and “simple” cells as seen in Figure 4.2. We use the term “simple” cells in relation to stem cells which are more complex in the functions which they perform (Audesirk et al. 2001). We categorize simple cells into two specific categories, homogeneous and heterogeneous groupings. Homogeneous cells are those location specific cells (e.g. blood cells) which have already been differentiated and remain that type of cell for the duration of their cellular lives. These cells have unique functions and forms depending on the organs which they compose. These types of cells are 78 further classified into groups or sets of cells which we classify as heterogonous cell groupings. Therefore each set of heterogeneous cell (e.g. blood cells, lung cells, heart cells etc.) will have a unique set of homogenous cells associated with it. Single celled organisms are composed of homogeneous simple cells whereas multi-cellular organisms are composed of heterogeneous simple cell groupings along with stem cells. Stem cells exist in two forms, embryonic stem cells and adult stem cells (Audesirk et al. 2001). Stem cells are unique in that they are undifferentiated cells (non-specialized cells) capable of renewing themselves through mitotic cell division and differentiating into a wide array of specialized cells making them instrumental in a body’s regenerative capabilities (Audesirk et al. 2001). As such, in Figure 4.3 the function set which these cells can perform include all functions which the specialized cells they are able to differentiate into can perform. Figure 4.3 Categorization of the various cells found in multi-cellular organisms “Simple” Cells Stem Cells Homogeneous Cells Heterogeneous Cells F1,1…F1,n F2,1…F2,n F3,1…F3,n F4,1…F4,n F5,1…F5,n F1…Fn F1…Fn F1…Fn F1…Fn F1…Fn F1,1…F1,n F2,1…F2,n F3,1…F3,n F4,1…F4,n F5,1 …F5,n F1,1…F1,n F2,1…F2,n F3,1…F3,n F4,1…F4,n F5,1 …F5,n F1,1…F1,n F2,1…F2,n F3,1…F3,n F4,1…F4,n F5,1 …F5,n F1,1…F1,n F2,1…F2,n F3,1…F3,n F4,1…F4,n F5,1 …F5,n F1,1…F1,n F2,1…F2,n F3,1…F3,n F4,1…F4,n F5,1 …F5,n 79 Recognizing the importance of cells to biological systems, our developed model emphasizes the incorporation of mechanical cells or mechaniCELLS into our bio- inspired artificial system design and system realization. From Figure 4.3, it can be seen that the stem cell offers the greatest level of robustness and hence our model will be based upon this concept. As will be discussed in the next section, our systems will be self-built from a basis set of cells which will be organized into three germ layers each with a unique differentiated type and associated functionality. In biology, the internal components of the biological cell are well defined, structurally though it is not defined as it usually conforms its shape to fit where needed (Audesirk et al. 2001). Our model utilizes mechaniCELLs with both well defined internal components and external structure. Internally our cell is composed of these elements: nucleus (control unit) (Cu), DNA (design DNA) (dDNA), mitochondria (mechaniCELL energy storages and converters) (MES, MEC) and lysosomes (mechaniCELL material converters) (MMC). For the sake of simplicity we selected the structure of our cells to be that of a cube. Each cell is defined by two mechanical concepts, its centroidal location ) ( φ defined with respect to a relative coordinate system and the functions performed by each of its 6 sides ) ( f . Following is the Cell definition. A schematic along with labeling scheme used for each of the 6 faces can be seen in Figure 4.4. 80 Definition 1: mechaniCELL A mechanical cell, denoted by mechaniCell, is defined as: mechaniCELL = {Cu, ) ( f , ) ( φ , dDNA, MES, MEC, MMC} Figure 4.4 An illustration of a mechanical cell In the following subsections, we will introduce definitions of the cell components. 4.3.3 Design DNA, dDNA and System Genome, sGenome DNA is the blueprint for life as it contains the necessary instructions to construct the body and all of its subsequent components. DNA, in non-asexual beings such as humans, in effect serves two purposes: to unite genetic information inherited from both parents, and also to store the system’s genome. The genome contains information regarding the functions, forms, and behaviors which the body and its subcomponents are able to express during the system’s growth process (Wilt and Hake 2004). At conception, the fetus is granted traits from both its mother and father which dictate the manner in which it will live out the rest of its life. The functions an organism is able 81 to perform, the behaviors which govern those functions, and the forms which create the behaviors are all encoded in DNA. This process can be seen in Figure 4.5. Figure 4.5 A natural system’s lifecycle Since life began from a single cell which multiplied to become the complex beings which we see around us, all information regarding our bodies have been stored and passed on from the initial cell to all the remaining cells. Although all cells contain the same information, different cells behave differently depending on their locations within the body (Wilt and Hake 2004). This is achieved through selective gene expression. Depending on the cell’s location certain genes of the DNA strand are transcribed through RNA and translated into proteins (the function carriers of the body), which themselves allow the cell to operate and behave in a required manner to produce a necessary output (Wilt and Hake 2004). An example of gene transcription selectivity is found in the pancreas of the human body. Even though every cell in the body contains the genetic information for insulin (a protein hormone that regulates glucose uptake), this gene is only transcribed in certain cells in the pancreas. Thus transcription is restricted to only those genes needed by that specific type of cell at that specific time of its life. 82 Using such a process as inspiration we develop a concept of a Design DNA or what we call dDNA. dDNA in our model is organized into multiple layers of abstraction, and arranged in matrix notation. dDNA is an information storage approach which unifies the main characteristics used to describe a product, namely function and form with behavior being a resultant of the two. Definition 2: Design DNA, dDNA (Biological DNA) & System Genome, sGenome (Biological Genome). dDNA, seen in Figure 4.6, is a matrix representation containing the system’s genome or sGenome. sGenome contains information regarding Functional Groups (Embryonic Germ Layers), System Specific Functions (Biological System Organs), Cellular Chromosomes including genes which are the elementary information carriers, and a mechaniCELL Instruction Set, MIS (Biological Transcribed Protein Set). Figure 4.6 Multilayered dDNA structure 83 Definition 3: mechaniCELL Chromosomes and Genes Each element in the above dDNA structure is a representation of a cellular chromosome. The concept contains two key pieces of information about the cell relative to the rest of the system: cellular location and cellular functions. In the case of the above defined cubic mechaniCELL, its cellular chromosome can look something like that seen in figure 4.7. Figure 4.7 mechaniCELL chromosome The above chromosome is composed of a form genotype, containing 3 coordinate genes (x, y and z coordinates), and a functional genotype, containing 6 functional genes (one for each face of the cube). These genes are inscribed by binary bits and as such each gene has 2 possible alleles, either a 1 or a 0. The concept of Chromosome Complexity can be defined as it relates to the mechaniCELL type and the number of functions each of the cell’s faces can perform. Therefore, a mechaniCELL of type dodecahedron for example with 4 functions per face will have significantly more genes and hence a longer chromosome. Also depending on the physical world which these cells operate in, the larger is the space, the more bits are required to define the cell’s centroid and hence the more complex the cellular chromosome will be. The behavior of the cell in the physical world, i.e. the expression of the genotype, is the phenotype of the system. Hence such a system will exhibit a functional phenotype as well as a form phenotype. 84 Similarly to the dDNA structure, its mathematical representation seen in the dDNA matrix, has each element of the matrix representing a unique cell defined by its relative centroid coordinate location ) ( φ and the functions each of its 6 faces ) ( f are able to perform. The matrix can be seen in figure 4.8. Figure 4.8 Multilayered dDNA matrix Each element of the matrix n m f , ) ( φ shown above in its shorthand form is actually, n m n n n n n n n m f f f f f f f f f f f f z y x f , 6 1 5 1 4 1 3 1 2 1 1 1 , ) ) ... ( , ) ... ( , ) ... ( , ) ... ( , ) ... ( , ) ... ( , , , ( ) ( = φ whereby x, y, z are the coordinates of the cell’s centroid defined with respect to a relative coordinate system and 6 1 1 1 ) ... ...( ) ... ( n n f f f f are the set of functions each of the 6 cellular faces are able to perform. The indexes m and n are used to represent the germ layer number and organ number, respectively. Definition 4: System Specific Functions, SSF (Biological System Organs). System Specific Functions are used to group cells into class specific function sets. In biology different species are required to perform unique functions for survival according to restrictions imparted on them by their environment. As such these 85 species over the years have developed dedicated organs (both internal and external) to perform these key functions. Similarly, by design, each specie of man-made product is also required to perform a certain set of low level decomposed functions according to restrictions imparted on them by customers. This set of low level functions is obtained through traditional functional decomposition techniques. This procedure will be discussed in more detail in the next section. Given a finite collection of mechaniCELL chromosomes C, an instance of O organs may be defined as, n L and k where C C C O n k k k L k ... 1 3 1 } ) ( , ) ( , ) {( , 2 , 1 , , = = ⊃ K K . The restriction for k is because the model is defined relative to three germ layers. Definition 5: Functional Groups, FG (Embryonic Germ Layers). The development of a biological system from a zygote to a fully functioning system is an extremely regulated process. After fertilization has occurred, the zygote is formed containing the genetic information from both the mother and the father. Rapid mitotic cell division next transforms the zygote into a collection of cells called a Blastula then into an embryo containing 2 to 3 germ layers depending on the complexity of the system (Sadler 2000). Once the germ layers form, cells get reprogrammed to only multiply to form the cells which are found in their respective germ layer. Cell differentiation through germ layer categorization allows for unique organs to form and develop within the embryo. 86 Drawing inspiration from these concepts we develop a similar germ layer approach for our model. Rather than beginning our system development at the zygote stage, we allow for cells to be programmed into one of three defined germ layers because we strive to make our approach as simple as possible while still retaining key biological principles. We define three germ layers: ENERGY-MATERIAL LAYER (Inner Germ Layer), STRUCTURAL LAYER (Middle Layer), and INTERFACE LAYER (Outer layer). The ENERGY-MATERIAL LAYER involves those components / subsystems which will be responsible for the conversion of energy and materials. The STRUCTURAL LAYER will involve those subsystems which will provide the overall support of the system. The INTERFACE LAYER will involve those subsystems which will facilitate the communication between the internal components with one another and the external environment and system. Each of the three layers serves a particular overall system function and has been defined similar to the three main layers found in biology. Given a finite collection of organs O, a germ layer GL may be defined as, 3 1 } ) ( , ) ( , ) {( , 2 , 1 , K K = ⊃ k where O O O GL n k k k k . . The steps for the development of the embryo from 3 germ layers into a fully functioning system will be as in biology outlined in the mechaniCELL Instruction Set, MIS (Biological Transcribed Protein Set) and Self-formation Governing Principles, SGP (Morphogenesis). 87 Definition 6: mechaniCELL Instruction Set, MIS (Biological Transcribed Protein Set). In biology, the genetic information stored in DNA is stored as combinations of 4 bases; Adenine, Thymine, Guanine, and Cytosine (Audesirk et al. 2001). This information is transcribed by RNA and taken to the ribosome for protein production from roughly a set of 20 amino acids (Audesirk et al. 2001). The proteins are subsequently used by the cells as instructions to carry out particular actions in order to express the desired gene. The three basic categories of proteins are structural proteins, enzymes, and signaling proteins (Audesirk et al. 2001). In our current model we account for two of the three types of proteins, namely structural proteins and enzymes. Signaling proteins will be treated in the discussion of Morphogenesis in the next chapter. In our model we define MIS, as a pre- transcribed set of cellular instructions defined by the designer of the system. In doing so MIS unifies RNA, proteins (structural, enzymes), ribosomes and amino acids into one concept. MIS defined as a collection of two protein types is, <mechaniCELLInstructionSet>::= <enzymes ><structuralProteins> <enzymes> : : = <cellularFunctionExpressionProteins><formationProteins> <cellularFunctionExpressionProteins> : : = <eAminoAcids><gAminoAcids> <formationProteins> : : = <fAminoAcids><gAminoAcids> <structuralProteins> : : = <sAminoAcids><gAminoAcids> 88 Cellular function expression proteins or “eProteins” are a set of instructions used to express particular cellular functions and are defined relative to each of the 6 faces of a mechanical cell. Formation proteins or “fProteins” are a set of instructions used to define movement commands for each mechanical cell. Structural proteins or “sProteins” are a set of instructions used to join two or more formed components resulting from “fProtein” cellular expression. As in biology, each type of protein is formed from various combinations of amino acids. One thing to note that in the case of enzymes, their main function is to speed up a chemical reaction. In our model though our systems do not undergo a chemical reaction aside from energy conversion and usage for relative movement (but that is not assumed to require a catalyst), rather these enzymes are defined as a means of speeding up the organization of the cells to the desired overall system shapes. Definition 7: mechaniCELL Instruction Language, MIL (Amino Acids). In biology, amino acids are the basic structural building units of proteins. There are roughly 20 amino acids which when grouped in certain orders and sequences can generate a very large number of unique proteins. Similarly we define a group of amino acids and group them into 4 sets seen below. <MCL>: : = <gAminoAcids><eAminoAcids><fAminoAcids><sAminoAcids> <gAminoAcids> : : = <(x,y,z), F1, F2, F3, F4, F5, F6, &> <eAminoAcids> : : = <f1 f2 … fn> <fAminoAcids> : : = <u d l r f b A D #> <sAminoAcids> : : = <c> 89 a. gAminoAcids or generalAminoAcids is a set which stores the amino acids that define centroid location (x, y, z), mechanical cell face information F1 through F6 and the “&” character which is used for combination purposes. b. eAminoAcids or cellularFunctionExpressionAminoAcids is a set which stores the amino acids that define cellular functional expression instructions. The cellular functions are represented as f1, f2 … fn. c. fAminoAcids or formationAminoAcids is a set which stores the amino acids that define formation instructions. u, d, l, r, f, b, A, D, # stand for up, down, left, right, forward, backward, attach, detach and an integer value respectively. The movement instructions are all defined with respect to a relative coordinate system. d. sAminoAcids or structuralAminoAcids is a set which stores the amino acid that defines the combination instruction, c. An example of a protein composition of amino acids is, <fProtein1> = (2,1,6)DF3d1AF3(1,1,5)AF1 which states that the cell at centroid location (2,1,6) should detach face 3, move down 1 and attach at its face 3 the cell at centroid location (1,1,5) at its face 1. 90 Definition 8: Self-formation Governing Principles, SGP (Morphogenesis). The cell and the processes it undergoes with respect to DNA transcription and translation has noteworthy analogies in engineering. Engineering design as previously mentioned is a process of information processing. Information is consumed by engineers, manipulated / applied and finally transformed into new information by way of a completed design. This design is usually of the form of an engineering drawing, or a product drawing and can be regarded as a design blueprint. This blueprint contains the form characteristics which the particular designed entity should express. The form of this design indirectly suggests the functions and behaviors which this system can carry out. This notion is analogous to that of biological DNA because DNA similarly stores the information regarding functions, forms and behaviors of the system. The engineering design process is followed subsequently by the manufacturing process which provides the means for physical realization of the system. Aside from the obvious inputs into the manufacturing process such as energy, material and signals, a key input is the engineering design blueprint. It is the way in which this product is designed that ultimately will dictate the way in which it should be produced. Therefore the manufacturing engineer is required to interpret the design blueprint in order to determine the proper process for the system’s physical realization. This interpretation process is analogous to the interpretation process which RNA undergoes in the creation of proteins (cellular actions) from DNA (design blueprints). Once the 91 design blueprint has been interpreted and understood, the manufacturing engineering then assembles production instructions and inputs them into the manufacturing machinery to produce the system. Using raw materials, the components of the system are manufactured and assembled. Similarly, proteins are actions and instructions used by cells to multiply, differentiate, and self assemble in a bottom-up manner to produce tissues and organs. The tissues and organs later combine to form the completed system. The natural production process and its engineering analog can be seen in Figure 4.9. Figure 4.9 Natural production process and its engineering analog One of the key processes governing the bottom-up self assembly and organization of cells taking a bio-system from an embryo to a mature system is a process known as Morphogenesis. It is a crucial process in determining the shapes, sizes, and layouts of organs, tissues and the overall body anatomy (Bard 1990). Essentially, morphogenesis Design Blueprint Interpretation Production Instructions Production System Design Blueprint DNA Ribosome RNA Amino Acid Cell 1 Cell 2 Cell 3 Cell n Engineering Drawing Manufacturing Engineer Manufacturing Instructions Bottom-up Self Assembly Bio- System RNA Material Synthetic System Design Blueprint Design Blueprint Interpretation Interpretation Production Instructions Production Instructions Production System Design Blueprint Design Blueprint DNA Ribosome RNA Amino Acid Cell 1 Cell 2 Cell 3 Cell n Engineering Drawing Manufacturing Engineer Manufacturing Engineer Manufacturing Instructions Manufacturing Instructions Bottom-up Self Assembly Bio- System RNA Material Synthetic System 92 is a set of rules or principles which are followed by the embryo in its transformation into a complete system (Bard 1990). Drawing insight from this concept we develop a similar process to govern the development of our bio-inspired system from an embryo to a fully functioning system. The idea is somewhat straightforward in that we develop a set of general rules called Self-formation Governing Principles, or SGP which will be used to govern the self-organization of any desired bio-inspired system. The main principle governing the self formation of the system is the minimization of energy principle. According to noted biomimetic researcher, Julian Vincent, all biological systems follow such a principle in that whether they are undergoing growth, development or preservation of life, they all do so in a manner which minimizes their overall energy. Energy is very difficult for biological systems to come by often requiring considerable work to attain it. For a biological system to survive the net flux of energy into the system must always be greater than the net flux of energy out, hence bio-systems always try to conserve as much energy as possible in order to survive. The energy minimization concept of morphogenesis as it pertains to the growth of a system through the self-organization of its cells will be discussed in greater detail and demonstrated in the next chapter. A brief definition of the concept of morphogenesis may be defined below as follows: <SGP>: : = <embryoLayout><embryoDevelopment> <embryoLayout> : : = <systemOrgans><cellualrChromosomes> <embryoDevelopment> : : = <germLayerFormationOrder><cellularActions> <systemOrgans> : : = <lowLevelFunctions> <cellularChromosomes> : : = <number><xyzDimensions><shape> <germLayerFormationOrder> : : = <formationSequence> 93 <cellularActions> : : = <MCT> <formationSequence> : : = <Form Energy Material Layer first, if no such layer exists then form Structural Layer Form Structural Layer second, if no such layer exists then form Interface Layer Form Interface Layer, if no such layer exists then begin bonding formed layers together> 4.3.4 dDNA vs. Function, Form The two main concepts used to fully describe a design are function and form with behavior being an implied concept from the two. As previously mentioned, dDNA allows for a multilayered design information management approach through incorporating these 2 concepts into a single entity. Furthermore, dDNA also includes information regarding the physical realization of the system through its MIS element. Therefore as a concept, dDNA not only fully describes a design, but it also dictates the means by which to achieve it. The relationship between the key elements of design and the components of the dDNA matrix (system genome or sGenome) can be seen in Figure 4.10. 94 Figure 4.10 The multilayered dDNA structure with relationships to key design elements A basic dDNA structure essentially includes an empty matrix frame requiring the designer to fill in its sGenome based on his/her design. As with many design methodologies usually one of the first steps in the process involves a functional decomposition taking the top level system function and decomposing it into low level functions. Through this step the designer is able to identify the ORGANS (low level functions) of the system which are unique to a particular CLASS of systems. As previously discussed, the development of organs in certain classes of animals such as mammals for example is a direct result of requirements imparted on the animal by its environment. Similarly the organs developed for our bio-inspired artificial systems are a direct result of the requirements imparted on the system by its customers. These ORGANS, based upon the designer’s knowledge and the nature of the design get categorized into one of the three germ layers. Once the ORGANS have been Embodiment Design Form •Phenotype visualization in the real world is an expression of inscribed genotype Embodiment Design Form •Phenotype visualization in the real world is an expression of inscribed genotype Embodiment Design Embodiment Design Form •Phenotype visualization in the real world is an expression of inscribed genotype Design Realization •Self Production Instructions Design Realization •Self Production Instructions Functional Unit Functional Decomposition Organ 1 Organ n Class Specific Functions •ORGANS (low level functions) unique to particular CLASS •In biology organs develop as a result of env. req. •In artificial systems they result from customer req. •ORGANS grouped into appropriate GERM LAYERS Functional Unit Functional Decomposition Organ 1 Organ n Class Specific Functions Functional Unit Functional Decomposition Organ 1 Organ n Functional Decomposition Functional Decomposition Organ 1 Organ n Class Specific Functions •ORGANS (low level functions) unique to particular CLASS •In biology organs develop as a result of env. req. •In artificial systems they result from customer req. •ORGANS grouped into appropriate GERM LAYERS dDNA = 95 identified, solutions to the low level functions must be identified through the organization of cellular chromosomes in various combinations to fulfill those functions. In effect the various combinations of the chromosomes define the form of the overall system. Furthermore, once all of this information is addressed, the designer can move onto the development of MIS by developing the various types of proteins the systems will need to use in its development from early embryo to completed system. 4.4 Case Example: Cellular Chair Design 4.4.1 Problem Description Using the concepts and definitions we developed in the previous sections, we apply them towards the design and development of a bio-inspired chair. It should be mentioned that the case example discussed here is supposed to illustrate how our bio- inspired representation framework can be applied to capture information for dDNA- based design, rather than to demonstrate the effectives of the framework for supporting design activities. 4.4.2 Cellular Chair Modeling and Design As in biological systems, the first step in the design of the chair is the development of its dDNA or sGenome. The steps for the design and development are as follows: Step 1: Identify the CLASS and SPECIE of the desired System This system falls under the CLASS FURNITURE and SPECIE CHAIR 96 Step 2: Determine the System Specific Functions (low level functions), i.e. SPECIE Organs and categorize them into suitable germ layers. This step would require a functional decomposition, but in this case the simplicity of the system is such that the low level functions are easy to obtain. They are; provide support, provide comfort, and provide balance. Based on the designer’s knowledge, the germ layers which these three would fit in would be the STURCTURAL Germ Layer. The simplicity of this system is such that there is no ENERGY / MATERIAL or INTERFACE Germ Layers. Step 3: Determine the Form of the Design by Determining the Geometry of each Cell Chromosome. This step is dependant upon customer requirements and also designer preference. The size of each chromosome is defined relative to a pre-defined coordinate system such as the one seen in Figure 4.11. The coordinate system is defined at the upper left corner of the feeding station. The feeding station is a continuously producing feeding location which provides the system with new cells when required. New cells are inputted to the system in the + z direction. Figure 4.11 Coordinate system with feeding location (Each cube above is a 2x2x2 unit length cube) 97 Step 4: Determine the Formation Instructions & Define the MIS Element of dDNA. This is a non-unique set of instructions (seen in appendix A-1) which can be used to govern the self assembly of the system. Utilizing the amino acids defined earlier, a protein set can be generated to govern the self-assembly of the system. For the case of simplicity, we restrict cellular functions to be only s or h, namely soft or hard. This means that each of the 6 faces of each cell can have 1 of these 2 variations. Furthermore if a cellular face is set to s, that face may not be used to attach to a face of a neighboring cell. Step 5: Complete dDNA. The completed dDNA matrix including the MIS element can be seen in Figure 4.12. Figure 4.12 dDNA of a bio-inspired chair In the above, note that each element of the above matrix ) ) ( , ) ( , ) ( , ) ( , ) ( , ) ( , , , ( 6 2 1 5 2 1 4 2 1 3 2 1 2 2 1 1 2 1 f f f f f f f f f f f f z y x is composed of the centroid 98 location of each cell (x,y,z) (defined as a 2x2x2 unit length cube) relative to the coordinate system defined in step 3 and the cellular functions of each of its 6 faces defined in order from left (face 1) to right (face 6). The first number in the cellular function component 1 f represents whether the cell is attached at that face (1) or detached at that face (0). The second number 2 f represents whether that face is soft (1) or hard (0). Step 6: Governed by dDNA, Self-assemble the System. The morphogenesis rule set governing the self-assembly of the bio-inspired chair can be seen in Figure 4.13. Much of the elements of this particular SGP have already been explained in the previous section. The only part of Figure 4.13 which requires any further discussion is the <cellularChromosomeSet> element. In essence this element stores the specific geometric information regarding the design’s particular set of chromosomes, <cellularChromosomeSet>::= <number><xyzDimensions><shape>. <number> represents the amount of that particular shape, the <xyzDimensions> represents the unit volume the shape encompasses, and the <shape> represents the shape of that particular geometry. Note that two types of shapes exist, solid shapes and open shapes. Open shapes, such as “openSquare” represents a square which is hollowed out in the middle. 99 Figure 4.13 SGP for bio-inspired chair 4.4.3 Simulation Results A simple simulation was devised to show the self-growth of the cellular chair from 43 cells through the use of the mechaniCell Instruction Set (MIS) and the Self-formation Governing Principles (SGP). Signaling and membrane proteins along with the energy minimization principle of SGP will be dealt with in the subsequent example in the following chapter. 100 Figure 4.14 Screenshots of self-assembly simulation (Images progress from left to right and from top to bottom. Each step is governed by a particular protein combination defined in the SGP element seen in Appendix A-1) All of the cells were fed through from the feeding location designated by the 15 x 15 white cube base from figure 4.11. Screenshots from the simulation can be seen in Figure 4.14. The final step in this process is the cellular functional expression step whereby the system applies the <eProteins> defined in MIS. This step can be seen in Figure 4.15 with the expression of the cellular soft function seen in light blue. 101 Figure 4.15 Cellular expression of the soft function shown in light blue 4.5 Conclusion and Remarks In this chapter we outlined the process which we have gone through in developing the first cornerstone of the SOS Design Framework, namely the Cellular System Formation and Representation (cFORE) component. We have discussed the procedures followed in extracting fundamental concepts and principles synthesized from biology. We outlined the methods used in their transformation and application to the area of system design. We presented our model including all relevant definitions and concepts and demonstrated its use through a simple case example of the growth of a bio-inspired chair. In the coming chapter we will present a more sophisticated example which demonstrates true cellular self-organization (globally controlled by the system’s dDNA) guided by SGP, specifically its energy minimization component, and utilizing signaling and membrane proteins in emerging system morphologies and functionality. 102 Chapter 5: Multi-Agent Cellular System Self- Growth and Reconfiguration 5.1 Simulation Introduction 5.1.1 Objectives The objectives of this simulation are to demonstrate that the development of a mechanical system utilizing the cFORE representation scheme may be achieved in much the same way that a biological system grows rather than through standard manufacturing techniques and practices. Although standard manufacturing techniques have been refined and optimized over the years, they still produce considerable waste and expend much energy. Nature on the other hand utilizes a self-organizing bottom- up growth process whereby cells, guided by the system’s DNA and local interaction rules defined by a process known as morphogenesis can self-organize to form desired components by communicating through the use of signaling and membrane proteins. Nature’s process for system development is more efficient as it produces minimal waste and expands considerably less energy. The goals of this simulation are to demonstrate the self-growth capabilities of a bio- inspired mechanical system without hard-coding the protein set (explicitly defined cellular movement instructions) governing self-assembly as was done for the bio- inspired chair example. As previously mentioned and demonstrated in chapter 4, the growth and development of the bio-inspired chair defined by the chair’s dDNA was 103 achieved through the user defined MIS or MechaniCELL Communication Tool which defined only enzymes and structural proteins. What we will set out to do in this simulation is demonstrate the growth of a bio-inspired system strictly through signaling proteins (communication signals), membrane proteins (signal receptors) and morphogenesis (SGP), which defines local interaction rules to guide the cellular movement process in emerging system forms and functions. Furthermore, since we are defining a mechanical system as a collection of cells rather than a system in the traditional sense, we will also attempt to address the issues of system reconfigurability as a means of increasing system adaptability. To accomplish these goals we will need to further develop the concept of SGP as well as develop the concept of the signaling protein. The development of SGP essentially entails the development of a local rule set which will govern the interaction of the cells during their self-organization. The means by which the cells will coordinate their interactions is through the development of communication protocols mirrored in biology through the concept of growth factor proteins. Growth factor proteins is a term used interchangeably with cytokines and are used in biology for stimulating cellular growth, proliferation and cellular differentiation (Audesirk et al. 2001). Hormones which are similar to cytokines, such as insulin, differ from cytokines in that they are only secreted and accepted by certain discrete cells in the body, whereas cytokines are secreted and accepted by virtually all nucleated cells (Audesirk et al. 2001). Growth factor signaling proteins are therefore more robust and prevalent in the human body and thus will be utilized for inspiration for the cellular communication aspect of the self-organization algorithm. The 104 simulation will be accomplished through a representation of the system as a multi- agent system whereby each agent is a representation of a mechaniCELL with their actions and interactions governed by SGP through growth factor protein inspired communication protocols. 5.1.2 Multi-Agent System A multi-agent system (MAS) is essentially a system composed of multiple interacting intelligent agents whereby each agent observes and acts upon an environment. The key concepts which can be taken from this definition are the notions of “intelligence” and “observing and acting upon”. The notion of intelligence is built into the system through the user defined local interaction rules which are used to govern the global emergent behavior of the system. “Observing and acting upon” an environment or other agents is achieved through communication (both sending and receiving signals). In essence the user creates a group of agents, defines the rules for their interactions, starts the simulation and observes the resultant global emergent behavior. Such a tool is useful in simulating the flocking of birds, the foraging of ants, and the prediction of weather patterns to name just a few examples. In this instance though, we use this tool to simulate the growth of a bio-inspired mechanical system through the self- organization of its cellular composing elements. This approach of validating our representation model is suitable because collectively the concept of an MAS is very similar to that of a biological cellular system. Cellular systems are themselves composed of individual cells which observe and react to one 105 another based upon signals from their neighbors and environment. These signals are transferred between cells through growth factor proteins with the local interactions guided by morphogenesis. One key deviation from bio-systems and the standard notion of an MAS deals with the idea that global emergence of MAS systems is entirely achieved through a decentralized strategy. Emergence in MAS can often be seen as complex shapes and patterns which usually arise and repeat, but often times can be difficult to control. Although nature employs a decentralized strategy in the self- organization of the formation of its biological systems, the emergent behavior is controllable through DNA. Therefore biology in effect utilities two conflicting control strategies in its development; centralized control through DNA guidance as well as decentralized control through cellular self-organization. To date very little research is available which touch upon utilizing a dual strategy. This work will set out to employ a Dual-Control Strategy for mechanical system self-growth through mimicking the biological growth process of DNA guided emergence of form and function through cellular self-organization. 5.1.3 MASON Simulation Environment MASON is a multi-agent simulation library core developed in JAVA as a joint effort between George Mason University’s Evolutionary Computation Laboratory and the Center for Social Complexity. MASON stands for Multi-Agent Simulation of Networks and is essentially a fast discrete event agent toolkit with its created models being completely self contained with capabilities of running across many JAVA applications and frameworks. MASON has the capability of representing continuous, 106 discrete, network data or hexagonal 2D or 3D models. The MASON consol seen in figure 5.1 gives the user access to model data and provides control over the simulation such as playing, stopping and stepping through it. The user can also bring up information about individual agents such as coordinate location for example and various other desired data. Figure 5.1 MASON control window 5.1.4 Expected Results Modeling our bio-inspired system as a multi-agent system and using the MASON toolkit we hope to be able to demonstrate the growth of a mechanical system through DNA guidance of cellular self-organization. Along with providing a means of inputting system DNA and germ layer information (functional information), we need to also develop the biologically inspired morphogenesis-based algorithm and produce its source code in JAVA. Furthermore, representing a mechanical system as a cellular system provides us an avenue to investigate system reconfiguration as a means of elevating adaptability by increasing system functionality. Using the built-in MASON 107 GUI, the primary goal is to show the formation of a completed system partitioned by its functional germ layers from a loose collection of undifferentiated / non-specialized cells in a manner resembling biological growth. Second, it is desired to demonstrate reconfiguration by allowing the newly grown system to reconfigure into a completely different system as a means of gaining added adaptability and functionality as dictated by the changing environmental requirements. Through the demonstration of the self- growth of such a system we will have in fact achieved our goal of the development (although purely computer based) of a new class of mechanical life-like systems. Such is the case because the entirety of the system ranging from its design to its documentation through DNA to its manufacturing through cellular self-assembly will be entirely based upon principles, concepts and ideals extracted from biology. The only aspect of this new class of systems still requiring further development is its self- design aspect, i.e. self-generation of its dDNA, which will be treated in subsequent future work. 5.2 Design Problem As discussed in chapter 1, the application domain which we believe these types of systems are best applied to are those systems with minimal to no human contact during their product life-cycles. The possibilities of application in space exploration systems or military robots are immense. The resiliency, robustness and adaptability of such systems are keys for them to continue functioning and producing desired results. As discussed, ideally we feel that a system utilized for space exploration for example 108 need not be built on earth and sent to its respective exploration site based upon the requirements which designers believe could be encountered. Rather it would be desirable to send a collection of cells to the exploration site and allow them to self- configure and self-grow based upon dynamic recognition of the encountered environmental requirements. Furthermore, a system with the capability of self-growth should further have the capability of reconfiguring when its environment changes. Therefore the simulation study which will be conducted will include the foundational aspects (computer-based) required for the physical development of such a system; namely self-growth and reconfiguration. Again, the aspect dealing with the dynamic recognition of environmental requirements and subsequently altering the system’s dDNA to produce a morphology capable of producing functions to meet those requirements will be treated in subsequent future work. At this point in the development of the life-like adaptive mechanical system, we utilize the developed cFORE representation scheme as a means of documenting the desired design, i.e. the genotype, and demonstrate its dynamic expression through cellular self-organization, i.e. the phenotype, in the physical world. The problem which will be addressed in this simulation study which ties very closely to the growth / reconfiguration idea discussed above is a problem made famous by the work at USC’s Polymorphic Robotics Laboratory through the research of Dr. Wei Min Shen. In the development of his SuperBot project discussed in chapter 2, the researchers set out to create a system composed of multiple identical modules capable 109 of reconfiguration as a means of attaining needed functionality. The problem which Dr. Shen discusses is that given a set of modules and an environment with certain requirements, how can the modules of the SuperBot reconfigure to attain functions to meet those requirements? The noteworthy example which he discusses is that of the spider and the snake. Namely, in situations where climbing or grasping is required by the system, the modules must configure to form a spider. When fitting through a tight crevice or hole is required, the modules reconfigure to form a snake. The control algorithm which that system uses is what the authors call a hormone-based algorithm. Namely, in that algorithm the system, comprised of multiple modules is capable of reconfiguration based upon instruction broadcasting and selective module signal reception. Different modules of that system behave differently depending upon the signals received; some respond to them while others do not. Therefore self- organization of that system is achieved through selective reception of explicit modular instructions. What we will set out to do in this simulation is employ the cFORE representation scheme developed in chapter 4 and morphogenesis-based algorithm to demonstrate our system’s capability of solving the same type of problem. The main difference is that we attempt to employ a stronger biological influence by utilizing DNA, growth factor proteins, embryos, germ layers and morphogenesis in demonstrating self-growth and reconfiguration as discussed for space exploration robotic applications. A schematic of the proposed problem can be seen in figure 5.2 with a list of the problem’s hypotheses seen on the following page. 110 Figure 5.2 Spider / Snake simulation overview We hypothesis the following regarding this design problem: (1) System growth can be realized through a globally DNA controlled, decentralized cellular self-organization formation strategy. (2) As in biology, cellular self-organization for self-growth of mechanical systems can be achieved through the use of DNA (dDNA), morphogenesis (local rule set for cellular interactions), and growth factor proteins (cellular communication signals and receptors). Undifferentiated mechaniCELLs mechaniCELLs Differentiate to form a Spider Governing Process: SGP (Morphogenesis) Input: Snake dDNA Governing Process: SGP (Morphogenesis) mechaniCELLs Re-organize to form a Snake Cellular Differentiation Begins through Cellular communication and planning Input: Spider dDNA Embryo Stage Blastula Stage System Recycling 111 (3) Growth factor proteins (signals) and membrane proteins (receptors) should be a critical component of the morphogenesis-based algorithm. (4) As in biology, altering a system’s DNA results in a new system with either modified or entirely new system level functionality. Mechanical system reconfiguration as a means of modifying or attaining new functionality is primarily a result of altering a system’s dDNA. 5.2.1 Tying Biology to Engineering In figure 5.2, one can note that the simulation begins at the Blastula Stage which in biology is the second stage after the occurrence of conception. Once conception has occurred, the newly formed cell containing the genetic information from both the mother and father undergoes rapid cell division to form a collection of undifferentiated (non-specialized) cells. This stage in the development process is known as the Blastula Stage. From this point forward the process of morphogenesis takes over and utilizing growth factor proteins the cells begin communicating with one another in order to coordinate the process for forming the overall system. Morphogenesis is the underlying control mechanism which determines overall body shape, size and orientation. Once the cells have a general idea where they should be relative to the rest of the body they begin to form the body’s germ layers (functional groups). Germ layers are important in the body’s development as they lay out the functional aspect of the body’s numerous components and begin the process of specializing the body’s many parts. The formations of the heart, lungs, skeletal system for example are a direct result of cellular expression through germ layer differentiation. This stage in 112 the system’s development is known as the embryo. Morphogenesis is the main controlling factor in the development of the system from the embryonic stage until the final stages of the system. As one can note from the figure, the particular problem shown is a 2 dimensional problem rather than a 3 dimensional one. The reasoning behind this choice is that our conviction of the demonstration of the concept is much more important than its 3 dimensional aspect. Development of the morphogenesis-based control algorithm and the communication protocols are critical aspects of this problem which when developed properly and tested for a 2 dimensional coordinate system may be easily extended for the inclusion of a 3 rd dimension. Returning back to figure 5.2, one can note that this specific design problem has exceptional ties to biology as we have paid particular attention to injecting numerous critical biological concepts into the example. Development or growth goes through the same stages as it does in biology, namely, blastula, embryo and finally the completed system. Through communication by growth factor proteins (communication signals) and guided by morphogenesis (SGP) the cells are able to self-organize to form the required shape of a spider which is itself partitioned into functional elements by the various system’s germ layers. As was previously discussed in chapter 4, the 3 main germ layers defining the system’s functionality are the Energy / Material Layer (Yellow), the Structural Layer (Blue), and the Interface Layer 113 (Green). In an effort to mimic biology, the orientations of the layers with respect to one another dictate the layers layout with respect to the overall system. In biology for example, the inner layer (endoderm) which we have designated with the yellow color is one of the most vital to the overall functioning and wellbeing of the system as this layer forms the major organs of the body such as the heart, lungs, liver etc. Therefore such layer requires a great deal of protection which in biology is achieved through the middle layer (mesoderm) which we have designed with a blue color. The cells which differentiate to form this blue germ layer have as one of their main functions the notion of protecting the cells which differentiated to form the yellow layer. After all, without proper protection of the vital organs the system may very easily die. Finally the outer layer (ectoderm) which we have designated with the green color has cells which differentiate to allow the inner yellow layer cells to interface with the external environment. Color differentiation in the simulation is analogous to functional differentiation in biology. Great care and attention has been taken to develop a system which as closely as possible mimics biology not just in form, but more importantly in function as well. Again harking back to the SuperBot problem and the reconfiguration idea, we attempt to demonstrate reconfiguration not through individual explicit cellular instructions (hormone broadcasting and selective reception) , but rather by inputting various DNA structures into the system and allowing the system’s cells to independently reconfigure and re-grow through morphogenesis guidance and growth factor protein communication. 114 Functionality in this problem is seen in two facets through both system level as well as component level functionality. Component level functionality is seen through germ layer partitioning and cellular differentiation. System level functionality is seen through the formation of the overall system which not only looks and behaves as a spider or snake for example, but also functions like one as well. This is so because contrary to engineering design, in biology form begets function rather than the converse. This is one of the keys differentiating biology from engineering and is often a concept which is overlooked. If a system looks like something, more often than not it will function like that something; in biology form dictates function. 5.3 Spider / Snake Simulation 5.3.1 Simulation Space The simulation space defined in MASON is a rectangular coordinate space with 600 by 450 pixel dimensions. The one peculiarity of MASON is that it defines its coordinate system with the standard positive x-axis pointing to the right, but the positive y-axis is defined pointing down rather than the standard up. A picture of the simulation window with a superimposed coordinate system is shown in figure 5.3. 115 Figure 5.3 Simulation window with coordinate system In the above simulation space every location in the window is defined by a unique x-y coordinate pair. Therefore defining the initial location for the cells is accomplished simply by defining their coordinates relative to one another within this coordinate space. The formation of the spider / snake system defined in figure 5.2 requires the use of 64 individual cells. Using an arbitrarily chosen length and width dimension of the square cells to be 20 units, the 64 cells (each defined by their x-y centroid coordinates) can be placed inside of the simulation space as seen in figure 5.4. Placing the cells into the space is actually achieved by programming each one individually into the source code. The source code along with the algorithm will be discussed later. +x +y 116 Figure 5.4 mechaniCELL definition within simulation space With the simulation space created, the DNA of the spider and the snake can now be defined. The coordinates which define the DNA are arbitrary defined within the space itself, but what is not arbitrary are the cell’s coordinates relative to one anther. Namely, the final location in the simulation space of the cells defining the spider or the snake is arbitrary, but individually how the cells are defined relative to one another follows a strict pattern, otherwise the morphology (and functionality) of a spider or snake can not be displayed properly. The design DNA for the spider can be seen in figure 5.5. 117 Figure 5.5 Spider dDNA It is important to note that in this research we assume the design of the system has already been completed, hence we treat the dDNA matrix as a given (in this case the matrix was created by the designer). As previously mentioned, the self-creation or self-alteration of the dDNA matrix by the system based upon dynamic environmental requirement recognition will be the focus of future research. In the above figure, each element of the matrix defines the final location and orientation of each individual mechaniCELL with respect to the overall system. The cells are defined by 6 numbers; the first two are x and y coordinates of their centroids, and the last 4 are functional information regarding each of their 4 faces. For simplicity each face only has 1 function but more can be added if desired as was done with the previous chair example. The only function defined is whether the cell is attached to another cell at that face (1) or not (0). The labeling convention followed for each cellular face is seen in figure 5.6. Functional information for cell face 1 correlates to the 3 rd number from the above matrix element while face 2 correlates to the 4 th and so on. ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ) 1 , 1 , 0 , 1 , 50 , 130 ( ) 1 , 1 , 1 , 1 , 70 , 130 ( ) 1 , 1 , 0 , 1 , 90 , 130 ( ) 1 , 1 , 1 , 1 , 110 , 130 ( ) 1 , 1 , 0 , 1 , 130 , 130 ( ) 1 , 1 , 1 , 1 , 190 , 110 ( ) 1 , 1 , 1 , 1 , 150 , 130 ( ) 1 , 1 , 1 , 1 , 170 , 110 ( ) 1 , 1 , 0 , 1 , 170 , 130 ( ) 1 , 1 , 1 , 1 , 150 , 110 ( ) 1 , 1 , 1 , 1 , 190 , 130 ( ) 1 , 1 , 1 , 1 , 130 , 110 ( ) 1 , 1 , 0 , 0 , 210 , 130 ( ) 1 , 1 , 1 , 1 , 110 , 110 ( ) 1 , 1 , 1 , 0 , 210 , 110 ( ) 1 , 1 , 1 , 1 , 90 , 110 ( ) 1 , 1 , 1 , 0 , 210 , 90 ( ) 1 , 1 , 1 , 1 , 70 , 110 ( ) 0 , 1 , 1 , 0 , 210 , 70 ( ) 1 , 1 , 1 , 1 , 50 , 110 ( ) 1 , 1 , 1 , 1 , 190 , 70 ( ) 1 , 1 , 1 , 1 , 190 , 90 ( ) 0 , 1 , 1 , 1 , 170 , 70 ( ) 1 , 1 , 1 , 1 , 170 , 90 ( ) 1 , 1 , 1 , 1 , 150 , 70 ( ) 1 , 1 , 1 , 1 , 150 , 90 ( ) 0 , 1 , 1 , 1 , 130 , 70 ( ) 1 , 1 , 1 , 1 , 130 , 90 ( ) 1 , 0 , 0 , 1 , 30 , 130 ( ) 1 , 1 , 1 , 1 , 110 , 70 ( ) 1 , 1 , 1 , 1 , 110 , 90 ( ) 1 , 1 , 1 , 1 , 30 , 110 ( ) 1 , 0 , 0 , 0 , 190 , 190 ( ) 1 , 0 , 0 , 0 , 150 , 190 ( ) 1 , 0 , 0 , 0 , 110 , 190 ( ) 1 , 0 , 0 , 0 , 70 , 190 ( ) 1 , 0 , 1 , 0 , 190 , 50 ( ) 1 , 0 , 1 , 0 , 150 , 50 ( ) 1 , 0 , 1 , 0 , 110 , 50 ( ) 1 , 0 , 1 , 0 , 70 , 50 ( ) 0 , 1 , 1 , 1 , 90 , 70 ( ) 1 , 1 , 1 , 1 , 90 , 90 ( ) 1 , 1 , 1 , 1 , 30 , 90 ( ) 1 , 0 , 1 , 0 , 190 , 170 ( ) 1 , 0 , 1 , 0 , 150 , 170 ( ) 1 , 0 , 1 , 0 , 110 , 170 ( ) 1 , 0 , 1 , 0 , 70 , 170 ( ) 1 , 0 , 1 , 0 , 190 , 30 ( ) 1 , 0 , 1 , 0 , 150 , 30 ( ) 1 , 0 , 1 , 0 , 110 , 30 ( ) 1 , 0 , 1 , 0 , 70 , 30 ( ) 1 , 1 , 1 , 1 , 70 , 70 ( ) 1 , 1 , 1 , 1 , 70 , 90 ( ) 0 , 0 , 1 , 1 , 30 , 70 ( ) 1 , 0 , 1 , 0 , 190 , 150 ( ) 1 , 0 , 1 , 0 , 150 , 150 ( ) 1 , 0 , 1 , 0 , 110 , 150 ( ) 1 , 0 , 1 , 0 , 70 , 150 ( ) 0 , 0 , 1 , 0 , 190 , 10 ( ) 0 , 0 , 1 , 0 , 150 , 10 ( ) 0 , 0 , 1 , 0 , 110 , 10 ( ) 0 , 0 , 1 , 0 , 70 , 10 ( ) 0 , 1 , 1 , 1 , 50 , 70 ( ) 1 , 1 , 1 , 1 , 50 , 90 ( Spider Structural Energy / Material Interface 118 Figure 5.6 Cell face labeling scheme Also one can note from figure 5.5 that the matrix is divided into a number of rows separated into particular functional groups, i.e. the 3 germ layers. Each of the three layers as previously discussed serves a particular function of the overall system, and cells defined in that particular layer only serve to express those system level functions. Defined within each germ layer one can note the further division into columns. Each column represents system specific functions, i.e. organs. The 1 st column represents the internal organs of the spider, the 2 nd represents its outer shell, the 3 rd through 10 th represents each of its 8 legs, and the 11 th represents its environmental interaction organs. Similarly the definition of the dDNA for the snake can be seen in figure 5.7. The main difference is that the snake is significantly less complex than the spider as seen in its matrix. The 3 main organs are separated into the 3 appropriate germ layers. The 1 st layer again represents the snake’s internal organs, the 2 nd represents its outer shell, and the 3 rd represents its environmental interaction organs. 1 2 3 4 Cell Face Labeling Scheme 119 Figure 5.7 Snake dDNA 5.3.2 CPM Control Algorithm As previously discussed, the simulation will utilize a dual control strategy incorporating both centralized and decentralized control in mimicking the biological morphogenesis process. Centralized control will come by way of DNA guidance Structural Energy / Material Interface 120 while decentralized control will be utilized for the self-organization of the cells. The centralized control aspect of the algorithm is somewhat simpler to address than the decentralized aspect as the inclusion of the predefined dDNA matrix forces the emergent behavior of the self-organization of the cells to precisely that required form (function). The decentralized aspect of the control algorithm is a bit more complicated as it requires communication, collaboration, and negotiation between the cells trying to self-organize. Therefore a definition of the local rules which govern the interaction between the individual cells is a critical component of this aspect of the algorithm. Through our investigation into biology and attempting to understand the process of morphogenesis it was clear that the foundation of the algorithm should be rooted in energy minimization. Since cellular movement with regards to germ layer formation and ultimately system formation accounts for the prime source of energy dissipation, minimization of the total number of cellular steps would be desired for the algorithm. Therefore the primary goal of this demonstration besides obviously the formation of the system defined by the system dDNA, is its formation through the least number of steps possible, i.e. minimum energy. The name of the algorithm CPM comes from Communicate, Plan, and Move. Just as in biology, communication is vitally important in morphogenesis and is achieved through the use of growth factor proteins. In the programming domain, the messages sent back and forth between the cells in effect mimic this biological protein. 121 Communication is important as the cells are required to know where they are going relative to one another while organizing. If no communication exists, a collective goal between all the cells can never be achieved. Planning and coordination is the result of communication. Every element in the dDNA matrix defines a unique cellular location relative to the entire system, hence not every cell can move to the same location. Furthermore, cells need to determine on their own which position they should move to based on the energy minimization principle. Once the cells have an idea of where their final locations should be, they should begin to move to that location. The beauty of this algorithm is that this process can be done in real-time so that the cells at each time step can recalculate their relative distance to those defined in dDNA and re- determine whether or not they are heading to the position with minimum energy; if so they continue, and if not they re-adjust. A schematic of the CPM algorithm can be seen in the figure 5.8. 122 Figure 5.8 CPM algorithm overview The above figure shows that the first step in the process is that the desired system DNA (dDNA) must be seeded into each of the available cells (with cell IDs from 1 to n). In biology this step is not necessary as each dividing cell simply gets a copy of the system’s DNA. The cells then use this information to calculate their relative distances to each of the final locations defined by the system DNA. The cells store this information in a list sorted from the least distance to the greatest. Planning and coordination occurs through communication whereby the cells send messages about their first choice of final DNA destination to a communal message board accessible by all other cells. In the case two cells calculate the same minimum DNA final location a conflict arises and the cells must coordinate and negotiate to see who gets that final position. Looking to utilize a simple solution to this problem, we create what we call Cell 1 Calculate DNA Input Cell 2 Cell 3 Cell n-1 Cell n Cells Calculate Relative Distance to Each Final Location Defined in DNA Cells Store Info in a List Sorted from Least to Greatest Distances Cell 1 (X10,Y10) Cell 2 (X1,Y1) Cell n-1 (X5,Y5) Desired Locations Cell n (X1,Y1) Conflict Sorted List n Sorted List n-1 Sorted List 2 Sorted List 1 Message Board Plan Move First Come/First Serve Cell moving first towards target gets first choice, Cell moving second chooses next location in its sorted list Loose Cells Differentiated Cells form completed System 123 a “first come first serve” conflict resolution technique whereby the cell (defined by its ID tag) moving first towards the desired target location gets the first choice and the cell moving second must settle for its second choice. But this may lead to a further conflict as this second choice may be a first choice for another cell. In that case “first come first serve” gets applied again to resolve the matter and so on until all conflicts have been settled and each cell has a unique final DNA position. Once all cells have a tentative final location the simulation is taken through a single time step and the CPM process is repeated in order to optimize the minimization of the overall system energy. In creating the actual JAVA source code we have produced a total of 7 classes. The only class used directly from the MASON library and not modified at all is the “DNADemoWithUI” class which visually displays the simulation space and its controls seen in figure 5.1. The cell’s behaviors (communication, dDNA seeding, distance calculation, final position determination) along with the cell’s visual representation are created in a class called “Cell” which inherits from another of MASON’s classes called “Agent”. The actual dDNA input of the spider and the snake are created in a class called “Input” which includes information about cellular x-y coordinates and germ layers (color and orientation). The distance calculation functions are defined in a class called “StopPoint”. The messaging functions used to send messages to and receive messages from the communal message board are defined in a class called “Message”. Finally the initial cellular locations and colors (blastula stage), and conflict resolution technique are defined in a class called “DNADemo”. 124 All of the classes defined in the JAVA source code can be seen in their entirety in appendix A-2 through A-8. 5.3.3 Simulation Results 5.3.3.1 Initial Tests The initial tests of the algorithm were conducted on a three cell system in order to determine whether the system indeed behaved as a multi-agent system minimizing formation energy or not. The key to an MAS system is that its composing elements must behave, collaborate, and negotiate independently based on the locally defined governing rules. As previously mentioned, the main principle governing the interaction of the system is energy minimization coupled with a “first come first serve” conflict resolution technique. The test case defined three cells located at locations (275, 250), (325, 250), and (375, 250) for cell ID 1 through 3 respectively. The final locations were carefully selected to be (100, 100), (200, 50), and (325, 70) for positions A through C. A schematic of the test case can be seen in figure 5.9. Using the distance formula, a basic calculation was done in order to calculate the distance between the initial position of each of the three cells and the three final possible locations. The results of this calculation can be seen in the screen capture from MS Excel in figure 5.10. 125 Figure 5.9 Algorithm test case Figure 5.10 Distance calculation This example was deliberately chosen such that all three cells had the same minimum final desired location, namely Position C. The rational behind this was that it was desired to test both the local minimum energy principle optimization as well as the “first come first serve” conflict resolution technique. In applying the two principles to the above case, it is hypothesized that Cell 2 in an effort to locally optimize its overall energy (cells only have, pass on and try to optimize from CPM based upon their local information) would have the desire to move towards Position C as this is the shortest Initial Position Final Location Cell 1 Cell 2 Cell 3 Position A Position B Position C (100,100) (200,50) (325,70) (275,250)(325,250)(375,250) 126 distance of the three. Although Cells 1 and 3 also have Position C as their desired final location, the underlying principle governing the algorithm is energy minimization, hence Cell 2 will have the first choice of moving to Position C. With Cell 2 selecting Position C, both Cells 1 and 3 would now need to choose their second position choices, namely Cell 1 would need to choose Position B, and Cell 3 would also need to choose Position B. Again this creates a conflict between these two cells as they both desire the same final position. The way in which this conflict is resolved is again through the minimization of the overall system energy, which is the underlying principle governing the algorithm. The case where Cell 1 chooses Position A, Cell 2 chooses Position C, and Cell 3 chooses Position B results in an overall system energy of 676 energy units. While the case where Cell 1 chooses Position B, Cell 2 chooses Position C, and Cell 3 chooses Position A results in an overall system energy of 707. Therefore the first alternative is desired. In running the simulation and observing its screenshots seen in figure 5.11 we see that the behavior of this 3 celled system is in line with our hypothesis. Note that the colors used to circle each of the three cells are used solely for visually identifying and differentiating the cells from one another and were added after the simulation was run. 127 Figure 5.11 Algorithm test case (Images progress from left to right and from top to bottom. Each picture above represents each consecutive 50 th frame in the simulation) 128 5.3.3.2 Spider / Snake Results Once the control algorithm was tested and determined to be properly working, the problem of the spider formation and snake reconfiguration was addressed. The results from the simulation of the problem discussed in section 5.3.1 are seen in figure 5.12. A subsequent run of the simulation was conducted with results seen in figure 5.13. The simulation begins with 64 undifferentiated cells (gray color) representing the blastula stage of the system’s development. This stage may be regarded as the first step from the application domain discussions, namely the step where the cells are sent individually to the exploration site and then allowed to self-configure to the desired system. Once communication begins between the cells, i.e. from the 1 st frame of the simulation until the final completed system, the system is in the embryo development stage. As previously discussed, communication is a key process which the cells use in the embryo stage to develop the system’s germ layers. The three germ layers again are the yellow Energy / Material Layer (inner layer), the blue Structural Layer (middle layer), and the green Interface Layer (outer layer). In the simulation, 30 frames represent 1 second with a 3 second delay (arbitrary and can be varied) between the spider formation and the transition to the snake. The reconfiguration into the snake is mirrored in the application domain discussion of the need for the system to increase its functionality based upon a changing environment, i.e. fitting through a crevice between two large boulders. One important thing to note about the general setup of this example is the assumption that although the simulation is 2 dimensional, we assume that a 3 rd z-dimension exists whereby cells can pass above or below one 129 another. This is done in order simplify the collision avoidance aspect in the algorithm. Therefore when cells pass through other cells, it is assumed that they are either passing above or below one another. Figure 5.12 Spider / Snake demonstration (1 st Run) 130 Figure 5.13 Spider / Snake demonstration (2 nd Run) 131 5.3.4 Discussions In developing the layout of the above simulation, namely the spacing and orientation of the 64 undifferentiated cells, a conscious attempt was made to mimic biology as closely as possible. During early development, the volume of the space held by the cells comprising the blastula is kept to a minimum. In biology, the formation of the blastula results form cell division of the initial cell. The result of this process is a collection of cells all attached to one another in as small of a volume as possible so as to minimize energy. Physically, since it is almost impossible to create two objects from one, cell division was not a viable option, at least at this point, to mimic the process of system growth in the simulation. Therefore the attempt of placing the 64 cells in as close of a proximity as possible was the mindful effort to mimic the biological process resulting from the cellular divisions of the initial cell. The spider DNA was also purposely chosen such that the germ layer differentiation and the formation of the overall system from the initial 64 cells also closely resembled biology. During the development of biological systems such as spiders, snakes or even humans, the space allotted for their development is limited to the size of the mother’s womb or respective egg. Similarly, in the multiple runs of the simulation, the space constraint was also present as that process was limited to the 200 by 200 pixel upper left hand quadrant of the simulation window. The initial cells were placed in that location, and the final system was grown there as well. The snake DNA on the other hand was chosen in a manner to demonstrate the robustness of the algorithm. 132 The demonstration shows that the cells are fully capable of moving individually to desired locations to form the outlined systems all the while communicating and collaborating with one another. This has great implications on the added functionality such systems have as individual mobility of the cells adds to the adaptive notion of such a system. In situations where reconfiguration is impossible because of environmental spatial constraints, it would be desired for cells to move individually but remain a part of the team to an area where reconfiguration would be easier and more favorable. Furthermore, in cases where it is still desired to have a system level function of climbing for example, but now climbing something of greater height, the system can reconfigure from an eight legged spider of 3 cell length spider legs to a 4 legged insect with 6 cell length insect legs simply again by altering the system’s DNA. The new DNA of the 4 legged insect which looks very similar to the 8 legged spider DNA may be seen in figure 5.14. A simulation whose screenshots can be seen in figure 5.15 was devised to demonstrate the ease of this process. 133 Figure 5.14 Insect dDNA The example seen in figure 5.15 demonstrates that increasing a system’s functionality simply is a function of altering the system’s DNA to achieve a form capable of producing such a desired function. This example has profound implications on the simplicity of this approach with regards to increasing a system’s adaptability (varying functionality) and also demonstrating the power and robustness of the morphogenesis- based control algorithm. ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ) 1 , 1 , 0 , 1 , 30 , 190 ( ) 1 , 1 , 0 , 1 , 50 , 190 ( ) 1 , 1 , 1 , 1 , 70 , 190 ( ) 1 , 1 , 0 , 1 , 90 , 190 ( ) 1 , 1 , 0 , 1 , 110 , 190 ( ) 1 , 1 , 1 , 1 , 170 , 170 ( ) 1 , 1 , 1 , 1 , 130 , 190 ( ) 1 , 1 , 1 , 1 , 150 , 170 ( ) 1 , 1 , 0 , 1 , 150 , 190 ( ) 1 , 1 , 1 , 1 , 130 , 170 ( ) 1 , 1 , 0 , 1 , 170 , 190 ( ) 1 , 1 , 1 , 1 , 110 , 170 ( ) 1 , 1 , 0 , 0 , 190 , 190 ( ) 1 , 1 , 1 , 1 , 90 , 170 ( ) 1 , 1 , 1 , 0 , 190 , 170 ( ) 1 , 1 , 1 , 1 , 70 , 170 ( ) 1 , 1 , 1 , 0 , 190 , 150 ( ) 1 , 1 , 1 , 1 , 50 , 170 ( ) 0 , 1 , 1 , 0 , 190 , 130 ( ) 1 , 1 , 1 , 1 , 30 , 170 ( ) 0 , 1 , 1 , 1 , 170 , 130 ( ) 1 , 1 , 1 , 1 , 170 , 150 ( ) 1 , 1 , 1 , 1 , 150 , 130 ( ) 1 , 1 , 1 , 1 , 150 , 150 ( ) 1 , 0 , 0 , 0 , 130 , 310 ( ) 1 , 0 , 0 , 0 , 70 , 310 ( ) 1 , 0 , 1 , 0 , 130 , 110 ( ) 1 , 0 , 1 , 0 , 70 , 110 ( ) 0 , 1 , 1 , 1 , 130 , 130 ( ) 1 , 1 , 1 , 1 , 130 , 150 ( ) 1 , 0 , 1 , 0 , 130 , 290 ( ) 1 , 0 , 1 , 0 , 70 , 290 ( ) 1 , 0 , 1 , 0 , 130 , 90 ( ) 1 , 0 , 1 , 0 , 70 , 90 ( ) 0 , 1 , 1 , 1 , 110 , 130 ( ) 1 , 1 , 1 , 1 , 110 , 150 ( ) 1 , 0 , 0 , 1 , 10 , 190 ( ) 1 , 0 , 1 , 0 , 130 , 270 ( ) 1 , 0 , 1 , 0 , 70 , 270 ( ) 1 , 0 , 1 , 0 , 130 , 70 ( ) 1 , 0 , 1 , 0 , 70 , 70 ( ) 0 , 1 , 1 , 1 , 90 , 130 ( ) 1 , 1 , 1 , 1 , 90 , 150 ( ) 1 , 0 , 1 , 1 , 10 , 170 ( ) 1 , 0 , 1 , 0 , 130 , 250 ( ) 1 , 0 , 1 , 0 , 70 , 250 ( ) 1 , 0 , 1 , 0 , 130 , 50 ( ) 1 , 0 , 1 , 0 , 70 , 50 ( ) 1 , 1 , 1 , 1 , 70 , 130 ( ) 1 , 1 , 1 , 1 , 70 , 150 ( ) 1 , 0 , 1 , 1 , 10 , 150 ( ) 1 , 0 , 1 , 0 , 130 , 230 ( ) 1 , 0 , 1 , 0 , 70 , 230 ( ) 1 , 0 , 1 , 0 , 130 , 30 ( ) 1 , 0 , 1 , 0 , 70 , 30 ( ) 0 , 1 , 1 , 1 , 50 , 130 ( ) 1 , 1 , 1 , 1 , 50 , 150 ( ) 0 , 0 , 1 , 1 , 10 , 130 ( ) 1 , 0 , 1 , 0 , 130 , 210 ( ) 1 , 0 , 1 , 0 , 70 , 210 ( ) 0 , 0 , 1 , 0 , 130 , 10 ( ) 0 , 0 , 1 , 0 , 70 , 10 ( ) 0 , 1 , 1 , 1 , 30 , 130 ( ) 1 , 1 , 1 , 1 , 30 , 150 ( Insect = Energy / Material Structural Interface 134 Figure 5.15 Spider / Insect demonstration This example along with the previous demonstrate one of the primary notions which this research is built upon, namely composing a system utilizing a non-deterministic formation strategy rather than representing a mechanical system in the traditional sense provides it an avenue of reconfiguration as a means of increasing its total number of achievable states, namely its variety. In doing so, such systems are able to increase the number of requirements they are capable of fulfilling and disturbances 135 they are capable of rejecting. In the development of the actual algorithm though, it was observed that several key parameters existed which significantly affected the outcome of the simulation. 5.3.4.1 Conflict Resolution The underlying morphogenesis-based algorithm is based purely on mathematics as its goal is to minimize the overall system formation energy, i.e. overall number of formation steps. The means by which the cells determined their final position which produced the least number of steps was through calculation of the relative distances to each of the final locations specified in the system’s DNA. Therefore it was quite commonplace that several cells had the same desired final location based upon their calculated minimum distances to the predefined DNA coordinates. Hence the inclusion of the “first come first serve” conflict resolution technique was a necessity to overcome the arising conflicts between the cells. Essentially the cells may be regarded as selfish entities with very little consideration for their neighbors or the global system in which they are a part of. The world in which they are operating in is strictly numerical as the primary algorithm which guides their behavior is based strictly on mathematics. As such, removing “first come first serve” altogether from the algorithm produced systems in almost all of the simulation runs with “holes” in them such as the one seen in figure 5.16. 136 Figure 5.16 Undeveloped spider The undeveloped system seen in figure 5.16 occurs because more than one cell has occupied the same final DNA position because the cells have no means of resolving the conflict of selecting the same final DNA location with one another. Therefore if they cannot resolve the conflict, they simply ignore it and move to the same location. Without the “first come first serve” heuristic-based conflict resolution technique, the cells do not have a greater sense of satisfying the overall system requirement and only function to fulfill their own desires; that being to simply move to their smallest calculated DNA defined distance. A conflict resolution technique is a critical component of the energy minimization algorithm which without it, the cells will never work together and the system can never be grown and developed properly. The implications for mechanical systems is such that the resulting incomplete system will never fulfill its desired system level functions because the components which produce those system level functions have forms which will not be emerged properly according to the defined DNA. This issue is vastly different in biology as the cells of those systems simply divide in order to grown required components specified in the DNA. If the bio-system is developing in the womb for example under normal fetal conditions, one will never observe such “holes” in the system as the forming cells 137 quickly divide to fill the required open areas. Cells have a system of checks and balances put into place to make sure that the growing system is being developed according to the predefined DNA. In mechanical systems though, since it is physically impossible at this point to have one entity divide into two, we need to resort to coordinating cell movement rather than coordinating division in system development. Furthermore, the checks and balances system for mechanical systems need to be strictly defined if complete and correct development is desired. Checks and balances come by way of a conflict resolution technique which for this case was chosen to be “first come first serve”. 5.3.4.2 Cellular Communication A second important parameter affecting the algorithm’s outcome on the proper development and growth of the desired system is cellular communication. When the simulation is begun, the cells first need to calculate the relative distances to the final possible DNA locations. After sorting this information from least to greatest distances, the cells are supposed to let all the other cells know their primary final location choice and move there. As previously mentioned, the case often arises where two or more cells select the same final DNA location. Therefore without proper communication between the cells, no negotiation and coordination can occur between them, i.e. “first come first serve” never gets enacted because such a technique is heavily based upon communication. Hence the outcome of eliminating cellular communication entirely is again a system with “holes” as seen in figure 5.16 because 138 cells simply move to the location of minimum energy without any regard for who has moved there first. The choice for the use of a communal message board with access to all cells was made as it was the easiest means of keeping track of all the required cellular information. Managing the data of sending and receiving 64 messages per cell and then deciphering whether conflicts arose regarding the selection of the same desired DNA location per time step can become quite difficult and cumbersome. But in the case that increasing the amount of cells from 64 to 200, 500, 1000 or more is desired, the information becomes extremely difficult to handle. In biology, the idea of the growth factor protein is one which has applications in both 1 to 1 cellular communication as well as 1 to n. Wei Min Shen’s hormone control algorithm utilizes a similar 1 to n broadcasting message idea whereby individual modules broadcast messages to all other modules rather than to a single individual. In his system, not every cell has the proper signal receptor to accept certain messages; hence those modules are selective in what they can respond to. Through utilization of the message board idea, our system in effect utilizes a 1 to n signal transduction strategy as in biology and in Shen’s hormone algorithm. The difference between this algorithm and Shen’s is that all cells have the capability of accepting the broadcasted information from the message board through built in membrane proteins which act as message receptors from the message board. Without the inclusion of communication into the morphogenesis-based algorithm, specifically signaling and membrane proteins, the resulting system would 139 fail to form properly as multiple cells would occupy the same final DNA positions resulting in incorrectly developed systems. 5.3.4.3 MASON, JAVA and the CPM Algorithm In looking at figures 5.12 and 5.13 one can clearly note that although the final outcomes of both simulation runs are the same, the steps to reach the final outcomes are different. The first run produced the spider in about 120 frames while the second produced it in 200 frames, roughly a 3 second difference. Similarly, the first case produced the snake in 460 frames while the second produced it in 440, roughly a 0.7 second difference. Aside from the issue of the difference in frame numbers and time is the issue of the actual formation sequence being different. This is a direct result of three key factors; the MASON simulation process, the JAVA virtual machine and the CPM algorithm. The first two reasons have a direct affect on the outcome of the simulation being different in not just these 2 cases, but every other time the simulation was run. MASON is a step based simulation environment whereby the agents of the simulation are taken through time in discrete steps. This is not the source for the difference between the two runs though; the difference comes into light because the order of the movement of all agents per step is not always the same and is actually random. Therefore for time step 1 of the simulation, the order may be for example move cell 1, then cell 2, then 3 and so forth until all 64 have moved in sequential order. But for time step 2, the order may change to move cell 27, then move cell 1, then move cell 38 and so forth in a random fashion. Combine this with CPM which is a dynamic algorithm that gets applied per time step, and one can begin to understand 140 the reason for the differences in the formation sequences. In actuality the random nature of MASON is one of the criteria for the simulation to be a regarded as a multi- agent simulation. After all, a multi-agent system is primarily used to study how local rules can affect the global emergent behavior of randomly interacting agents. The power of this simulation is that although randomness is prevalent in this example, it is always guided through the incorporation of DNA and hence the emergence is always controlled. Thinking about this issue on a biological level one sees that the ideas of multi-agent systems, randomness, controlled emergence through DNA holds true as no two spiders for example form in exactly the same way or time during their development in their respective eggs. But the final product of the process is always a spider with the same number of components / parts / organs in the same orientation, otherwise the resulting system would no longer be a spider. Granted there are mutations and deformities that occur in nature, but a majority of the systems that are produced are done so in this manner. 5.3.4.4 Information of dDNA A fourth important parameter affecting the algorithm’s outcome on the proper development and growth of the desired system is DNA and the information it stores. As in biology, the need for the inclusion of dDNA into each mechaniCELL is required to give each cell knowledge of the greater picture of which it comprises only a small portion. Contrary to biology though, which seeds each cell with DNA through cellular 141 division, the computer model required individually seeding each cell with the appropriate dDNA. As in biology, without DNA, the cells comprising the system would simply function as independent cells never expressing system level genes. Hence system level forms and functions can never be expressed and the resulting system is simply a collection of cells with cell divisions occurring out of necessity rather than requirement. Testing this phenomenon in the mechanical world, we observe that the result of not seeding the cells of the system with dDNA results in that very same collection of cells seen in biology. As seen in figure 5.17, the cells remain locked in the blastula stage as no cellular movement, analogous to biological cellular division, occurs. Figure 5.17 Blastula system lock Furthermore, if the cells are seeded with only one DNA for example the spider’s but not the snake’s, the system will never reconfigure as it requires this information to re- grow from one system to the other. This somewhat intuitive result has further implications when considering the minimum information required to be encoded in the dDNA. dDNA essentially includes information regarding cellular locations and cellular functions grouped into appropriate functional groups known as germ layers. 142 Functionality in the simulation is seen in two facets; system level functionality and component level functionality. System level functionality as it is encountered in biology is seen simply in the fact that a system which looks like a spider will function like one. This idea is not very different from the other researchers working in the field of reconfigurable robotics. The concept which is different is the notion of component level functionality seen through germ layer cellular differentiation defined explicitly in the system’s DNA. As is seen in biology, cellular differentiation or specialization is defined based upon relative location. Since all cells are fundamentally the same, it is through germ layer cellular functional differentiation which a biological system attains its required system level functions. Germ layers in the above examples demonstrate this very key point. All cells begin as the same cell type in the blastula stage. It is through the incorporation of germ layers that cells gain an understanding of their overall purpose with respect to all other cells comprising the system. System partitioning and component emergence and specialization is a result of germ layer definition in the system’s DNA. Without such a concept, defining the “head”, “body”, “legs”, and “internal organs” of the spider would not be possible. The result, as seen in figure 5.18, is a collection of cells expressing a correct form but with no expression of function 143 Figure 5.18 Cellular expression of form with no function As in biology, in order for a system to be capable of producing system level functions of a spider for example, it needs to have the concept of legs to walk and climb with, internal organs to produce and consume energy, a body to hold everything together, and a head to plan and navigate. Therefore, without the concept of germ layers, cells would not be capable of specializing for the purposes of producing dedicated components for the purpose of collectively producing required system level functions. This seemingly simple concept is of fundamental importance in biology and its incorporation into our model adds to the overall strength of its innovative nature. Much work by other researchers has been done on form based cellular formation and to a certain extent system level functionality. Although this work addresses those issues as well, it serves as the first conscience effort to link cellular functionality to system level forms and functions in a manner identical to biology through germ layers and cellular differentiation. 5.3.5 Conclusions Referring to the hypotheses presented in section 5.2, we can draw the following conclusions: 144 Hypothesis 1 and 2: Our simulation verifies that a mechanical system’s growth can be realized through a dual control strategy utilizing DNA guided cellular self- organization controlled by a morphogenesis-based algorithm through communication utilizing growth factor proteins. Hypothesis 3: Through our investigations into the communication aspects of the algorithm discussed in section 5.3.4.2, we were in fact able to validate the 3 rd hypothesis that the need for the inclusion of growth factor proteins (signals) and membrane proteins (receptors) should be a critical component of the morphogenesis- based algorithm. Hypothesis 4: The example shown in figures 5.12, 5.13 and 5.15 demonstrate that increasing a system’s functionality simply is a function of altering the system’s DNA to achieve a form capable of producing such a desired function verifying our 4 th hypothesis. The idea of self-formation or reconfiguration is not a new idea as there have been previous noted works in this area as discussed in chapter 2. But this work differs from theirs on a fundamental level with the incorporation of DNA and morphogenesis. Modular self-configuration and or reconfiguration in other work is achieved by explicitly ordering the modules to where they need to be, similar to the bio-chair example. This work is different in that it defines what the final system should be through dDNA and allows the cells to independently self-configure through communication protocols and local interaction rules (morphogenesis rule set) to 145 achieve it. There is a great deal of robustness in this process and algorithm in that any desired system can be formed as long as it can be defined by dDNA. Furthermore, reconfiguration or alteration of the system is easily achieved simply by modifying the elements of the system’s DNA. Incidentally, this is precisely the work being conducted in the field of genetic engineering. The reconfiguration from spider to snake and also spider to insect was demonstrated with justification rooted in the necessity arising in changing the system level functionality from a system which crawls or climbs for example to a system which can easily fit into a crevice or hole. This was achieved by simply altering the DNA of the spider to form the DNA of the snake. The previously shown demonstrations are true genetic alteration exercises as small changes in the spider’s DNA resulted in entirely new systems with either completely new (snake) or modified (insect) system level functionality. Although the claim is made by other researcher’s work as being biologically inspired, very few if any go to as great of lengths as this work does to incorporate biology into mechanical design. In order to build a true mechanical lifelike cellular adaptive system for the purposes of increasing a system’s adaptability and robustness, fundamentally the artificial system must not just be formed using a concept of “cells”; but to be a true bio-based system, it must be represented by dDNA and grown form an embryo using a morphogenesis-based process whereby both the forms and functions of the system are emerged. In effect what we have accomplished through this research is the development of a DNA based system representation framework for developing cellular adaptive systems and through this process have identified key concepts and 146 issues pertaining to such system representation, self-growth and reconfiguration. These newly identified issues and concepts will serve as the foundation for future research in this emerging field ultimately leading to the development of a true mechanical lifelike cellular adaptive system. 5.3.6 Limitation Firstly, the most prevalent of limitations associated with this simulation study is the fact that it is conducted entirely in two dimensions. We strongly felt that the development of the morphogenesis-based control algorithm and the growth factor protein inspired communication concept held more merit than simply developing a three dimensional example not rooted in biology. At this point, the inclusion of a third dimension into the problem would not require a considerable amount of modification to the algorithm as it has been extensively tested and fully developed . Doing so would bring this problem closer to a direct application into a real world example. Secondly, to simplify the problem further a list of assumptions was made which included: perfect connections and docking between cells, perfect communication between cells, only energy expanded is that associated with motion, and finally the simulation did not deal with the collision avoidance issues associated with such problems. Finally, with regards to reconfiguration, the current state of the algorithm only allows for inputting 2 DNA’s, i.e. one system growth and one reconfiguration. But with further development it is conceivable to increase the number of DNA inputs (i.e. system configurations) to any desired or required number resulting in much more resilient and adaptive systems. 147 Chapter 6: Contributions and Future Direction Concluding this dissertation, we provide a detailed list of this work’s contributions and future directions which we hope to take this research in. 6.1 Contributions The contributions of this research are summarized as follows: (1) This work discussed applying a non-deterministic approach of system formation as a means of increasing a system’s adaptability by increasing its total number of achievable states. Doing so allowed the system to increase the number of requirements it was capable of fulfilling and disturbances it was capable of rejecting. (2) The introduction of the SOS Design Framework, including its three cornerstones, Cellular System Formation & Representation, Self- organizing Algorithms, and Evaluation Mechanisms as an addition to the Divide & Conquer approach with regards to designing systems of increasing complexity. SOS approaches the issues of complexity in design through a combination of DNA (dDNA) based top-down guidance and cell interaction based bottom-up self-organizing. This combined approach to systems design strives for a balance between the desired functional capabilities of a system and its adaptability in response to dynamically changing requirements from the environment. 148 (3) Developed the Cellular System Formation & Representation (cFORE) cornerstone through an extraction of key principles and concepts from biology and unified them with critical mechanical design concepts such as function, form and behavior. The extracted biological concepts and principles were subsequently modeled and applied to the area of artificial systems design and representation in a manner which closely resembled biology. (4) Introduction of the concept of dDNA (DNA) which was used to document and retain key design information (functions, forms and behaviors) of artificial systems. (5) Developed methods rooted in DNA and inspired by proteins and morphogenesis whereby artificial systems could self-grow from a basis set of mechanical cells called an embryo in much the same way that biological systems develop and grow. (6) Unified the concept of cellular functions to system level functions and forms through the development of biologically inspired germ layers for the purposes of allowing for cellular functional differentiation in attaining system level functions and forms. (7) Developed a computer simulation based demonstration of the effectiveness of the proposed SOS framework and cFORE representation scheme which identified key parameters, attributes and issues in DNA- based self-organizing system formation. A morphogenesis-based 149 algorithm was created utilizing top-down DNA guidance, and bottom-up cellular self-organization. A computer model of a multi-agent based, DNA-guided cellular self-organizing visualization of artificial system self-growth indicating micro-level steps of system formation and system level functions was developed and demonstrated. 6.2 Future Work The future extensions of this research are as follows: (1) The development of the other two cornerstones of the SOS Design Framework, namely the Self-organizing Algorithms and Evaluation Mechanisms are lacking as this research only touched upon them in a limited amount of detail. (2) The self-generation of the dDNA (DNA) element, i.e. self-design, is an immense future research topic. Rather than having the designer complete the dDNA system matrix as was done with this research, it is desired to have systems capable of dynamically creating their own dDNA matrices in much the same that biological systems create and modify their DNA. Such an achievement will in effect solidify the new class of mechanical lifelike cellular adaptive system. (3) Expand and further develop the computer model for cellular system self- organization introduced in this work. 150 a. Increasing the number of dDNA inputs into the model is desired in order to allow for more than two system configurations to be possible as required by the operating environment. b. Several avenues are open for investigation regarding the algorithm itself and the resulting outcomes on the self-growth and reconfiguration of the system. First it would be desired to investigate and develop a different conflict resolution technique other than “first come first serve” whether heuristic based or mathematics based and compare and contrast it with the current technique. Second it would also be desired to observe the outcome using a completely different algorithm all together other than the one based on energy minimization and compare the results (formation time, number of steps etc.) to those presented in this work. c. Investigating the formation outcome resulting from changing the communication paradigm from utilizing the communal message board to individual messages sent to and from all cells would also be desired. (4) Develop technology capable of producing such systems in laboratory applications rather than only in computer simulations. 151 Bibliography 1. Altshuller, G. and Shulyak, L., (1998). “40 principles—TRIZ keys to technical innovation,” Worcester, MA: Technical Innovation Center, Inc. 2. Altshuller, G., (1999). “The innovation algorithm, TRIZ, systematic innovation and technical creativity.” Worcester, MA: Technical Innovation Center, Inc. 3. Anderson, J.M. and Kerrebrock, P.A., (1997). “The vorticity control unmanned undersea vehicle (VCUUV)—An autonomous vehicle employing fish swimming propulsion and maneuvering.” Proceedings of the 10 th International Symposium on Unmanned Untethered Submersible Technology, pp. 189-195. 4. Attridge, T.H., (1990). “Light and Plant Responses: A Study of Plant Photophysiology and the Natural Environment.” Routledge, Chapman, and Hall, Inc. 5. Autumn, K., Sitti, M., Liang, Y.A., Peattie, A.M., Hansen, W.R, Sponberg, S., Kenny, T.W., Fearing, R., Sraelachvili, J.N. and Full, R.J., (2001). “Evidence for van der Waals adhesion in gecko setae.” PNAS 99, pp. 12252-12256. 6. Bachman, R.J., Nelson, G.M., Flannigan, W.C., Quinn, R.D., Watson, J.T., Tryba A.K. and Ritzmann R.E., (1997). “Construction of a cockroach-like hexapod robot.” Proceedings of the Eleventh VPI & SU Symposium on Structural Dynamics and Control, pp. 647-654. 7. Bailey, S.A., Cham, J.G., Cutkosky, M.R. and Full, R.J., (2000). “Comparing the locomotion dynamics of a cockroach and a shape deposition manufactured biomimetic hexapod.” International Symposium on Experimental Robotics (ISER2000). 8. Ball, P., (2001). “Life's lessons in design.” Nature, 409. pp. 413-416. 9. Barrett, D., Grosenbaugh, M. and Triantafyllou, M., (1996). “The optimal control of a flexible hull robotic undersea propelled by an oscillating foil.” Proceedings of the IEEE AUV Symposium, pp. 1-9. 10. Bechert, D.W., Bruse, M., Hage, W. and Meyer, R., (1997). “Biological surfaces and their technological application – laboratory and flight experiments on drag reduction and separation control.” 28 th AIAA Fluid Dynamics Conf. 152 11. Bechert, D.W., Bruse, M., Hage, W. and Meyer, R., (2000). “Fluid mechanics of biological surfaces and their technological application.” Naturwissenschaften, 87, pp. 157-171. 12. Beer, R.D., Chiel, H.J., Quinn, R.D. and Ritzmann, R.E., (1998). “Biorobotic approaches to the study of motor systems.” Current Opinion in Neurobiology, 8, pp. 777–782. 13. Beni, G., (1988). “The concept of cellular robotic system.” Proceedings of the IEEE Symposium on Intelligent Control, pp. 57-62. 14. Bentley, P.J., (1999). “Evolutionary design by computers.” Morgan Kaufmann Publishers Inc. 15. Birch, M.C., Quinn, R.D., Hahm, G., Phillips, S.M., Drennan, B., Fife, A., Verma, H., and Beer, R.D., (2000). “Design of a cricket microrobot.” Proceedings of the IEEE International Conference on Robotics and Automation. 16. Bongard J., Zykov V. and Lipson H. (2006), “Resilient Machines through Continuous Self-Modeling", Science, 314. no. 5802, pp. 1118-1121. 17. Bongrand, P. (1999). “Ligand-receptor interactions.” Rep. Prog. Phys. 62, 921- 968. 18. Bowyer, A., Vincent, J.F.V., Bogatyreva, O. and Pahl, A.K., (2003). “Data gathering for putting biology in TRIZ.” Proceedings of TRIZCON. 19. Burrows, M., (1995). “Motor patterns during kicking movements in the locust.” J. Comp. Physiol. A., 176 (3), pp. 289-305. 20. Butler Z., Murata S., Rus D., (2002b). “Distributed Replication Algorithms for Self-Reconfiguring Modular Robots,” Distributed Autonomous Robotic Systems, 5, pp. 37-48. 21. Butler, Z., Kotay, K., Rus, D. and Tomita, K. (2002a). “Generic decentralized control for a class of self-reconfigurable robots.” Proceedings of the ICRA ’02 IEEE International Conference on Robotics and Automation, 1, pp. 809-816. 22. Casal, A. and Yim, M. (1999). “Self-Reconfiguration Planning for a Class of Modular Robots,” Proceedings of the SPIE Intl. Symposium on Intelligent Sys. and Advanced Manufacturing, 3839, pp. 246-257. 153 23. Castano, A. and Will, P., (2000). “Mechanical design of a module for reconfigurable robots.” Proceedings of the 2000 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 2203-2210. 24. Castano, A., Shen, W. M. and Will, P., (2000). “CONRO: Towards deployable robots with inter-robot metamorphic capabilities.” Kluwer Academic Publishers, Autonomous Robots 8, pp. 309-324. 25. Cham, J.G., Bailey, S.A. and Cutkosky, M.R., (2000). “Robust dynamic locomotion through feedforward-preflex interaction.” Proceedings of ASME IMECE. 26. Cham, J.G., Bailey, S.A., Clark, J.E., Full, R.J. and Cutkosky, M.R., (2002). “Fast and robust: hexapedal robots via shape deposition manufacturing.” The International Journal of Robotics Research, 21 (10). 27. Cham, J.G., Karpick, J.K. and Cutkosky, M.R., (2004). “Stride period adaptation for a biomimetic running hexapod.” International Journal of Robotics Research, 23 (2), pp. 141-153. 28. Chaplin, R.C., Gordon, J.E. and Jeronimidis, G., “Development of a novel fibrous composite material.” US patent no. 4409274. 29. Chirikjian, G. S., Zhou, Y. and Suthakorn, J., (2002). “Self-replicating Robots for Lunar Development.” IEEE/ASME Trans. on Mechatronics, 7, No. 4, pp. 462-472. 30. Chirikjian, G.S. and Burdick, J.W., (1991). “Kinematics of hyper-redundant robot locomotion with applications to grasping.” Proceedings of the IEEE International Conference on Robotics and Automation, pp. 720–725. 31. Chirikjian, G.S. and Burdick, J.W., (1992). “Design implementation, and experiments with a thirty-degree of-freedom `hyper-redundant’ robot.” ISRAM. 32. Chirikjian, G.S. and Burdick, J.W., (1994). “A modal approach to hyper- redundant manipulator kinematics.” Proceedings of the IEEE Transactions on Robotics and Automation. 33. Chiu, I. and Shu, L.H., (2004). “Natural language analysis for biomimetic design.” Proceedings of DETC ’04 ASME Design Engineering Technical Conferences and Computers and Information in Engineering Conferences. 154 34. Clark, J.E., Cham, J.G., Bailey, S.A., Froehlich, E.M., Nahata, P.K., Full, R.J. and Cutkosky, M.R., (2001). “Biomimetic design and fabrication of a hexapedal running robot.” Intl. Conf. Robotics and Automation (ICRA2001). 35. Cruse, H., (1990). “What mechanisms coordinate leg movement in walking arthropods?” Trends Neuroscience, pp. 15-21. 36. Cruse, H., Bartling, C., Cymbalyuk, G., Dean, J., and Dreifert, M., (1995b). “A modular artificial neural net for controlling a six-legged walking system.” Biological Cybernetics, 72, pp. 421–430. 37. Cruse, H., Brunn, D.E., Bartling, C., Dean, J., Dreifert, M., Kindermann, T. and Schmitz, J., (1995a). “Walking: a complex behavior controlled by simple networks.” Adaptive Behavior, 3, pp. 385-418. 38. Cruse, H., Kindermann, T., Schumm, M., Dean, J. and Schmitz, J., (1998). “Walknet: a biologically inspired network to control six-legged walking.” Neural Networks, pp. 1435-1447. 39. Dawson, C., Vincent, J.F.V., Jeronimidis, G., Rice, G. and Forshaw, P., (1999). “Heat transfer through penguin feathers.” Journal of Theoretical Biology, 199, pp. 291-295. 40. Delcomyn, F. and Nelson, M., (2000). “Architectures for a biomimetic hexapod robot.” Robotics and Autonomous Systems, 30, pp. 5-15. 41. Deng, X., Schenato, L., Wu, W. C. and Sastry, S., (in press). “Flapping flight for biomimetic robotic insects: part II – flight control design,” Submitted to IEEE Transactions on Robotics. 42. Deng, X., Schenato, L., Wu, W.C. and Sastry, S., (in press). “Flapping flight for biomimetic robotic insects: part 1 – system modeling,” Submitted to IEEE Transactions on Robotics. 43. Desiraju, G. R. (1989). “Crystal Engineering: The Design of Organic Solids.” Elsevier, New York. 44. Dickinson, M., Lehmann, F.O., Sane, S., (1999). “Wing rotation and the aerodynamics basis of insect flight.” Science, 284 (5422), pp. 1954-1960. 45. Dickinson, M.H., (1999). “Bionics: Biological insight into mechanical design.” Proceedings of the National Academy of Science of the United States of America, 96 (25). 155 46. Domenici, P. and Blake, R. W., (1997). “The kinematics and performance of fish fast-start swimming.” Journal of Experimental Biology, 200, pp. 1165-1178. 47. Dudley, R., (2002). “The biomechanics of insect flight: form, function, evolution.” Princeton: University Press. 48. Ellington, C.P., (1999) “The novel aerodynamics of insect flight: applications to micro-air vehicles.” Journal of Experimental Biology, 202, pp. 3439-3448. 49. Evans, D. F. and Wennerstrom, H. (1999). “The Colloidal Domain: Where Physics, Chemistry, Biology, and Technology Meet.” Wiley, New York. 50. Fearing, R., Chiang, K., Dickinson, M., Pick, D., Sitti, M. and Yan, J. (2000). “Wing transmission for micromechanical flying insect.” Proceedings of IEEE International Conference on Robotics and Automation, pp. 1509-1516. 51. Fitch, R., Butler, Z., and Rus, D., (2003). “Reconfiguration planning for heterogeneous self-reconfiguration robots.” Proceedings of the IEEE International Conference on Intelligent Robots and Systems, pp. 2460-2467. 52. Fogel, L.J., Owens, A.J. and Walsh, M.J., (1996). “Artificial Intelligence through Simulated Evolution.” Wiley, New York. 53. French, M., (1994). “Invention and Evolution: Design in Nature and Engineering.” 2nd ed. Cambridge University Press. 54. Fukuda, T. and Nakagawa, S., (1987). “A dynamically reconfigurable robotic system (Concept of a system and optimal configurations).” International Conference on Industrial Electronics, Control, and Instrumentation, pp. 588- 595. 55. Fukuda, T. and Nakagawa, S., (1988a). “Dynamically reconfigurable robotic system.” Proceedings of the IEEE International Conference on Robotics and Automation, pp. 1581-1586. 56. Fukuda, T. and Nakagawa, S., (1988b). “Approach to the dynamically reconfigurable robotic system.” Journal of Intelligent and Robotic Systems, Volume 1, No. 1, pp. 55-72. 57. Full, R.J. and Tu, M.S., (1991). “Mechanics of a rapid running insect: two-, four-, six-legged locomotion.” Journal of Experimental Biology, 156, pp. 215- 231. 156 58. Full, R.J., Blickhan, R. and Ting, L.H., (1991). “Leg design in hexapedal runners.” Journal of Experimental Biology, 158, pp. 369-390. 59. Geim, A.K., Dubonos, S.V., Grigorieva, I.V., Novoselov, K.S., Zhukov, A.A. and Shapoval, S.Y., (2003). “Microfabricated adhesive mimicking gecko foot- hair.” Nature Mater., 2, pp. 461-463. 60. Goldberg, D.E., (1989). “Genetic Algorithms in Search, Optimization, and Machine Learning.” Addison Wesley Longman, Inc. 61. Goldberg, D.E., (1991). “Genetic Algorithms as a Computational Theory of Conceptual Design.” Proc. of Applications of Artificial Intelligence in Engineering, 6, pp. 3-16. 62. Grantcharova, V., Alm, E. J., Baker, D. & Horwich, A.L. (2001). “Mechanisms of protein folding.” Curr. Opin. Struct. Biol. 11, 70-82. 63. Guo, S., Fukuda, T., and Asaka, K., (2002). “Fish-like underwater microrobot with 3 DOF.” Proceedings of the IEEE International Conference on Robotics and Automation, pp. 738-743. 64. Guo, S., Fukuda, T., Kato, N. and Oguro, K., (1998b). “Development of underwater microrobot using ICPF actuator.” Proceedings of the IEEE International Conference on Robotics and Automation, 2, pp. 1829-1834. 65. Guo, S., Kato, N., Fukuda, T. and Oguro, K., (1998a). “A fish-microrobot using ICPF actuator.” Proceedings of the 5 th International Workshop on Advanced Motion Control, pp. 592-597. 66. Hackwood, S. and Wang, J., (1988). “The Engineering of Cellular Robotic Systems.” IEEE International Symposium on Intelligent Control. 67. Hansen, U.N., (1999). “Modeling of bone microcracking.” NAFEMS World Congress, pp. 1169-1179. 68. Heitler, W. J. and Burrows, M., (1977). “The locust jump. I. The motor programme.” J. Exp. Biol., 66, pp. 203-219. 69. Hirai, K., (1997). “Current and future perspective of Honda humanoid robot.” Proceedings of the IEEE International Conference on Intelligent Robots and Systems, 2, pp. 500-508. 157 70. Hirai, K., Hirose, M., Haikawa, Y. and Takenaka, T., (1998). “The development of Honda humanoid robot.” Proceedings of the IEEE International Conference on Robotics and Automation, pp. 1321-1326. 71. Hirata, K., Takimoto, T., and Tamura, K., (2000). “Study on turning performance of a fish robot.” Proceedings of the 1 st International Symposium on Aqua Bio-Mechanisms, pp. 287-292. 72. Holl, S.M., Hansen, D., Waite, J.H. and Schaefer, J., (1993). “Solid-state NMR analysis of cross-linking in mussel protein glue.” Arch. Biochem. Biophys., 302, pp. 255-258. 73. Holland, J., (1975). “Adaptation in Natural & Artificial Systems: An Introductory Analysis with Applications to Biology.” Control & Artificial Intelligence, University of Michigan Press. 74. Hornby, G., Lipson, H. and Pollack, J., (2001). “Evolution of Generative Design Systems for Modular Physical Robots.” Proceedings of the 2001 IEEE International Conference on Robotics and Automation, pp. 50-56. 75. Hosokawa, K., Shimoyama, I., Miura, H. (1996). "Two-dimensional micro-self- assembly using the surface tension of water." Sensors and Actuators a-Physical, 57, No. 2, pp. 117-125. 76. Iagnemma, K., Rzepniewski, A., Dubowsky, S., Pirjanian, P., Huntsberger, T. and Schenker, P. (2000). “Mobile robot kinematic reconfigurability for rough – terrain.” Proceedings of the SPIE Symposium on Sensor Fusion and Decentralized Control in Robotic Systems III. 77. Jackson, A.P., Vincent, J.F.V. and Turner, R.M., (1989). “A physical model of nacre.” Composites Sci. Technol., 36, pp. 255-266. 78. Jones, M. N. and Chapman, D. (1995). “Micelles, Monolayers, and Biomembranes.” Wiley-Liss, New York. 79. Kato, N. and Furushima, M., (1996). “Pectoral fin model for maneuver of underwater vehicles.” Proceedings of the IEEE AUV Symposium, pp. 49-56. 80. Kato, N. and Inaba, T., (1997). “Hovering performance of fish robot with apparatus of pectoral fin motion.” Proceedings of the 10 th International Conference on Unmanned Untethered Submersible Technology, pp. 177-188. 158 81. Kato, N. and Inaba, T., (1998). “Guidance and control of fish robot with apparatus of pectoral fin motion.” Proceedings of the IEEE International Conference on Robotics and Automation, pp. 446-451. 82. Klaassen, B. and Paap, K., (1999). “GMD-SNAKE2: A Snake-Like Robot Driven by Wheels and a Method for Motion Control.” Proceedings of IEEE International Conference on Robotics and Automation. 83. Knight, D.P. and Vollrath, F., (1999). “Liquid crystals and flow elongation in a spider’s silk production line.” Proc. R. Soc. Lond., B266, pp. 519-523. 84. Kotay, K., Rus, D., Vona, M., and McGray, C., (1998). “The self-reconfiguring robotic molecule.” Proceedings of the IEEE International Conference on Robotics & Automation, pp. 424-431. 85. Koza, J.R., (1992). “Genetic Programming: On the Programming of Computers by Means of Natural Selection.” The MIT Press. 86. Koza, J.R., (1994). “Genetic Programming II.” MIT Press. 87. Koza, J.R., Bennett, F.H., Andre, D. and Keane, M.A., (1999). “Genetic Programming III.” Morgan Kaufmann Publishers, Inc. 88. Kumar, A., Abbott, N. A., Kim, E., Biebuyck, H. A. and Whitesides, G. M. (1995). “Patterned Self-assembled monolayers and mesoscale phenomena.” Acc. Chem. Res. 28, pp. 219-226. 89. Kumph, J.M. and Triantafyllou, M.S., (1998). “A fast-starting and maneuvering vehicle, the RoboPike.” Proceedings of the Symposium on Seawater Drag Reduction. 90. Laksanacharoen, S., Pollack, A., Nelson, G., Quinn, R. and Ritzmann, R., (2000). “Miomechanics and simulation of cricket for microrobot design.” Proceedings of the 2000 IEEE International Conference on Robotics and Automation, pp. 1088-1094. 91. Lee, C.Y., Ma, L., and Antonsson, E.K., (2001a). “Evolutionary and Adaptive Synthesis Methods.” Formal engineering design synthesis, p270-320. 92. Lee, C-Y, Ma, L. and Antonsson, E.K., (2001b). “Evolutionary and Adaptive Synthesis Methods.” Formal engineering design synthesis, pp. 270 – 320, Cambridge University Press, USA. 159 93. Lindsey, C.C., (1978). “Form, function and locomotory habits in fish.” Fish Physiology Volume VII Locomotion, W.S. Hoar and D.J. Randall, Eds. New York: Academic, pp. 1-100. 94. Lipson, H. and Pollack, J., (2000). “Automatic design and Manufacture of Robotic Lifeforms.” Nature, 406, pp. 974-979. 95. Ma, S., (1999). “Simulation of snake-like robot creeping locomotion adapted to environment.” Proceedings of the TiTech COE/Super Mechano-Systems Workshop, pp. 94-103. 96. Ma, S., Araya, H. and Li, L., (2001). “Development of a creeping snake-robot.” Proceedings of the IEEE International Symposium on Computational Intelligence in Robotics and Automation, pp. 77-82. 97. Maher, M.L. and Poon, J., (1996). “Modeling Design Exploration as Co- Evolution.” Microcomputers in Civil Engineering, 11 (3), pp. 195-210. 98. Maher, M.L., (1994). “Creative Design Using a Genetic Algorithm.” Computing in Civil Engineering, ASCE, pp. 2014-2021. 99. Maher, M.L., (2001). “A Model of Co-Evolutionary Design.” Eng. with Computers, 16, pp. 195-208. 100. Mann, D., (1999). “Creativity as an Exact (Biomimetic) Science.” 4th Biomimetics Workshop at the University of Reading, UK. 24. 101. Mann, D., (2001). “An Introduction to TRIZ: The Theory of Inventive Problem Solving,” Creativity and Innovation Management, 10, pp. 123-125. 102. Mason, R. and Burdick, J., (1999). “Construction and modeling of a carangiform robotic fish.” International Symposium on Experimental Robotics. 103. Mason, R. and Burdick, J., (2000). “Experiments in carangiform robotic fish locomotion.” Proceedings of the International Conference on Robotic Automation, pp. 428-435. 104. Michael, S.W., (2001). “Reef Fishes Volume 1.” T.F.H. Publications, Inc. 105. Michalewicz, Z., (1994). “Genetic Algorithms + Data Structures = Evolutionary Program.” Springer-Verlag, New York. 160 106. Murata, S., Kurokawa, H., Yoshida, E., Tomita, K. and Kokaji, S., (1998). “A 3- D self-reconfigurable structure.” Proceedings of the 1998 IEEE International Conference on Robotics and Automation, pp. 432-439. 107. Murata, S., Yoshida, E., Kurokawa, H. and Tomita, K., (2001). “Self repairing mechanical systems.” Springer Netherlands, Volume 10, Number 1. pp. 7-21. 108. Mytilinaios, E., Marcus, D., Desnoyer, D. and Lipson, H. (2004). “Designed and Evolved Blueprints for Physical Self-Replicating Machines”, Proceedings of the Ninth Int. Conference on Artificial Life (ALIFE IX), pp.15-20. 109. Neidle, S. (1999). “Oxford Handbook of Nucleic Acid Structure.” Oxford Univ. Press, Oxford, U.K. 110. Nelson, G.M. and Quinn, R.D., (1998). “Posture control of a cockroach-like robot.” Proceedings of the IEEE International Conference on Robotics and Automation, pp. 157-162. 111. O’Neil, M., Ryan, C., (2000). “Grammar based Function Definition in Grammatical Evolution.” Genetic Programming 2000: Proceedings of the 5th Annual Conference, MIT Press, pp. 485-490. 112. Oliver, S. R., Clark, T. D., Bowden, B., Whitesides, G. M. (2001). “Three dimensional Self Assembly of Complex, Millimeter-Scale Structures through Capillary Bonding.” J.Am.Chem.Soc., pp. 8119-8120. 113. Paap, K., Dehlwisch, M., and Klaassen, B., (1996). “GMD-Snake: A semiautonomous snake-like robot.” Distributed Autonomous Robotic Systems 2, Springer-Verlag: Tokyo. 114. Paap, K., Kirchner, F., and Klaassen, B., (1999). “Motion control scheme for a snake-like robot.” Proceedings of the IEEE International Symposium on Computational Intelligence in Robotics and Automation, pp. 59-63. 115. Pahl, G. and Beitz, W., (1996). “Engineering design: a systematic approach.” 2 nd ed. Sprinder, London. 116. Paresis, J.L., (1998). “Coevolutionary Algorithms.” In: Bck T, Fogel D, Michalewics Z (eds). The handbook of evolutionary computation. Oxford University Press, Oxford. 117. Parmee, I.C., (1997). “Evolutionary Computing for Conceptual and Detailed Design.” Genetic Algorithms in Engineering and Computer Science. John Wiley & Sons Ltd. 161 118. Penrose, L. S. (1959). “Self-reproducing machines.” Scientific American, 200, No. 6, pp. 105-114. 119. Pfeiffer, F., Eltze, J. and Weidemann, H.J., (1995). “The TUM walking machine.” Intl. J. Automation Soft Computing, 1, pp. 307-323. 120. Potter, M.A. and Jong, K.A.D., (2000). “Cooperative Coevolution: An Architecture for Evolving Coadapted Subcomponents.” Evolutionary Computation, 8 (1), pp. 1-29. 121. Pratt, J., Dilworth, P. and Pratt, G., (1997). “Virtual model control of a bipedal walking robot.” Proceedings of the IEEE International Conference on Robotics and Automation, pp. 193-198. 122. Rediniotis, O.K. and Schaeffler, N.W., (1997). “Shape memory alloys in aquatic biomimetics.” Proceedings of the 10 th International Symposium on Unmanned Untethered Submersible Technology, Special Session on Bio-Engineering Research Related to Autonomous Underwater Vehicles, pp. 52-61. 123. Richard, N.L., (1995). “The Coevolution of Technology and Organization in the Transition to the Factory System.” Report-no: 95-153, Department of Economics, University of Connecticut. 124. Rodrigues, E. and Pozo, A., (2002). “Grammar-Guided Genetic Programming and Automatically Defined Functions.” Proceedings of the 16th Brazilian Symposium on Artificial Intelligence: Advances in Artificial Intelligence, pp. 324 - 333. 125. Rosén, M., Spedding G.R. and Hedenström, A., (2004). “The relationship between wingbeat kinematics and vortex wake of a thrush nightingale.” The Journal of Experimental Biology, 207, pp. 4255-4268. 126. Rubenstein M., Krivokon M., Shen W-M, (2004) “Robotic Enzyme-Based Autonomous Self-Replication”, IROS 04. 127. Rubenstein-Montano, B. and Malaga, R., (2000). “A Co-Evolutionary Approach to Strategy Design for Decision Makers in Complex Negotiation Situations.” Proceedings of the 33 rd Hawaii International Conference on System Sciences. 128. Rus, D. and Vona, M., (1999). “Self-reconfiguration planning with compressible unit modules.” Proceedings of the IEEE International Conference on Robotics and Automation, 4, pp. 2513-2520. 162 129. Rus, D. and Vona, M., (2000). “A physical implementation of the self- reconfiguring crystalline robot.” Proceedings of the IEEE International Conference on Robotics and Automation, 2, pp. 1726-1733. 130. Rus, D. and Vona, M., (2001). “Crystalline robots: self-reconfiguration with compressible unit modules.” Kluwer Autonomous Robots 10, pp. 107–124. 131. Salamatov, Y., (1999). “TRIZ: the right solution at the right time: a guide to innovative problem solving,” Hattem, The Netherlands: Insytec BV. 132. Salemi, B., Shen, W. M. and Will, P., (2001). “Hormone controlled metamorphic robots.” Proceedings of the IEEE International Conference on Robotics and Automation, pp 4194-4200. 133. Sarikaya, M., (1994). “An Introduction to Biomimetics: A Structural Viewpoint.” Microscopy Research and Technique, 27 (5), pp. 360-375. 134. Schaeffer, A. A. (1920). “Ameboid Movement.” Princeton University Press. 135. Sfakiotakis, M., Lane, D.M. and Davies, J.B.C., (1999). “Review of fish swimming modes for aquatic locomotion.” IEEE Journal of Oceanic Engineering Volume, 24 (2), pp. 237-252. 136. Shen, W. M., Krivokon, M., Chiu, H., Everist, J., Rubenstein, M. and Venkatesh, J., (2006). “Multimode locomotion for reconfigurable robots.” Autonomous Robots, 20(2), pp.165–177. 137. Shen, W. M., Lu, Y. and Will, P., (2000a). “Hormone-based control for self- reconfigurable robots.” Proceedings of Intelligent Autonomous Systems. 138. Shen, W. M., Salemi, B. and Will, P., (2000b). “Hormones for self- reconfigurable robots.” Proceedings of Intelligent Autonomous Systems. 139. Shen, W. M., Salemi, B., and Will, P., (2002). “Hormone inspired adaptive communication and distributed control for CONRO self-reconfigurable robots.” IEEE Transactions on Robotics and Automation, Volume 18, Number 5, pp. 700-713. 140. Shu, L.H., (2002). “Biomimetic Design for Remanufacture in the Context of DFA.” International Forum on Design for Manufacture and Assembly. 141. Shu, L.H., (2004). “Biomimetic Design for Remanufacture in the Context of Design for Assembly.” Proceedings of the I Mech E Part B: Journal of Engineering Manufacture, 218 (3), pp. 349-352. 163 142. Shu, L.H., Lenau, T.A., Hansen, H.N. and Alting, L., (2003). “Biomimetics Applied to Centering in Microassembly.” CIRP Annals, 52 (1), pp. 101-104. 143. Spedding, G.R., Rosén, M. and Hedenström, A., (2003). “A family of vortex wakes generated by a thrush nightingale in free flight in a wind tunnel over its entire natural range of flight speeds.” The Journal of Experimental Biology, 206, pp. 2313-2344. 144. Stoy, K., Shen, W. M. and Will, P., (2002). “Using role-based control to produce locomotion in chain-type self-reconfigurable robots.” Proceedings of the IEEE Transactions on Mechatronics, pp. 410-417. 145. Suh, N. P., (1990). “The principles of design.” Oxford University Press, New York, NY. 146. Suh, N. P., (2001). “Axiomatic design.” Oxford University Press, New York, NY. 147. Sun, M. and Wu, J., (2002). “Biomimetic aerodynamics of micro-air vehicles - aerodynamic force and power requirements in forward flight of insect.” Acta Aeronautica et Astronautica Sinica., 23 (5), pp. 385-393. 148. Sun, M. and Xiong, Y., (2005). “Biomimetic mechanics of micro-air vehicles dynamic flight stability of a hovering honeybee.” Acta Aeronautica et Astronautica Sinica., 26 (4), pp. 385-391. 149. Thomas, E. L. (1999). “The ABCs of Self-Assembly.” Science, 286, pp. 1307. 150. Thomas, J.A., Moss, C. F. and Vater, M., (2004). “Echolocation in Bats and Dolphins.” The University of Chicago Press. 151. Tien, J., Breen, T. L., Whitesides, G. M. (1998). "Crystallization of millimeter- scale objects with use of capillary forces." Journal of the American Chemical Society, 120, No. 48, pp. 12670-12671. 152. Tomita, K., Murata, S., Kurokawa, H., Yoshida, E. and Kokaji, S., (1999). “Self-assembly and self-repair method for a distributed mechanical system.” IEEE Transactions on Robotics and Automation. Vol. 15, No. 6, pp. 1035-1046. 153. Tomiyama, T., (1995). “A design process model that unifies general design theory and empirical findings.” Proceedings of ASME’s DETC. 164 154. Tong, B.G., (2000). “Propulsive mechanism of fish’s undulatory motion.” Journal of Mechanical Engineering, 22 (3), pp. 69-74. 155. Triantafyllou, M., Techet, A. and Hover, F., (2004). “Review of experimental work in biomimetic foils.” IEEE Journal of Oceaning Engineering, 29 (3), pp. 585-595. 156. Triantafyllou, M.S. and Triantafyllou, G.S., (1995). “An efficient swimming machine.” Sci. Am., pp. 64-70. 157. Tsakiris, D.P., Menciassi, A., Sfakiotakis, M., la Spina, G. and Dario, P., (2004). “Undulatory locomotion of polychaete annelids: mechanics, neural control and robotic prototypes.” Annual Computational Neuroscience Meeting. 158. Tsakiris, D.P., Sfakiotakis, M., Menciassi, A., la Spina, G. and Dario, P., (2005). “Polychaete-like undulatory Robotic Locomotion.” Proceedings of the International Conference on Robotics and Automation, pp. 3018-3023. 159. Unsal, C. and Khosla, P., (2000). “Mechatronic design of a modular self- reconfiguring robotic system.” Proceedings of the 2000 IEEE International Conference on Robotics and Automation. 160. Unsal, C., Kilic, H., and Khosla, P., (2001). “A modular self-reconfigurable bipartite robotic system: implementation and motion planning.” Kluwer Autonomous Robots 10, pp. 23-40. 161. Unsal, C., Kiliççöte, H. and Khosla, P., (1999). “I(CES)-cubes: a modular self- reconfigurable bipartite robotic system.” In Proceedings of SPIE, Volume 2829: Sensor Fusion and Decentralized Control in Robotic Systems II, pp. 258-269. 162. Vakili, V. and Shu, L.H., (2001). “Towards biomimetic concept generation.” Proceedings of DETC ’01 ASME Design Engineering Technical Conference on Design Theory and Methodology. 163. Vauthey, S., Santoso, S., Gong, H., Watson, N. and Zhang, S. (2002). “Molecular self-assembly of surfactant like peptides to form nanotubes and nanovesicles.” PNAS 99, No. 5, pp.5355-5360. 164. Vincent, J.F.V. and King, M.J., (1996). “The mechanism of drilling by wood wasp ovipositors.” Journal of Biomimetics, 3, pp. 187-201. 165. Vincent, J.F.V. and Mann, D.L., (2002). “Systematic technology transfer from biology to engineering.” Phil Trans R Soc A, 360, pp. 159-174. 165 166. Vincent, J.F.V., (2000). “Smart by name, smart by nature.” Journal of Smart Materials and Structures, 9, pp. 255-259. 167. Vincent, J.F.V., Bogatyreva, O. and Bogatyrev, N., (2006a). “Biology doesn’t waste energy: that’s really smart.” Proceedings of SPIE, 6168, Smart Structures and Materials 2006: Electroactive Polymer Actuators and Devices (EAPAD). 168. Vincent, J.F.V., Bogatyreva, O., Bogatyrev, N., Bowyer, A. and Pahl, A.K., (2006b). “Biomimetics: its practice and theory.” Proceedings of J. R. Soc. Interface 3. pp. 471-482. 169. Vincent, J.F.V., Bogatyreva, O., Pahl, A.K., Bogatyrev, N. and Bowyer, A., (2005). “Putting Biology into TRIZ: A database of biological effects.” Proceedings of Creativity and Innovation Management, 14 (1). 170. Vincent, J.F.V., Jeronimidis, G., Topping, B.H.V. and Khan, A.I., (1992). “Biomimetics of flexible composites: towards the development of new materials.” Biomimetics, 1 (4), pp. 251-263. 171. Vogel, S., (1998). “Cats’ Paws and Catapults,” W.W. Norton & Company, Inc. 172. Walker, V.A., Peremans, H. and Hallam, J.C.T., (1998a). “Good vibrations: exploiting reflector motion to partition an acoustic environment.” Robotics and Autonomous Systems, 24 (1), pp. 43-55. 173. Walker, V.A., Peremans, H., Hallam, J.C.T., (1998b). “One tone, two ears, three dimensions: a robotic investigation of pinnae movements used by rhinolophid and hipposiderid bats.” J. Acoust. Soc. Am., 104, pp. 569-579. 174. Wardle, R. and Tomlinson, G.R., (1997). “Structural design for dynamic loading using a biomimetic approach.” Proceedings of SPIE, 3040. 175. Watson, J.T. and Ritzmann R.E., (1997a). “Leg kinematics and muscle activity during treadmill running in the cockroach, Blaberus discoidalis: I. Slow running.” J. Comp. Physiol. [A] 182, pp. 11-22. 176. Watson, J.T. and Ritzmann, R.E., (1997b). “Leg kinematics and muscle activity during treadmill walking in the cockroach, Blaberus discoidalis: II. Fast running.” J. Comp. Physiol. [A] 182, pp. 23-33. 177. Webb, P.W., (1994). “The biolody of fish swimming.” Proceedings of Mechanics and Physiology of Animal Swimming, L. Maddock, Q. Bone, and J. M. V. Rayner, Eds., pp. 45-62. 166 178. Westneat, M.W. and Walker, J.A., (1997). “Applied aspects of mechanical design, behavior, and performance of pectoral fin swimming in fishes.” Proceedings of the 10 th International Symposium on Unmanned Untethered Submersible Technology, Special Session on Bio-Engineering Research Related to Autonomous Underwater Vehicles, pp. 153-165. 179. Whigham, P.A., (1995). “Grammatically based Genetic Programming.” Proceedings of ML’95 Workshop on Genetic Programming - From Theory to Real-Word Applications, pp. 33-41. 180. Whitesides, G. and Boncheva, M. (2002). “Beyond molecules: self-assembly of mesoscopic and macroscopic components.” Proceedings of the National Academy of Sciences of the United States of America, 99, No. 8, pp. 4769-4774. 181. Whitesides, G. and Grzybowski, B. (2002). “Self-assembly at all scales.” Science, 295, No. 5564, pp. 2418-2421. 182. Yim, M., (1993). “A reconfigurable modular robot with many modes of locomotion.” Proceedings of the JSME International Conference on Advanced Mechatronics, pp. 283-288. 183. Yim, M., (1994). “New locomotion gaits.” Proceedings of the IEEE International Conference on Robotics and Automation, pp. 2508-2514. 184. Yim, M., Duff, D. G. and Roufas, K. D., (2000). “PolyBot: a modular reconfigurable robot.” Proceedings of the ICRA IEEE International Conference on Robotics and Automation, pp. 514-520. 185. Yim, M., Zhang, Y. and Duff, D., (2002). “Modular robots.” IEEE Spectrum Volume 39, Issue 2, pp. 30-34. 186. Yim, M., Zhang, Y., Roufas, K., Duff, D. and Eldershaw, C., (2002). “Connecting and disconnecting for chain self-reconfiguration with PolyBot.” Transactions on Mechatronics, 7, pp. 442-451. 187. Yoshikawa, H., (1981). “General design theory and a CAD system, in Man- machine communication in CAD/CAM.” North Holland, Amsterdam, Netherlands. 188. Yu, J., Tan, M., Wang, S. and Chen, E., (2004). “Development of a biomimetic robotic fish and its control algorithm.” IEEE Transactions on Systems, Man, and Cybernetics – Part B: Cybernetics, 34 (4), pp. 1798-1810. 167 189. Yu, J., Wang, S. and Tan, M., (2003). “Design of a free-swimming biomimetic robot fish.” Proceedings of the IEEE/ASME International Symposium on Advanced Intelligent Mechatronics, 1, pp. 95-100. 190. Zykov, V., Mytilinaios, E., Adams, B. and Lipson, H. (2005). “Self Reproducing Machines.” Nature, 435, pp. 163-164. 168 Appendices A-1 Bio-Chair Protein Set <MIS_Chair> <fProtein1> = (1,1,1)u1 (5,1,1)u1 (1,5,1)u1 (5,5,1)u1 <fProtein2> = (1,1,2)u2AF5 (1,1,1)u1AF6 (5,1,2)u2AF5 (5,1,1)u1AF6 (1,5,2)u2AF5 (1,5,1)u1AF6 (5,5,2)u2AF5 (5,5,1)u1AF6 <fProtein3> = (1,1,3)u3AF5 (1,1,2)u2AF5AF6 (1,1,1)u1AF6 (5,1,3)u3AF5 (5,1,2)u2AF5AF6 (5,1,1)u1AF6 (1,5,3)u3AF5 (1,5,2)u2AF5AF6 (1,5,1)u1AF6 (5,5,3)u3AF5 (5,5,2)u2AF5AF6 (5,5,1)u1AF6 <fProtein4> = (1,1,4)u4AF5 (1,1,3)u3AF5AF6 (1,1,2)u2AF5AF6 (1,1,1)u1AF6 (5,1,4)u4AF5 (5,1,3)u3AF5AF6 (5,1,2)u2AF5AF6 (5,1,1)u1AF6 (1,5,4)u4AF5 (1,5,3)u3AF5AF6 (1,5,2)u2AF5AF6 (1,5,1)u1AF6 (5,5,4)u4AF5 (5,5,3)u3AF5AF6 (5,5,2)u2AF5AF6 (5,5,1)u1AF6 <fProtein5> = (1,1,5)u5AF5 (1,1,4)u4AF5AF6 (1,1,3)u3AF5AF6 (1,1,2)u2AF5AF6 (1,1,1)u1AF6 (5,1,5)u5AF5 (5,1,4)u4AF5AF6 (5,1,3)u3AF5AF6 (5,1,2)u2AF5AF6 (5,1,1)u1AF6 (1,5,5)u5AF5 (1,5,4)u4AF5AF6 (1,5,3)u3AF5AF6 (1,5,2)u2AF5AF6 (1,5,1)u1AF6 (5,5,5)u5AF5 (5,5,4)u4AF5AF6 (5,5,3)u3AF5AF6 (5,5,2)u2AF5AF6 (5,5,1)u1AF6 <fProtein6> = (1,1,6)u6AF5 (1,1,5)u5AF5AF6 (1,1,4)u4AF5AF6 (1,1,3)u3AF5AF6 (1,1,2)u2AF5AF6 (1,1,1)u1AF6 (5,1,6)u6AF5 (5,1,5)u5AF5AF6 (5,1,4)u4AF5AF6 (5,1,3)u3AF5AF6 (5,1,2)u2AF5AF6 (1,1,1)u1AF6 (1,5,6)u6AF5 (1,5,5)u5AF5AF6 (1,5,4)u4AF5AF6 (1,5,3)u3AF5AF6 (1,5,2)u2AF5AF6 (1,5,1)u1AF6 (5,5,6)u6AF5 (5,5,5)u5AF5AF6 (5,5,4)u4AF5AF6 (5,5,3)u3AF5AF6 (5,5,2)u2AF5AF6 (1,5,1)u1AF6 <fProtein7> = (1,1,6)DF5f1AF3(1,1,5)AF1 (5,1,6)DF5r1AF4(5,1,5)AF2 (1,5,6)DF5l1AF2(1,5,5)AF4 (5,5,6)DF5b1AF1(5,5,5)AF3 <fProtein8> = <Protein6> <fProtein9> = (2,1,6)DF3d1AF3(1,1,5)AF1 (1,1,6)DF5b2AF3(2,1,5)AF1 (5,2,6)DF4d1AF4(5,1,5)AF2 (5,1,6)DF5r2AF4(5,2,5)AF2 169 (1,4,6)DF2d1AF2(1,5,5)AF4 (1,5,6)DF5l2AF2(1,4,5)AF4 (4,5,6)DF1d1AF1(5,5,5)AF3 (5,5,6)DF5f2AF1(4,5,5)AF3 <fProtein10> = <fProtein6> <fProtein11> = (2,1,6)DF3d1AF3(1,1,5)AF1 (1,1,6)DF5b3AF3(3,1,5)AF1 (5,2,6)DF4d1AF4(5,1,5)AF2 (5,1,6)DF5r3AF4(5,3,5)AF2 (1,4,6)DF2d1AF2(1,5,5)AF4 (1,5,6)DF5l3AF2(1,3,5)AF4 (4,5,6)DF1d1AF1(5,5,5)AF3 (5,5,6)DF5f3AF1(3,5,5)AF3 <fProtein12> = <fProtein6> <fProtein13> = (2,1,6)DF3d1AF3(1,1,5)AF1 (1,1,6)DF5b4AF3(4,1,5)AF1 (5,2,6)DF4d1AF4(5,1,5)AF2 (5,1,6)DF5r4AF4(5,4,5)AF2 (1,4,6)DF2d1AF2(1,5,5)AF4 (1,5,6)DF5l4AF2(1,2,5)AF4 (4,5,6)DF1d1AF1(5,5,5)AF3 (5,5,6)DF5f4AF1(2,5,5)AF3 <sProtein1> = c(4,1,5)AF1&(5,1,5)AF3 c(5,4,5)AF2&(5,5,5)AF4 c(2,5,5)AF3&(1,5,5)AF1 c(1,2,5)AF4&(1,1,5)AF2 <fProtein14> = (1,1,5)DF1DF2 <fProtein15> = (1,1,6)u6AF5 (1,1,5)u5AF5AF6 (1,1,4)u4AF5AF6 (1,1,3)u3AF5AF6 (1,1,2)u2AF5AF6 (1,1,1)u1AF6 <fProtein16> = (1,1,7)u7AF5 (1,1,6)u6AF5AF6 (1,1,5)u5AF5AF6 (1,1,4)u4AF5AF6 (1,1,3)u3AF5AF6 (1,1,2)u2AF5AF6 (1,1,1)u1AF6 <fProtein17> = (1,1,8)u8AF5 (1,1,7)u7AF5AF6 (1,1,6)u6AF5AF6 (1,1,5)u5AF5AF6 (1,1,4)u4AF5AF6 (1,1,3)u3AF5AF6 (1,1,2)u2AF5AF6 (1,1,1)u1AF6 <fProtein18> = (1,1,9)u9AF5 (1,1,8)u8AF5AF6 (1,1,7)u7AF5AF6 (1,1,6)u6AF5AF6 (1,1,5)u5AF5AF6 (1,1,4)u4AF5AF6 (1,1,3)u3AF5AF6 (1,1,2)u2AF5AF6 (1,1,1)u1AF6 <fProtein19> = (1,1,10)u10AF5 (1,1,9)u9AF5AF6 (1,1,8)u8AF5AF6 (1,1,7)u7AF5AF6 (1,1,6)u6AF5AF6 (1,1,5)u5AF5AF6 (1,1,4)u4AF5AF6 (1,1,3)u3AF5AF6 (1,1,2)u2AF5AF6 (1,1,1)u1AF6 170 <fProtein20> = (1,1,10)DF5r1AF4(1,1,9)AF2 <fProtein21> = <fProtein19> <fProtein22> = (1,2,9)DF4d1Af4(1,1,9)AF2 (1,1,10)DF5r2AF4(1,2,9) <fProtein23> = <fProtein19> <fProtein24> = (1,2,9)DF4d1Af4(1,1,9)AF2 (1,1,10)DF5r3AF4(1,3,9) <fProtein25> = (1,5,5)DF1DF4 <Protein26> = (1,5,6)u6AF5 (1,5,5)u5AF5AF6 (1,5,4)u4AF5AF6 (1,5,3)u3AF5AF6 (1,5,2)u2AF5AF6 (1,5,1)u1AF6 <fProtein27> = (1,5,7)u7AF5 (1,5,6)u6AF5AF6 (1,5,5)u5AF5AF6 (1,5,4)u4AF5AF6 (1,5,3)u3AF5AF6 (1,5,2)u2AF5AF6 (1,5,1)u1AF6 <fProtein28> = (1,5,8)u8AF5 (1,5,7)u7AF5AF6 (1,5,6)u6AF5AF6 (1,5,5)u5AF5AF6 (1,5,4)u4AF5AF6 (1,5,3)u3AF5AF6 (1,5,2)u2AF5AF6 (1,5,1)u1AF6 <sProtein2> = c(1,5,8)AF6&(1,5,9)AF5 <eProtein1> = (1,1,11)F1s (1,1,13)F1s (1,1,15)F1s (1,1,17)F1s (1,3,17)F1s (1,5,17)F1s (1,7,17)F1s (1,9,17)F1s (1,9,15)F1s (1,9,13)F1s (1,9,11)F1s (3,9,9)F6s (3,9,9,)F6s (5,9,9)F6s (7,9,9)F6s (9,9,9)F6s (9,7,9)F6s (9,5,9)F6s (9,3,9)F6s (9,1,9)F6s (7,1,9)F6s (5,1,9)F6s (3,1,9)F6s 171 A-2 DNADemoWithUI Class package DNA; import sim.portrayal.continuous.*; import sim.engine.*; import sim.display.*; import javax.swing.*; import java.awt.Color; public class DNADemoWithUI extends GUIState { public Display2D display; public JFrame displayFrame; ContinuousPortrayal2D vidPortrayal = new ContinuousPortrayal2D(); public static void main(String[] args) { DNADemoWithUI vid = new DNADemoWithUI(); Console c = new Console(vid); c.setVisible(true); } public DNADemoWithUI() { super(new DNADemo( System.currentTimeMillis())); } public DNADemoWithUI(SimState state) { super(state); } public static String getName() { return "DNA-Based Cellular Self-Organization"; } public void start() { super.start(); setupPortrayals(); } public void load(SimState state) { super.load(state); setupPortrayals(); } public void setupPortrayals() { // tell the portrayals what to portray and how to portray them vidPortrayal.setField(((DNADemo)state).environment); // reschedule the displayer display.reset(); display.setBackdrop(Color.white); 172 // redraw the display display.repaint(); } public void init(Controller c) { super.init(c); // make the displayer display = new Display2D(600,450,this,1); displayFrame = display.createFrame(); displayFrame.setTitle("DNA-Based Cellular Self-Organization"); c.registerFrame(displayFrame); // register the frame so it appears in the "Display" list displayFrame.setVisible(true); display.attach( vidPortrayal, "Agents" ); } public void quit() { super.quit(); if (displayFrame!=null) displayFrame.dispose(); displayFrame = null; display = null; } } 173 A-3 DNADemo Class package DNA; import java.util.HashMap; import sim.field.continuous.*; import sim.engine.*; import sim.util.*; public /*strictfp*/ class DNADemo extends SimState { public static final double XMIN = 0; public static final double XMAX = 600; public static final double YMIN = 0; public static final double YMAX = 450; public static final double DIAMETER = 20; //Need to change the number of cells below for initial positions public static final int NUM_CELLS = 64; public Continuous2D environment = null; public DNADemo(long seed) { super(seed); } boolean conflict( final Agent agent1, final Double2D a, final Agent agent2, final Double2D b ) { if( ( ( a.x > b.x && a.x < b.x+DIAMETER ) || ( a.x+DIAMETER > b.x && a.x+DIAMETER < b.x+DIAMETER ) ) && ( ( a.y > b.y && a.y < b.y+DIAMETER ) || ( a.y+DIAMETER > b.y && a.y+DIAMETER < b.y+DIAMETER ) ) ) { return true; } return false; } boolean acceptablePosition( final Agent agent, final Double2D location ) { System.out.println(agent.id + ":" + location.x + ":" +location.y ); if( location.x < DIAMETER/2 || location.x > (XMAX-XMIN)/*environment.getXSize()*/- DIAMETER/2 || location.y < DIAMETER/2 || location.y > (YMAX-YMIN)/*environment.getYSize()*/- DIAMETER/2 ) return false; Bag mysteriousObjects = environment.getObjectsWithinDistance( location, 2*DIAMETER ); if( mysteriousObjects != null ) { 174 for( int i = 0 ; i < mysteriousObjects.numObjs ; i++ ) { if( mysteriousObjects.objs[i] != null && mysteriousObjects.objs[i] != agent ) { Agent ta = (Agent)(mysteriousObjects.objs[i]); if( conflict( agent, location, ta, environment.getObjectLocation(ta) ) ) //return false; return true; } } } return true; } public void start() { super.start(); // clear out the schedule environment = new Continuous2D(25.0, (XMAX-XMIN), (YMAX-YMIN) ); Input in = new Input(); in.importData(); HashMap msgpool = new HashMap(); HashMap stopMap = in.getStopMap(); HashMap stopMap1 = in.getStopMap1(); HashMap nextpool = new HashMap(); HashMap controlmap = new HashMap(); // Schedule the agents -- we could instead use a RandomSequence, which would be faster, // but this is a good test of the scheduler for(int x=0;x<NUM_CELLS;x++) { Double2D loc = null; Agent agent = null; int times = 0; do { if (x==0) { loc = new Double2D(30.0, 50.0); } if (x==1) { loc = new Double2D(55.0, 50.0); } if (x==2) { loc = new Double2D(80.0, 50.0); } if (x==3) 175 { loc = new Double2D(105.0, 50.0); } if (x==4) { loc = new Double2D(130.0, 50.0); } if (x==5) { loc = new Double2D(155.0, 50.0); } ……………………. ……………………. ……………………. ……………………. if (x==61) { loc = new Double2D(155.0, 225.0); } if (x==62) { loc = new Double2D(180.0, 225.0); } if (x==63) { loc = new Double2D(205.0, 225.0); } if( x < NUM_CELLS ) agent = new Cell( "Cell-"+x, loc, stopMap, msgpool, stopMap1, nextpool, controlmap); times++; if( times == 100 ) { System.err.println( "Cannot place agents. Exiting...." ); //System.exit(1); } } while( !acceptablePosition( agent, loc ) ); environment.setObjectLocation(agent,loc); schedule.scheduleRepeating(agent); } } public static void main(String[] args) { doLoop(DNADemo.class, args); System.exit(0); } } 176 A-4 Agent Class package DNA; import sim.engine.*; import sim.util.Double2D; import sim.portrayal.*; import java.awt.geom.*; public abstract /*strictfp*/ class Agent extends SimplePortrayal2D implements Steppable { public String id; public Double2D agentLocation; public Double2D agentStoplocation; public int intID = -1; public Agent( String id, Double2D location, Double2D stoplocation ) { this.id = id; this.agentLocation = location; this.agentStoplocation = stoplocation; } public Agent( String id, Double2D location ) { this.id = id; this.agentLocation = location; } double distanceSquared( final Double2D loc1, Double2D loc2 ) { return( (loc1.x-loc2.x)*(loc1.x-loc2.x)+(loc1.y-loc2.y)*(loc1.y-loc2.y) ); } public void setAgentStoplocation(Double2D agentStoplocation) { this.agentStoplocation = agentStoplocation; } } 177 A-5 Cell Class package DNA; import sim.util.*; import sim.engine.*; import java.awt.*; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import sim.portrayal.*; public /*strictfp*/ class Cell extends Agent { protected boolean finalhold = false; protected boolean initialhold = true; //protected boolean go = false; public HashMap msgpool; public HashMap nextpool; public HashMap stopMap; public HashMap stopMap1; public HashMap controlmap; public final boolean isFinal() { return finalhold; } public final void setFinal( boolean b ) { finalhold = b; } public LinkedList sortedstoplist; public Color stopColor; int NUMOFAGENTS = 64; public Cell( String id, Double2D location, HashMap stopMap, HashMap msgpool, HashMap stopMap1, HashMap nextpool, HashMap controlmap ) { super( id, location ); try { intID = Integer.parseInt( id.substring(5) ); } catch( IndexOutOfBoundsException e ) { System.err.println( "Exception generated: " + e ); System.exit(1); } catch( NumberFormatException e ) { System.err.println( "Exception generated: " + e ); System.exit(1); } this.msgpool = msgpool; this.nextpool = nextpool; this.stopMap = stopMap; this.stopMap1 = stopMap1; 178 this.controlmap = controlmap; } Double2D desiredLocation = null; Double2D suggestedLocation = null; int steps = 0; public void step( final SimState state ) { DNADemo hb = (DNADemo)state; //Hold the initial position here if (initialhold) { this.setFinal(false); //hold cell at the initial position to decide the goal and to pass messages if (!go) //Check if the id exists in the msgpool already; if not add one msg into the pool if (!msgpool.containsKey(id)) { Message msg = new Message(); msg.setText("" + id); //Get the sorted list to loop in order to get the stop position //Here we now use the first item; we will change it later since first item could be used by //others. We need to use if-then to do judgment this.sortedstoplist = getSortedStopPointList(); Double2D stoploc = null; for (int i = 0; i<this.sortedstoplist.size(); i++) { boolean bflag = true; StopPointsp = (StopPoint)stopMap.get(((StopPoint)this.sortedstoplist.get(i)).getPointID()); Iterator myIterator = msgpool.keySet().iterator(); //loop the message to see if there is any stop point being taken while(myIterator.hasNext()) { String id = (String)myIterator.next(); Message tmsg = (Message)msgpool.get(id); if (sp.getPointID().equals(tmsg.goalID)) { bflag = false; } } if (bflag) { stoploc = sp.getStopLocation(); this.setStopColor(sp.stopColor); msg.setGoalID(sp.getPointID()); this.setAgentStoplocation(stoploc); msgpool.put(id, msg); break; } } 179 } if (msgpool.size()==NUMOFAGENTS) { initialhold = false; } }else { steps--; if( desiredLocation == null || steps <= 0 ) { desiredLocation = new Double2D (agentStoplocation.x, agentStoplocation.y); steps = 50+state.random.nextInt(50); } double dx = desiredLocation.x - agentLocation.x; double dy = desiredLocation.y - agentLocation.y; //Change the color if ((Math.abs(dx)<0.5)&&(Math.abs(dy)<0.5)){setFinal(true);} double temp = /*Strict*/Math.sqrt(dx*dx+dy*dy); if( temp < 1 ) { steps = 0; } else { dx /= temp; dy /= temp; } if( !hb.acceptablePosition(this, new Double2D( agentLocation.x + dx, agentLocation.y + dy ) ) ) { steps = 0; } else { agentLocation = new Double2D(agentLocation.x + dx, agentLocation.y + dy); hb.environment.setObjectLocation(this,agentLocation); } //When arriving the stop location, remove the message if (isFinal()) { msgpool.remove(id); nextpool.put(id, "Cell#"+ id +"Go NEXT "); } //if the message pool is zero; then go to the next stage 180 if (nextpool.size() == NUMOFAGENTS) { initialhold = true; stopMap = stopMap1; Thread t = new Thread(); try{ t.sleep(500); }catch (Exception e){} controlmap.put(id, "Cell#"+ id +"REACH NEXT "); } if (controlmap.size() == NUMOFAGENTS) { nextpool.clear(); } } } protected Color originalColor = new Color(200,200,200); public final void draw(Object object, Graphics2D graphics, DrawInfo2D info) { double diamx = info.draw.width*DNADemo.DIAMETER; double diamy = info.draw.height*DNADemo.DIAMETER; //Set the stop color here if (isFinal()) graphics.setColor( this.getStopColor() ); else graphics.setColor ( originalColor ); /**graphics.drawRect((int)(info.draw.x-diamx/2),(int)(info.draw.y- diamy/2),(int)(diamx),(int)(diamy));*/ graphics.fillRect((int)(info.draw.x-diamx/2),(int)(info.draw.y-diamy/2),(int)(diamx),(int)(diamy)); } private LinkedList getSortedStopPointList() { //initial conditions LinkedList stopptlist = new LinkedList(); String id = null; //Iterator the StopMap to get the distance and the point and then add into a list Iterator myIterator = stopMap.keySet().iterator(); while(myIterator.hasNext()) { String key = (String)myIterator.next(); StopPoint tmpsp = (StopPoint)stopMap.get(key); Double2D tmp2D = tmpsp.getStopLocation(); tmpsp.setSqrtDistance(this.distanceSquared( agentLocation, tmp2D )); stopptlist.add(tmpsp); } 181 //Sort the list and return LinkedList list = sortList(stopptlist); return list; } double distanceSquared(Double2D loc1, Double2D loc2 ) { return( (loc1.x-loc2.x)*(loc1.x-loc2.x)+(loc1.y-loc2.y)*(loc1.y-loc2.y) ); } private LinkedList sortList(LinkedList list) { String idx; StopPoint tmpsp; for (int i = 0; i < (list.size() - 1); i++) { for(int j = 1; j < list.size(); j++) { double dist_j = ((StopPoint)list.get(j)).sqrtDistance; double dist_j_1 = ((StopPoint)list.get(j-1)).sqrtDistance; if (dist_j < dist_j_1) { tmpsp = (StopPoint)list.get(j); list.set(j, (StopPoint)list.get(j-1)); list.set(j-1, tmpsp); } } } return list; } public Color getStopColor() { return stopColor; } public void setStopColor(Color stopColor) { this.stopColor = stopColor; } } 182 A-6 Input Class package DNA; import java.awt.Color; import java.util.HashMap; import sim.util.Double2D; public class Input { private HashMap stopMap; private HashMap stopMap1; public Input() { stopMap = new HashMap(); stopMap1 = new HashMap(); } public HashMap getStopMap() { return stopMap; } public HashMap getStopMap1(){ return stopMap1; } public void importData() { //Input dDNA of Spider for(int x=0;x<64;x++) { System.out.println("READ" + x); //Interface Layer (Green) if (x==0) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(153,204,0), new Double2D(70.0, 30.0)); stopMap.put(id, sp); } if (x==1) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(153,204,0), new Double2D(90.0, 30.0)); stopMap.put(id, sp); } if (x==2) { 183 String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(153,204,0), new Double2D(110.0, 30.0)); stopMap.put(id, sp); } if (x==3) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(153,204,0), new Double2D(130.0, 30.0)); stopMap.put(id, sp); } //Energy Material Layer (Yellow) if (x==4) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(90.0, 50.0)); stopMap.put(id, sp); } if (x==5) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(90.0, 70.0)); stopMap.put(id, sp); }if (x==6) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(90.0, 90.0)); stopMap.put(id, sp); }if (x==7) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(90.0, 110.0)); stopMap.put(id, sp); }if (x==8) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(90.0, 130.0)); stopMap.put(id, sp); }if (x==9) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(90.0, 150.0)); stopMap.put(id, sp); }if (x==10) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(90.0, 170.0)); stopMap.put(id, sp); }if (x==11) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(90.0, 190.0)); stopMap.put(id, sp); 184 }if (x==12) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(110.0, 50.0)); stopMap.put(id, sp); }if (x==13) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(110.0, 70.0)); stopMap.put(id, sp); }if (x==14) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(110.0, 90.0)); stopMap.put(id, sp); }if (x==15) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(110.0, 110.0)); stopMap.put(id, sp); }if (x==16) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(110.0, 130.0)); stopMap.put(id, sp); }if (x==17) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(110.0, 150.0)); stopMap.put(id, sp); }if (x==18) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(110.0, 170.0)); stopMap.put(id, sp); }if (x==19) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(110.0, 190.0)); stopMap.put(id, sp); } //Structural Layer (Blue) if (x==20) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(10.0, 70.0)); stopMap.put(id, sp); } if (x==21) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(10.0, 110.0)); 185 stopMap.put(id, sp); }if (x==22) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(10.0, 150.0)); stopMap.put(id, sp); }if (x==23) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(10.0, 190.0)); stopMap.put(id, sp); }if (x==24) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(30.0, 70.0)); stopMap.put(id, sp); }if (x==25) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(30.0, 110.0)); stopMap.put(id, sp); }if (x==26) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(30.0, 150.0)); stopMap.put(id, sp); }if (x==27) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(30.0, 190.0)); stopMap.put(id, sp); }if (x==28) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(50.0, 70.0)); stopMap.put(id, sp); }if (x==29) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(50.0, 110.0)); stopMap.put(id, sp); }if (x==30) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(50.0, 150.0)); stopMap.put(id, sp); }if (x==31) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(50.0, 190.0)); stopMap.put(id, sp); }if (x==32) { 186 String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(70, 50)); stopMap.put(id, sp); }if (x==33) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(70, 70)); stopMap.put(id, sp); }if (x==34) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(70, 90)); stopMap.put(id, sp); }if (x==35) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(70, 110)); stopMap.put(id, sp); }if (x==36) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(70, 130)); stopMap.put(id, sp); }if (x==37) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(70, 150)); stopMap.put(id, sp); }if (x==38) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(70, 170)); stopMap.put(id, sp); }if (x==39) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(70, 190)); stopMap.put(id, sp); }if (x==40) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(70, 210)); stopMap.put(id, sp); }if (x==41) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(90.0, 210.0)); stopMap.put(id, sp); }if (x==42) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(110.0, 210.0)); stopMap.put(id, sp); 187 }if (x==43) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(130.0, 50.0)); stopMap.put(id, sp); }if (x==44) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(130.0, 70.0)); stopMap.put(id, sp); }if (x==45) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(130.0, 90.0)); stopMap.put(id, sp); }if (x==46) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(130.0, 110.0)); stopMap.put(id, sp); }if (x==47) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(130.0, 130.0)); stopMap.put(id, sp); }if (x==48) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(130.0, 150.0)); stopMap.put(id, sp); }if (x==49) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(130.0, 170.0)); stopMap.put(id, sp); }if (x==50) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(130.0, 190.0)); stopMap.put(id, sp); }if (x==51) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(130.0, 210.0)); stopMap.put(id, sp); }if (x==52) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(150.0, 70.0)); stopMap.put(id, sp); }if (x==53) { String id = String.valueOf(x); 188 StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(150.0, 110.0)); stopMap.put(id, sp); }if (x==54) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(150.0, 150.0)); stopMap.put(id, sp); }if (x==55) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(150.0, 190.0)); stopMap.put(id, sp); }if (x==56) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(170.0, 70.0)); stopMap.put(id, sp); }if (x==57) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(170.0, 110.0)); stopMap.put(id, sp); }if (x==58) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(170.0, 150.0)); stopMap.put(id, sp); }if (x==59) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(170.0, 190.0)); stopMap.put(id, sp); }if (x==60) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(190.0, 70.0)); stopMap.put(id, sp); }if (x==61) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(190.0, 110.0)); stopMap.put(id, sp); }if (x==62) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(190.0, 150.0)); stopMap.put(id, sp); }if (x==63) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(190.0, 190.0)); stopMap.put(id, sp); } 189 } //Input dDNA of Snake for(int x=64;x<128;x++) { if (x==64) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(153,204,0), new Double2D(280.0, 30.0)); stopMap1.put(id, sp); } if (x==65) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 30.0)); stopMap1.put(id, sp); } if (x==66) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(153,204,0), new Double2D(320.0, 30.0)); stopMap1.put(id, sp); } if (x==67) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0, 430.0)); stopMap1.put(id, sp); } if (x==68) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(300.0, 430.0)); stopMap1.put(id, sp); } if (x==69) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0, 430.0)); stopMap1.put(id, sp); }if (x==70) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(153,204,0), new Double2D(300.0,10.0)); stopMap1.put(id, sp); } //Energy Material Layer (Yellow) if (x==71) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 50.0)); stopMap1.put(id, sp); 190 }if (x==72) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 70.0)); stopMap1.put(id, sp); }if (x==73) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 90.0)); stopMap1.put(id, sp); }if (x==74) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 110.0)); stopMap1.put(id, sp); }if (x==75) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 130.0)); stopMap1.put(id, sp); }if (x==76) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 150.0)); stopMap1.put(id, sp); }if (x==77) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 170.0)); stopMap1.put(id, sp); }if (x==78) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 190.0)); stopMap1.put(id, sp); }if (x==79) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 210.0)); stopMap1.put(id, sp); }if (x==80) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 230.0)); stopMap1.put(id, sp); }if (x==81) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 250.0)); stopMap1.put(id, sp); }if (x==82) { String id = String.valueOf(x); 191 StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 270.0)); stopMap1.put(id, sp); }if (x==83) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 290.0)); stopMap1.put(id, sp); }if (x==84) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 310.0)); stopMap1.put(id, sp); } if (x==85) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 330.0)); stopMap1.put(id, sp); } if (x==86) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 350.0)); stopMap1.put(id, sp); }if (x==87) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 370.0)); stopMap1.put(id, sp); }if (x==88) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0, 390.0)); stopMap1.put(id, sp); }if (x==89) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(255,204,0), new Double2D(300.0,410.0)); stopMap1.put(id, sp); } //Structural Layer (Blue) if (x==90) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,50.0)); stopMap1.put(id, sp); }if (x==91) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,70.0)); stopMap1.put(id, sp); }if (x==92) 192 { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,90.0)); stopMap1.put(id, sp); }if (x==93) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,110.0)); stopMap1.put(id, sp); }if (x==94) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,130.0)); stopMap1.put(id, sp); }if (x==95) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,150.0)); stopMap1.put(id, sp); }if (x==96) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,170.0)); stopMap1.put(id, sp); }if (x==97) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,190.0)); stopMap1.put(id, sp); }if (x==98) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,210.0)); stopMap1.put(id, sp); }if (x==99) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,230.0)); stopMap1.put(id, sp); }if (x==100) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,250.0)); stopMap1.put(id, sp); }if (x==101) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,270.0)); stopMap1.put(id, sp); }if (x==102) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,290.0)); 193 stopMap1.put(id, sp); }if (x==103) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,310.0)); stopMap1.put(id, sp); }if (x==104) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,330.0)); stopMap1.put(id, sp); }if (x==105) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,350.0)); stopMap1.put(id, sp); }if (x==106) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,370.0)); stopMap1.put(id, sp); }if (x==107) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,390.0)); stopMap1.put(id, sp); }if (x==108) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(280.0,410.0)); stopMap1.put(id, sp); }if (x==109) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,50.0)); stopMap1.put(id, sp); }if (x==110) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,70.0)); stopMap1.put(id, sp); }if (x==111) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,90.0)); stopMap1.put(id, sp); }if (x==112) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,110.0)); stopMap1.put(id, sp); }if (x==113) { 194 String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,130.0)); stopMap1.put(id, sp); }if (x==114) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,150.0)); stopMap1.put(id, sp); }if (x==115) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,170.0)); stopMap1.put(id, sp); }if (x==116) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,190.0)); stopMap1.put(id, sp); }if (x==117) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,210.0)); stopMap1.put(id, sp); }if (x==118) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,230.0)); stopMap1.put(id, sp); }if (x==119) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,250.0)); stopMap1.put(id, sp); }if (x==120) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,270.0)); stopMap1.put(id, sp); }if (x==121) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,290.0)); stopMap1.put(id, sp); }if (x==122) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,310.0)); stopMap1.put(id, sp); }if (x==123) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,330.0)); stopMap1.put(id, sp); 195 }if (x==124) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,350.0)); stopMap1.put(id, sp); }if (x==125) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,370.0)); stopMap1.put(id, sp); }if (x==126) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,390.0)); stopMap1.put(id, sp); }if (x==127) { String id = String.valueOf(x); StopPoint sp = new StopPoint(id, new Color(51,102,255), new Double2D(320.0,410.0)); stopMap1.put(id, sp); } } } } 196 A-7 Message Class package DNA; public class Message { String text = null; int msgID; String goalID; public String getText() { return text; } public void setText(String text) { this.text = text; } public int getMsgID() { return msgID; } public void setMsgID(int msgID) { this.msgID = msgID; } public String getGoalID() { return goalID; } public void setGoalID(String goalID) { this.goalID = goalID; } } 197 A-8 StopPoint Class package DNA; import java.awt.Color; import sim.util.Double2D; public class StopPoint { public String pointID; public double sqrtDistance; public Color stopColor; public Double2D stopLocation; public StopPoint(String pointID, Color stopColor, Double2D stopLocation) { super(); this.pointID = pointID; this.stopColor = stopColor; this.stopLocation = stopLocation; } public String getPointID() { return pointID; } public void setPointID(String pointID) { this.pointID = pointID; } public double getSqrtDistance() { return sqrtDistance; } public void setSqrtDistance(double sqrtDistance) { this.sqrtDistance = sqrtDistance; } public Color getStopColor() { return stopColor; } public void setStopColor(Color stopColor) { this.stopColor = stopColor; } public Double2D getStopLocation() { return stopLocation; } public void setStopLocation(Double2D stopLocation) { this.stopLocation = stopLocation; } }
Abstract (if available)
Abstract
The development of most engineered systems usually involves large amounts of investment, yet their value may decrease significantly when operation environments change. The out-of-date systems are often discarded because upgrading usually costs more than replacing. While it has been recognized that system adaptability is required by both economical and mission-critical needs, there has been little research that explores and develops theories and methodologies for designing adaptive systems partly due to the traditional "static design" framing of engineering design problems.
Linked assets
University of Southern California Dissertations and Theses
Conceptually similar
PDF
Building cellular self-organizing system (CSO): a behavior regulation based approach
PDF
A meta-interaction model for designing cellular self-organizing systems
PDF
A synthesis approach to manage complexity in software systems design
PDF
Dynamic social structuring in cellular self-organizing systems
PDF
Practical adaptive control for systems with flexible modes, disturbances, and time delays
PDF
Context-adaptive expandable-compact POMDPs for engineering complex systems
PDF
Managing functional coupling sequences to reduce complexity and increase modularity in conceptual design
PDF
Design of adaptive automated robotic task presentation system for stroke rehabilitation
PDF
Development and control of biologically-inspired robots driven by artificial muscles
PDF
Development of biologically-inspired sub-gram insect-scale autonomous robots
PDF
Nonlinear control of flexible rotating system with varying velocity
PDF
New approaches in modeling and control of dynamical systems
PDF
A declarative design approach to modeling traditional and non-traditional space systems
PDF
Extending systems architecting for human considerations through model-based systems engineering
PDF
Development of a multi-mode optical imaging system for preclinical applications in vivo
PDF
Decision support systems for adaptive experimental design of autonomous, off-road ground vehicles
PDF
Provable reinforcement learning for constrained and multi-agent control systems
PDF
Systems engineering and mission design of a lunar South Pole rover mission: a novel approach to the multidisciplinary design problem within a spacecraft systems engineering paradigm
PDF
Development of front-end circuits for high frequency ultrasound system
ZIP
Development of a multi-mode optical imaging system for preclinical applications in vivo [program]
Asset Metadata
Creator
Zouein, George Elias
(author)
Core Title
A biologically inspired DNA-based cellular approach to developing complex adaptive systems
School
Viterbi School of Engineering
Degree
Doctor of Philosophy
Degree Program
Mechanical Engineering
Publication Date
03/10/2009
Defense Date
01/14/2009
Publisher
University of Southern California
(original),
University of Southern California. Libraries
(digital)
Tag
adaptability,biological,biologically inspired,Biology,biomimetic,cell,cellular,complexity,conceptual,design,Development,DNA,genome,life-like,morphogenesis,multi-agent,OAI-PMH Harvest,reconfiguration,system
Language
English
Contributor
Electronically uploaded by the author
(provenance)
Advisor
Jin, Yan (
committee chair
), Blackwelder, Ron (
committee member
), Chen, Yong (
committee member
), Shiflett, Geoffrey R. (
committee member
)
Creator Email
gez11@hotmail.com,zouein@usc.edu
Permanent Link (DOI)
https://doi.org/10.25549/usctheses-m2012
Unique identifier
UC169033
Identifier
etd-Zouein-2627 (filename),usctheses-m40 (legacy collection record id),usctheses-c127-215803 (legacy record id),usctheses-m2012 (legacy record id)
Legacy Identifier
etd-Zouein-2627.pdf
Dmrecord
215803
Document Type
Dissertation
Rights
Zouein, George Elias
Type
texts
Source
University of Southern California
(contributing entity),
University of Southern California Dissertations and Theses
(collection)
Repository Name
Libraries, University of Southern California
Repository Location
Los Angeles, California
Repository Email
cisadmin@lib.usc.edu
Tags
adaptability
biological
biologically inspired
biomimetic
cell
cellular
complexity
conceptual
DNA
genome
life-like
morphogenesis
multi-agent
reconfiguration
system