jueves, 8 de agosto de 2013

Composición musical con Algoritmos Genéticos


La composición musical es un tema difícil de abordar desde los términos de la computación, desde los inicios de las artes se ha hecho una estigmatización de ellas con respecto al avance tecnológico que se vive en la actualidad. 



Se puede observar los resultados del uso de una de las técnicas meta heurísticas más conocidas y aplicadas actualmente en la computación evolutiva: los Algoritmos Genéticos, con el fin de percibir como emerge la música desde un proceso evolutivo, que podría tardar décadas, tal vez siglos, en mostrar resultados con un ciclo de evolución musical a nivel de composición humano.



Algoritmo de Locomoción Libre para Hexápodo

En los últimos años se han estudiado diversos diseños de robots caminantes, con el propósito de lograr nuevos tipos de negocios en aplicaciones de robots caminantes tanto comerciales, industriales, y de entretenimiento. Como ejemplo, uno de estos robots es el desarrollo en la Universidad Politécnica Salesiana (calle 2007) o el robot desarrollado por la empresa Sony Co. (Musuhiro, 2001). Las investigaciones de máquinas caminantes ayudan a explicar de cierta manera el comportamiento de la locomoción animal (Shaoping,2001), teniendo en cuenta que muchas de las características de la locomoción, para este tipo de máquinas caminantes, se basa en la observación de algunos animales



En aplicaciones donde la superficie de desplazamiento es totalmente irregular y desconocida, el uso de los robot móviles con ruedas presenta un sin número de problemas principalmente de estabilidad del vehículo y acceso a ciertas partes (Celaya,1998). Es en este tipo de aplicaciones donde el uso de robots caminantes presenta un mejor desempeño (Estremera y González, 2002)

lunes, 10 de junio de 2013

Dedos Roboticos


 Investigadores de la Escuela de Ingeniería Viterbi en la Universidad del Sur de California publicaron un estudio que muestra un robot que puede superar a los humanos en la identificación de texturas, con lo cual abren una gran gama de posibilidades de estudios para crear prótesis ortopédicas, robots de asistencia personal, etc.

El robot creado tiene en su mano un sensor llamado BioTac que tiene piel y un relleno líquido, el cual le permite tener las sensaciones de textura mucho mejor que una piel humana, con un sensor táctil que imita la punta del dedo, posee un nuevo algoritmo creado para tomar decisiones acerca de como conocer el mundo exterior, que imita el comportamiento humano.

El sensor táctil imita la vibración natural de la piel al hacer contacto con las texturas, al pasar el dedo por dichas texturas vibra de tal forma que le permite conocer de que material está hecho lo que está tocando.

El robot fue entrenado para reconocer 117 texturas distintas, pudiendo identificar la textura o material en el 95% de las veces.


Algoritmos genéticos permitirán a vehículos aéreos no tripulados cazar submarinos

Investigadores Chinos de la Marina revelaron como planean cazar submarinos utilizando vehículos aéreos no tripulados (VANTs) lanzados desde barcos, la inteligencia artificial para encontrar los submarinos se hará evolucionar.
El plan es elegir el mejor patrón de caza para un VANT utilizando un algoritmo genético – estos algoritmos (serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico, en este caso, la serie de pasos para localizar submarinos) son llamados así porque se inspiran en la evolución biológica y su base genética-molecular. Para este fin, se hacen evolucionar estos algoritmos mediante generar acciones aleatorias semejantes a las que actúan en la evolución biológica (mutaciones y recombinaciones genéticas), seguido de llevar a cabo una selección de acuerdo con algún criterio (en este caso el criterio siendo la efectividad al encontrar submarinos), en función del cual se decide que algoritmos son los más “adaptados”, estos sobreviven y vuelven a someterse al proceso de alteraciones y selección, y cuáles los menos aptos, los que son simplemente descartados.


La ruta evolucionada deberá hacer el uso más efectivo del combustible, preocuparse de amenazas aéreas y marinas, y trabajar con boyas con sonar, arrojadas.

viernes, 31 de mayo de 2013

Parámetros de los Algoritmos Genéticos

Parámetros de los Algoritmos Genéticos

Para la comprensión  de los algoritmos genéticos se devén tener en cuenta los siguientes parámetros:

Tamaño de la Población

Una cuestión que uno puede plantearse es la relacionada con el tamaño idóneo de la población. Parece intuitivo que las poblaciones pequeñas corren el riesgo de no cubrir adecuadamente el espacio de búsqueda, mientras que el trabajar con poblaciones de gran tamaño puede acarrear problemas relacionados con el excesivo costo computacional. Goldberg (1989) efectuó un estudio teórico, obteniendo como conclusión que el tamaño optimo de la población para ristras de longitud l, con codificación binaria, crece exponencialmente con el tamaño de la ristra. Este resultado traerá como consecuencia que la aplicabilidad de los Algoritmos Genéticos en problemas reales, será muy limitada, ya que resultaran no competitivos con otros métodos de optimización combinatoria. Alander (1992), basándose en evidencia empírica sugiere que un tamaño de población comprendida entre l y 2l es suficiente para atacar con éxito los problemas por los considerados.

Cruce

Es una estrategia de reproducción sexual .un a ves seleccionadas los individuos, estos son recombinados para producir la descendencia que se insertara en la siguiente generación.
El cruce basado en un punto: en el cual los dos individuos seleccionados para jugar el papel de padres, son recombinados por medio de la selección de un punto de corte, para posteriormente intercambiar las secciones que se encuentran a la derecha de dicho punto.
Se han investigado otros operadores de cruce, habitualmente teniendo en cuenta más de un punto de cruce. De Jong (1975) investigo el comportamiento del operador de cruce basado en múltiples puntos, concluyendo que el cruce basado en dos puntos, representaba una mejora mientras que añadir más puntos de cruce no beneficiaba el comportamiento del algoritmo. La ventaja de tener más de un punto de cruce radica en que el espacio de búsqueda puede ser explorado mas fácilmente, siendo la principal desventaja el hecho de aumentar la probabilidad de ruptura de buenos esquemas.


Mutación


La mutación se considera un operador básico, que proporciona un pequeño elemento de aleatoriedad en la vecindad (entorno) de los individuos de la población. Si bien se admite que el operador de cruce es el responsable de efectuar la búsqueda a lo largo del espacio de posibles soluciones, también parece desprenderse de los experimentos efectuados por varios investigadores que el operador de mutación va ganando en importancia a medida que la población de individuos va convergiendo (Davis, 1985).la probabilidad de mutación es muy baja, generalmente menor al 1 %. esto suele pasa divido a que los individuos suelen tener un ajuste menor después de mutados.

Ventajas y desventajas de los Algoritmos Genéticos.

Ventajas y desventajas de los Algoritmos Genéticos

Ventajas

• Una clara ventaja es que los algoritmos genéticos son intrínsicamente paralelos, es decir, operan de forma simultánea con varias soluciones, en vez de trabajar de forma secuencial como las técnicas tradicionales. Esto significa que mientras técnicas tradicionales sólo pueden explorar el espacio de soluciones hacia una solución en una dirección al mismo tiempo, y si la solución que descubren resulta subóptima, no se puede hacer otra cosa que abandonar todo el trabajo hecho y empezar de nuevo. Sin embargo, los algoritmos genéticos simplemente desechan esta solución subóptima y siguen por otros caminos. 

• Cuando se usan para problemas de optimización resultan menos afectados por los máximos locales (falsas soluciones) que las técnicas tradicionales. Muchos algoritmos de búsqueda pueden quedar atrapados en los óptimos locales, ejemplo: si llegan a lo alto de una colina del paisaje adaptativo, descubrirán que no existen soluciones mejores en las cercanías y concluirán que han alcanzado la mejor de todas, aunque existan picos más altos en algún otro lugar del mapa, situación que no sucede para algoritmos genéticos. Otra ventaja es su habilidad para manipular muchos parámetros  simultáneamente. Resulta interesante en caso de tener varios objetivos a resolver.

• No necesitan conocimientos específicos sobre el problema que intentan resolver. Realizan cambios aleatorios en sus soluciones candidatas y luego utilizan la función de aptitud para determinar si esos cambios producen una mejora o no.

• Resulta sumamente fácil ejecutarlos en las modernas arquitecturas masivas en paralelo.

• Usan operadores probabilísticos, en vez de los típicos operadores determinísticos de las otras técnicas.

Desventajas

• Definir una representación del problema. El lenguaje utilizado para especificar soluciones candidatas debe ser robusto, debe ser capaz de tolerar cambios aleatorios que no produzcan constantemente errores fatales o resultados sin sentido. Se puede solucionar mediante la definición de los individuos como listas de números donde cada número representa algún aspecto de la solución candidata.

• Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en cierta medida de los parámetros que se utilicen tamaño de la población, número de generaciones…


• Pueden converger prematuramente debido a una serie de problemas. Si un individuo que es más apto que la mayoría de sus competidores emerge muy pronto en el curso de la ejecución, se puede reproducir tan abundantemente que merme la diversidad de la población demasiado pronto, provocando que el algoritmo converja hacia el óptimo local que representa ese individuo, en lugar de rastrear el paisaje adaptativo lo bastante a fondo para encontrar el óptimo global. Esto es un problema especialmente común en las poblaciones pequeñas, donde incluso una variación aleatoria en el ritmo de reproducción puede provocar que un genotipo se haga dominante sobre los otros.

jueves, 23 de mayo de 2013

Esquema Algoritmos Genéticos

Esquema básico de un Algoritmo Genético

En la naturaleza todo el proceso de evolución biológica se hace de forma natural  pero para aplicar el algoritmo genético al campo de la resolución de problemas habrá que seguir una serie de pasos. Una premisa es conseguir que el tamaño de la población sea lo suficientemente grande para garantizar la diversidad de soluciones.
Se aconseja que la población sea generada de forma aleatoria para obtener
dicha diversidad. En caso de que la población no sea generada de forma aleatoria
habrá que tener en cuenta que se garantice una cierta diversidad en la población
generada. Los pasos básicos de un algoritmo genético son:

• Evaluar la puntuación de cada uno de los cromosomas generados.

• Permitir la reproducción de los cromosomas siendo los más aptos los que
tengan más probabilidad de reproducirse.

• Con cierta probabilidad de mutación, mutar un gen del nuevo individuo
generado.

• Organizar la nueva población.

Estos pasos se repetirán hasta que se de una condición de terminación.
Se puede fijar un número máximo de iteraciones antes de finalizar el
algoritmo genético o detenerlo cuando no se produzcan más cambios en la
población (convergencia del algoritmo). Esta última opción suele ser la más habitual.


Veamos el esquema general de un algoritmo genético simple: