0
UNIVERSIDAD NACIONAL DE INGENIERIA     FACULTAD DE CIENCIAS Y SISTEMAS            INTELIGENCIA ARTIFICIALINTEGRANTES:• Vil...
TEMA DE EXPOCISIONDesarrollo de software basados en A.G.
DefiniciónLos Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolverproblemas de búsqueda y optimiza...
LimitacionesEl poder de los Algoritmos Genéticos proviene del hecho de que se trata de unatécnica robusta, y pueden tratar...
Como Saber si es Posible usar un Algoritmo GenéticoLa aplicación más común de los algoritmos genéticos ha sido la solución...
Función de aptitudEs la función objetivo de nuestro problema de optimización o de búsqueda Elalgoritmo genético no solo ma...
Funcionamiento de un algoritmo genético básicoInicialización: Se genera aleatoriamente la población inicial, que está cons...
Mientras no se cumpla la condición de término se hace lo siguiente:Selección Después de saber la aptitud de cada variable ...
Ambientes de Programación de los A.G.En la actualidad existe un gran número de ambientes de programación disponibles enel ...
Cajas de Herramientas : Proporcionan muchas herramientas de programación,algoritmos y operadores genéticos que pueden apli...
Lenguajes para desarrollar un AGLos algoritmos genéticos pueden ser desarrollados en cualquier lenguaje deprogramación ya ...
IDES para desarrollar un AGEntre los IDES para desarrollar un AG podemos elegir cualquiera que sea de nuestracomodidad ent...
Gestores de bases de datos para AGEs el mismo caso que el de los IDES se puede utilizar cualquier gestor siempre ycuando e...
GRACIAS POR SU ATENCION    12/16/2011
Upcoming SlideShare
Loading in...5
×

Desarollo de sofware con algoritmos genéticos

1,652

Published on

Desarollo de sofware con algoritmos genéticos

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,652
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
45
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Desarollo de sofware con algoritmos genéticos"

  1. 1. UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS Y SISTEMAS INTELIGENCIA ARTIFICIALINTEGRANTES:• Vilma Hernández Salgado.• Jennifer Chavarría Galeano•Luis Freddy Marenco.
  2. 2. TEMA DE EXPOCISIONDesarrollo de software basados en A.G.
  3. 3. DefiniciónLos Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolverproblemas de búsqueda y optimización. Están basados en el proceso genético delos organismos vivos.Por imitación de este proceso, los Algoritmos Genéticos son capaces de ir creandosoluciones para problemas del mundo real. La evolución de dichas soluciones haciavalores óptimos del problema depende en buena medida de una adecuadacodificación de las mismas.Un algoritmo genético consiste en una función matemática o una rutina de softwareque toma como entradas a los ejemplares y retorna como salidas cuales de ellosdeben generar descendencia para la nueva generación.
  4. 4. LimitacionesEl poder de los Algoritmos Genéticos proviene del hecho de que se trata de unatécnica robusta, y pueden tratar con éxito una gran variedad de problemasprovenientes de diferentes áreas, incluyendo aquellos en los que otros métodosencuentran dificultades. Si bien no se garantiza que el Algoritmo Genético encuentrela solución óptima, del problema, existe evidencia empírica de que se encuentransoluciones de un nivel aceptable.En el caso de que existan técnicas especializadas para resolver un determinadoproblema, lo más probable es que superen al Algoritmo Genético, tanto en rapidezcomo en eficacia.El gran campo de aplicación de los Algoritmos Genéticos se relaciona con aquellosproblemas para los cuales no existen técnicas especializadas. Incluso en el caso enque dichas técnicas existan, y funcionen bien, pueden efectuarse mejoras de lasmismas hibridándolas con los Algoritmos Genéticos.
  5. 5. Como Saber si es Posible usar un Algoritmo GenéticoLa aplicación más común de los algoritmos genéticos ha sido la solución deproblemas de optimización, en donde han mostrado ser muy eficientes y confiablespero se recomienda en general tomar en cuenta las siguientes características delmismo antes de intentar usarla:•Su espacio de búsqueda y sus posibles soluciones debe estar delimitado dentro deun cierto rango.•Debe poderse definir una función de aptitud que nos indique qué tan buena o mala esuna cierta respuesta.•Las soluciones deben codificarse de una forma que resulte relativamente fácil deimplementar en la computadora.
  6. 6. Función de aptitudEs la función objetivo de nuestro problema de optimización o de búsqueda Elalgoritmo genético no solo maximiza o minimización ( la minimización puede realizarsefácilmente utilizando el recíproco de la función maximizante) también es capas derealizar búsquedas.Una característica que debe tener esta función es que debe ser capaz de "castigar" alas malas soluciones, y de "premiar" a las buenas, de forma que sean estas últimaslas que se propaguen con mayor rapidez. Es decir debe tener la capacidad de separarlas buenas y malas respuestas.La codificación más común de las respuestas es a través de cadenas binarias,aunque se han utilizado también números reales y letras. El primero de estosesquemas ha gozado de mucha popularidad debido a que es el que propusooriginalmente Holland(pionero en la investigación y desarrollo de los AG), y ademásporque resulta muy sencillo de implementar.
  7. 7. Funcionamiento de un algoritmo genético básicoInicialización: Se genera aleatoriamente la población inicial, que está constituida porun conjunto de variables las cuales representan las posibles soluciones delproblema. En caso de no hacerlo aleatoriamente, es importante garantizar quedentro de la población inicial, se tenga la diversidad estructural de estas solucionespara tener una representación de la mayor parte de la población posible o al menosevitar la convergencia prematura.Evaluación: A cada uno de las variables de esta población se aplicará la función deaptitud para saber qué tan "buena" es la solución que se está codificando.Condición de término: El AG se deberá detener cuando se alcance la soluciónóptima, pero ésta generalmente se desconoce, por lo que se deben utilizar otroscriterios de detención. Normalmente se usan dos criterios: correr el AG un númeromáximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en lapoblación.
  8. 8. Mientras no se cumpla la condición de término se hace lo siguiente:Selección Después de saber la aptitud de cada variable se procede a elegir lavariable que serán cruzados en la siguiente generación. Las variables con mejoraptitud tienen mayor probabilidad de ser seleccionados.Recombinación La recombinación es el principal operador genético, representa lareproducción sexual, opera sobre dos variables a la vez para generar dosdescendientes donde se combinan las características de ambas variables padres.Mutación modifica al azar parte de las variables de los individuos, y permite alcanzarzonas del espacio de búsqueda que no estaban cubiertas por los individuos de lapoblación actual.Reemplazo una vez aplicados los operadores genéticos, se seleccionan los mejoresindividuos para conformar la población de la generación siguiente.
  9. 9. Ambientes de Programación de los A.G.En la actualidad existe un gran número de ambientes de programación disponibles enel mercado para experimentar con los algoritmos genéticos. Se pueden distinguir tresambientes los cuales son:Sistemas Orientados a las aplicaciones: Son esencialmente "cajas negras" para elusuario, pues ocultan todos los detalles de implementación. Sus usuariosnormalmente neófitos en el área los utilizan para un cierto rango de aplicacionesdiversas, pero no se interesan en conocer la forma en qué éstos operan. Ejemplos deeste tipo de sistemas son: Evolver (Axcelis, Inc.) y XpertRule GenAsys (AttarSoftware).Sistemas Orientados a los algoritmos: Soportan algoritmos genéticos específicos, ysuelen subdividirse en:•Sistemas de uso específico : Contienen un solo algoritmo genético, y se dirigen auna aplicación en particular. Algunos ejemplos son: Escapade (FrankHoffmeister), GAGA (Jon Crowcroft) y Genesis(John Grefenstette).
  10. 10. Cajas de Herramientas : Proporcionan muchas herramientas de programación,algoritmos y operadores genéticos que pueden aplicarse en una enorme gama deproblemas.Normalmente se subdividen en:•Sistemas Educativos : Ayudan a los usuarios novatos a introducirse de formaamigable a los conceptos de los algoritmos genéticos. GA Workbench (Mark Hughes)es un buen ejemplo de este tipo de ambiente.•Sistemas de Propósito General : Proporcionan un conjunto de herramientas paraprogramar cualquier algoritmo genético y desarrollar cualquier aplicación. Tal vez elsistema más conocido de este tipo es Splicer (NASA).
  11. 11. Lenguajes para desarrollar un AGLos algoritmos genéticos pueden ser desarrollados en cualquier lenguaje deprogramación ya que los AG son métodos sistematicos para la resolución (búsqueda,maximización o minimización) de un problema, a continuación mencionaremosalgunos lenguaje que son usados para hacer aplicaciones AG:PERLJavaPascalCC++Tcl / TkPHPLispC#COBOLFortran
  12. 12. IDES para desarrollar un AGEntre los IDES para desarrollar un AG podemos elegir cualquiera que sea de nuestracomodidad entre los mas populares en la actualidad tenemos:Visual basicNetbeansEclipseVimEmacXcodeTurbo PascalTHINK PascalTHINK C
  13. 13. Gestores de bases de datos para AGEs el mismo caso que el de los IDES se puede utilizar cualquier gestor siempre ycuando este sea compatible con el lenguaje en que esta programado el algoritmogenético den los mas actuales tenemos:PostgreSQLFirebirdSQLiteDB2 E xpress-CApache DerbyMariaDBMysqlDrizzleMicrosoft AccessMicrosoft SQL ServerOpen AccessOracleParadoxPervasiveSQL
  14. 14. GRACIAS POR SU ATENCION 12/16/2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×