Skip to content
Back to the collection

Computational Life: How Well-formed, Self-replicating Programs Emerge from Simple Interaction

Blaise Agüera y Arcas, Jyrki Alakuijala, James Evans

Show all 8 authors

Ben Laurie, Alexander Mordvintsev, Eyvind Niklasson, Ettore Randazzo, Luca Versari

2024 · arXiv

Read the paper
HN score
1
Mentions
11
Readers
7
Months
7
What’s in a score?

From the abstract

The fields of Origin of Life and Artificial Life both question what life is and how it emerges from a distinct set of "pre-life" dynamics. One common feature of most substrates where life emerges is a marked shift in dynamics when self-replication appears. While there are some hypotheses regarding how self-replicators arose in nature, we know very little about the general dynamics, computational principles, and necessary conditions for self-replicators to emerge. This is especially true on "computational substrates" where interactions involve logical, mathematical, or programming rules. In this paper we take a step towards understanding how self-replicators arise by studying several computational substrates based on various simple programming languages and machine instruction sets. We show that when random, non self-replicating programs are placed in an environment lacking any explicit fitness landscape, self-replicators tend to arise. We demonstrate how this occurs due to random interactions and self-modification, and can happen with and without background random mutations. We also show how increasingly complex dynamics continue to emerge following the rise of self-replicators. Finally, we show a counterexample of a minimalistic programming language where self-replicators are possible, but so far have not been observed to arise.

Metadata: arXiv. Abstracts retain their original authors’ rights.

In the conversation

Original HN comments, with labels from simple text rules. A label describes the whole comment and may miss context or irony. Read the discussion to make up your own mind. About the labels

11 selected excerpts · 11 total mentions

bob1029
Recommendation · rule
Brainfuck is largely a joke for most developers, but in certain kinds of research it is taken very seriously due to its ease of implementation. I think this is probably the most interesting paper involving it: https://arxiv.org/abs/2406.19108 > In this paper we take a step towards understanding how self-replicators arise by studying several computational substrates based on various simple programming languages and machine instruction sets.
a2x
Neutral mention · rule
Computational Life Reactor (CLR) is an interactive browser implementation by Alex Borger of the computational-life experiments studied by Agüera y Arcas and collaborators https://arxiv.org/abs/2406.19108. Random byte tapes are repeatedly paired and executed in the BFF language, allowing self-replicating programs to emerge without a fitness function or explicit selection process. CLR provides live population visualizations, frequency and compression measurements, and a step-by-step execution sampler. The simulation runs locally using WebAssembly and parallel browser workers. A great 12 minutes introduction into the topic featuring CLR is provided by Johannes Martin (Number Cruncher) on YouTube https://youtu.be/w9_fWcNeITg
lioeters
Neutral mention · rule
There have been experiments in "digital primordial soup", where primitive programs are cultivated under conditions with evolutionary pressure. Computational Substrates: How Well-formed, Self-replicating Programs Emerge from Simple Interaction - https://arxiv.org/abs/2406.19108 Brainfuck, Forth, Subleq, and most recently Z80 assembly programs with mutations, interactions, and self-modification. Z80 has an LDIR instruction that copies a block of data from one location in memory to another, which allows the "organisms" to reach/discover reproduction quicker and more reliably in repeated experiments. As soon as that happens, it inevitably takes over the "world". Hm, sounds more like "Lord of the Flies" than Rings.
markisus
Neutral mention · rule
This is every cool research. Do you have any idea why the authors chose Z80 as the program language? I have seen other studies in the same spirit that use simpler toy languages like Brainfuck (https://arxiv.org/abs/2406.19108) and I wonder if you could get higher execution speed if you didn't have to execute so much emulator code. The programs/genomes are extremely tiny. I would be very interested to see what kind of hardware is needed to scale this approach up. How long until we can feed in giant corpuses of text and evolve these little organisms to predict the next letter?
Out_of_Characte
Neutral mention · rule
Synthetic and generated data might not be garbage. Consider random chess positions. Those are generated,yet there's an engine out there that has objectively a higher chance of winning from that position. There was also a paper on persistent computer programs after running random data iteratively over millions of cycles. This doesn't even have a 'goal'. which by itself is very interesting because of how similar it feels to how organisms develop by the act of persisting after a few billion years. That is to say I largely agree with the premise that you can train and improve alot by absense of data. But if your original dataset is garbage, then training over and over might get limited by a hidden nash equilibrium that the algoritm can't escape due to lack of new information. Obligatory Anton petrov: https://www.youtube.com/watch?v=L_IWVZPmc-E Paper: https://arxiv.org/pdf/2406.19108
bob1029
Neutral mention · rule
See also: https://arxiv.org/abs/2406.19108 > We show that when random, non self-replicating programs are placed in an environment lacking any explicit fitness landscape, self-replicators tend to arise. We demonstrate how this occurs due to random interactions and self-modification, and can happen with and without background random mutations. We also show how increasingly complex dynamics continue to emerge following the rise of self-replicators.
bob1029
Neutral mention · rule
This paper? https://arxiv.org/abs/2406.19108 I've read it many times. It introduced me to the idea of using self-modifying programs. I've built several prototypes that use their exact instruction set, but I haven't found a way to guide the evolution in a desired direction yet. The self-modifying aspect can be quite destructive to the genome.
bob1029
Neutral mention · rule
> The advent of large language models have made this type of content relatively easy to churn out on demand, and the majority of the review articles we receive are little more than annotated bibliographies, with no substantial discussion of open research issues. I have to agree with their justification. Since "Attention Is All You Need" (2017) I have seen maybe four papers with similar impact in the AI/ML space. The signal to noise ratio is really awful. If I had to pick a semi-related paper published since 2020 that I actually found interesting, it would have to be this one: https://arxiv.org/abs/2406.19108 I cannot think of a close second right now. All of the machine…
Read the full comment
learning papers are pure slop to me now. The last one I looked at had an abstract that was so long it put me to sleep. Many of these papers aren't attempting basic decorum anymore. Mandatory peer review would fix a lot of this. I don't think it is acceptable for the staff at arXiv to have to endure a Sisyphean mountain of LLM shit. They definitely need to push back.
bob1029
Neutral mention · rule
This sounds like something more up the alley of linear genetic programming. There are some very interesting experiments out there that utilize UTMs (BrainFuck, Forth, et. al.) [0,1,2]. I've personally had some mild success getting these UTM variants to output their own children in a meta programming arrangement. The base program only has access to the valid instruction set of ~12 instructions per byte, while the task program has access to the full range of instructions and data per byte (256). By only training the base program, we reduce the search space by a very substantial factor. I think this would be similar to the idea of a self-hosted compiler, etc. I don't think…
Read the full comment
there would be too much of a stretch to give it access to x86 instructions and a full VM once a certain amount of bootstrapping has been achieved. [0]: https://arxiv.org/abs/2406.19108 [1]: https://github.com/kurtjd/brainfuck-evolved [2]: https://news.ycombinator.com/item?id=36120286

Keep following the thread.

More in Programming languages

More from the same topics.

1994arXiv

On proof and progress in mathematics

William P. Thurston

In response to Jaffe and Quinn [math.HO/9307227], the author discusses forms of progress in mathematics that are not captured by formal proofs of theorems, especially in his own work in the theory of foliations and geometrization of 3-manifolds and dynamical systems.

29 mentions21 months
9HN score
2012arXiv

Geometric Algebra

Eric Chisolm

This is an introduction to geometric algebra, an alternative to traditional vector algebra that expands on it in two ways: 1.

11 mentions10 months
3HN score