Mostrando entradas con la etiqueta Archivo Algoritmos Genéticos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Archivo Algoritmos Genéticos. Mostrar todas las entradas

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:




miércoles, 15 de mayo de 2013

Historia de los Algoritmos Genéticos

Su Historia

John Henry Holland, conocido como el padre del Algoritmo Genético, en los años 50 logro tener acceso a los primeros ordenadores, en los cuales pudo representar algunas de sus ideas, pero en ese momento no pudo propagar sus ideas debido a que el ambiente intelectual no era propicio. Pero a principios de los 60, en la universidad de Michigan (donde impartía un curso titulado Teoría de sistemas adaptativos), dentro del grupo Loguic of Computers, sus ideas comenzaron a desarrollarse, y con la ayuda del el libro ¨la teoría genética de la selección natural¨ logro obtener los medios para comprensión de la naturaleza.
Por tanto, cuando Holland se enfrentó a los algoritmos genéticos, los objetivos de su investigación fueron dos:
·Imitar los procesos adaptativos de los sistemas naturales, y
·Diseñar sistemas artificiales (normalmente programas) que retengan los mecanismos importantes de los sistemas naturales.
Con el paso de los años conoció a David Goldberg (era un ingeniero industrial) el cual se convirtió en su estudiante, que trato de aplicar los algoritmos genéticos a problemas industriales, aunque pensaba que el problema era excesivamente complicado Goldberg consiguió lo que quería, escribiendo un algoritmo genético en un ordenador personal Apple II, pon lo cual convirtieron a los algoritmos genéticos en un campo con base.
Durante los años 70, con el fin de abstraer y explicar los procesos de adaptación en sistemas naturales, así como diseñar un sistema artificial que por medio de software emulara con los mecanismos de los sistemas naturales “algoritmos genéticos”. A partir de ese momento surge un importante grupo de investigadores que se dedicó a lo que hoy día constituye el campo de desarrollo y aplicación de los algoritmos genéticos.

martes, 14 de mayo de 2013

Definición "Algoritmos Genéticos"



Definición "Algoritmos Genéticos"

Es necesario advertir que con el fin de que todo lector pueda comprender los Algoritmos Genéticos, partiremos hablando de estos desde sus definiciones más básicas para aclarar todas las dudas y entregar ideas claras sobre este tema.

Se define algoritmo como una serie de procesos que se desarrollan de forma estructurada u organizada, para dar soluciones a problemas presentados. 

El término “genética” viene del griego y significa “raza, generación”. Es el campo de la biología que busca indagar y comprender la herencia biológica que se transmite de generación en generación, investigando sobre las características  y aspectos fundamentales en este proceso de padre a hijo. 

Se puede plantear una definición dada por Goldberg  de la siguiente forma  "Los algoritmos genéticos son algoritmos  de búsqueda basados en la mecánica de selección natural y de la genética natural. Combinan la supervivencia del más apto entre estructuras de secuencias con un intercambio de información estructurado, aunque aleatorizado, para construir así un algoritmo de búsqueda que tenga algo de las genialidades de las búsquedas humanas”.