Agent-based evolutionary modeling enables exploration of the big-picture how and why behind incredible biological capability for adaptation, complexity, and novelty. This field of work, known as “digital evolution,” knits interdisciplinary connections between computer science and evolutionary biology to design and study digital processes and structures that capture lifelike properties. Biologically-inspired techniques leveraging evolution as an algorithm can often produce good solutions to hard real-world problems. They also provide a useful model system to study difficult questions in evolutionary theory.

My work focuses on understanding organisms’ adaptation to the evolutionary process itself (“evolvability”) and on developing methodology to simulate larger-scale digital artificial life systems, particularly with respect to high-performance computing and digital multicellularity. I am particularly passionate about bringing research into practice by building reusable software that advances the field.

You can find more details about research projects I’m involved in below. Selected highlights from my publications are available on my Professional Works page.

Theme: Scaling Up Artificial Life Systems

PCA visualization of gene regulation activity in DISHTINY PCA visualization of gene regulation activity in DISHTINY.

Studying how artificial evolutionary systems can continually produce novel artifacts of increasing complexity has proven to be a rich vein for practical, scientific, philosophical, and artistic innovations. Unfortunately, existing computational artificial life systems appear constrained by practical limitations on simulation scale. While by no means certain, the idea that orders-of-magnitude increases in compute power will open up qualitatively different possibilities with respect to open-ended evolution is well founded.

Until fundamental changes to computing technology transpire, scaling up artificial life compute power will require taking advantage of parallel and distributed computing systems. Modern high-performance scientific computing clusters appear perhaps the best target to start down this path.

Unlike most existing applications of distributed computing in digital evolution, open-ended evolution researchers must prioritize dynamic interactions among distributed simulation elements. Ecologies, co-evolutionary dynamics, and social behavior all necessitate such dynamic interactions. The question of how to design artificial life simulations and engineer artifical life software at scale will be paramount for the field.

Project: Robust Phylogenetic Inference over Parallel and Distributed Digital Evolution Systems

retention visualization for hereditary stratigraphy policy Retention visualization for hereditary stratigraphy policy.

The capability to detect phylogenetic cues within digital evolution has become increasingly necessary in both applied and scientific contexts. These cues unlock post hoc insight into evolutionary history — particularly with respect to ecology and selection pressure — but also can be harnessed to drive digital evolution algorithms as they unfold. However, parallel and distributed evaluation complicates, among other concerns, maintenance of an evolutionary record. Existing phylogenetic record keeping requires inerrant and complete collation of birth and death reports within a centralized data structure. Such perfect tracking approaches are brittle to data loss or corruption and impose communication overhead.

A phylogenetic inference approach, as opposed to phylogenetic tracking, has potential to improve scalability and robustness. Under such a model, history is estimated from comparison of available extant genomes — aligning with the familiar paradigm of phylogenetic work in wet biology. However, this raises the question of how best to design digital genomes to facilitate phylogenetic inference.

This work introduces a new technique, called hereditary stratigraphy, that works by attaching a set of immutable historical “checkpoints” — referred to as strata — as an annotation on evolving genomes. Checkpoints can be strategically discarded to reduce annotation size at the cost of increasing inference uncertainty. An accompanying software library, hstrat, provides a plug-and-play implementation of hereditary stratigraphy that can be incorporated into any digital evolution system.

Publications & Software
2022 Hereditary stratigraphy: genome annotations to enable phylogenetic inference over distributed populations
The Genetic and Evolutionary Computation Conference
Download
View at Publisher
Authors
Date May 13th, 2022
DOI 10.1145/3520304.3533937
Venue The Genetic and Evolutionary Computation Conference
Abstract

Phylogenetic analyses can also enable insight into evolutionary and ecological dynamics such as selection pressure and frequency dependent selection in digital evolution systems. Traditionally digital evolution systems have recorded data for phylogenetic analyses through perfect tracking where each birth event is recorded in a centralized data structures. This approach, however, does not easily scale to distributed computing environments where evolutionary individuals may migrate between a large number of disjoint processing elements. To provide for phylogenetic analyses in these environments, we propose an approach to infer phylogenies via heritable genetic annotations rather than directly track them. We introduce a “hereditary stratigraphy” algorithm that enables efficient, accurate phylogenetic reconstruction with tunable, explicit trade-offs between annotation memory footprint and reconstruction accuracy. This approach can estimate, for example, MRCA generation of two genomes within 10% relative error with 95% confidence up to a depth of a trillion generations with genome annotations smaller than a kilobyte. We also simulate inference over known lineages, recovering up to 85.70% of the information contained in the original tree using a 64-bit annotation.

BibTeX
⎘ copy to clipboard
@inproceedings{moreno2022hereditary_gecco,
  author = {Moreno, Matthew Andres and Dolson, Emily and Ofria, Charles},
  title = {Hereditary Stratigraphy: Genome Annotations to Enable Phylogenetic Inference over Distributed Populations},
  year = {2022},
  isbn = {9781450392686},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  url = {https://doi.org/10.1145/3520304.3533937},
  doi = {10.1145/3520304.3533937},
  booktitle = {Proceedings of the Genetic and Evolutionary Computation Conference Companion},
  pages = {65–66},
  numpages = {2},
  keywords = {phylogenetics, decentralized algorithms, genetic algorithms, digital evolution, genetic programming},
  location = {Boston, Massachusetts},
  series = {GECCO '22}
}
Citation
⎘ copy to clipboard

Matthew Andres Moreno, Emily Dolson, and Charles Ofria. 2022. Hereditary stratigraphy: genome annotations to enable phylogenetic inference over distributed populations. In Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO ‘22). Association for Computing Machinery, New York, NY, USA, 65–66. https://doi.org/10.1145/3520304.3533937

Supporting Materials

2022 Hereditary stratigraphy: genome annotations to enable phylogenetic inference over distributed populations
The 2022 Conference on Artificial Life
Download
View at Publisher
Authors
Date May 13th, 2022
DOI 10.1162/isal_a_00550
Venue The 2022 Conference on Artificial Life
Abstract

Phylogenies provide direct accounts of the evolutionary trajectories behind evolved artifacts in genetic algorithm and artificial life systems. Phylogenetic analyses can also enable insight into evolutionary and ecological dynamics such as selection pressure and frequency-dependent selection. Traditionally, digital evolution systems have recorded data for phylogenetic analyses through perfect tracking where each birth event is recorded in a centralized data structure. This approach, however, does not easily scale to distributed computing environments where evolutionary individuals may migrate between a large number of disjoint processing elements. To provide for phylogenetic analyses in these environments, we propose an approach to enable phylogenies to be inferred via heritable genetic annotations rather than directly tracked. We introduce a “hereditary stratigraphy” algorithm that enables efficient, accurate phylogenetic reconstruction with tunable, explicit trade-offs between annotation memory footprint and reconstruction accuracy. In particular, we demonstrate an approach that enables estimation of the most recent common ancestor (MRCA) between two individuals with fixed relative accuracy irrespective of lineage depth while only requiring logarithmic annotation space complexity with respect to lineage depth This approach can estimate, for example, MRCA generation of two genomes within 10% relative error with 95% confidence up to a depth of a trillion generations with genome annotations smaller than a kilobyte. We also simulate inference over known lineages, recovering up to 85.70% of the information contained in the original tree using 64-bit annotations.

BibTeX
⎘ copy to clipboard
@proceedings{moreno2022hereditary,
    author = {Moreno, Matthew Andres and Dolson, Emily and Ofria, Charles},
    title = "{Hereditary Stratigraphy: Genome Annotations to Enable Phylogenetic Inference over Distributed Populations}",
    volume = {ALIFE 2022: The 2022 Conference on Artificial Life},
    series = {ALIFE 2022: The 2022 Conference on Artificial Life},
    year = {2022},
    month = {07},
    doi = {10.1162/isal_a_00550},
    url = {https://doi.org/10.1162/isal\_a\_00550},
    note = {64},
    eprint = {https://direct.mit.edu/isal/proceedings-pdf/isal/34/64/2035363/isal\_a\_00550.pdf},
}
Citation
⎘ copy to clipboard

Matthew Andres Moreno, Emily Dolson, Charles Ofria; July 18–22, 2022. “Hereditary Stratigraphy: Genome Annotations to Enable Phylogenetic Inference over Distributed Populations.” Proceedings of the ALIFE 2022: The 2022 Conference on Artificial Life. ALIFE 2022: The 2022 Conference on Artificial Life. Online. (pp. 64). ASME. https://doi.org/10.1162/isal_a_00550

Supporting Materials

2022 hstrat
Python package published via PyPI
View on GitHub
View at Publisher
Authors
Date January 1st, 2022
Venue Python package published via PyPI

hstrat enables phylogenetic inference on distributed digital evolution populations.

BibTeX
⎘ copy to clipboard
@article{moreno2022hereditary,
  author = {Moreno, Matthew Andres and Dolson, Emily and Ofria, Charles},
  doi = {https://doi.org/10.1162/isal_a_00550},
  journal = {Proceedings of the ALIFE 2022: The 2022 Conference on Artificial Life},
  month = {7},
  pages = {64--74},
  title = {{Hereditary Stratigraphy: Genome Annotations to Enable Phylogenetic Inference over Distributed Populations}},
  volume = {Proceedings of the ALIFE 2022: The 2022 Conference on Artificial Life},
  year = {2022}
}
Citation
⎘ copy to clipboard

Moreno, M. A., Dolson, E., & Ofria, C. (2022). Hereditary Stratigraphy: Genome Annotations to Enable Phylogenetic Inference over Distributed Populations. Proceedings of the ALIFE 2022: The 2022 Conference on Artificial Life, Proceedings of the ALIFE 2022: The 2022 Conference on Artificial Life(), 64–74. https://doi.org/https://doi.org/10.1162/isal_a_00550


Project: Studying Complexity, Novelty, and Adaptation via Digital Multicellularity Evolution Experiments

sequence of multicellular phenotypes observed in a DISHTINY experiment Sequence of multicellular phenotypes observed in a DISHTINY experiment.

Evolutionary transitions occur when previously-independent replicating entities unite to form more complex individuals. The necessary conditions and evolutionary mechanisms for these transitions to arise continue to be fruitful targets of scientific interest. Likewise, the relationship of such transitions to continuing generation of novelty, complexity, and adaptation remains an open question.

This work uses a digital model of multicellularity to study a range of fraternal transitions in populations of open-ended self-replicating computer programs. These digital cells are allowed to form and replicate kin groups by selectively adjoining or expelling daughter cells. This model provides an opportunity study group-level traits that are characteristic of a fraternal transition. These include reproductive division of labor, resource sharing within kin groups, resource investment in offspring groups, asymmetrical behaviors mediated by messaging, morphological patterning, and adaptive apoptosis.

Ongoing work with this model seeks to tease apart the interplay between novelty, complexity, and adaptation in evolution, with early results suggesting a loose, sometimes divergent, relationship.

Publications & Software
2022 Exploring Evolved Multicellular Life Histories in a Open-Ended Digital Evolution System
Frontiers in Ecology and Evolution
Download
View at Publisher
Authors
Date May 13th, 2022
DOI 10.3389/fevo.2022.750837
Venue Frontiers in Ecology and Evolution
Abstract

Evolutionary transitions occur when previously-independent replicating entities unite to form more complex individuals. Such transitions have profoundly shaped natural evolutionary history and occur in two forms: fraternal transitions involve lower-level entities that are kin (e.g., transitions to multicellularity or to eusocial colonies), while egalitarian transitions involve unrelated individuals (e.g., the origins of mitochondria). The necessary conditions and evolutionary mechanisms for these transitions to arise continue to be fruitful targets of scientific interest. Here, we examine a range of fraternal transitions in populations of open-ended self-replicating computer programs. These digital cells were allowed to form and replicate kin groups by selectively adjoining or expelling daughter cells. The capability to recognize kin-group membership enabled preferential communication and cooperation between cells. We repeatedly observed group-level traits that are characteristic of a fraternal transition. These included reproductive division of labor, resource sharing within kin groups, resource investment in offspring groups, asymmetrical behaviors mediated by messaging, morphological patterning, and adaptive apoptosis. We report eight case studies from replicates where transitions occurred and explore the diverse range of adaptive evolved multicellular strategies.

BibTeX
⎘ copy to clipboard
@article{moreno2022exploring,
  author={Moreno, Matthew Andres and Ofria, Charles},
  title={Exploring Evolved Multicellular Life Histories in a Open-Ended Digital Evolution System},
  journal={Frontiers in Ecology and Evolution},
  volume={10},
  year={2022},
  url={https://www.frontiersin.org/articles/10.3389/fevo.2022.750837},
  doi={10.3389/fevo.2022.750837},
  issn={2296-701X}
}
Citation
⎘ copy to clipboard

Moreno MA and Ofria C (2022) Exploring Evolved Multicellular Life Histories in a Open-Ended Digital Evolution System. Front. Ecol. Evol. 10:750837. doi: 10.3389/fevo.2022.750837

Supporting Materials

2021 Case Study of Novelty, Complexity, and Adaptation in a Multicellular System
The Fourth Workshop on Open-Ended Evolution (OEE4)
Download
View at Publisher
Authors
Date July 22nd, 2021
Venue The Fourth Workshop on Open-Ended Evolution (OEE4)
Abstract

Continuing generation of novelty, complexity, and adaptation are well-established as core aspects of open-ended evolution. However, the manner in which these phenomena relate remains an area of great theoretical interest. It is yet to be firmly established to what extent these phenomena are coupled and by what means they interact. In this work, we track the co-evolution of novelty, complexity, and adaptation in a case study from a simulation system designed to study the evolution of digital multicellularity. In this case study, we describe ten qualitatively distinct multicellular morphologies, several of which exhibit asymmetrical growth and distinct life stages. We contextualize the evolutionary history of these morphologies with measurements of complexity and adaptation. Our case study suggests a loose, sometimes divergent, relationship can exist among novelty, complexity, and adaptation.

BibTeX
⎘ copy to clipboard
@inproceedings{moreno2021case,
  author = {Moreno, Matthew Andres and Papa, Santiago Rodriguez and Ofria, Charles},
  title = {Case Study of Novelty, Complexity, and Adaptation in a Multicellular System},
  year = {2021},
  url = {http://workshops.alife.org/oee4/papers/moreno-oee4-camera-ready.pdf},
  booktitle = {OEE4: The Fourth Workshop on Open-Ended Evolution},
  numpages = {9},
  location = {Prague, Czech Republic}
}
Citation
⎘ copy to clipboard

Matthew Andres Moreno, Santiago Rodriguez Papa and Charles Ofria. 2021. Case Study of Novelty, Complexity, and Adaptation in a Multicellular System. OEE4: The Fourth Workshop on Open-Ended Evolution.

Supporting Materials

2020 dishtiny
header-only C++ library
View on GitHub
Authors
Date January 1st, 2020
Venue header-only C++ library

C++ library for digital evolution simulations studying digital multicellularity and fraternal major evolutionary transitions in individuality.


2019 Toward Open-Ended Fraternal Transitions in Individuality
Artificial Life
Download
View at Publisher
Authors
Date May 1st, 2019
DOI 10.1162/artl_a_00284
Venue Artificial Life
Abstract

The emergence of new replicating entities from the union of simpler entities characterizes some of the most profound events in natural evolutionary history. Such transitions in individuality are essential to the evolution of the most complex forms of life. Thus, understanding these transitions is critical to building artificial systems capable of open-ended evolution. Alas, these transitions are challenging to induce or detect, even with computational organisms. Here, we introduce the DISHTINY (Distributed Hierarchical Transitions in Individuality) platform, which provides simple cell-like organisms with the ability and incentive to unite into new individuals in a manner that can continue to scale to subsequent transitions. The system is designed to encourage these transitions so that they can be studied: organisms that coordinate spatiotemporally can maximize the rate of resource harvest, which is closely linked to their reproductive ability. We demonstrate the hierarchical emergence of multiple levels of individuality among simple cell-like organisms that evolve parameters for manually designed strategies. During evolution, we observe reproductive division of labor and close cooperation among cells, including resource-sharing, aggregation of resource endowments for propagules, and emergence of an apoptosis response to somatic mutation. Many replicate populations evolved to direct their resources toward low-level groups (behaving like multicellular individuals), and many others evolved to direct their resources toward high-level groups (acting as larger-scale multicellular individuals).

BibTeX
⎘ copy to clipboard
@article{moreno2019toward,
  author = {Moreno, Matthew Andres and Ofria, Charles},
  title = "{Toward Open-Ended Fraternal Transitions in Individuality}",
  journal = {Artificial Life},
  volume = {25},
  number = {2},
  pages = {117-133},
  year = {2019},
  month = {05},
  issn = {1064-5462},
  doi = {10.1162/artl_a_00284},
  url = {https://doi.org/10.1162/artl\_a\_00284},
  eprint = {https://direct.mit.edu/artl/article-pdf/25/2/117/1896700/artl\_a\_00284.pdf},
}
Citation
⎘ copy to clipboard

Matthew Andres Moreno, Charles Ofria; Toward Open-Ended Fraternal Transitions in Individuality. Artif Life 2019; 25 (2): 117–133. doi: https://doi.org/10.1162/artl_a_00284

Supporting Materials

2018 Understanding Fraternal Transitions in Individuality
The Third Workshop on Open-Ended Evolution (OEE3)
Download
View at Publisher
Authors
Date July 22nd, 2018
Venue The Third Workshop on Open-Ended Evolution (OEE3)
Abstract

The emergence of new replicating entities from the union of existing entities represent some of the most profound events in natural evolutionary history. Facilitating such evolutionary transitions in individuality is essential to the derivation of the most complex forms of life. As such, understanding these transitions is critical for building artificial systems capable of open-ended evolution. Alas, these transitions are challenging to induce or detect, even with computational organisms. Here, we introduce the DISHTINY (DIStributed Hierarchical Transitions in IndividualitY) platform, which provides simple cell-like organisms with the ability and incentive to unite into new individuals in a manner that can continue to scale to subsequent transitions. The system is designed to encourage these transitions so that they can be studied: organisms that coordinate spatiotemporally can maximize the rate of resource harvest, which is closely linked to their reproductive ability. We demonstrate the hierarchical emergence of multiple levels of individuality among simple cell-like organisms that evolve parameters for manually-designed strategies. During evolution, we observe reproductive division of labor and close cooperation between cells, including resource-sharing, aggregation of resource endowments for propagules, and emergence of an apoptosis response to somatic mutation. While a few replicate populations evolved selfish behaviors, many evolved to direct their resources toward low-level groups (behaving like multi-cellular individuals), and many others evolved to direct their resources toward high-level groups (acting as larger-scale multi-cellular individuals). Finally, we demonstrated that genotypes that encode higher-level individuality consistently outcompete those that encode lower-level individuality.

BibTeX
⎘ copy to clipboard
@inproceedings{moreno2018understanding,
  author = {Moreno, Matthew Andres and Ofria, Charles},
  title = {Understanding Fraternal Transitions in Individuality},
  year = {2018},
  url = {http://workshops.alife.org/oee3/papers/moreno-oee3-final.pdf},
  booktitle = {OEE3: The Third Workshop on Open-Ended Evolution},
  numpages = {8},
  location = {Tokyo, Japan}
}
Citation
⎘ copy to clipboard

Matthew Andres Moreno and Charles Ofria. 2018. Understanding Fraternal Transitions in Individuality. OEE3: The Third Workshop on Open-Ended Evolution.

Supporting Materials

Project: Harnessing Best-Effort Computing to Enable Dynamic Artificial Life Simulations at Scale

cartoon illustration of communication between simulation elements in experiment with Conduit software Cartoon illustration of communication between simulation elements in experiment with Conduit software.

The parallel and distributed processing capacity of high-performance computing (HPC) clusters continues to grow rapidly and enable profound scientific and industrial innovations. These advances in hardware capacity and economy afford great opportunity, but also pose a serious challenge: developing approaches to effectively harness it.

Software and hardware that relaxes guarantees of correctness and determinism — a so-called ``best-effort model’’ — have been shown to improve speed. This work distills best-effort communication from the larger issue of best-effort computing. Specifically, we investigate the implications of relaxing synchronization and message delivery requirements. Such a best-effort approach meets the challenges of heterogenous, varying (i.e., due to power management), and generally lower communication bandwidth (relative to compute) expected on future HPC hardware. Notably, such a model presents the possibility of runtime adaptation to effectively utilize available resources given the particular ratio of compute and communication capability at any one moment in any one rack.

Complex biological organisms exhibit characteristic best-effort properties: trillions of cells interact asynchronously while overcoming all but the most extreme failures in a noisy world. As such, bio-inspired algorithms present strong potential to benefit from best-effort communication strategies.

Much exciting work on best-effort computing has incorporated bespoke experimental hardware. However, existing software libraries for traditional HPC hardware do not typically explicitly expose a convenient best-effort communication interface for such work. This work introduces the Conduit library, which facilitates best-effort communication between parallel and distributed processes on existing, commercially-available hardware.

Publications & Software
2021 Conduit: A C++ Library for Best-effort High Performance Computing
ACM Workshop on Parallel and Distributed Evolutionary Inspired Methods
Download
View at Publisher
Authors
Date May 21st, 2021
DOI 10.1145/3449726.3463205
Venue ACM Workshop on Parallel and Distributed Evolutionary Inspired Methods
Abstract

Developing software to effectively take advantage of growth in parallel and distributed processing capacity poses significant challenges. Traditional programming techniques allow a user to assume that execution, message passing, and memory are always kept synchronized. However, maintaining this consistency becomes increasingly costly at scale. One proposed strategy is “best-effort computing”, which relaxes synchronization and hardware reliability requirements, accepting nondeterminism in exchange for efficiency. Although many programming languages and frameworks aim to facilitate software development for high performance applications, existing tools do not directly provide a prepackaged best-effort interface. The Conduit C++ Library aims to provide such an interface for convenient implementation of software that uses best-effort inter-thread and inter-process communication. Here, we describe the motivation, objectives, design, and implementation of the library. Benchmarks on a communication-intensive graph coloring problem and a compute-intensive digital evolution simulation show that Conduit’s best-effort model can improve scaling efficiency and solution quality, particularly in a distributed, multi-node context.

BibTeX
⎘ copy to clipboard
@inproceedings{moreno2021conduit,
  author = {Moreno, Matthew Andres and Papa, Santiago Rodriguez and Ofria, Charles},
  title = {Conduit: A C++ Library for Best-Effort High Performance Computing},
  year = {2021},
  isbn = {9781450383516},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  url = {https://doi.org/10.1145/3449726.3463205},
  doi = {10.1145/3449726.3463205},
  booktitle = {Proceedings of the Genetic and Evolutionary Computation Conference Companion},
  pages = {1795–1800},
  numpages = {6},
  keywords = {high performance computing, best-effort computing},
  location = {Lille, France},
  series = {GECCO '21}
}
Citation
⎘ copy to clipboard

Matthew Andres Moreno, Santiago Rodriguez Papa, and Charles Ofria. 2021. Conduit: a C++ library for best-effort high performance computing. In Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO ‘21). Association for Computing Machinery, New York, NY, USA, 1795–1800. https://doi.org/10.1145/3449726.3463205

Supporting Materials

2021 Conduit: A C++ Library for Best-effort High Performance Computing
The 6th International Workshop on Modeling and Simulation of and by Parallel and Distributed Systems (MSPDS 2020)
Download
View at Publisher
Authors
Date March 12th, 2021
Venue The 6th International Workshop on Modeling and Simulation of and by Parallel and Distributed Systems (MSPDS 2020)
Abstract

Developing software to effectively take advantage of growth in parallel and distributed processing capacity poses significant challenges. Best-effort computing models, which relax synchronization requirements, have been proposed as a strategy to overcome challenges harness high performance computing at extreme scale. Although many programming languages and frameworks aim to facilitate software development for high performance applications, existing prevalent tools do not expose an explicit best-effort interface. The Conduit C++ Library aims to provide a convenient interface for best-effort inter-thread and inter-process communication. Here, we describe the motivation, objectives, design, and implementation of the library.

BibTeX
⎘ copy to clipboard
@inproceedings{moreno2021conduit_hpcs,
  author = {Moreno, Matthew Andres and Papa, Santiago Rodriguez and Ofria, Charles},
  title = {Conduit: A C++ Library for Best-Effort High Performance Computing},
  year = {2021},
  booktitle = {The 6th International Workshop on Modeling and Simulation of and by Parallel and Distributed Systems (MSPDS 2020)},
  numpages = {2},
  keywords = {high performance computing, best-effort computing},
  location = {Barcelona, Sapin},
  series = {HPCS 2021}
}

Citation
⎘ copy to clipboard

Matthew Andres Moreno, Santiago Rodriguez Papa and Charles Ofria. 2021. Conduit: A C++ Library for Best-Effort High Performance Computing. MSPDS 2020: The 6th International Workshop on Modeling and Simulation of and by Parallel and Distributed Systems.

Supporting Materials

2020 conduit
header-only C++ library
View on GitHub
Authors
Date January 1st, 2020
Venue header-only C++ library

C++ library that wraps intra-thread, inter-thread, and inter-process communication in a uniform, modular, object-oriented interface, with a focus on asynchronous high-performance computing applications.


Theme: Building Accessible, Extendable, and Maintainable Artificial Life Research Software

group photo of participants in 2020 and 2021 Workshops for Avida-ED Software Development Group photo of participants in 2020 and 2021 Workshops for Avida-ED Software Development.

Open source software supercharges the rate of scientific progress and the applied praxis of those advances. Interdisciplinary fields like artificial life, which thrive due to contributions from those without formal training in computing such as biologists and mathematicians, especially benefit from published applications and software packages.

Open source devleopment of research software holds core priority within my work, with particular emphasis on maximizing its broader usefullness to the broader community outside of its original context. Teaching and mentorship also constitues a core aspect of this work, empowering researchers with development capabilities and promoting best practices in the community. I led the 2020 and 2021 Workshop for Avida-ED Software Development, which paired 27 early-career participants mentored 10 week hands-on projects, most related to writing, testing, and documenting software. I have also mentored five undergraduates on scientific software development projects.

Project: Packaging Composable Research Software Libraries

include graph for DISHTINY software Include graph for DISHTINY software.

Packaging and distribution of software multiplies the impact of research, both by opening the door to follow-on research within the scientific community and by facilitating direct real-world applications. However, realizing this goal requires special attention to organization, documentation, and reliability. Many of my research projects are organized so to maximize contribution of general-purpose library software back to the community. This usually involves adding software features to an existing project or publishing a standalone Python or C++ library.

Publications & Software
2022 phylotrackpy
Python package published via PyPI
View on GitHub
View at Publisher
Authors
Date January 1st, 2022
Venue Python package published via PyPI

phylotrackpy is a Python phylogeny tracker.


2022 opytional
Python package published via PyPI
View on GitHub
View at Publisher
Authors
Date January 1st, 2022
Venue Python package published via PyPI

opytional makes working with values that might be None safer and easier.


2022 interval-search
Python package published via PyPI
View on GitHub
View at Publisher
Authors
Date January 1st, 2022
Venue Python package published via PyPI

interval-search provides predicate-based binary and doubling search implementations.


2022 hstrat
Python package published via PyPI
View on GitHub
View at Publisher
Authors
Date January 1st, 2022
Venue Python package published via PyPI

hstrat enables phylogenetic inference on distributed digital evolution populations.

BibTeX
⎘ copy to clipboard
@article{moreno2022hereditary,
  author = {Moreno, Matthew Andres and Dolson, Emily and Ofria, Charles},
  doi = {https://doi.org/10.1162/isal_a_00550},
  journal = {Proceedings of the ALIFE 2022: The 2022 Conference on Artificial Life},
  month = {7},
  pages = {64--74},
  title = {{Hereditary Stratigraphy: Genome Annotations to Enable Phylogenetic Inference over Distributed Populations}},
  volume = {Proceedings of the ALIFE 2022: The 2022 Conference on Artificial Life},
  year = {2022}
}
Citation
⎘ copy to clipboard

Moreno, M. A., Dolson, E., & Ofria, C. (2022). Hereditary Stratigraphy: Genome Annotations to Enable Phylogenetic Inference over Distributed Populations. Proceedings of the ALIFE 2022: The 2022 Conference on Artificial Life, Proceedings of the ALIFE 2022: The 2022 Conference on Artificial Life(), 64–74. https://doi.org/https://doi.org/10.1162/isal_a_00550


2022 alifedata-phyloinformatics-convert
Python package published via PyPI
View on GitHub
View at Publisher
Authors
Date January 1st, 2022
Venue Python package published via PyPI

alifedata-phyloinformatics-convert helps apply traditional phyloinformatics software to alife standardized data.


2020 Zero to Sixty: Onboarding Tutorials for Native & Web Software Development with C++
Workshop for Avida-ED Software Development
View at Publisher
Authors
Date May 26th, 2020
Venue Workshop for Avida-ED Software Development

Hands-on, asynchronous 4 day tutorial series covering foundational web development competencies, C++ development with the Empirical library, and compiling for the web with Emscripten.


2020 teeplot
Python package published via PyPI
View on GitHub
View at Publisher
Authors
Date January 1st, 2020
Venue Python package published via PyPI

teeplot automatically saves a copy of rendered Jupyter notebook plots.


2020 signalgp-lite
header-only C++ library
View on GitHub
Authors
Date January 1st, 2020
Venue header-only C++ library

A genetic programming implementation designed for large-scale artificial life applications. Organized as a header-only C++ library. Inspired by Alex Lalejini’s SignalGP.


2020 conduit
header-only C++ library
View on GitHub
Authors
Date January 1st, 2020
Venue header-only C++ library

C++ library that wraps intra-thread, inter-thread, and inter-process communication in a uniform, modular, object-oriented interface, with a focus on asynchronous high-performance computing applications.


2020 dishtiny
header-only C++ library
View on GitHub
Authors
Date January 1st, 2020
Venue header-only C++ library

C++ library for digital evolution simulations studying digital multicellularity and fraternal major evolutionary transitions in individuality.


2019 keyname
Python package published via PyPI
View on GitHub
View at Publisher
Authors
Date January 1st, 2019
Venue Python package published via PyPI

keyname helps easily pack and unpack metadata in a filename.


2018 Empirical
header-only C++ library
View on GitHub
Date January 1st, 2018
Venue header-only C++ library

Empirical is a library of tools for developing useful, efficient, reliable, and available scientific software. The provided code is header-only and encapsulated into the emp namespace, so it is simple to incorporate into existing projects.

BibTeX
⎘ copy to clipboard
@software{Ofria_Empirical_C_library_2020,
  author = {Ofria, Charles and Moreno, Matthew Andres and Dolson, Emily and Lalejini, Alex and Rodriguez Papa, Santiago and Fenton, Jake and Perry, Katherine and Jorgensen, Steven and hoffmanriley and grenewode and Baldwin Edwards, Oliver and Stredwick, Jason and cgnitash and theycallmeHeem and Vostinar, Anya and Moreno, Ryan and Schossau, Jory and Zaman, Luis and djrain},
  doi = {10.5281/zenodo.4141943},
  license = {MIT},
  month = {10},
  title = {{Empirical: C++ library for efficient, reliable, and accessible scientific software}},
  url = {https://github.com/devosoft/Empirical},
  version = {0.0.4},
  year = {2020}
}
Citation
⎘ copy to clipboard

Ofria, C., Moreno, M. A., Dolson, E., Lalejini, A., Rodriguez Papa, S., Fenton, J., Perry, K., Jorgensen, S., , H., , G., Baldwin Edwards, O., Stredwick, J., , C., , T., Vostinar, A., Moreno, R., Schossau, J., Zaman, L., & , D. (2020). Empirical: C++ library for efficient, reliable, and accessible scientific software (Version 0.0.4) [Computer software]. https://doi.org/10.5281/zenodo.4141943

Supporting Materials

Project: Bringing Scientific Software to the Web Browser

live execution log for DISHTINY web app Live execution log for DISHTINY web app.

Although nominally open sourced, much scientific software is inaccessible in practice because it is prohibitively difficult to use — particularly for members of the general public. This software usually requires users to manually download and install the software, manage complicated software dependencies, and have familiarity with command-line interfaces. Browser-based software with an interactive GUI removes those barriers for both the public and for other scientists.

The Empirical project unlocks the benefit potential of in-browser scientific software by providing a C++ interface to implement HTML GUIs that wrap the pre-existing research version of software, making it easier for researchers to keep the most recent version of scientific software available widely.

Where possibles, I package my experiments & software with Empirical and publish them as interactive in-browser apps like DISHTINY. I also serve as a core contributor on the Empirical project, leading development of re-usable “prefabricated” GUI components and maintaining support for the Emscripten Web Worker API in the core library, among other responsibilities.

Publications & Software
2020 dishtiny
header-only C++ library
View on GitHub
Authors
Date January 1st, 2020
Venue header-only C++ library

C++ library for digital evolution simulations studying digital multicellularity and fraternal major evolutionary transitions in individuality.


2018 Empirical
header-only C++ library
View on GitHub
Date January 1st, 2018
Venue header-only C++ library

Empirical is a library of tools for developing useful, efficient, reliable, and available scientific software. The provided code is header-only and encapsulated into the emp namespace, so it is simple to incorporate into existing projects.

BibTeX
⎘ copy to clipboard
@software{Ofria_Empirical_C_library_2020,
  author = {Ofria, Charles and Moreno, Matthew Andres and Dolson, Emily and Lalejini, Alex and Rodriguez Papa, Santiago and Fenton, Jake and Perry, Katherine and Jorgensen, Steven and hoffmanriley and grenewode and Baldwin Edwards, Oliver and Stredwick, Jason and cgnitash and theycallmeHeem and Vostinar, Anya and Moreno, Ryan and Schossau, Jory and Zaman, Luis and djrain},
  doi = {10.5281/zenodo.4141943},
  license = {MIT},
  month = {10},
  title = {{Empirical: C++ library for efficient, reliable, and accessible scientific software}},
  url = {https://github.com/devosoft/Empirical},
  version = {0.0.4},
  year = {2020}
}
Citation
⎘ copy to clipboard

Ofria, C., Moreno, M. A., Dolson, E., Lalejini, A., Rodriguez Papa, S., Fenton, J., Perry, K., Jorgensen, S., , H., , G., Baldwin Edwards, O., Stredwick, J., , C., , T., Vostinar, A., Moreno, R., Schossau, J., Zaman, L., & , D. (2020). Empirical: C++ library for efficient, reliable, and accessible scientific software (Version 0.0.4) [Computer software]. https://doi.org/10.5281/zenodo.4141943

Supporting Materials

Theme: Unverstainding Evolvability and Improving It in Digital Evolution Systems

evolvability signatures from developmental genotype-phenotype map models Evolvability signatures from developmental genotype-phenotype map models.

Successful evolutionary search depends on the production of meaningful phenotypic variation that can be inherited by offspring. Without useful heritable variation evolution stagnates. The concept of evolvability describes a population’s capacity to generate useful heritable phenotypic variation is of evolvability. Different evolving systems can exhibit different degrees of evolvability.

Natural systems, in particular, are usually considered to have a capability to continuously generate interesting variation compared to computational systems. Understanding — and replicating – the evolvability of natural evolution is an open problem in computational evolution research.

Evolvability is desirable in artificial evolution systems for practical ends – more evolvable systems will help evolutionary algorithms to tackle sophisticated problems more effectively and efficiently. Understanding evolvability is of great scientific interest for both evolutionary biologists and evolutionary computing researchers, not only for optimization but also with respect to questions related to the evolution of complexity and open-ended evolution.

Project: Engineering Tag-Matching Systems for Digital Evolution

module expression snapshot in a DISHTINY case study Module expression snapshot in a DISHTINY case study.

Genetic programming and artificial life systems commonly use tag matching to decide interactions between system components. However, the implications of criteria used to determine affinity between tags with respect evolutionary dynamics have not been directly studied. Mechanisms to allow reconfiguration of tag interactions at runtime through dynamic regulation remain unexplored, as well.

This line of work explores how that tag-matching processes can influence the rate of adaptive evolution and the quality of evolved solutions. Better understanding of these processes will facilitate more effective incorporation of tag matching into genetic programming and artificial life systems. By showing that tag-matching processes influence connectivity patterns and evolutionary dynamics, our findings also raise fundamental questions about the properties of tag-matching systems in nature.

Publications & Software
2021 Matchmaker, Matchmaker, Make Me a Match: Geometric, Variational, and Evolutionary Implications of Criteria for Tag Affinity
arXiv
Download
View at Publisher
Authors
Date August 10th, 2021
DOI 10.48550/arXiv.2108.04507
Venue arXiv
Abstract

Genetic programming and artificial life systems commonly employ tag-matching schemes to determine interactions between model components. However, the implications of criteria used to determine affinity between tags with respect to constraints on emergent connectivity, canalization of changes to connectivity under mutation, and evolutionary dynamics have not been considered. We highlight differences between tag-matching criteria with respect to geometric constraint and variation generated under mutation. We find that tag-matching criteria can influence the rate of adaptive evolution and the quality of evolved solutions. Better understanding of the geometric, variational, and evolutionary properties of tag-matching criteria will facilitate more effective incorporation of tag matching into genetic programming and artificial life systems. By showing that tag-matching criteria influence connectivity patterns and evolutionary dynamics, our findings also raise fundamental questions about the properties of tag-matching systems in nature.

BibTeX
⎘ copy to clipboard
@misc{moreno2021matchmaker,
  doi = {10.48550/ARXIV.2108.04507},
  url = {https://arxiv.org/abs/2108.04507},
  author = {Moreno, Matthew Andres and Lalejini, Alexander and Ofria, Charles},
  keywords = {Neural and Evolutionary Computing (cs.NE), FOS: Computer and information sciences, FOS: Computer and information sciences},
  title = {Matchmaker, Matchmaker, Make Me a Match: Geometric, Variational, and Evolutionary Implications of Criteria for Tag Affinity},
  publisher = {arXiv},
  year = {2021},
  copyright = {arXiv.org perpetual, non-exclusive license}
}
Citation
⎘ copy to clipboard

Moreno, M. A., Lalejini, A., & Ofria, C. (2021). Matchmaker, Matchmaker, Make Me a Match: Geometric, Variational, and Evolutionary Implications of Criteria for Tag Affinity. arXiv preprint arXiv:2108.04507.

Supporting Materials

2021 Tag-based regulation of modules in genetic programming improves context-dependent problem solving
Genetic Programming and Evolvable Machines
Download
View at Publisher
Authors
Date July 7th, 2021
DOI 10.1007/s10710-021-09406-8
Venue Genetic Programming and Evolvable Machines
Abstract

We introduce and experimentally demonstrate the utility of tag-based genetic regulation, a new genetic programming (GP) technique that allows programs to dynamically adjust which code modules to express. Tags are evolvable labels that provide a flexible mechanism for referencing code modules. Tag-based genetic regulation extends existing tag-based naming schemes to allow programs to “promote” and “repress” code modules in order to alter expression patterns. This extension allows evolution to structure a program as a gene regulatory network where modules are regulated based on instruction executions. We demonstrate the functionality of tag-based regulation on a range of program synthesis problems. We find that tag-based regulation improves problem-solving performance on context-dependent problems; that is, problems where programs must adjust how they respond to current inputs based on prior inputs. Indeed, the system could not evolve solutions to some context-dependent problems until regulation was added. Our implementation of tag-based genetic regulation is not universally beneficial, however. We identify scenarios where the correct response to a particular input never changes, rendering tag-based regulation an unneeded functionality that can sometimes impede adaptive evolution. Tag-based genetic regulation broadens our repertoire of techniques for evolving more dynamic genetic programs and can easily be incorporated into existing tag-enabled GP systems.

BibTeX
⎘ copy to clipboard
@article{lalejini2021tag,
  title = {Tag-based regulation of modules in genetic programming improves context-dependent problem solving},
  copyright = {All rights reserved},
  issn = {1389-2576, 1573-7632},
  url = {https://link.springer.com/10.1007/s10710-021-09406-8},
  doi = {10.1007/s10710-021-09406-8},
  language = {en},
  urldate = {2021-07-10},
  journal = {Genetic Programming and Evolvable Machines},
  volume = {22},
  number = {3},
  pages = {325--355},
  author = {Lalejini, Alexander and Moreno, Matthew Andres and Ofria, Charles},
  month = jul,
  year = {2021},
}
Citation
⎘ copy to clipboard

Lalejini, A., Moreno, M.A. & Ofria, C. Tag-based regulation of modules in genetic programming improves context-dependent problem solving. Genet Program Evolvable Mach 22, 325–355 (2021). https://doi.org/10.1007/s10710-021-09406-8

Supporting Materials

Project: Organizing a Hierarchical Tableau of Evolvability Concepts

illustration of selection for evolvability via modularly-varying fitness function Illustration of selection for evolvability via modularly-varying fitness function.

Biological organisms exhibit spectacular adaptation to their environments. However, another marvel of biology lurks behind the adaptive traits that organisms exhibit over the course of their lifespans: it is hypothesized that biological organisms also exhibit adaptation to the evolutionary process itself. Although a great deal of fruitful work has explored this idea of “evolvability,” disparate and orthogonal definitions and explanations have splintered in the literature.

This work pursues a review of evolvability theory and a unifying organization of theory, illustrated with examples and experiments from biology and evolutionary computing. It is hoped that a more nuanced and comprehensive understanding of this aspect of evolution will translate to more powerful digital evolution techniques.

Publications & Software
2017 Evolvability: What Is It and How Do We Get It?
Otis C. Chapman Honors Program Thesis
Download
View at Publisher
Authors
Date April 17th, 2017
Venue Otis C. Chapman Honors Program Thesis
Abstract

Biological organisms exhibit spectacular adaptation to their environments. However, another marvel of biology lurks behind the adaptive traits that organisms exhibit over the course of their lifespans: it is hypothesized that biological organisms also exhibit adaptation to the evolutionary process itself. That is, biological organisms are thought to possess traits that facilitate evolution. The term evolvability was coined to describe this type of adaptation. The question of evolvability has special practical relevance to computer science researchers engaged in longstanding efforts to harness evolution as an algorithm for automated design. It is hoped that a more nuanced understanding of biological evolution will translate to more powerful digital evolution techniques. This thesis will present a theoretical overview of evolvability, illustrated with examples from biology and evolutionary computing, and discuss computational experiments probing the relationship between environmental influence on the phenotype and evolvability.

BibTeX
⎘ copy to clipboard
@thesis{moreno2017evolvability,
  author={Moreno, Matthew Andres},
  title={Evolvability: What Is It and How Do We Get It?},
  school={University of Puget Sound},
  type={Bachelor's Thesis},
  url={http://soundideas.pugetsound.edu/honors_program_theses/22/},
  year={2017}
}
Citation
⎘ copy to clipboard

Moreno, Matthew Andres, “Evolvability: What Is It and How Do We Get It?” (2017). Honors Program Theses. 22. https://soundideas.pugetsound.edu/honors_program_theses/22

Supporting Materials

Project: Developing Methodology for Automatic Generation of Evolvable Genotype-Phenotype Maps

visualization of rugged fitness landscape suited to denoising autoencoder genotype-phenotype map. Visualization of rugged fitness landscape suited to denoising autoencoder genotype-phenotype map.

In biology, phenotype refers to an organism’s observable characteristics (morphological, behavioral, physiological, chemical, etc.). Importantly, the phenotype governs an organism’s ability to survive and reproduce — its fitness. Likewise, genotype refers to the heritable information that shapes an organism’s phenotype. This is typically equated with an organism’s DNA content.

The genotype-phenotype map describes the relationship between an organism’s genotype and its phenotype. In biology, this concept is tightly entwined with the process of development, the dynamics through which an organism’s genotype and environment interact to determine its phenotype. As might be expected, the genotype-phenotype map profoundly influences the character of phenotypic variation that is produced under genetic mutation.

Evolutionary search cannot succeed without the production of heritable, viable phenotypic variation, a trait referred to as evolvability. How to engineer genotype-phenotype maps to promote evolvability in digital evolution systems remains a crucial open question.

This work introduces the use of bottlenecked and denoising autoencoders to automatically generate evolvable genotype-phenotype mappings. Autoencoders are algorithms that learn to regurgitate a particular type of input, usually implemented using deep learning. They allow for enhancement of evolvability due to their ability to repair poor-quality solutions and compactly represent the space of high-quality solutions.

Publications & Software
2018 Learning an Evolvable Genotype-Phenotype Mapping
The Genetic and Evolutionary Computation Conference
Download
View at Publisher
Authors
Date July 15th, 2018
DOI 10.1145/3205455.3205597
Venue The Genetic and Evolutionary Computation Conference
Abstract

We present AutoMap, a pair of methods for automatic generation of evolvable genotype-phenotype mappings. Both use an artificial neural network autoencoder trained on phenotypes harvested from fitness peaks as the basis for a genotype-phenotype mapping. In the first, the decoder segment of a bottlenecked autoencoder serves as the genotype-phenotype mapping. In the second, a denoising autoencoder serves as the genotype-phenotype mapping. Automatic generation of evolvable genotype-phenotype mappings are demonstrated on the n-legged table problem, a toy problem that defines a simple rugged fitness landscape, and the Scrabble string problem, a more complicated problem that serves as a rough model for linear genetic programming. For both problems, the automatically generated genotype-phenotype mappings are found to enhance evolvability.

BibTeX
⎘ copy to clipboard
@inproceedings{moreno2018learning,
  author = {Moreno, Matthew Andres and Banzhaf, Wolfgang and Ofria, Charles},
  title = {Learning an Evolvable Genotype-Phenotype Mapping},
  year = {2018},
  isbn = {9781450356183},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  url = {https://doi.org/10.1145/3205455.3205597},
  doi = {10.1145/3205455.3205597},
  booktitle = {Proceedings of the Genetic and Evolutionary Computation Conference},
  pages = {983–990},
  numpages = {8},
  keywords = {deep learning, indirect encodings, evolvability, genetic algorithms, adaptive representations, genotype-phenotype map},
  location = {Kyoto, Japan},
  series = {GECCO '18}
}
Citation
⎘ copy to clipboard

Matthew Andres Moreno, Wolfgang Banzhaf, and Charles Ofria. 2018. Learning an evolvable genotype-phenotype mapping. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO ‘18). Association for Computing Machinery, New York, NY, USA, 983–990. https://doi.org/10.1145/3205455.3205597

Supporting Materials