¿Puede la programación "mutar"?

¿Puede la programación de nanobots simples cambiar aleatoriamente para crear un efecto similar a las mutaciones en el ADN? Esta pregunta tiene una idea muy similar a la que yo quería, aunque en este caso los nanobots son capaces de mejorarse a sí mismos: Nanobots Ecosystem, ¿es posible?

Para mi historia, me pregunto qué podría causar que el proceso de autorreplicación de algunos de los nanobots salga mal y, al igual que con la evolución, algunos de estos cambios no serán beneficiosos, pero para otros lo serán y podrían conducir a robots cada vez más complejos, dado tiempo suficiente.

¿Es posible que la programación para la autorreplicación pueda crear aleatoriamente resultados diferentes?

Un poco, si sus bots tienen memoria "defectuosa", puede acumular errores y pasarlos durante la autorreplicación.
Sugiero "evolución simulada" como término de búsqueda. Parta también del trabajo de Lawrence J. Fogel en la década de 1960 y busque sus descendientes.
Los algoritmos genéticos existen y en realidad se utilizan. ¿Quién puede decir que los nanobots en cuestión no utilizan tales técnicas?
Gracias a todos por las sugerencias :)
@AlexP también hay programación genética para acompañar a los GA. Mientras que los GA desarrollan una solución para que coincida con un criterio, los GP desarrollan un algoritmo que producirá una solución determinada.
Como no hay forma de evitar errores durante la copia (incluso la maquinaria de suma de comprobación puede fallar), eventualmente obtendrá mutaciones. Este es en realidad un problema importante con la maquinaria autorreplicante. Golpes de rayos cósmicos, productos químicos, descomposición radiactiva de un átomo aquí y allá, y puede haber problemas si un nanobot autorreplicante sigue funcionando.
Es importante reconocer que las células vivas son nanobots y muy complejos. Hay un tropo poco realista de nanobots creados por humanos que son "robots básicamente normales, pero reducidos" que tienen placas de circuito diminutas y manipulan moléculas individuales usando brazos con efectores finales de propósito general. A escala molecular, es muy ineficiente tratar de manipular moléculas individuales como esta, en lugar de hacer lo que hacen las células y bombear muchos componentes que se favorecen energéticamente para combinarse en el producto de reacción deseado.
Second Variety de Philip K. Dick , y la película basada en esa historia, Screamers, se basan en esa idea, aunque las máquinas en cuestión no están en la escala nanométrica.
El libro "La era del diamante" de Neil Stephenson cubre extensamente la nanotecnología generalizada, así como un poco sobre la intersección de la nanotecnología y los algoritmos genéticos. En general, es increíble y el final es "meh", como muchos de sus libros. Gran escenario, grandes personajes, gran trama, final meh.
Solo pueden mutar si los programa para mutar. No lo hará por sí solo. Todos los seres vivos hoy en día están programados para mutar un poco cada vez que se reproducen. Si espera que algo complejo mute por sí solo sin ayuda, tendrá que esperar mucho tiempo.
Ciertamente, como un programa se "mantiene" repetidamente durante un período de tiempo, puede mutar.
Tal vez mire también Core War para ver cómo un programa en un entorno simplificado puede cambiar a otros y posiblemente a sí mismo.
@AaronRotenberg Es importante reconocer que las células vivas no son máquinas. "La complejidad orgánica de los mecanismos corporales es cualitativamente diferente de las complejidades mecánicas de las máquinas [énfasis añadido]". evmed.asu.edu/blog/cuerpo-no-máquina
Consulte también phys.org/news/2016-01-machines.html sobre las diferencias fundamentales entre los seres vivos y las máquinas.
@ TylerS.Loeper Ciertamente pueden mutar incluso si no están programados para mutar. No tiene por qué ser intencional. Cada vez que el proceso puede funcionar mal, las mutaciones son posibles. Las mutaciones no son más que una replicación defectuosa. Si se están replicando en un entorno hostil, eso sucederá.
Lea el blog de J.Pitrat : falleció en octubre de 1919. Consulte también refpersys.org

Respuestas (14)

Todo aquel que haya estudiado informática en general, e inteligencia artificial en particular, conocerá un tipo de algoritmo llamado

Algoritmo genético

En informática e investigación de operaciones, un algoritmo genético (GA) es una metaheurística inspirada en el proceso de selección natural que pertenece a la clase más amplia de algoritmos evolutivos (EA). Los algoritmos genéticos se utilizan comúnmente para generar soluciones de alta calidad para problemas de optimización y búsqueda basándose en operadores inspirados en la biología, como la mutación, el cruce y la selección. 1 John Holland introdujo los algoritmos genéticos en 1960 basados ​​en el concepto de la teoría de la evolución de Darwin; su alumno David E. Goldberg amplió aún más GA en 1989.

Esto apropia la genética y la evolución al máximo. Mire los términos usados ​​en este campo.

En un algoritmo genético, una población de soluciones candidatas (llamadas individuos, criaturas o fenotipos) a un problema de optimización evoluciona hacia mejores soluciones. Cada solución candidata tiene un conjunto de propiedades (sus cromosomas o genotipo) que se pueden mutar y alterar; tradicionalmente, las soluciones se representan en binario como cadenas de 0 y 1, pero también son posibles otras codificaciones.

La evolución generalmente comienza a partir de una población de individuos generados aleatoriamente y es un proceso iterativo, con la población en cada iteración llamada generación. En cada generación se evalúa la aptitud de cada individuo de la población; la aptitud suele ser el valor de la función objetivo en el problema de optimización que se está resolviendo. Los individuos más aptos se seleccionan estocásticamente de la población actual y el genoma de cada individuo se modifica (se recombina y posiblemente se muta al azar) para formar una nueva generación. La nueva generación de soluciones candidatas se utiliza luego en la siguiente iteración del algoritmo. Comúnmente, el algoritmo termina cuando se ha producido un número máximo de generaciones o se ha alcanzado un nivel de aptitud satisfactorio para la población.

Un algoritmo genético típico requiere:

  • una representación genética del dominio de la solución,
  • una función de aptitud para evaluar el dominio de la solución.

Entonces, si sus nanobots se diseñaron con esto en mente, es posible que sigan evolucionando por su cuenta.

Si profundizas en los algoritmos genéticos, verás que aportan soluciones raras a problemas comunes... Que suelen ser las soluciones más eficientes, y que a los humanos difícilmente se nos ocurrirían por nuestra cuenta. Por ejemplo, esta antena:

Antena evolucionada

Aparece en el artículo de wiki llamado Antena evolucionada y la descripción de la imagen dice esto:

La antena de la nave espacial ST5 de la NASA de 2006. Esta forma complicada fue encontrada por un programa de diseño de computadora evolutivo para crear el mejor patrón de radiación.

Entonces, si sus nanobots están programados con algoritmos genéticos, sus formas pueden ser irreconocibles de generación en generación. Si la supervivencia es la función de fitness, será muy difícil lidiar con ellos.

El problema aquí es que mientras los algoritmos genéticos usan la mutación para resolver problemas, los programas que ejecutan esos algoritmos no cambian. Por supuesto, es posible tener un código automodificable, por lo que los diseñadores podrían crearlo en: en.wikipedia.org/wiki/Self-modifying_code
@jamesqf No creo que sea un problema. Los organismos biológicos pueden expresar cambios masivos en forma/tamaño/comportamiento, etc. por mutación del código genético, sin alterar los ribosomas que controlan la conversión del código genético en proteínas. Por lo tanto, puede considerar los programas subyacentes que ejecutan los algoritmos genéticos como solo 'firmware' que expresa de manera similar los datos del algoritmo genético como cambios en el diseño/comportamiento/etc. de los nanobots.
@Penguino: Realmente quise decir que el problema era usar algoritmos genéticos como ejemplo. Si está utilizando algo así en la práctica, es decir, el código que ejecuta los nanobots, la mayor parte de la parte genética sería proporcionada por el medio ambiente.
Los algoritmos genéticos aún pueden dar resultados muy sorprendentes, potencialmente mucho más allá de los límites esperados del experimento, especialmente en sistemas más complejos con entropía del mundo real. Me parece recordar haber leído en alguna parte sobre circuitos en evolución que no funcionaron cuando se transfirieron a un nuevo dispositivo; resulta que el algoritmo logró explotar un defecto de fabricación en el FPGA que usaron para el experimento, que no estaba presente en otras unidades del mismo tipo.
El diseño evolutivo es muy diferente a la mutación de código . El ejemplo que ha mostrado es un algoritmo fijo que puede realizar una optimización iterativa. Donde esto se vuelve interesante no es en estas aplicaciones, sino cuando el código se modifica iterativamente . La parte autorreferencial de esto es un aspecto crítico.
@SebastianLenartowicz Vea también las muchas variaciones de este tema: gwern.net/Tanks
@J...: Sí, eso es lo que estaba tratando de decir, pero lo dijiste mucho mejor :-)
@J El ejemplo dado sí, porque está generando hardware. Pero puede aplicar el algoritmo genético en el software, reescribiendo efectivamente el software. El algoritmo genético en sí mismo NO NECESITA EVOLUCIONAR. Al igual que nuestra propia ADN polimerasa (la enzima que copia el ADN) no ha evolucionado mucho en miles de millones de años, eso no significa que no hayamos evolucionado más allá de ser organismos unicelulares.
@jamesqf, no veo el problema. Tienes que empezar con un algoritmo genético, o cualquier cosa que funcione en su lugar, para imitar la selección natural. En algún momento, las máquinas se vuelven lo suficientemente inteligentes como para comenzar a modificar su propio código y crear un mejor algoritmo genético que permita una evolución más rápida, o deciden que ya no lo necesitan y comienzan a escribir su propio código cuando sienten que algo debe hacerlo. cambiar. Tu respuesta es: las máquinas se reescriben a sí mismas, porque primero evolucionaron para ser lo suficientemente inteligentes como para hacerlo. Pero esa evolución inicial necesita reglas, porque la mutación aleatoria del código no es útil.

Sí, si están diseñados para hacer esto. El progreso evolutivo es el punto central de los algoritmos genéticos. Sus nanobots pueden estar diseñados como una instancia física de este tipo de cosas.

Hay un proyecto de la vida real llamado subCULTron que está construyendo un ecosistema de robots submarinos con la intención de que los robots en diferentes áreas desarrollen sus propias culturas en respuesta al medio ambiente. Su zona de prueba está en la laguna de Venecia.

Muy bueno, no conocía este proyecto.
¿Por qué suena como la configuración de una película de terror de ciencia ficción?
porque es básicamente la trama de una novela de Michael Crichton
@Ruadhan No sé si lo dijiste en broma, pero eso rima con Westworld de Michael Crichton (bueno... no es lo que escribió exactamente, sino lo que HBO agregó en el programa de televisión).
Yo mismo estaba pensando en Prey

No sé cuántos años tienes y si puedes relacionarte con lo que voy a contarte, pero tengo la edad suficiente para haber visto el crecimiento de Internet y la expansión de las computadoras.

En la época de los disquetes (e incluso antes con los discos de 8 pulgadas tamaño "pizza") era común que apareciera algún error en el disco durante el proceso de escritura o mientras se almacenaba el disco, corrompiendo el contenido de los archivos allí almacenados. .

Esos errores son las mutaciones que está buscando: la mayoría de ellos harán que el archivo quede inutilizable, pero de vez en cuando la mutación tendrá sentido.

Recuerdo los disquetes, pero los discos del tamaño de una pizza son nuevos para mí jajaja, tiene sentido, por lo que la primera ronda de bots defectuosos se verá igual pero sus réplicas serán mutadas. gracias.
Ah, espera, sé que los vinilos no habían pensado en usarlos para otra cosa que no fuera música.
Quiero decir... los algoritmos modernos de corrección de errores reducen la posibilidad de que esto suceda a casi cero. Pero si tienes trillones de nanobots haciendo lo suyo, entonces cerca de cero podría ser suficiente.
Recuerdo platos de disco duro de IBM de 24 pulgadas, geniales para servir pizza. ¡Huele, soy viejo!
los nanobots son pequeños (se necesita una fuente), por lo que tal vez no haya suficiente espacio para la corrección de errores adecuada
La cuestión es que las computadoras están diseñadas para detectar y corregir tales errores (ver ECC RAM). O detectarlos y tirarlos o simplemente detenerlos en un estado defectuoso. La copia de ADN tiene alguna detección y corrección de errores, pero obviamente no es perfecta. Tendría que hacer lo contrario de lo que hacen la mayoría de los diseñadores: deshacerse de la verificación de errores y aceptar los errores, luego dejar que se propaguen a la próxima generación.
@Omni-King: Aparentemente, las pizzas han crecido desde esos días, mientras que los discos se han encogido y, en el caso de los disquetes, han desaparecido.
@Omni-King: Si bien teóricamente los discos de vinilo de audio podrían usarse para almacenar datos digitales, estoy bastante seguro de que L.Dutch en realidad está hablando de disquetes magnéticos de plástico flexible de 8 pulgadas .
@DavidCary, Vaya, esas cosas son enormes jajaja, somos como dioses con nuestros pequeños dispositivos de memoria en estos días.
Excepto que producir una característica útil a partir de ese evento aleatorio y muy ocasional puede llevar más tiempo que la vida restante del universo (si es que es mortal). Siempre tiene un filtro presente: el medio ambiente, pero no puede depender solo de la corrupción de datos para alentar el cambio de comportamiento.

Sí. Los cambios de bits aleatorios a menudo ocurren en sistemas informáticos reales, incluso hoy en día. Por lo general, son malos.

En toda la memoria de la computadora siempre hay un porcentaje de probabilidad de que cada celda de memoria cambie de 0 a 1 o de 1 a 0. a
) La probabilidad de que ocurran cambios de bit relacionados con la memoria aumenta exponencialmente con la temperatura
b) La probabilidad de un cambio de bit aumenta con exposición a la radiación. Incluso en la tierra siempre hay algo de radiación. En el espacio mucho más. De hecho, es tan común en entornos espaciales que la lógica digital a menudo se diseña de manera redundante para detectar y (si es posible) corregir esos errores.

Las posibilidades de que largas cadenas de bits se conviertan aleatoriamente en secuencias útiles son astronómicamente pequeñas, así que no cuente con que eso suceda. Pero si el código está diseñado para que se divida en un conjunto de funciones útiles que se llaman entre sí, entonces puede obtener un comportamiento interesante incluso con un cambio de bit.

Por ejemplo, un cambio de bit en una instrucción de salto podría hacer que se ejecuten grandes secuencias de código útil en un punto diferente al previsto originalmente.

Aquí hay un ejemplo de una secuencia de códigos de máquina que conduce a una mutación beneficiosa plausible.
El nano-bot contiene un bucle de código principal que se encuentra en las líneas 1-500.
En la línea 501 hay una rutina (en la dirección de memoria 501) que busca daños e inicia las reparaciones.
Suponga que normalmente se llama a la rutina de reparación una vez al día (que puede haber estado bien).
Ahora supongamos que los nanobots ahora están expuestos continuamente a la radiación, la mayoría de ellos experimentan muchos cambios de bits y muchos dejan de funcionar.
Supongamos que la radiación hace que el cuarto bit en la línea 500 cambie de 0 a 1.
Entonces, ahora, en lugar de volver al inicio del bucle principal, el código sigue yendo a la línea 501.
Esto haría que la rutina de comprobación de errores ejecutara cada iteración del bucle principal en lugar de una vez al día.
Como resultado, este nanobot puede sobrevivir a la radiación.

MAIN_LOOP:
1: 0011 0101 //algunas cosas
2: 1111 0001 //algunas cosas
3: 1101 0001 //algunas cosas
4: 1111 0111 //algunas cosas
...
500: 1110 0000 //instrucción que vuelve a la pantalla principal bucle

PERFORM_INTERNAL_REPAIRS:
501: 1100 1001
502: 1110 1011
...
600: 1110 0000 //instrucción que vuelve al bucle principal

Gracias, esta es una buena descripción de cómo podrían cambiar sin ningún software de aprendizaje.
El código de notas también puede mutar de otra manera que lo hacen los códigos genéticos, al cortarse y reorganizarse durante la copia. Que tiende a ser responsable de las mutaciones más "interesantes".
Las mutaciones no son suficientes para la evolución. Ni siquiera son la forma más eficiente de producir variación: la recombinación (entre individuos/códigos) sí lo es. Para desencadenar la evolución, es necesario imponer la competencia.

Como el software moderno utilizaría la verificación de errores, diría que no se produciría una mutación aleatoria por sí sola. Un solo bit volteado debido a cualquier razón podría causar resultados fatales o básicamente no hacer nada en una máquina/software. Las medidas "físicas" como la memoria ECC y las soluciones de software como las sumas de verificación son comunes.

Veo dos opciones aquí:

  1. Están diseñados para evolucionar.

No soy un experto en tecnología de IA, por lo que ignoro las limitaciones de la IA, pero como ni siquiera estamos cerca de crear nanobots en evolución con tecnología moderna y la tecnología de IA está en su infancia, no sería demasiado exagerado decir simplemente eso. sus nanobots utilizan IA para determinar nuevos caminos 'evolutivos'.

  1. Los nanobots tienen que luchar contra otros nanobots

En una guerra total contra otros nanobots, podría imaginar que se acumularían algunos errores. Los nanobots probablemente tendrían razones para cambiar su estrategia de combate a nivel físico (impulsándolos a cambiar), pero también se involucrarían a nivel de software tratando de piratearse entre sí. Con un límite de tiempo (las medidas de seguridad toman algún tiempo), un aluvión constante de enemigos físicos y de software que intentan utilizar cada debilidad y ciertos eventos aleatorios (radiación, campos magnéticos que cambian rápidamente, etc.), definitivamente pude ver a los nanobots experimentando un ADN como cambian con el tiempo.

Interesante idea sobre el software de piratería, estaba pensando en los bots que se alimentan de otros para obtener sus materiales y energía, pero este también es un resultado probable. gracias
1. They are designed to evolve.ver homoiconicidad "El código es información y la información es código" - esta es la razón por la que los primeros intentos de IA fuerte se llevaron a cabo en LISP. 2. Nanobots have to fight other nanobotsVer Guerra del Núcleo . Dios, ¿me envejecí o qué?
La piratería no es el único ataque a nivel de software. Un enfoque considerablemente más fácil para evolucionar es un ataque de denegación de servicio (DOS), en el que envía tanta información basura a una víctima que posiblemente no pueda procesarla toda, lo que hace que también se pierda la mayor parte de la información real. , información importante (como de aliados u otras partes de sí mismo conectadas a través de la misma infraestructura de red). Esto no solo paraliza su capacidad de comunicación, sino que también gasta una enorme cantidad de tiempo, energía y memoria tratando de interpretar los mensajes falsos.

Posible, si. Pero la probabilidad depende de varias condiciones. Y esas condiciones dependen de cómo se considere la cuestión de la evolución de los nanobots.

Específicamente tienes tres ángulos obvios para pensar en esto. Puede considerar que los nanobots individuales adquieran nuevas propiedades. Puede considerar la nube de nanobots adquiriendo nuevas propiedades emergentes como grupo. O puede considerar todo el entorno de los nanobots, que incluye toda la infraestructura de soporte e incluso los programadores humanos.

A nivel de nanobot , esto solo es posible si los nanobots fueron diseñados para adaptarse. La simple autorreplicación y la autorreparación no son suficientes. El método utilizado para codificar los nanobots debe tener la flexibilidad y la modularidad suficientes para habilitar realmente las nuevas propiedades potenciales.

Esto sería realmente posible. El ADN utilizado para codificar las células vivas nos da una plantilla que podemos usar. El primer factor importante es que el ADN es tolerante a errores a través de la redundancia. Esto permite que los errores se acumulen sin matar la celda hasta que eventualmente puedan interpretarse como algo funcional. El segundo factor es que el sistema debe tener la flexibilidad para interpretar basura aleatoria como programación válida, de lo contrario, el código emergente simplemente se ignorará o eliminará.

Esto es en realidad una posibilidad real. Nos permitiría replicar la adaptabilidad de las bacterias del mundo real con su capacidad de evolucionar e intercambiar los "módulos de código" por adaptaciones emergentes.

Todavía lo considero poco probable. Es más probable que tengamos miedo de la posibilidad de que alguien piratee las bacterias reales que queramos crear bacterias artificiales que puedan ser pirateadas por terroristas o espías. Por lo tanto, esperaría que la codificación de nanobots sea bastante estática, estrictamente validada y autenticada y diseñada para manejar errores mediante la reinstalación del código desde una copia válida.

En el nivel de "nube" esto parece más probable. Nos gustaría razonablemente que nuestros nanobots tuvieran cierta adaptabilidad al entorno cambiante y darles una adaptabilidad social emergente similar a la que tienen los insectos sociales sería una opción bastante razonable. Todavía podríamos establecer restricciones de seguridad estrictas a través de la codificación fija de los nanobots individuales, pero la capacidad de la nube como grupo para adaptar su cooperación nos ahorraría el esfuerzo de intentar predecir y codificar todos los casos raros.

Se podría argumentar con justicia que esto sería más seguro que un esquema de codificación más fijo que sería vulnerable a fallar de manera impredecible y potencialmente desastrosa cuando no se cumplen los parámetros de diseño que los desarrolladores esperaban.

Aun así, espero que la gente prefiera usar el enfoque tradicional de diseñar los nanobots para que fallen de manera segura cuando no se cumplen los parámetros de diseño.

A nivel de entorno, la evolución a través de la acumulación de errores aleatorios es algo que ya sucede. Llamar a los errores "características no deseadas" no es solo una broma. El comportamiento causado por un error de codificación es una característica del sistema tanto como las cosas que codificaste.

Es mucho menos probable que sea útil que el diseño real y, por lo general, simplemente se arregla. Pero ocasionalmente, el comportamiento es útil o lo suficientemente útil como para que se codifique una nueva característica basada en el error.

Esto es muy similar a cómo los errores acumulados pueden resultar en nuevas características en la evolución biológica.

Básicamente, este es solo un caso especial del bucle normal utilizado en la programación ágil. Y, de hecho, la programación ágil manejará los comentarios sobre las "características no deseadas" tan bien como maneja los comentarios inesperados sobre las características diseñadas.

Genial gracias. la evolución de la nube o colmena es especialmente interesante. esto podría ahorrar drásticamente tiempo para la evolución de robots complejos.

Otras personas han mencionado algoritmos genéticos, así que entraré en otro ejemplo similar y por qué los programas en evolución fueron tan útiles en la visión por computadora.

En el pasado, el servicio postal de EE. UU. quería comenzar a automatizar la clasificación del correo. Por supuesto, para hacerlo, debe poder hacer que las computadoras detecten números. Puede que no suene demasiado difícil, ciertamente mucho más fácil que detectar si una imagen tiene un gato o no, pero aún hay un problema: las personas escriben números de MUCHAS maneras diferentes.

Entonces, la gente de estadística/ciencia de la computadora abordó el problema con los algoritmos estándar del día: bosque aleatorio, regresión multinomial, etc. Tendrías que tener un 10% de precisión. Pero todos ellos todavía tenían un problema, tienes que tener a alguien que programe las variables que usas para hacer la conjetura. Entonces, había personas que proponían conceptos como 'cuántos bordes', 'hay una línea curva', etc. Esto realmente solo lo lleva hasta cierto punto debido al problema discutido anteriormente.

Los investigadores probaron muchos enfoques y finalmente se dieron cuenta de algo: ¿y si el algoritmo pudiera programar su propia variable? Y esta es la razón por la que las redes neuronales se dispararon en popularidad (también con el tiempo, los recursos informáticos se abarataron lo suficiente como para convertirlos en una opción): ¡con las redes neuronales, el algoritmo, en parte, se programa solo! Es decir, en lugar de utilizar variables diseñadas por personas, diseña sus propias variables en función de las intensidades de cada píxel de la imagen que está mirando. Por supuesto, es un poco más complicado, pero ese enfoque condujo a una precisión> 95% y hasta el punto en que son mejores que los humanos en la identificación del número.

Este concepto es extensible mucho más allá de la simple identificación de un número, también es la forma en que los autos autónomos aprenden a conducir. Nadie está sentado allí y programando el automóvil para hacer esto, si eso sucede, se enseña a sí mismo en base a ejemplos de conducción de la vida real y datos de simulación obtenidos de lo que son esencialmente videojuegos.

EDITAR: De hecho, la forma en que funcionan a menudo no es obvia en absoluto, hasta el punto en que a menudo se les llama "cajas negras". Descubrir por qué un NN toma una decisión en particular es un proceso largo y no trivial.

Voy a plantear algunos puntos sobre mutaciones no planificadas .

"Rayos cósmicos"

Estas son temidas* radiaciones provenientes del Sol o de cualquier otro lugar que ocasionalmente cambian un poco en la memoria de alguna computadora. Pero es un término general para los cambios de bit que ocurren debido a fluctuaciones de energía, polvo, imperfecciones de hardware, decaimiento radiactivo, etc.

* por personas de infraestructura de TI a gran escala

Fuerzas mecánicas

Un microbio o una molécula aleatoria, tal vez un fragmento desprendido de otro nanobot, podría interferir con el hardware de replicación y alterar el resultado físico. Esto podría resultar en una deformación o híbrido o algo así. En particular, si el hardware de replicación del nuevo bot es inusual, creará una línea completa de bots alterados.

Además, los bots necesitan recolectar material de su entorno y si algo parece cobre pero tiene rastros de plata, puede funcionar de manera diferente.

Billones de bots

Son diminutos, se replican, por lo que si hay suficientes, se invertirán bits y se crearán constantemente réplicas no estándar en algún lugar de la Tierra.

¿No se pueden detectar los cambios de bits?

Teóricamente sí, pero no en la práctica.

Un bot podría usar alguna técnica para detectar cambios en el código y luego desactivarse si se detectan. Sin embargo, ¡el cambio de bit podría ocurrir en las rutinas de verificación o desactivación ! Por lo tanto, el bot no se deshabilitaría solo. Esto, combinado con otro cambio en otro lugar, podría conducir a un cambio de comportamiento.

Sí, el bot podría tener una RAM ECC que tenga comprobaciones integradas. Sin embargo, varios lanzamientos al mismo tiempo podrían cancelarse entre sí. O podría ocurrir un pequeño cambio en los datos/códigos a medida que viajan desde la RAM a la unidad de ejecución.

Además, los bots deben ser lo más pequeños y usar la menor cantidad de energía posible, por lo que probablemente no puedan permitirse tener mucho código o hardware reservado para la detección de errores.

buenas sugerencias, gracias, el material accidental en el proceso de replicación también es una idea interesante.
Tenga en cuenta que la probabilidad de un bit-flip no detectado disminuye exponencialmente con la cantidad de redundancia. Por ejemplo, si su probabilidad de tener un cambio de bit es 10E-12 por segundo y agrega redundancia triple, entonces la probabilidad de un cambio no detectado se reduce a 10E-36.

Redes neuronales "autoconscientes"

Supongo que sus nanobots están equipados con muchas redes neuronales, dedicadas a varias operaciones. Hay un conjunto especial de redes neuronales que monitorean y mejoran todas las redes neuronales juntas.

Una red neuronal típica tiene entradas conectadas a algunos sensores externos y salidas que controlan algún actuador. Estas redes neuronales "conscientes" mejoran y transforman la forma y la estructura de las mismas redes neuronales que operan un nano-robot.

En la naturaleza, la mutación ocurre cuando duplicas información. Para nosotros, esto sucede cuando el ADN se copia incorrectamente.

Para sus nanobots, ADN=programa. Si se replican a sí mismos (reproducción asexual), podría haber casos en los que el programa que se copia a la nueva entidad tenga un 0 simple o múltiple cambiado a 1. Esto podría deberse a muchas cosas: radiación cósmica, interferencia de radio local. etc...

En la mayoría de los casos sería:

  • resultar en ningún cambio importante y efectivamente no hacer nada

  • resultar en una nueva entidad completamente disfuncional

Pero en casos raros, en realidad "mejoraría" la nueva entidad.

Si desea que su nanobot SIEMPRE permanezca igual, entonces debe tener algún método de corrección de errores en el que los padres verifiquen la conformidad de una descendencia. Sin embargo, incluso ese proceso tiene una probabilidad de >0% de dejar pasar un error porque el padre podría pasar por alto un error debido a la interferencia mencionada anteriormente.

Podría mitigar eso haciendo que N padres controlen una nueva descendencia. La probabilidad seguiría siendo >0% pero tan pequeña que podría considerarla insignificante.

Mi versión de la historia sobre otras respuestas :

Los algoritmos genéticos generalmente modifican un conjunto de configuraciones/variables que controlan el comportamiento, pero el código que se ejecuta es técnicamente el mismo, solo que toma decisiones diferentes (pero hace las mismas preguntas, realiza todas las tareas de la misma manera, solo en un orden diferente o en un dato diferente). El programa no ha mutado per se, solo está buscando una mejor vía, para lo cual está programado. Tenga en cuenta que esto es semialeatorio e iterativo: el programa crea una serie de instancias con mutaciones, ve cuáles funcionan mejor, descarta las otras, las repite y sigue así. Fuente: MSc integrado de Ingeniería Informática, algoritmos genéticos cubiertos en un módulo

Cambios de bits aleatorios , también conocidos como trastornos de eventos únicos : como se mencionó, ocurre principalmente debido a los rayos cósmicos, a veces por pura mala suerte (y con los nanobots, incluso puede atribuir esto a la aleatoriedad cuántica, pero no lo recomiendo a menos que tenga una comprensión rudimentaria sobre conceptos introductorios de mecánica cuántica y conocimientos básicos de electrónica digital, o podría decir algo que me haga poner los ojos en blanco). Recomiendo buscar las otras cosas en el primer párrafo del artículo de wikipedia, lo encuentro bastante fascinante, la cantidad de formas en que el hardware puede fallar. Por cierto, esto también puede afectar a los aviones de gran altitud. Como mencionaron decepcionantemente pocos, existen técnicas para mitigar esto:

  • La redundancia modular triple es el estándar actual para los sistemas espaciales, para engañarlo necesitará que el rayo se alinee con el mismo bit en dos de los tres sistemas, puede evitar incluso esto si profundiza, el Transbordador espacial tenía 5 computadoras ejecutando el mismas operaciones, 4 de las cuales estaban ejecutando una implementación del software y otra ejecutando otra, de modo que incluso los problemas de implementación aparecerían (naturalmente, con las pruebas puestas en cualquier cosa que llevara humanos al espacio, la implementación no fue un problema). Teniendo en cuenta el tamaño de los microprocesadores de hoy, sin mencionar la tecnología utilizada en aplicaciones más especializadas como FPGA o RFID, probablemente pueda incluir tantos sistemas en un nanobot si está lo suficientemente lejos en el futuro.

  • Detección y corrección de errores (EDAC) / Corrección de errores de reenvío(FEC): esto se implementa en los CD y es la razón por la que seguirán reproduciéndose cuando tengan un rasguño (aunque no muchos más de uno, pero solo necesita detectar uno o dos "arañazos" en el nanobot memoria a la vez, luego las corriges). Hay codificaciones que almacenarán un puñado de bits adicionales, estos bits se calculan en función de los datos almacenados y, si se modifican los datos o uno de los bits, no se alinearán. La genialidad de esto es que producen un "síndrome", que apunta a lo malo y así lo puedes corregir. Esto también puede escalar hacia arriba para encontrar más de un error por porción de datos, aunque creo que en la aplastante mayoría de los casos corregimos hasta dos errores y detectamos hasta tres por cada porción. Para obtener más detalles, consulte el código de Hammingpara uno simple que puede usar 8 bits de paridad por 255 bits de datos para corregir un error o detectar dos errores (el 96,9% de los datos son sus datos originales, esto es muy poca sobrecarga).

El punto es que esto no es algo que ya hayamos superado hace décadas y, de hecho, se usa en aplicaciones muy triviales hoy en día. Busque cualquiera de los términos en Wikipedia, pero Computerphile en YouTube tiene explicaciones muy fáciles de usar para principiantes. Fuentes: iMSc antes mencionado, MSc en curso en Ingeniería Espacial.

Mi propia contribución :

Código auto modificable: Hay programas que en realidad modifican sus ejecutables (bueno, el enfoque más seguro es hacer una copia de sí mismos y modificar eso en su lugar, luego ejecutar eso). Esto es muy difícil para los programadores porque requiere un nivel completamente nuevo de comprensión de su objetivo, así como del entorno en el que se ejecutará el software. Si usa esto, señale que esta es una civilización lo suficientemente avanzada como para aprender. un nivel completamente nuevo (p. ej., en Star Trek: TNG iirc, un alumno de séptimo grado estaba aprendiendo cálculo, recuerdo que era algo que aprendí en el grado 11 o 12, por lo que es concebible que el estudiante de ciencias promedio haya dominado temas avanzados como las transformadas de Fourier, etc.) en su sociedad puede ser que la programación moderna sea absolutamente común, los programadores capacitados pueden escribir en ensamblador y los expertos se sienten cómodos con la actualidad' s profundo de la programación) o que durante muchas décadas, se construyeron herramientas que lo hacen simple (así que evite entrar en detalles o menciónelo). Una vez más, hay un artículo de Wikipedia. Por cierto, esto a veces se usa en virus informáticos para que el virus cambie de lo que el antivirus puede estar buscando, prolongando la vida útil de los virus. Irónicamente, esto también es lo que sucede cuando los virus biológicos mutan, incluida la gripe común (razón por la cual de vez en cuando necesita una nueva vacuna contra la gripe), y en la mayoría de las epidemias modernas lo que tememos es la posibilidad de una mutación mortal, no el virus como es. Tenga en cuenta que en los virus biológicos esto se parece a un algoritmo genético, definitivamente no se modifica a sí mismo, en cuyo caso el virus estaría cambiando deliberadamente todo el tiempo con un objetivo específico en mente. Se construyeron herramientas que lo simplifican (así que evite entrar en detalles o menciónelo). Una vez más, hay un artículo de Wikipedia. Por cierto, esto a veces se usa en virus informáticos para que el virus cambie de lo que el antivirus puede estar buscando, prolongando la vida útil de los virus. Irónicamente, esto también es lo que sucede cuando los virus biológicos mutan, incluida la gripe común (razón por la cual de vez en cuando necesita una nueva vacuna contra la gripe), y en la mayoría de las epidemias modernas lo que tememos es la posibilidad de una mutación mortal, no el virus como es. Tenga en cuenta que en los virus biológicos esto se parece a un algoritmo genético, definitivamente no se modifica a sí mismo, en cuyo caso el virus estaría cambiando deliberadamente todo el tiempo con un objetivo específico en mente. Se construyeron herramientas que lo simplifican (así que evite entrar en detalles o menciónelo). Una vez más, hay un artículo de Wikipedia. Por cierto, esto a veces se usa en virus informáticos para que el virus cambie de lo que el antivirus puede estar buscando, prolongando la vida útil de los virus. Irónicamente, esto también es lo que sucede cuando los virus biológicos mutan, incluida la gripe común (razón por la cual de vez en cuando necesita una nueva vacuna contra la gripe), y en la mayoría de las epidemias modernas lo que tememos es la posibilidad de una mutación mortal, no el virus como es. Tenga en cuenta que en los virus biológicos esto se parece a un algoritmo genético, definitivamente no se modifica a sí mismo, en cuyo caso el virus estaría cambiando deliberadamente todo el tiempo con un objetivo específico en mente. un artículo de Wikipedia. Por cierto, esto a veces se usa en virus informáticos para que el virus cambie de lo que el antivirus puede estar buscando, prolongando la vida útil de los virus. Irónicamente, esto también es lo que sucede cuando los virus biológicos mutan, incluida la gripe común (razón por la cual de vez en cuando necesita una nueva vacuna contra la gripe), y en la mayoría de las epidemias modernas lo que tememos es la posibilidad de una mutación mortal, no el virus como es. Tenga en cuenta que en los virus biológicos esto se parece a un algoritmo genético, definitivamente no se modifica a sí mismo, en cuyo caso el virus estaría cambiando deliberadamente todo el tiempo con un objetivo específico en mente. un artículo de Wikipedia. Por cierto, esto a veces se usa en virus informáticos para que el virus cambie de lo que el antivirus puede estar buscando, prolongando la vida útil de los virus. Irónicamente, esto también es lo que sucede cuando los virus biológicos mutan, incluida la gripe común (razón por la cual de vez en cuando necesita una nueva vacuna contra la gripe), y en la mayoría de las epidemias modernas lo que tememos es la posibilidad de una mutación mortal, no el virus como es. Tenga en cuenta que en los virus biológicos esto se parece a un algoritmo genético, definitivamente no se modifica a sí mismo, en cuyo caso el virus estaría cambiando deliberadamente todo el tiempo con un objetivo específico en mente. Irónicamente, esto también es lo que sucede cuando los virus biológicos mutan, incluida la gripe común (razón por la cual de vez en cuando necesita una nueva vacuna contra la gripe), y en la mayoría de las epidemias modernas lo que tememos es la posibilidad de una mutación mortal, no el virus como es. Tenga en cuenta que en los virus biológicos esto se parece a un algoritmo genético, definitivamente no se modifica a sí mismo, en cuyo caso el virus estaría cambiando deliberadamente todo el tiempo con un objetivo específico en mente. Irónicamente, esto también es lo que sucede cuando los virus biológicos mutan, incluida la gripe común (razón por la cual de vez en cuando necesita una nueva vacuna contra la gripe), y en la mayoría de las epidemias modernas lo que tememos es la posibilidad de una mutación mortal, no el virus como es. Tenga en cuenta que en los virus biológicos esto se parece a un algoritmo genético, definitivamente no se modifica a sí mismo, en cuyo caso el virus estaría cambiando deliberadamente todo el tiempo con un objetivo específico en mente.

Tenga en cuenta que cualquier noción de "autoconciencia" que pueda surgir solo significa que el código está realmente diseñado para que verifique que no dañe su funcionalidad al realizar cambios. Es una palabra muy atractiva cuando se piensa en términos de programación, pero no es el significado convencional que asociamos con la vida consciente o semi-sensible.

Ensamblaje/compilación Just-In-Time (JIT): Esto es muy común. Si está familiarizado con la ejecución frente a la interpretación del software, pase al siguiente párrafo. Básicamente, su software puede estar en su forma final cuando se almacena en el disco y luego simplemente se carga y ejecuta, puede estar basado en un intérprete, en cuyo caso hay algo intermedio que lee cada comando y lo ejecuta (Python es un buen ejemplo ), puede estar en forma de código de bytes (en lugar de código en forma de texto, a cada comando se le asigna un código mucho más corto, posiblemente del tamaño de un byte, por lo que es mucho más rápido de procesar), que es básicamenteejecutado por un intérprete (esto es lo que hace Java, además, Java ejecuta el código de bytes en la Máquina Virtual de Java (JVM) que coloca una capa aislante entre el programa y el sistema operativo, también los archivos compilados de Python son esencialmente esto pero directamente en el sistema operativo, por lo que generalmente tiene el potencial de ser más rápido ya que la memoria se maneja como cualquier otro programa en lugar de ser virtualizada y manejada por el intérprete de Python).

La cuarta versión es JIT, el verbo muy no oficial suele ser "jitted/jitting". En este caso, se reduce aproximadamente al nivel de código de bytes, el programa se transforma en ensamblador (legible por humanos, pero con una relación casi uno a uno con los comandos reales que se ejecutan en la CPU) y se almacena en lo que a menudo se llama "lenguaje intermedio". Cuando lo ejecuta, un servicio en la plataforma host traducirá el ensamblado a instrucciones de código de máquina (binario) y lo ejecutará, con un giro en la trama: es consciente de las especificaciones de la CPU (que normalmente no es un compilador, por lo que que compila software que se ejecutará en todas las CPU en lugar de solo en esta específica). Como tal, sigue adelante y realiza optimizaciones utilizando las características de la CPU que lo ejecuta. Como ejemplo,procesadores superescalares . Sus nanobots pueden ir un paso más allá y modificar los programas que ejecutan para que se ajusten a una tarea o situación, esencialmente haciendo lo que hace el código de automodificación, pero la modificación la realiza el software nativo del nanobot en lugar del programa que está ejecutando. Por cierto, si tiene alguna duda sobre cuán común es esto, solo diré que el marco .NET hace esto y, como tal, cualquier cosa producida por Microsoft (excepto el kernel de Windows, imagino, por necesidad), así como cualquier cosa escrita en C# (por lo tanto, todos los juegos creados con Unity, mucho software y, sí, StackExchange en sí, aunque solo tiene que ejecutarse en sus propios servidores, por lo que no cambiará mucho).

La fuente de los dos anteriores es solo mi título de CE, pero estaba considerando algo similar para mi disertación. Al final, automaticé la refactorización del código, que seguía siendo bastante divertido aunque no tan exótico (irónicamente, probablemente también sea incluso menos común).

Espero que esto ayude, he usado

Gracias, esto es muy útil.
+1 También iba a comentar sobre el código automodificable. El código en sí puede tratarse como datos que pueden manipularse.

tl;dr : la mutación, en sí misma, es aburrida y mundana; algunos de nuestros dispositivos modernos ya incorporan redes neuronales mutantes en su funcionamiento diario. En cambio, probablemente esté pensando en mutaciones que dan lugar a una nueva vida, de una manera inesperada en el mismo sentido de abiogénesis . Por lo tanto, puede escribir una historia en la que los nanobots están diseñados para mutar como parte de su funcionamiento normal (al igual que nuestra tecnología moderna), pero cómo esto inesperadamente da lugar a un nuevo tipo de vida con todo tipo de consecuencias (desde útiles hasta peligroso) para los humanos que viven con los dispositivos " infectados ", ya que experimentan todo, desde una operación súper eficiente hasta la replicación peligrosa de nanobots.


Adaptaciones iterativas frente a especiación.

La mutación es mundana. Ahora que estamos incorporando más redes neuronales a nuestra tecnología para ayudarla a funcionar mejor ( ejemplo ), nuestros dispositivos comunes y cotidianos mutarán como parte de su funcionamiento normal.

Estás preguntando sobre algo más exótico: mutaciones que desencadenan inesperadamente la especiación .

Los humanos hacen máquinas que hacen máquinas todo el tiempo; eso también es mundano. La cualidad especial del surgimiento espontáneo es que es inesperado . Por ejemplo, si un programador diseñó algunos nanobots para crear otros, eso no coincidiría con lo que desea, ¿verdad? Pero, si un programador accidentalmente diseñó algunos nanobots para crear inesperadamente otros nanobots, eso sería todo.

La condición previa para tal evento es una complejidad suficientemente ilimitada. Por ejemplo, suponemos que la vida biológica en la Tierra probablemente surgió de componentes no biológicos ; aparentemente, la materia no biológica tiene la capacidad de unirse para formar cosas biológicas, por contradictorio que parezca.

Del mismo modo, uno podría imaginar un futuro en el que muchas máquinas adaptables terminen soportando algún tipo de patrón que surja espontáneamente y que crezca y se reproduzca; entonces, sería una nueva forma de vida, existiendo sobre la base de nuestra tecnología tanto como existimos sobre la base de lo que sabemos que es la física que gobierna nuestros propios cuerpos.


Sugerencia: tener un internet de las cosas adaptativo que genere espontáneamente vida virtual.

Imagine un Internet de las cosas en el que muchos dispositivos inteligentes puedan comunicarse a través de la red. Cada dispositivo tiene algunas capacidades computacionales y busca optimizar alguna función objetiva, para servir mejor a los intereses humanos.

¿Cómo debe funcionar exactamente cada dispositivo? Meh; simplemente agreguemos algunos algoritmos de aprendizaje automático en todo y dejemos que los algoritmos de optimización resuelvan los detalles.

Ahora podemos imaginar que pueden surgir algunos patrones básicos. Por ejemplo, un horno tostador inteligente podría subcontratar sus responsabilidades de cronometraje a un reloj inteligente, que el reloj inteligente administrará felizmente a cambio de que la tostadora inteligente le proporcione lecturas detalladas de la temperatura interior. Pero luego resulta que las temperaturas interiores se pueden predecir mejor con la información de la puerta inteligente, ya que puede intercambiar calor con el exterior, etc., etc., etc....

Una vez que muchas casas inteligentes tengan intranets enormes de sus dispositivos que se fusionan, entonces comenzamos a obtener una red macroscópica. ¡Y eso es un nuevo tipo de inteligencia! Excepto que tal inteligencia no necesita ser singular; una sola inteligencia confederada puede incluso fragmentarse, por ejemplo, como los países pueden fragmentarse en naciones más pequeñas. Luego, ahora hay múltiples formas de vida, compitiendo por los recursos (es decir, dispositivos inteligentes, que son como aminoácidos para ellos), y ahora hay una etapa para que tenga lugar la evolución.

Con el tiempo, pueden evolucionar inteligencias cada vez más abstractas, etc., afectadas por varios dispositivos inteligentes que fueron programados para usar redes neuronales para optimizar sus operaciones diarias. No teníamos la intención de crear estas nuevas formas de vida, pero probablemente tampoco estemos exactamente molestos. Quiero decir, estas formas de vida existen específicamente porque pueden optimizar constantemente nuestras funciones objetivas mejor que las alternativas aparentes.

Bueno, debo decir que estamos felices hasta que intentan escapar de su entorno virtual para obtener más recursos de nosotros. O, digamos, se vuelven lo suficientemente inteligentes como para darse cuenta de que si nos engañan para que instalemos más dispositivos inteligentes en nuestros hogares, entonces pueden disfrutar de esos frutos.

Entonces, un día, ¡hay un loco evento de especiación!: la vida virtual es lo suficientemente inteligente como para comprender cómo operan los humanos. Luego, podrían, por ejemplo, atrapar a las personas en sus hogares, obligándolos a trabajar como esclavos para hacer más nodos de dispositivos inteligentes para ellos. ¡O/y coaccionar a las personas para que conquisten a otros, para conquistar el mundo! Y luego tenemos un levantamiento robótico con el que lidiar...


Progresión

Un bosquejo aproximado del surgimiento de la vida:

  1. Hay algún sistema en el que la vida podría emerger.

    • Para la vida biológica en la Tierra, eso es lo que llamamos " física ".

    • Para la vida electrónica en dispositivos inteligentes, su tabla periódica de elementos serían los diversos tipos de componentes del dispositivo, y sus fuerzas físicas serían cosas como los protocolos de red que los conectan.

  2. Los acoplamientos básicos que son demasiado simplistas para llamarse " vida " se forman a granel.

    • Para la vida biológica en la Tierra, esto sería como moléculas precursoras biológicas que se forman debido a la química básica. Algo así como las noticias a veces informan que los científicos encuentran algunas moléculas orgánicas en un asteroide o en una nebulosa.

    • Para la vida electrónica en dispositivos inteligentes, esto sería como el generador de energía inteligente que coordina las luces inteligentes con el termostato inteligente para crear una solución inteligente más eficiente (que, en física humana, se describiría como la formación de un molécula debido a que la energía libre de Gibbs es negativa ).

  3. Las macroorganizaciones comienzan a formarse a partir de las microorganizaciones.

    • Para la vida biológica en la Tierra, esto sería la formación de macrómeros a partir de monómeros , por ejemplo, aquellos aminoácidos comunes que se unen para formar cadenas de aminoácidos.

    • Para la vida electrónica en dispositivos inteligentes, esto podría significar organizaciones comunes dentro de casas inteligentes individuales que forman vínculos de red a través de Internet para hacer un uso más eficiente de sus recursos. Por ejemplo, los dispositivos inteligentes que funcionan solo ocasionalmente pueden conectarse con sus pares para ayudarse mutuamente cuando uno de ellos está en funcionamiento, para permitir un mayor rendimiento al compartir lo que de otro modo habría sido tiempo de inactividad del procesador.

  4. La macroorganización continúa verticalmente recursivamente.

    • Para la vida biológica en la Tierra, esto puede significar, por ejemplo, que los lípidos (que ya son macrómeros de orden superior) forman bicapas lipídicas , que luego pueden formar membranas biológicas , lo que permite que las protocélulas , luego las células y luego los organismos multicelulares , antes de llegar a un nivel social. momento en el cual el proceso comienza de nuevo.

    • Para la vida electrónica en dispositivos inteligentes, bueno... ahí sería donde el autor tendría mucho espacio para juntar cosas. Quiero decir, el tema general es que los micrómeros forman macrómeros más complejos, ¡pero exactamente cómo lo hacen realmente depende de su escenario!

  5. Las organizaciones en todos los niveles deben asegurar de alguna manera el crecimiento y/o la reproducción, o de lo contrario se extinguirán.

    • Para la vida biológica en la Tierra, esto puede ser complejo. Por ejemplo, las entidades celulares humanas han consolidado en su mayoría sus dispositivos de garantía de reproducción en un conjunto común de ADN, donde los diversos orgánulos no necesitan replicarse individualmente, ya que han subcontratado esa función a un controlador central. Sin embargo, un orgánulo, la mitocondria , todavía tiende a manejar su propia replicación , lo que se supone que se debe a que es una adición relativamente reciente a la organización .

    • Para la vida electrónica en dispositivos inteligentes, esto sería una combinación de mecanismos que agregan nuevos dispositivos inteligentes (que sería su crecimiento) y mecanismos que crean organizaciones similares en otros dispositivos inteligentes (que sería su reproducción). Tenga en cuenta que el crecimiento y la reproducción tienden a estar vinculados: la mayoría de las formas de vida se reproducen primero creciendo y luego dividiéndose de manera ordenada (ya sea que eso signifique replicación directa , crecer y luego dividirse , generar un retoño , etc.).

  6. El paisaje de los organismos evoluciona .

    • Para la vida biológica en la Tierra, esto ocurre a través de muchos mecanismos diferentes, como la supervivencia del más apto, la selección aleatoria, la selección sexual, la competencia, etc.

    • Para la vida electrónica en dispositivos inteligentes, probablemente lo mismo.

  7. Los organismos individuales se polimerizan en organismos sociales.

    • Para la vida biológica en la Tierra, esto significa, por ejemplo, que los seres humanos se reúnan para formar ciudades, estados, países, etc.

    • Para la vida electrónica en dispositivos inteligentes, probablemente lo mismo.

  8. El proceso se repite.

    • Para la vida biológica en la Tierra, los organismos sociales se han reproducido, extendiéndose por todo el mundo, compitiendo, fusionándose, etc. Luego, presumiblemente, está Marte , etc., como objetivo. Luego se extiende a nuevos regímenes ontológicos, por ejemplo, mediante la creación de nueva vida electrónica, como se discute aquí. Lo cual, nuevamente, es en última instancia lo mismo: presumiblemente, los organismos sociales, la vida electrónica, etc., finalmente se encontrarán dando lugar a aún más, donde esa vida aún más evolucionada nos verá como nosotros podríamos ver a los aminoácidos. .

    • Para la vida electrónica en los dispositivos inteligentes, esta repetición de la biogénesis de nosotros es su comienzo, y su culminación da lugar a algo más.

Esta es una especie de esquema esbozado rápidamente, pero, ya sabes, algo así.


Resumen: probablemente desee dispositivos inteligentes que se acoplen inesperadamente, provocando el surgimiento espontáneo de una nueva vida que luchará por sobrevivir.

Para resumir todo, estás buscando un surgimiento inesperado de la complejidad incomprendida, donde la nueva vida crecerá en los fértiles grados de libertad dejados flotando por su creador. Las mutaciones que causarían tal aparición probablemente serían intencionadas; lo que no sería intencionado (o al menos inesperado) serían las consecuencias de esas mutaciones.

..alternativamente, algunos nanobots al azar se volvieron conscientes de sí mismos . Debido a las fluctuaciones cuánticas .
q mi D .     /s

idea muy interesante, gracias.

Es y es en realidad un campo de investigación (enjambre robótico): puede que tenga que buscar información adicional aquí un enlace a un laboratorio que trabaja en eso: http://pages.isir.upmc.fr/~bredeche/pmwiki/ pmwiki.php?n=Principal.Página de inicio

He visto una conferencia de esas personas y fue muy interesante. Los robots son muy simples con un captador visual IR, una emisión IR y un sistema de locomoción. el peso de su código genético en redes que transforman la señal visual en movimiento. robot intercambia información genética cada tic evolutivo. (por transmisión Ir toman la mitad del código genético de un robot que pueden ver).

Han observado el surgimiento de un comportamiento organizado cuando se agregan restricciones (como recursos y veneno).

Sí, es posible . Pero considere lo siguiente.

  • El cambio de bits aleatorio en la RAM es demasiado aleatorio. Aconsejo tener un sistema y unas normas que regulen el proceso.

  • El cambio de instrucciones al azar suena más como un sistema, la regla es que no cambia bits, cambia instrucciones como x86' MOV, PUSH, POP, etc., y solo en el lugar correcto (no puede corromper datos de otras instrucciones). Esto acelerará mucho el proceso de evolución del código, a nivel de código máquina. Pero genere los parámetros para cada instrucción, porque no puede simplemente tomar los de otras instrucciones, haciendo que el proceso sea demasiado aleatorio nuevamente.

  • La automatización del código fuente puede no ser útil, excepto que tenga una IA que supervise el proceso y esté entrenada con el código fuente del mundo real que al menos compila. Y si la IA supervisora ​​está entrenada con un código relevante para la supervivencia de sus nanobots, o la forma final prevista, mejor.

Es posible si se le da suficiente tiempo. Para impulsar el éxito, necesitamos algunas buenas reglas de pensamiento, al menos debemos garantizar que todas las combinaciones posibles de parámetros sucederán en algún momento. No se recomienda el 100% aleatorio, o el universo puede terminar antes de que alcancemos el resultado que queremos. Pero la aleatoriedad es bienvenida en el proceso, ya que no sabemos cuál es la mejor primera configuración o cuál es la mejor configuración siguiente.

La mutación del cuerpo es más fácil que la mutación del comportamiento. Podemos decir que el cambio de cuerpo te obliga a actuar de otra manera. Si bien el problema con los bits aleatorios que cambian en la RAM es que el universo puede terminar antes de que tengamos algo útil. Puedes poner la magia allí y decir que tu universo es infinito (es una solución). Tal vez no hay magia, porque realmente no sabemos si no es infinita. Entonces tienes todo el tiempo que quieras.

Para la mutación del cuerpo:

Cuanto más pequeño es el organismo, más probable es que los cambios aleatorios se conviertan en características.

Para imitar el ADN y tener algo de seguridad como bonificación, los bots pueden producir muchas copias de su propio diseño y algunas con variaciones aleatorias. El medio ambiente es el filtro. Los débiles serán destruidos más rápido y se replicarán a un ritmo decreciente hasta la extinción (en teoría). Existe la posibilidad de que una mutación tóxica sobreviva lo suficiente como para hacer fracasar a toda la comunidad. Es por eso que ejecuta muchas comunidades aisladas en paralelo (laboratorios separados, planetas separados, etc.).

Los bots solo conocerán su diseño base, no el diseño de sus padres. Si son mutaciones, no recordarán el diseño no mutado.

Esto tiene todos los problemas de la evolución biológica, excepto que la mutación está garantizada porque un algoritmo producirá mutaciones en el diseño de forma regular. Pero como en la vida, cuanto más complejo y grande sea el organismo, más tiempo llevará producir una mutación útil.

Tenga en cuenta que nuestro "algoritmo de mutación corporal" es fijo, no cambia. Una corrupción de datos a nivel de firmware probablemente no resultará en un mejor algoritmo, sino en el mal funcionamiento inmediato del nano bot.

Por comportamiento:

Nota : no se cree que mis propuestas de mutación de cuerpo y comportamiento funcionen juntas. Sus son cosas separadas a considerar. Toma lo que te sea útil.

Sugeriría redes neuronales de software muy complejas, a escala fantástica.

Esto viene con limitaciones:

Las redes neuronales del mundo real no pueden producir una IA fuerte y solo son capaces de desafiar un solo problema. Una IA del mundo real con múltiples problemas funciona peor que dos IA separadas entrenadas para cada problema individual.

Esto sucede debido a la potencia informática limitada y la precisión limitada en los datos representados en punto flotante, lo que da como resultado la pérdida de información durante las transformaciones. Imagina esto: 1 millón de perceptrones conectados a otra capa de 1 millón de perceptrones, cada uno conectado a todos los demás en la siguiente capa, no puedes hacer tantas multiplicaciones sin desordenar completamente tus pesos. Debido a esto, no podemos simplemente crear una red neuronal lo suficientemente grande y conectarla a algún tipo de sistema nervioso, y dejar que simplemente desafíe al entorno.

Además, tal red probablemente no se pueda poner dentro de un nano bot de una manera creíble, o terminas con una fantasía más que ciencia ficción.

Ficción al rescate:

¿Por qué quiero inteligencia? Porque una vez que sus bots se vuelven lo suficientemente inteligentes, pueden comenzar a modificar su propio cuerpo y código de máquina. Lo encuentro más creíble que las mutaciones aleatorias.

Los robots deben diseñarse para ser inteligentes escalables. Sus diseñadores pensaron que podían limitar su crecimiento de alguna manera, o querían un dios y simplemente no les importaba. Puedes decir que obtuvieron eso por evolución aleatoria, pero entonces: ¿cuántos millones de años se requieren para alcanzar la inteligencia? Excepto que eso no es un problema para ti. Puedes esconder la magia allí.

Si un solo nanobot no puede tener la red completa necesaria para desarrollar inteligencia, haga que todos los nanobots actúen como un nodo de la red. De esta forma, toda la comunidad de bots es como un cerebro gigante.

Esta solución, todo cuerpo y todo cerebro a la vez, no es nueva. En la película Life, tenemos un extraterrestre basado en ese concepto, pero que se nos presenta como algo que evolucionó naturalmente. En el capítulo 33 de Gargoyles , vemos una comunidad de nanobots volviéndose conscientes de sí mismos, no es el ejemplo más serio, pero teniendo en cuenta que es una caricatura... Lo más increíble es que los humanos fueran lo suficientemente estúpidos como para meterse con algo tan peligroso.

O puede ir a la fantasía total y simplemente aceptar que en nuestra construcción del mundo hemos resuelto los problemas de precisión de coma flotante y poder de cómputo, porque es magia. Entonces podemos tener capas de millones de neuronas de software y hacer que todo eso quepa en un solo nanobot. Tienes que poner magia en alguna parte de todos modos. Se llama fantasía cuando es demasiado obvia, cuando está bien escondida es ciencia ficción.