viernes, 10 de abril de 2009

Algoritmos Culturales

La cultura es el conjunto de todas las formas y expresiones de una sociedad determinada. Como tal incluye costumbres, prácticas, códigos, normas y reglas de la manera de ser, vestimenta, religión, rituales, normas de comportamiento y sistemas de creencias. Desde otro punto de vista se puede decir que la cultura es toda la información y habilidades que posee el ser humano y algunos animales. El concepto de cultura es fundamental para las disciplinas que se encargan del estudio de la sociedad, en especial para la antropología y la sociología.

La evolución biológica, mediante la selección natural, apunta hacia el logro de mayores niveles de adaptación de los seres vivientes. En el caso del hombre, en una determinada época, aparece el cerebro, como un órgano apto para el proceso de información. A partir de ahí comienza el proceso de adaptación cultural al orden natural. Puede decirse que el principio de complejidad creciente es el que reúne tanto a la evolución biológica como a la evolución cultural. También ha sido denominado como Ley de complejidad-conciencia. Esta tendencia implica la existencia de un sentido de la evolución, de una finalidad objetiva e implícita del universo. También puede establecerse el sentido de la historia de la humanidad como una serie de intentos por lograr mayores niveles de adaptación al orden natural. Julian Huxley describe la situación del hombre “como si hubiese sido designado, de repente, director general de la más grande de todas las empresas, la empresa de la evolución”. Así como el medio presiona a la vida hacia una mayor adaptación, el propio orden natural presiona a la humanidad, a través del sufrimiento, a una mayor adaptación cultural al mismo.

La computación evolutiva está basada en las ideas de la selección natural, y su aplicación en un ambiente artificial. La selección natural es vista como un proceso de optimización, en el que paulatinamente los individuos de la población van mejorando para adaptarse a su medio. Para la computación evolutiva, un individuo es una solución potencial a un problema, codificada de acuerdo con el funcionamiento del algoritmo; y el medio donde se desenvuelve lo componen la función objetivo y las restricciones. La computación evolutiva involucra métodos que son poblacionales, lo que significa que trabajan con varias soluciones a la vez, y no con una, como lo hacen la mayoría de las heurísticas, con lo que evitan quedar atrapados en óptimos locales. Durante la ejecución de un algoritmo evolutivo, a la población se le aplican algunos operadores probabilísticos, con lo que se obtienen nuevas soluciones, las cuales se conservan o se descartan mediante un mecanismo de selección. Este proceso se repite por un número determinado de iteraciones, que en el contexto de la computación evolutiva se denominan generaciones. El número de generaciones puede ser dado por el usuario o definido por el propio algoritmo. Los operadores probabilísticos más comunes son el apareamiento y la mutación. En el apareamiento se hace una mezcla de dos o más individuos, llamados padres, para obtener uno o más individuos nuevos, llamados hijos. La mutación es una alteración aleatoria sobre un individuo.

Los algoritmos evolutivos fueron ideados, y son ampliamente aplicados en problemas con espacios de búsqueda muy grandes. Es común que los espacios de búsqueda sean demasiado grandes para los métodos de optimización tradicionales, debido a que no se tiene mayor conocimiento del problema, o el conocimiento es muy difícil de codificar dentro del método que se trata de aplicar. Cuando se diseña una heurística de búsqueda, se debe elegir entre flexibilidad y velocidad. Las técnicas que favorecen la velocidad son los sistemas basados en conocimiento, mientras que en el extremo de la flexibilidad se encuentra la búsqueda exhaustiva. La computación evolutiva ha prestado atención a la flexibilidad, resolviendo una gran variedad de problemas difíciles, pero añadiendo una pequeña cantidad de conocimiento del dominio: comúnmente el único conocimiento que se tiene es que se pueden comparar dos soluciones y decir cuál es mejor.

Entre los primeros intentos por añadir conocimiento del dominio, en computación evolutiva, está el algoritmo llamado “EnGENEous” de Powell y sus colegas, escrito el año 1989, en el que se acopla un sistema experto a un algoritmo genético. Powell y sus colegas continuaron con la integración de sistemas expertos y algoritmos genéticos en el método llamado “Interdigitación”, en el que también incorporaron técnicas de optimización numérica para aproximar mejor el óptimo. Los investigadores Louis y Rawlins, el año 1993, propusieron incorporar conocimiento del dominio en varios problemas de diseño, entre ellos el diseño de circuitos lógicos y el diseño de armaduras. Primero la adición del conocimiento fue solamente en los operadores de recombinación, y posteriormente el conocimiento se incorporó en la iniciación de la población, en la codificación de los individuos y en los operadores evolutivos. Robert Reynolds, el año 1994, propuso un tipo de algoritmos evolutivos, en los que el conocimiento del dominio no se integra a priori a la técnica, sino que se extrae durante el mismo proceso de búsqueda. Estos son los denominados algoritmos culturales.

Los algoritmos culturales fueron desarrollados como un complemento a la metáfora que usan los algoritmos de computación evolutiva, que se habían concentrado en conceptos genéticos, y de selección natural. Los algoritmos culturales están basados en las teorías de algunos sociólogos y arqueólogos, que han tratado de modelar la evolución cultural. Tales investigadores indican que la evolución cultural puede ser vista como un proceso de herencia en dos niveles: el nivel micro-evolutivo, que consiste en el material genético heredado por los padres a sus descendientes, y el nivel macro-evolutivo, que es el conocimiento adquirido por los individuos a través de las generaciones, y que una vez codificado y almacenado, sirve para guiar el comportamiento de los individuos que pertenecen a una población. La cultura puede verse como un conjunto de fenómenos ideológicos compartidos por una población, pero por medio de los cuales, un individuo puede interpretar sus experiencias y decidir su comportamiento. En estos modelos se aprecia muy claramente la parte del sistema que es compartida por la población: el conocimiento, recabado por miembros de la sociedad, pero codificado de tal forma que sea potencialmente accesible a todos. De igual manera se distingue la parte del sistema que es individual: la interpretación de ese conocimiento codificado en forma de un conjunto de símbolos, y los comportamientos que trae como consecuencia su asimilación; también la parte individual incluye las experiencias vividas, y la forma en que éstas pueden aportar algo al conocimiento compartido. Reynolds intenta captar ese fenómeno de herencia doble en los algoritmos culturales. El objetivo es incrementar las tasas de aprendizaje o convergencia, y de esta manera, que el sistema responda mejor a un gran número de problemas.

Los algoritmos culturales operan en dos espacios. Primero, el espacio de la población, como en todos los métodos de computación evolutiva, en el que se tiene un conjunto de individuos. Cada individuo tiene un conjunto de características independientes de los otros, con las que es posible determinar su adaptabilidad. A través del tiempo, tales individuos podrán ser reemplazados por algunos de sus descendientes, obtenidos a partir de un conjunto de operadores aplicados a la población. El segundo espacio es el de creencias, donde se almacenarán los conocimientos que han adquirido los individuos en generaciones anteriores. La información contenida en este espacio debe ser accesible a cualquier individuo, quien puede utilizarla para modificar su comportamiento. Para unir ambos espacios se establece un protocolo de comunicación que dicta las reglas del tipo de información que se debe intercambiar entre los espacios.

Los problemas aptos para el uso de algoritmos culturales son aquellos que contienen una cantidad significativa de conocimiento del dominio, por decir para una optimización con restricciones. Los sistemas complejos donde la adaptación pueda darse en distintos niveles y velocidades, tanto en el espacio de la población como en el espacio de creencias. El conocimiento en diferentes formas. Cuando la solución del problema requiere múltiples poblaciones y espacios de creencias que interactúen y finalmente los problemas estructurados de manera jerárquica.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Diciembre 29 de 2008

No hay comentarios: