La pregunta
Normalmente ponemos a prueba las teorías de la sintiencia más intuitivas o más populares. Es como buscar un objeto perdido solo en los lugares donde es más probable que esté. Es un buen comienzo, pero en algún momento hay que registrar la casa de forma sistemática.
Este proyecto explora de forma sistemática el espacio de las hipótesis metafísicas, como una búsqueda multidimensional o un algoritmo genético, y juzga las teorías por su coherencia y por su utilidad para reducir el sufrimiento.
Cómo funciona la búsqueda
- Cada agente es una teoría: un punto del mapa de teorías A–I más unos parámetros numéricos.
- Su aptitud combina la coherencia interna y la concordancia con lo que observamos en el mundo real. Definir esta función de aptitud es la parte más difícil del proyecto.
- Por ejemplo: se crean 100 teorías aleatorias. Aproximadamente la mitad se descartan por absurdas. Las demás se puntúan de 0 a 100; al principio puede que ninguna supere el 12. Las supervivientes se reproducen, mutan y se evalúan de nuevo, durante miles de ciclos.
Un mundo de juguete
Un mundo de prueba sencillo tiene cuatro partículas materiales (A, T, C y G) y una partícula «experiencial» que solo se une a tres A seguidas. Es una suposición del modelo, no una afirmación de que tales partículas existan. Con estas piezas se pueden construir varias teorías:
| Configuración | Cómo funciona |
|---|---|
| Monismo emergentista | La experiencia aparece cuando se forma el patrón AAA; puede afectar o no a la materia. |
| Monismo inmersionista | Las experiencias ya existen; un patrón AAA funciona como un receptor de radio que sintoniza con ellas. |
| Dualismo | Dos tipos de partícula, material y experiencial, que interactúan. |
Algunas configuraciones resultan reconciliar teorías que parecían incompatibles, y esa es una de las razones para ejecutar la búsqueda.
Diseño en GaiaBasic
import gaiabasic as gb
search = gb.TheorySearch(
space=gb.theory.MAP_AXES, # ejes A..I y sus opciones
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)
Estado
Concepto y diseño de la simulación. Siguiente paso: implementar los componentes necesarios de GaiaBasic y publicar aquí el código y los resultados.
Relacionado: Versión breve en Ejemplos · Conceptos · Documentación.