Issuu on Google+


¿Cómo?, ¿Por qué?, y ¿Para que? Autor: Enrique López Unefa - Lara Si bien hemos aceptamos que venimos del mono, Darwin no solo respondió la pregunta ¿Cómo llegamos a existir? sino también nos dio la única respuesta ¿Por qué existimos? y ¿Cual es el propósito de la vida? Son muchos los investigadores que a lo largo de la historia han utilizado la teoría darwiniana, para darle un sentido a la evolución natural como un proceso de aprendizaje. Por mencionar tenemos al filósofo Walter D, Cannon donde nos relata en su libro “La Sabiduría del Cuerpo” que el proceso evolutivo es algo similar al aprendizaje por ensayo y por error la cual suele manifestarse en los seres humanos. Gracias a esta interrogante nace lo que se conoce hoy como la computación evolutiva donde se describe como una rama de la inteligencia artificial que involucra problemas de optimización para resolver dificultades de clasificación, control, estrategias de juegos entre otros. Así como Walter Cannon muchos científicos han profundizado los estudiando de este paradigma de forma progresiva, hasta adaptarlas a

las computadoras para buscar soluciones optimas a problemas complejos de resolver, surgiendo una serie de métodos para el desarrollo de la misma. El algoritmo genético o evolutivo son programas computacionales cuyo fin es imitar el proceso de “selección natural” que, según la teoría de Darwin, rige el curso de la evolución. Una de sus aplicaciones más comunes las encontramos en las técnicas de autoadaptación la cual tiene como función primordial, hallar de qué parámetros depende el problema, codificarlos en un cromosoma, y aplicar los métodos de la evolución: selección y reproducción sexual con intercambio de información y alteraciones que generan diversidad. En la actualidad, el uso del cómputo evolutivo se ha vuelto muy popular como herramienta para dar soluciones a diferentes problemas del mundo real. En el ámbito de los problemas multi-objetivo, existen diversas propuestas basadas en cómputo evolutivo que son muy populares en la literatura especializada. Esta nueva especialidad de la informática ha logrado avances en distintos campos de la tecnología moderna, por ejemplo, un algoritmo genético desarrollado en la Universidad de Stanford se utilizó para el diseño de un jet supersónico, para algunas aplicaciones en ingeniería electrónica sobre “hardware indebido”, y en el diseño

de sistemas de potencia, con el cual se resolvieron problemas reales de la industria eléctrica. En fin durante los últimos años una gran parte de la investigación en esta área se ha concentrado en el desarrollo de mejoras al desempeño de los algoritmos genéticos, proponiendo nuevas técnicas de representación, selección y cruza, con resultados muy alentadores, determinándose estas en contraposición con el esquema estático tradicional.


Algoritmos genéticos y viajes espaciales Autor: Adrián León Un algoritmo genético podría permitir que una inteligencia artificial pueda evaluar un número elevadísimo de posibilidades y seleccionar la que mejor se adapte a un problema en particular. Según algunos ingenieros aeroespaciales, las sondas robóticas de la NASA podrían aprovechar dentro de pocos años estos sofisticados algoritmos matemáticos para encontrar las mejores rutas hacia planetas y cometas lejanos.

A la hora de dirigir una nave hay dos posibilidades: o se escribe un software que tenga en cuenta todas las alternativas que se presenten y un plan preelaborado para solucionarlas, o bien se crea una inteligencia artificial que pueda evaluar cada situación y obrar en consecuencia. El primer enfoque ha sido utilizado todos estos últimos años con buenos resultados pero, a medida que las misiones se complican cada vez más, ya sea porque intentamos alcanzar sitios que se encuentran en los

confines del sistema solar o porque los objetivos a cumplir requieren de una gran precisión en los tiempos de navegación o búsqueda de sitios con características particulares, queda de manifiesto que hace falta otra clase de sistema de control. Y ese nuevo control puede ser un algoritmo genético. Las misiones que se dirigen al espacio profundo, como la de las sondas Voyager, a menudo necesitan del impulso obtenido de los campos gravitacionales de los planetas que visitan. Este envión, obtenido al utilizar el campo gravitacional del planeta como una honda, les permite visitar otros cuerpos celestes, sin utilizar demasiado combustible. Pero “la programación de una trayectoria de este tipo con años de anticipación puede ser un problema muy difícil de resolver” dice Ian Carnelli, de la Agencia Espacial Europea. Hay que calcular el momento exacto del lanzamiento, tener en cuenta los vientos y el rendimiento no siempre constante de los cohetes impulsores, y lograr dejar la Tierra con la velocidad y rumbo exacto. Otros factores, como la presión de la radiación de las erupciones solares pueden perturbar el curso de la nave en el espacio. Si la sonda no está en la posición adecuada cuando se inicia una maniobra, puede terminar en cualquier parte. Carnelli y sus colegas Bernd Dachwald y Massimiliano

Vasile sugieren que una sonda robótica tranquilamente podría calcular todas estas cosas por sí misma utilizando un algoritmo genético. De hecho, ya se han puesto a trabajar y las simulaciones por ordenador demuestran que un sistema de este tipo puede ser muy eficaz para guiar una misión que visite a Venus, Mercurio, Júpiter y Plutón. Y no son los únicos que lo han intentado. También los ingenieros de la Universidad de Missouri han utilizado aproximaciones matemáticas llamadas “evolución diferencial”, que demostraron ser eficientes para encontrar los mejores caminos para las misiones robóticas del espacio profundo. “Esta clase de software ayuda a determinar la trayectoria, el tamaño de la nave, el combustible que se necesita, el tipo de vehículo de lanzamiento a utilizar, y cada uno de los demás detalles de la misión”, dijo Craig Kluever, un ingeniero aeroespacial de la Universidad de Missouri. Su algoritmo trata las posibles soluciones como individuos de una población, eligiendo unos pocos cada vez para “mutarlos” e intercambiar rasgos -tal como hace la naturaleza al trastear con nuestros genes- comprobando luego los trozos de “código mutante” con los resultados previos. Las mejores soluciones ganan y sobreviven a la siguiente generación, donde el proceso vuelve repetirse una y otra vez.


Algoritmos genéticos para comer olas Autor: Iribel Betancourt Parece que hoy el día viene a base de energías alternativas. Además de las nuevas ideas sobre biocombustibles, también nos enteramos de otro proyecto fascinante y que ya produce energía: utilizar algoritmos genéticos que emulan el comportamiento de las lampreas para obtener energía de las olas. La base física del proyecto lleva en marcha meses, y está construida por la empresa Ocean Power Delivery Ltd. Su nombre es Pelamis. Dicho mal y pronto, se trata de una enorme serpiente de metal de 140 metros de largo que flota en el mar y, al recibir las olas, se ondula como una cuerda y genera energía eléctrica mediante el movimiento de sus articulaciones.

El problema es que la rigidez de las articulaciones de la “anguila metálica” tiene que estar de acuerdo con la intensidad y el ritmo de las olas. Si no es así, no se produce la suficiente resonancia para almacenar la máxima energía. ¿La solución?

Modificar la rigidez de las articulaciones de acuerdo con el estado del mar. Para conseguir esto, los científicos de la Universidad de Edimburgo han dirigido su atención a alguien que sabe hacer esto muy bien – la lamprea. Este sinuoso pez se adapta a la corriente y cambia su modo de nadar a partir de sensores en su piel, que envían la información a una estructura neuronal especializada que se encuentra en su médula espinal. A su vez, ésta envía órdenes a los músculos para que cambien la forma en la que el pez reacciona a la corriente de agua. Los científicos han elaborado un programa de ordenador para controlar la rigidez de las articulaciones de Pelamis: el programa es una simulación del comportamiento neuronal de las lampreas. Además, este programa utiliza algoritmos genéticos para generar nuevos comportamientos. Si eres informático, cierra los ojos y no leas mi explicación para no rechinar los dientes: Básicamente, el programa crea copias de sí mismo muy parecidas al original y generadas aleatoriamente, “mutaciones” de sí mismo. Entonces, compara los resultados de estas copias con la versión anterior y se queda con las copias más eficaces. Una vez hecho esto, vuelve a empezar al proceso – cambia las copias por otras parecidas, etc. De esta manera el programa evoluciona hasta alcanzar una eficiencia superior a la original, sin intervención humana en el proceso. Éste es uno de los ejemplos

que demuestran hasta qué punto los algoritmos genéticos están finalmente siendo aceptados por la industria en general. En cualquier caso, la empresa que fabrica Pelamis no va a incluir aún este programa en su máquina – según ellos, sus propios ingenieros están estudiando otras posibilidades para aumentar el rendimiento. De cualquier manera, la máquina ya me parece impresionante: cada una genera 750 kw de energía, y ya hay tres funcionando en la costa portuguesa. Dentro de poco van a ponerse en funcionamiento cuatro más en Orkney, Escocia, que van a producir un total de 3 Mw. ¿Son este tipo de máquinas la solución a nuestros problemas energéticos? No: 3 Mw no es precisamente una central térmica o nuclear. Sin embargo, son 3 Mw producidos de manera regular y predecible (las “anguilas” se colocan en sitios en los que las olas son prácticamente constantes), sin ningún tipo de contaminación una vez están construidas, y funcionan en lugares en los que otras energías alternativas (como la solar) no tendrían mucho futuro.


El algoritmo del día del fin del mundo

divulgación y pasatiempos más famoso de todos los tiempos: John Horton Conway.

Autor: Enrique López El matemático británico John Horton Conway es considerado -con justicia- uno de los mayores creadores y divulgadores de pasatiempos matemáticos de todos los tiempos. Una de sus más interesantes contribuciones es el denominado “algoritmo del día del fin del mundo”, que permite determinar -mentalmente y en menos de 30 segundos- que día de la semana fue o será una fecha cualquiera del calendario Gregoriano. Hoy te mostramos, paso a paso, como realizar ese truco.

Es posible que alguna vez hayas visto en la tele algún “mentalista” adivinar que día de la semana corresponde a una fecha cualquiera, proporcionada por el conductor o alguna llamada telefónica. Seguramente habrás imaginado que detrás de todo el numerito montado por el “artista” había un algoritmo lo suficientemente simple como para ser “ejecutado” mentalmente, sin errores y en unos pocos segundos. Dicho sistema existe, y ha sido diseñado por uno de los matemáticos especializados en

Este británico, de 72 años, es una verdadera leyenda viviente, responsable de cientos de pasatiempos y acertijos sumamente interesantes. Uno de ellos es el que le permite “adivinar” que día de la semana fue (o será) una fecha cualquiera. Se dice que la clave de su ordenador se basa en este algoritmo: la máquina le muestra una fecha aleatoria y en menos de 30 segundos Conway debe responder que día de la semana fue. Obviamente, como protección dista mucho de ser segura, ya que cualquier instruso con un segundo ordenador y un software de calendario a mano podría responder a la pregunta planteada sin problemas, pero Conway lo utiliza como una forma de “mantener su mente despierta”. El matemático ha denominado a su sistema como “algoritmo del día del fin del mundo” (“Doomsday algorithm” o “Doomsday rule”).

Veamos en que consiste y cómo se usa.

¿Que día de la semana fue (o será) una fecha cualquiera? El funcionamiento del “Doomsday algorithm” se basa en la premisa de que para cualquier año existen una serie de fechas fáciles de recordar que “caen” siempre en el mismo día de la semana. Los años bisiestos -aquellos en que Febrero tiene 29 días- suponen una complicación adicional, ya que todas las fechas posteriores a ese día se “corren”, pero Conway evita este problema de la misma forma en que hacían los romanos: considerando el primer día del año al 1 de Marzo, y como “fin de año” el último día de febrero. Las fechas que debemos recordar son las siguientes: * El “0”de Marzo” (el último día de Febrero, en realidad), * El 4 de Abril, * 9 de Mayo * 6 de Junio * 11 de Julio * 8 de Agosto * 5 de Septiembre * 10 de Octubre * 7 de Noviembre * 12 de Diciembre * 2 de Enero (del año siguiente) * 13 de Febrero (del año siguiente)

¿Crees que es recordar esas

imposible fechas?

Pues te equivocas. Si miras con detenimiento la lista anterior, notarás que -dejando de lado los meses de Enero y Febrero, todas las correspondientes a meses pares tienen la forma “n/n” :4/4, 6/6, 8/8, 10/10 y


12/12. Y las que corresponden a los meses impares son 9/5, 11/7, 5/9 y 7/11. Estas cuatro pueden resultar un poco más difíciles, pero los anglosajones lo tienen fácil gracias al mnemónico "I work from 9 to 5 at the 7-11"( o "Trabajo de 9 a 5, en el Seven-Eleven", donde “SevenEleven” es una cadena de tiendas muy famosas en Estados Unidos). Como sea, esa frase nos permite recordad las cuatro fechas en cuestión. Y la dos restantes corresponden al día de la toma de Granada y la víspera de San Valentín, así que con poco trabajo lograrás memorizar la lista.

de siglo”, y se repite cada 400 años. Esos días son: * Siglo 1800-1899: Viernes * Siglo 1900-1999: Miércoles * Siglo 2000-2099: Martes * Siglo 2100-2199: Domingo Veamos ahora como calcular el “Doomsday” de un año cualquiera. Si llamamos “y” a los dos últimos dígitos del año en que estamos trabajando, el “Doomsday” correspondiente se calcula con la siguiente fórmula:

El “Doomsday” del año es igual a y+q+r+s

Esas fechas, como te adelantamos, caen todas en el mismo día de la semana, y Conway las denomina “Día del Juicio", de donde proviene el nombre del algoritmo. Determinando que día de la semana es el que corresponde para el año de la fecha que queremos “adivinar”, podemos calcular sin problemas el dato que estamos buscando. Para encontrar el “Doomsday” aprovechamos que el calendario Gregoriano (si, el mismo que usamos todos los días en nuestra vida cotidiana) se repite cada 400 años, o lo que es lo mismo, cada cuatro siglos. Para simplificar los cálculos, vamos a asumir que cada siglo comienza enlos años acabados en "00" y finalizan en los años acabados en "99". Conway llama al primer “Doomsday” de cada siglo “marcador

Antes que cierres el navegador espantado por semejante sarta de símbolos matemáticos, lee la siguiente explicación: El Doomsday se calcula sumando al marcador del siglo el resultado de la división (sin tener en cuenta los decimales) entre los dos últimos dígitos del año y 12, más el resto de dicha división, más ese mismo resto dividido 4. En otras palabras, tomamos “y”, lo dividimos por 12 para obtener un cociente (“g”) y un resto (“r”). A “r” lo dividimos por 4 y obtenemos un nuevo cociente (“s”). El “Doomsday” del año es igual a y+q+r+s. Si ese valor es mayor que 7 (algo muy probable) lo dividimos entre 7 y nos quedamos con el resto. ¡Es fácil!

Veamos un ejemplo. Supongamos que queremos calcular que día de la semana fue el 14 de Octubre de 1968. El marcador para ese siglo (19001999) es Miércoles, y el valor de “y” es 68, que al dividir entre 12 nos da 5, con resto 8. Al dividir el resto entre 4 nos da 2, así que el “Doomsday” es igual a 68 + 5 + 8 + 2 = 83. Dividimos por 7 y obtenemos el resto: 6. Como el marcador de ese siglo es Miércoles, el 10/10 nuestra referencia para ese mes, y 6 nuestro “Doomsday”, contamos hacia delante 6 días: Miércoles, Jueves, Viernes, Sábado, Domingo y Lunes. Es decir, el 14 de Octubre de 1968 es Lunes. ¿Interesante, verdad? Otro ejemplo rápido: hoy es 12 de Noviembre de 2010 ¿Que día de la semana es? Fácil: Marcador de siglo: Martes. “Doomsday” igual a 6 (te dejamos calcularlo a ti, recuerda que para 2010 “y” = 10). El 7/11 es nuestro marcador más cercano, y es Domingo (6 días contando a partir de Martes). Si el 7/11 fue Domingo, el 12/11 es Viernes. Sabiendo todo esto: ¿Te animas a calcular que día de la semana fue cuando naciste?


Algoritmo genetico o evolutivo como tencnica de la computacion evolutiva