• Inicio
  • Eventos
  • Artículos
  • Podcasts
  • Videos
  • Tienda
  • Quienes somos
    • Quienes somos
    • Manifiesto / Prensa
    • Colaborar / news letter
  • Inicio
  • Eventos
  • Artículos
  • Podcasts
  • Videos
  • Tienda
  • Quienes somos
    • Quienes somos
    • Manifiesto / Prensa
    • Colaborar / news letter
  • Visita nuestra tienda

Sociedad de Científicos Anónimos Sociedad de Científicos Anónimos

  • Inicio
  • Eventos
  • Artículos
  • Podcasts
  • Videos
  • Tienda
  • Quienes somos
    • Quienes somos
    • Manifiesto / Prensa
    • Colaborar / news letter
Artículos

Software y hardware evolutivos

Software y hardware evolutivos

La evolución no es solamente un proceso biológico. Sus principios pueden aplicarse al desarrollo de software y hardware, a veces con resultados insospechados.

¿Qué es la evolución?

La evolución es el cambio de las características heredables a través de generaciones sucesivas de una población.

En el siglo XIX, Charles Darwin formuló, en su libro “El Origen de las Especies”, la teoría científica de la evolución a través de la selección natural, basándose en tres hechos observables:

  1. Los individuos de una especie tienen variaciones en su forma, fisiología y comportamiento.
  2. Dichas variaciones influyen en su probabilidad de sobrevivir y reproducirse.
  3. Esas variaciones pueden heredarse de generación en generación.

Al pasar el tiempo, los miembros de generaciones sucesivas de una especie van siendo reemplazados por nuevos individuos cuyos padres están mejor adaptados a sobrevivir en su entorno y, por tanto, tienen mayores posibilidades de reproducirse.

La selección natural pareciera “elegir” y preservar características que están mejor adaptadas a los roles funcionales que desempeñan, pero no ocurre así; simplemente es el resultado de una población que sobrevive y se reproduce más exitosamente que otra debido a sus características heredadas.

Al aparente propósito y cumplimiento de objetivos por parte de las estructuras y funciones de los seres vivos se le llama Teleonomía. Veamos dos interpretaciones del mismo hecho:

  • “La mariposa monarca migra de Canadá a México en invierno PARA ESCAPAR tanto del clima helado así como la escasez de flores para alimentarse”
  • “La mariposa monarca migra de Canadá a México en invierno Y POR TANTO, LOGRA ESCAPAR tanto del clima helado así como la escasez de flores para alimentarse”

La primera oración implica un propósito anticipatorio. La segunda, una característica adaptativa que heredó toda una especie y le permitió sobrevivir a un fenómeno climático cíclico. La Teleonomía es un enfoque programático y computacional sobre la adaptación derivada de una historia evolutiva, aunque también puede aplicarse a la operación de un programa y su eficiencia para cumplir un objetivo.

La selección natural a través del tiempo es la única causa conocida de adaptación, pero no es la única que desencadena la evolución; también existen las mutaciones (el cambio permanente que ocurre al azar en la información genética de una especie) y la deriva genética (el cambio en la frecuencia con la que se presenta una variante genética en una población). En el cómputo evolutivo solamente se usan las mutaciones.

¿Qué es el cómputo evolutivo?


Es un campo de la inteligencia artificial que utiliza algoritmos inspirados en un enfoque darwiniano para resolver problemas, y de ahí su nombre. Un algoritmo evolutivo es por naturaleza un método iterativo de prueba y error que busca encontrar una solución global optimizada; esto es, con valores óptimos para todas las variables que lo definen en lugar de un máximo o mínimo local. Tuvo su origen en la década de 1950 y actualmente se considera representado en cuatro áreas:

Programación evolutiva

La estructura del programa a optimizar es fija. Únicamente cambian sus variables numéricas.

Estrategias evolutivas

El problema se representa como una serie de variables sujetas a dos operadores: Mutación, que modifica aleatoriamente sus valores pero con una intensidad gobernada por auto adaptación o covarianza, y selección, que evalúa en conjunto qué tan bien lo resuelven.

Los operadores se aplican iterativamente, y cada ciclo es llamado una generación. La secuencia de generaciones se detiene cuando se satisface un criterio de terminación, como puede ser la poca diferencia en la función de selección aún transcurridas muchas generaciones sucesivas.

Algoritmos genéticos

Se trata de un proceso de búsqueda heurístico (es decir, una metodología suficientemente buena para alcanzar metas inmediatas, pero sin garantía de ser óptima o perfecta) que imita la selección natural para encontrar una solución óptima mediante el uso de herencia, mutación, selección y cruzamiento. La población de soluciones candidatas (llamada individuos, criaturas o fenotipos) es evaluada iterativamente por funciones objetivo; aquellas que obtengan mejor puntaje son seleccionadas estocásticamente y sujetas a recombinación y/o mutación de su genoma para formar la siguiente generación. El proceso se detiene tras haber alcanzado un número dado de generaciones o bien haber alcanzado un nivel satisfactorio en las funciones objetivo. Los algoritmos genéticos son fáciles de implementar, pero difíciles de comprender cuando han encontrado una solución.

Programación genética

Es una metodología que hace evolucionar programas de computadora para que realicen una tarea específica, evaluados por una función de desempeño. Cada programa es representado con una estructura de árbol; cada nodo es un operador y cada terminal un operando. Las ramas se pueden intercambiar con otro individuo de la población, o bien se hace mutar un nodo de un individuo.

¿Tiene desventajas el cómputo evolutivo?

Las cuatro áreas ya mencionadas demandan gran poder de procesamiento, particularmente al evaluar las soluciones propuestas con las funciones objetivo. Una sola evaluación exacta puede tardar horas, por lo que a veces se cambia el criterio a evaluaciones aproximadas que sean computacionalmente más eficientes.
Plantear un problema en términos de cómputo evolutivo es una tarea que crece exponencialmente con la complejidad, por lo que debe dividirse en subproblemas que tengan la representación más simple posible. Actualmente, no es posible diseñar un automóvil de forma evolutiva, ni siquiera un motor completo. Pero sí puede diseñarse un mejor pistón, un mejor cigüeñal, etcétera, aunque vendrá la dificultad adicional de integrarlas en un todo más grande, potencialmente disminuyendo su eficiencia.

Las soluciones encontradas no siempre constituyen el óptimo global. No se puede distinguir ni saber sacrificar una solución eficiente de corto plazo (un óptimo local) en favor de otra más eficiente a largo plazo. De hecho, pueden tener problemas cuando la función objetivo se reduce a una decisión de resultado apropiado o inapropiado.

¿Cómo puede hacer el software evolucionar al hardware?


El cómputo evolutivo no es un dominio exclusivo del software. A manera de ejemplo, citaremos uno de los trabajos pioneros en el campo y posteriormente seguiremos con otros más recientes.

En 1997, el Dr. Adrian Thompson, de la Universidad de Sussex hizo evolucionar un circuito electrónico que pudiera distinguir entre dos tonos de audio de mil y diez mil KHz, respectivamente.

Para ello, empleó un chip programable llamado FPGA (Field Programmable Gate Array: Arreglo de compuertas programables en campo) que consiste en un arreglo de compuertas lógicas cuyas interconexiones internas no son estáticas, sino pueden ser “programadas” de forma externa. Aunque los FPGAs no son tan rápidos como sus contrapartes diseñadas exprofeso (los llamados ASICs, Circuitos Integrados de Aplicación Específica), ofrecen una enorme plasticidad para reconfigurarse rápidamente con tan sólo cargar un conjunto diferente de instrucciones de conexión. Típicamente, se usan para probar diseños de chips, que una vez finalizados, serán convertidos en una implementación inmutable como ASICs.

El Dr. Thompson puso dos restricciones importantes para el circuito evolucionado: se dispondría únicamente de 100 compuertas para implementarlo, y no se usaría una señal de reloj para sincronizarlo como ocurre en un diseño tradicional.

Se generó una colección inicial de 50 grupos de unos y ceros distribuídos al azar, que fueron cargados uno por uno al FPGA y evaluados por una computadora para saber qué tan bien estaban cumpliendo su objetivo. Debido a que esta población era completamente aleatoria, no sorprendió mucho descubrir que incluso los mejores candidatos eran marginalmente terribles en cumplir la tarea encomendada. Los peores individuos fueron eliminados, y los restantes intercambiaron entre sí fragmentos de unos y ceros, introduciendo ocasionalmente una mutación que cambiaba un uno o cero de forma aleatoria.

Tras doscientas generaciones, el FPGA ya sabía reproducir la señal de entrada. Después de seiscientas, desarrolló sensibilidad a un tono de mil Hertz. Al llegar a la generación mil cuatrocientos, podía identificar tonos en más de 50% de los intentos. Cuatro mil generaciones después, ya no cometía errores. Modificando la especificación original del problema, el FPGA incluso pudo distinguir entre dos comandos de voz tras dejarlo evolucionar su programa algunos cientos de generaciones más.

Tras haber examinado el diseño resultante, ninguno de los investigadores participantes sabía exactamente cómo estaba funcionando. El programa finalista usaba únicamente treinta y siete de las cien compuertas disponibles; la mayoría estaban conectadas como si fueran lazos de retroalimentación. Cinco de ellas incluso no tenían conexión funcional con el resto del circuito; pero si se deshabilitaban, el chip dejaba de trabajar. Y lo más extraño de todo: El programa únicamente funcionaba de forma confiable con ESE chip en particular y no con otro, aunque fuera de la misma familia.

Es muy posible que el diseño evolucionado estuviera aprovechando los campos magnéticos creados por el flujo de electrones dentro de ese FPGA así como las características analógicas intrínsecas en los transistores que lo componen, más que sus propiedades originales como switches digitales. Una solución así difícilmente hubiera sido considerada por un ingeniero electrónico debido, entre otras cosas, al tiempo que le tomaría implementarla.


Otro ejemplo lo tenemos en los trabajos de diseño de antenas evolucionadas. La NASA creó un programa tomaba un diseño simple de antena al que luego iba agregando y modificando elementos de forma semialeatoria. El resultado era evaluado contra ciertos criterios de desempeño (por ejemplo, satisfacer un patrón inusual de radiación, polarización circular de la señal o gran impedancia del ancho de banda); los peores candidatos se eliminaban para dejar una pequeña población de los mejores y repetir el proceso varias veces. La población final a menudo funcionaba mucho mejor que los mejores diseños hechos a mano, y presentaba formas complejas asimétricas y aparentemente caprichosas.

En el año 2006, estos diseños fueron usados dentro de la misión ST5, que consistía en tres satélites que medirían la magnetósfera de nuestro planeta. Cada satélite poseía dos antenas para comunicarse con estaciones terrestres y de haber usado un diseño tradicional, se habrían necesitado dos elementos helicoidales de gran tamaño.

¿Qué aplicaciones podría tener el hardware evolutivo?

Aparte de encontrar una solución extremadamente eficiente a un problema bien definido, sería posible desarrollar sistemas que interactúan con el mundo real y puedan adaptarse a situaciones cambiantes con gran resiliencia. Por ejemplo, la circuitería de control en un satélite o sonda espacial podría reconectarse a sí misma evitando partes conforme se van dañando por la intensa radiación, y aun así operar satisfactoriamente.

Si este tema te gusta, puedes seguir leyendo al respecto en Sociedad de Científicos Anónimos:

Robots que juegan a la biología

Robots que escriben sobre computación

Robots que juegan a la guerra

Para saber más

Computación evolutiva
Handbook of Evolutionary Computation, Thomas Back, David B. Fogel, Zbigniew Michalewicz, 1997.
Algoritmos de optimización evolutivaDan Simon, Professor. Universidad estatal de Cleveland
El papel de la Teleonomía en la Evolución.Grace de Laguna, Filosofía de la ciencia
Errores de muestreo y evolución: Universidad de Berkeley
Programación Genética, Grupo privado de investigación
FPGAs Arquitectura
Historia de los FPGAs (la página original ya no está disponible)
Electrónica evolutiva, Universidad de Sussex (la página original ya no está disponible)
Video: Síntesis evolutiva de antenas en la NASA

Escrito por Julio Rodriguez - 7 julio, 2015
Tags | evolución, hardware, software

También podría gustarte

Posada/aniversario SCA: COLORES SECRETOS DE LA NATURALEZA

1 diciembre, 2021

Científicos Anónimos QRO #03: Exoplanetas y biología

16 noviembre, 2020

LA EXTINCIÓN DEL DODO Y LOS VERDUGOS DEL CONTEXTO

8 octubre, 2019

Sin comentarios

¡Inicia la conversación!
Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Siguiente publicación
Publicación anterior

Síguenos en Facebook

Síguenos en Instagram

cientificosanonimos

@filguadalajara hoy, mañana y pasado @filguadalajara hoy, mañana y pasado
Llévele llévele @filguadalajara busca los libros Llévele llévele @filguadalajara busca los libros de @lafiera en @librosunam @oceanomexico @nadiedistribuye y nos vemos por allá
Unimos fuerzas con “Tras lo Fotones” y “Sext Unimos fuerzas con “Tras lo Fotones” y “Sexto Piso” para descubrir los misterios que encierra la antimateria y las promesas de sus aplicaciones. Un clavado desde la física de las partículas elementales hasta el cosmos, de mano del nuevo libro de Gerardo Herrera.
Cenizas volcánicas… Popocatépetl 🌋 desde la Cenizas volcánicas… Popocatépetl 🌋 desde la megalópolis azteca
Ya se viene la @filguadalajara 🐸🦑🐢 nos ve Ya se viene la @filguadalajara 🐸🦑🐢 nos vemos por allá 
Este de @gabimartinezvoy y @lafiera es imperdible, doble presentación de LiterNatura
Recién saliendo del horno: Antes de que se conoci Recién saliendo del horno: Antes de que se conociera que la tuberculosis (TB) era una enfermedad contagiosa, era un padecimiento romantizado e incluso añorado en la sociedad del siglo XIX. 

Hoy en día, una cuarta parte de la población mundial está infectada con la bacteria causante de esta enfermedad, muchos de ellos sin saberlo. Nuestro sistema inmunológico, que debería encargarse de eliminar la infección, es aprovechado por la bacteria para esconderse en nuestro cuerpo. Allí permanece silenciosa, aguardando pacientemente las condiciones ideales para reproducirse y buscar otro huésped para habitar. Por Tania Rivera Hernández y María Guadalupe García Valeriano

Busca el texto completo en cientificosanonimos.org
PST PST este no se lo quieren perder: Por fin!!! u PST PST este no se lo quieren perder: Por fin!!! un par de libros que celebran que la nuestra es la nación honguera por antonimasia: El planeta de los hongos (historia cultural de los hongos alucinógenos) y Diccionario gastronómico de hongos mexicanos. Paseen a degustar donde sea que escuchen podcasts
HOY HOY HOY en Tepoztlán presentamos el bestiario HOY HOY HOY en Tepoztlán presentamos el bestiario de animales reales que parecen inventados de @lafiera vengan a @tlalocan_libreria por un poco de revelación zoológica
Atención: Tepoztizos y tepoztecos, teporcho y tep Atención: Tepoztizos y tepoztecos, teporcho y teponejos, este sábado 2x1 allá en sus tierras. Cáiganle que si no luego se arrepienten. salgan de la hamaca, bajen del bosque, vengan a mitigar las asperezas de la vida con un poco de revelación zoológica
Ver más Seguir

Etiquetas

animales animales raros antropoceno antropología arte y ciencia biodiversidad Biodiversidad mexicana biología cambio climático ciencia ciencia + música Ciencia en el bar ciencia en la radio ciencia y arte Ciencia y letras comunicación científica comunicación de la ciencia conservación Cultura Científica divulgación científica divulgación de la ciencia dosis de arte ecología enfermedades ensayo ensayo literario Eventos SCA evolución Extinción Fauna mexicana hongos inteligencia artificial literatura literatura científica liternatura medicina naturaleza pandemia podcast psicología salud salud mental Salud pública sustentabilidad zoología

Contacto

    Presskit

    Descarga nuestro presskit para saber más sobre nuestra plataforma interactiva para la comunicación de la ciencia.

    Contenidos

    Eventos

    Podcasts

    Artículos

    Videos

    Tienda

    Sobre SCA

    Facebook

    Instagram

    Twitter

    ®Sociedad de Científicos Anónimos, 2018