Está en la página 1de 14

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS Y SISTEMAS

INTELIGENCIA ARTIFICIAL INTEGRANTES: Vilma Hernndez Salgado. Jennifer Chavarra Galeano Luis Freddy Marenco.

TEMA DE EXPOCISION Desarrollo de software basados en A.G.

Definicin
Los Algoritmos Genticos son mtodos adaptativos que pueden usarse para resolver problemas de bsqueda y optimizacin. Estn basados en el proceso gentico de los organismos vivos. Por imitacin de este proceso, los Algoritmos Genticos son capaces de ir creando soluciones para problemas del mundo real. La evolucin de dichas soluciones hacia valores ptimos del problema depende en buena medida de una adecuada codificacin de las mismas. Un algoritmo gentico consiste en una funcin matemtica o una rutina de software que toma como entradas a los ejemplares y retorna como salidas cuales de ellos deben generar descendencia para la nueva generacin.

Limitaciones
El poder de los Algoritmos Genticos proviene del hecho de que se trata de una tcnica robusta, y pueden tratar con xito una gran variedad de problemas provenientes de diferentes reas, incluyendo aquellos en los que otros mtodos encuentran dificultades. Si bien no se garantiza que el Algoritmo Gentico encuentre la solucin ptima, del problema, existe evidencia emprica de que se encuentran soluciones de un nivel aceptable. En el caso de que existan tcnicas especializadas para resolver un determinado problema, lo ms probable es que superen al Algoritmo Gentico, tanto en rapidez como en eficacia. El gran campo de aplicacin de los Algoritmos Genticos se relaciona con aquellos problemas para los cuales no existen tcnicas especializadas. Incluso en el caso en que dichas tcnicas existan, y funcionen bien, pueden efectuarse mejoras de las mismas hibridndolas con los Algoritmos Genticos.

Como Saber si es Posible usar un Algoritmo Gentico


La aplicacin ms comn de los algoritmos genticos ha sido la solucin de problemas de optimizacin, en donde han mostrado ser muy eficientes y confiables pero se recomienda en general tomar en cuenta las siguientes caractersticas del mismo antes de intentar usarla: Su espacio de bsqueda y sus posibles soluciones debe estar delimitado dentro de un cierto rango. Debe poderse definir una funcin de aptitud que nos indique qu tan buena o mala es una cierta respuesta. Las soluciones deben codificarse de una forma que resulte relativamente fcil de implementar en la computadora.

Funcin de aptitud
Es la funcin objetivo de nuestro problema de optimizacin o de bsqueda El algoritmo gentico no solo maximiza o minimizacin ( la minimizacin puede realizarse fcilmente utilizando el recproco de la funcin maximizante) tambin es capas de realizar bsquedas. Una caracterstica que debe tener esta funcin es que debe ser capaz de "castigar" a las malas soluciones, y de "premiar" a las buenas, de forma que sean estas ltimas las que se propaguen con mayor rapidez. Es decir debe tener la capacidad de separar las buenas y malas respuestas. La codificacin ms comn de las respuestas es a travs de cadenas binarias, aunque se han utilizado tambin nmeros reales y letras. El primero de estos esquemas ha gozado de mucha popularidad debido a que es el que propuso originalmente Holland(pionero en la investigacin y desarrollo de los AG), y adems porque resulta muy sencillo de implementar.

Funcionamiento de un algoritmo gentico bsico


Inicializacin: Se genera aleatoriamente la poblacin inicial, que est constituida por un conjunto de variables las cuales representan las posibles soluciones del problema. En caso de no hacerlo aleatoriamente, es importante garantizar que dentro de la poblacin inicial, se tenga la diversidad estructural de estas soluciones para tener una representacin de la mayor parte de la poblacin posible o al menos evitar la convergencia prematura. Evaluacin: A cada uno de las variables de esta poblacin se aplicar la funcin de aptitud para saber qu tan "buena" es la solucin que se est codificando. Condicin de trmino: El AG se deber detener cuando se alcance la solucin ptima, pero sta generalmente se desconoce, por lo que se deben utilizar otros criterios de detencin. Normalmente se usan dos criterios: correr el AG un nmero mximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la poblacin.

Mientras no se cumpla la condicin de trmino se hace lo siguiente: Seleccin Despus de saber la aptitud de cada variable se procede a elegir la variable que sern cruzados en la siguiente generacin. Las variables con mejor aptitud tienen mayor probabilidad de ser seleccionados. Recombinacin La recombinacin es el principal operador gentico, representa la reproduccin sexual, opera sobre dos variables a la vez para generar dos descendientes donde se combinan las caractersticas de ambas variables padres.

Mutacin modifica al azar parte de las variables de los individuos, y permite alcanzar zonas del espacio de bsqueda que no estaban cubiertas por los individuos de la poblacin actual.
Reemplazo una vez aplicados los operadores genticos, se seleccionan los mejores individuos para conformar la poblacin de la generacin siguiente.

Ambientes de Programacin de los A.G.


En la actualidad existe un gran nmero de ambientes de programacin disponibles en el mercado para experimentar con los algoritmos genticos. Se pueden distinguir tres ambientes los cuales son: Sistemas Orientados a las aplicaciones: Son esencialmente "cajas negras" para el usuario, pues ocultan todos los detalles de implementacin. Sus usuarios normalmente nefitos en el rea los utilizan para un cierto rango de aplicaciones diversas, pero no se interesan en conocer la forma en qu stos operan. Ejemplos de este tipo de sistemas son: Evolver (Axcelis, Inc.) y XpertRule GenAsys (Attar Software). Sistemas Orientados a los algoritmos: Soportan algoritmos genticos especficos, y suelen subdividirse en: Sistemas de uso especfico : Contienen un solo algoritmo gentico, y se dirigen a una aplicacin en particular. Algunos ejemplos son: Escapade (Frank Hoffmeister), GAGA (Jon Crowcroft) y Genesis(John Grefenstette).

Cajas de Herramientas : Proporcionan muchas herramientas de programacin, algoritmos y operadores genticos que pueden aplicarse en una enorme gama de problemas.

Normalmente se subdividen en:


Sistemas Educativos : Ayudan a los usuarios novatos a introducirse de forma amigable a los conceptos de los algoritmos genticos. GA Workbench (Mark Hughes) es un buen ejemplo de este tipo de ambiente.

Sistemas de Propsito General : Proporcionan un conjunto de herramientas para programar cualquier algoritmo gentico y desarrollar cualquier aplicacin. Tal vez el sistema ms conocido de este tipo es Splicer (NASA).

Lenguajes para desarrollar un AG


Los algoritmos genticos pueden ser desarrollados en cualquier lenguaje de programacin ya que los AG son mtodos sistematicos para la resolucin (bsqueda, maximizacin o minimizacin) de un problema, a continuacin mencionaremos algunos lenguaje que son usados para hacer aplicaciones AG: PERL Java Pascal C C++ Tcl / Tk PHP Lisp C# COBOL Fortran

IDES para desarrollar un AG


Entre los IDES para desarrollar un AG podemos elegir cualquiera que sea de nuestra comodidad entre los mas populares en la actualidad tenemos: Visual basic Netbeans Eclipse Vim Emac Xcode Turbo Pascal THINK Pascal THINK C

Gestores de bases de datos para AG


Es el mismo caso que el de los IDES se puede utilizar cualquier gestor siempre y cuando este sea compatible con el lenguaje en que esta programado el algoritmo gentico 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

GRACIAS POR SU ATENCION

10/31/2013

También podría gustarte