Monod - ?· Monod is an abstract computational model inspired by cellular microbiology. In Monod, ...…

  • View
    227

  • Download
    7

Embed Size (px)

Transcript

  • MonodA biologically-inspired computational model

    Mathieu Gagne

  • 1

  • i

    Table of Contents

    1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1 Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.2.1 To Study the Future of Computation . . . . . . . . . . . . . . . . . . . . . 41.2.2 To Study Biology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.3 Overview of Monod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3.1 The Design Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.3.2 Overview of the Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    1.4 Other Biologically-Inspired Approaches . . . . . . . . . . . . . . . . . . . . . . 101.4.1 Genetic Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.4.2 Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4.3 Molecular Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4.4 Artificial Immune Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    1.5 So what is Monod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.5.1 Disclaimers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    2 Three Design Patterns . . . . . . . . . . . . . . . . . . . . 152.1 The Hive Design Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 The Swarm Design Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3 The Incubator Design Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    2.3.1 The Incubator Calculator Example . . . . . . . . . . . . . . . . . . . . . . 212.3.2 Another example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3.3 Some Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3.4 Turing Soup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    3 The Cytoplasm and the Monod Cell . . . . . . . 343.1 Biological Inspiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.2 Proteins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    3.2.1 Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.2.1.1 Simple Ligand Binding Domain . . . . . . . . . . . . . . . . . . . . 473.2.1.2 Ligand Binding Domain with Remapping . . . . . . . . . . . 483.2.1.3 Logical Integration Domain . . . . . . . . . . . . . . . . . . . . . . . . 503.2.1.4 Boolean Multiplexor Domain . . . . . . . . . . . . . . . . . . . . . . . 51

    3.2.2 Protein Construction and Properties . . . . . . . . . . . . . . . . . . . . 513.2.2.1 Behavior Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.2.2.2 Realization Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.2.2.3 Proteins, finally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    3.3 The Cytoplasm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.3.1 Compartments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.3.2 Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.3.3 Energy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    3.4 The Monod Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

  • ii

    4 Monod Cultures . . . . . . . . . . . . . . . . . . . . . . . . . . 594.1 Evolution Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.2 Cheating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    5 Results and Future Projects . . . . . . . . . . . . . . . 60

    6 Compilation and Usage . . . . . . . . . . . . . . . . . . . 616.1 Compilation and Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    6.1.1 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616.1.1.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616.1.1.2 make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626.1.1.3 OCaml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626.1.1.4 Texinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626.1.1.5 Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    6.1.2 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.2 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    6.2.1 Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.2.2 Source Code Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    6.3 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646.3.1 Command-line Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646.3.2 Test Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656.3.3 The singlecelltest Executable . . . . . . . . . . . . . . . . . . . . . . . . . . . 676.3.4 Provided Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    6.3.4.1 incubcalc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    7 Implementation Details . . . . . . . . . . . . . . . . . . . 687.1 Contributing to Monod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687.2 Development Timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    7.2.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697.2.2 Future . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    7.3 Source Code Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707.3.1 SourceForge Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    7.4 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737.5 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737.6 Simulation-Specific Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    7.6.1 The Swarm Design Pattern Implementation . . . . . . . . . . . . . . 757.6.1.1 Serialized Swarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757.6.1.2 True Threaded Swarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767.6.1.3 Distributed Swarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    7.6.2 Cytoplasm Topology Implementation . . . . . . . . . . . . . . . . . . . . 76

  • iii

    Appendix A Combinations . . . . . . . . . . . . . . . . . . 77A.1 Two Ligand Binding Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    A.1.1 Without Remapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77A.1.1.1 Truth-table Driven Logical Functions . . . . . . . . . . . . . . . 77A.1.1.2 Other Logical Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

    A.1.2 With Remapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87A.1.2.1 Truth-table Driven Logical Functions . . . . . . . . . . . . . . . 87

    Appendix B References . . . . . . . . . . . . . . . . . . . . 88

    Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

  • Chapter 1: Introduction 2

    1 Introduction

    Monod is an abstract computational model inspired by cellular microbiology. In Monod,a program is not a linear sequence of instructions, but a set of simple programlets whichoperate on each other and on data according to well-defined rules and stochastic forces, inanalogy with proteins and nucleotide sequences in a cell. Monod is also a software imple-mentation of this computational model on standard computer hardware and so provides anaccessible software laboratory with which one can run experiments.

    Monod should naturally accomodate parallel processing, and fits very nicely in the con-text of evolutionary algorithms alongside genetic programming, where it offers homologouscrossover, among other aspects. The basic principle upon which Monod is premised isthat biological cells perform computations. The underlying computational model seems topossess many desirable qualities, like high parallelism, adaptability and tolerance of com-plexity. These qualities are thoroughly lacking in traditional computational paradigms.Monod offers an opportunity to understand the origin of these qualities, their relationshipsand perhaps to deduce useful lessons.

    The name Monod should be pronounced the same as the word mono, since thelast d is silent. It refers to Jacques Monod, the celebrated, Nobel-prize-winning m

Recommended

View more >