Todos los seres vivos nos adaptamos constantemente, ya que vivimos en entornos dinámicos. Para poder seguir viviendo, necesitamos adaptarnos constantemente. Por ejemplo, si la temperatura es demasiado alta para mí, me quito el saco. Podemos definir a la adaptación como la respuesta de un sistema en presencia de una perturbación. En otras palabras, si hay un cambio en el entorno y esto provoca una respuesta en el sistema, podemos decir que el sistema se adaptó al cambio. Podemos encontrar una gran variedad de mecanismos de adaptación en la naturaleza, por lo que se pueden usar como inspiración para construir sistemas adaptativos, utilizando el método sintético. En muchos casos, nos gustaría poder predecir las perturbaciones, ya que éstas podrían dañar o hasta destruir un sistema. En este sentido, conviene que haya una respuesta al sistema antes de que ocurra la perturbación, esto se conoce como anticipación y requiere de poder predecir el futuro. La predicción no siempre es posible por diversos factores, tal vez, el más relevante sea la complejidad, ya que las interacciones entre los componentes de un sistema complejo generan información nueva que no está presente en las condiciones iniciales o de frontera. Por lo tanto, la anticipación es deseable, pero debe complementarse con la adaptación. Para entender mejor el concepto de adaptación, podemos utilizar el concepto cibernético de retroalimentación. Si tenemos un sistema y recibe una perturbación, entonces esto puede afectar sus variables internas y esto puede desatar una reacción, la cual trata de restablecerle esas variables a un estado anterior a la perturbación. Por cierto, cuando la respuesta no es apropiada, la podemos llamar maladaptación. De manera análoga, podemos hablar de prealimentación. Esta nos sirve para entender mejor a la anticipación. De nuevo, tenemos una perturbación, pero la respuesta al sistema se da antes de que ésta pueda afectar las variables internas del sistema. Ya luego viene la perturbación que no afecta tanto al sistema. Dependiendo de la escala temporal a la que se dé la adaptación, podemos decir que el aprendizaje, el desarrollo o la evolución son tipos de adaptación. El aprendizaje se da en escalas de segundos a días, el desarrollo, durante una vida y la evolucion, a lo largo de varias generaciones. Podemos entender al comportamiento como la acción o reacción bajo circunstancias específicas. Vemos que, en este sentido, todos los seres vivos exhiben comportamiento. Si el comportamiento responde apropiadamente a los cambios en el entorno, lo llamamos adaptativo. Los sistemas vivos y artificiales no sólo enfrentan las perturbaciones de su entorno adaptándose, también lo pueden hacer a través de la robustez. La robustez es la capacidad de un sistema de mantener su funcionamiento en presencia de perturbaciones. Es complementaria a la adaptación, ya que la robustez permite que las perturbaciones, simplemente, no afecten al sistema. Por ejemplo, para mantener la temperatura deseada en un cuarto podemos usar calefacción o aire acondicionado, una adaptación, pero también podemos usar aislante, lo cual nos daría robustez y esto reduce la necesidad de ajustar la temperatura. En términos cibernéticos, podemos ver a la robustez como amortiguamiento, en inglés "buffering". Si tenemos una perturbación, el amortiguamiento reduce el efecto de la perturbación, por lo que las variables del sistema no se ven afectadas. En este sentido, el amortiguamiento se considera un control pasivo, en comparación de los controles activos como la retroalimentación o la prealimentación. Para poder exhibir comportamiento adaptativo, los sistemas pueden beneficiarse mientras tengan más autonomía. Podemos definir a la autonomía como la habilidad de un sistema de exhibir comportamiento independientemente de las condiciones de su entorno. En este sentido, no puede haber un sistema completamente autónomo, pero podemos hablar de distintos grados de autonomía. Mientras haya más situaciones en las que un sistema no dependa de su entorno, podemos decir que es más autónomo. Eso es un poco arbitrario, ya que; por ejemplo, si comparamos a un animal con una planta, el primero será más autónomo en términos de movimiento, pero la segunda será más, en términos de metabolismo. También, depende de la escala temporal, podríamos decir que ciertos robots tienen un alto grado de autonomía hasta que se le acaba la pila. Los seres vivos tenemos un nivel de autonomía bastante sofisticado que se puede describir como autopoiesis, término definido por los chilenos Humberto Maturana y Francisco Varela para describir a los sistemas vivos, quiere decir que se producen a sí mismos. Un concepto útil en los sistemas basados en el comportamiento es el de agente. Podemos decir que un agente es una entidad que actúa en su entorno, de hecho, los agentes racionales se propusieron en los sistemas basados en el conocimiento, los cuales usan lógicas que les permiten interactuar. También, en ingeniería de software se propuso el análisis y diseño orientado a agentes, aunque no es muy distinto del orientado a objetos. Los agentes que nos incumben en este curso son los agentes adaptativos y autónomos. Aunque los conceptos que vimos en este vídeo tienen sus orígenes en la biología, podemos ver que pueden ser muy útiles en la ingeniería. La adaptación, anticipación, robustez, autonomía y la agencia son conceptos que son esenciales para poder construir sistemas inteligentes situados en entornos dinámicos.