Evolution of simulated hypotheses about sentience

A genetic algorithm that searches the space of metaphysical theories instead of testing only the intuitive ones.

Author
Manu Herrán
Code
gaiabasic-projects/evolving-theories
Status
Concept and simulation design
Started at
Sentience Research
Open draft. This project is being developed in the open. The text is incomplete and the code uses the planned GaiaBasic API, so it will change. Comments and collaboration are welcome on GitHub.

The question

We usually test the theories of sentience that are most intuitive or most popular. That is like looking for a lost object only in the places where it is most likely to be. It is a good start, but at some point you have to search the house systematically.

This project searches the space of metaphysical hypotheses systematically, as a multidimensional search or a genetic algorithm, and judges theories by their coherence and by how useful they are for reducing suffering.

How the search works

  • Each agent is a theory: a point on the A–I theory map plus numeric parameters.
  • Its fitness combines internal coherence and agreement with what we observe in the real world. Defining this fitness function is the hardest part of the project.
  • For example: 100 random theories are created. About half are discarded as absurd. The rest are scored from 0 to 100; at first none may score above 12. The survivors reproduce, mutate and are evaluated again, for thousands of cycles.

A toy world

A simple test world has four material particles (A, T, C and G) and one "experiential" particle that only binds to three A's in a row. This is an assumption of the model, not a claim that such particles exist. With these pieces, several theories can be built:

ConfigurationHow it works
Emergentist monismExperience appears when the AAA pattern forms; it may or may not affect matter.
Immersionist monismExperiences exist already; an AAA pattern works like a radio receiver that tunes in to them.
DualismTwo kinds of particle, material and experiential, that interact.

Some configurations turn out to reconcile theories that seemed incompatible, which is one of the reasons to run the search.

Design in GaiaBasic

import gaiabasic as gb

search = gb.TheorySearch(
    space=gb.theory.MAP_AXES,          # axes A..I and their options
    world=gb.presets.ParticleSoup("ATCG", experiential="psi", binds_to="AAA"),
    population=100,
    fitness=gb.fitness.coherence + gb.fitness.empirical_fit,
)
best = search.evolve(generations=10_000)
for theory in best[:5]:
    print(theory.map_code(), theory.score)

Status

Concept and simulation design. Next step: implement the required GaiaBasic components and publish the code and results here.

Related: Short version in Examples · Concepts · Documentation.