SlideShare una empresa de Scribd logo
UNIVERSIDAD NACIONAL DE INGENIERIA
     FACULTAD DE CIENCIAS Y SISTEMAS




            INTELIGENCIA ARTIFICIAL

INTEGRANTES:

• Vilma Hernández Salgado.
• Jennifer Chavarría Galeano
•Luis Freddy Marenco.
TEMA DE EXPOCISION

Desarrollo de software basados en A.G.
Definición

Los Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolver
problemas de búsqueda y optimización. Están basados en el proceso genético de
los organismos vivos.

Por imitación de este proceso, los Algoritmos Genéticos son capaces de ir creando
soluciones para problemas del mundo real. La evolución de dichas soluciones hacia
valores óptimos del problema depende en buena medida de una adecuada
codificación de las mismas.

Un algoritmo genético consiste en una función matemática 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 generación.
Limitaciones

El poder de los Algoritmos Genéticos proviene del hecho de que se trata de una
técnica robusta, y pueden tratar con éxito una gran variedad de problemas
provenientes de diferentes áreas, incluyendo aquellos en los que otros métodos
encuentran dificultades. Si bien no se garantiza que el Algoritmo Genético encuentre
la solución óptima, del problema, existe evidencia empírica de que se encuentran
soluciones de un nivel aceptable.

En el caso de que existan técnicas especializadas para resolver un determinado
problema, lo más probable es que superen al Algoritmo Genético, tanto en rapidez
como en eficacia.

El gran campo de aplicación de los Algoritmos Genéticos se relaciona con aquellos
problemas para los cuales no existen técnicas especializadas. Incluso en el caso en
que dichas técnicas existan, y funcionen bien, pueden efectuarse mejoras de las
mismas hibridándolas con los Algoritmos Genéticos.
Como Saber si es Posible usar un Algoritmo Genético

La aplicación más común de los algoritmos genéticos ha sido la solución de
problemas de optimización, en donde han mostrado ser muy eficientes y confiables
pero se recomienda en general tomar en cuenta las siguientes características del
mismo antes de intentar usarla:

•Su espacio de búsqueda y sus posibles soluciones debe estar delimitado dentro de
un cierto rango.

•Debe poderse definir una función de aptitud que nos indique qué tan buena o mala es
una cierta respuesta.

•Las soluciones deben codificarse de una forma que resulte relativamente fácil de
implementar en la computadora.
Función de aptitud
Es la función objetivo de nuestro problema de optimización o de búsqueda El
algoritmo genético no solo maximiza o minimización ( la minimización puede realizarse
fácilmente utilizando el recíproco de la función maximizante) también es capas de
realizar búsquedas.

Una característica que debe tener esta función 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 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 estos
esquemas ha gozado de mucha popularidad debido a que es el que propuso
originalmente Holland(pionero en la investigación y desarrollo de los AG), y además
porque resulta muy sencillo de implementar.
Funcionamiento de un algoritmo genético básico

Inicialización: Se genera aleatoriamente la población 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 población inicial, se tenga la diversidad estructural de estas soluciones
para tener una representación de la mayor parte de la población posible o al menos
evitar la convergencia prematura.

Evaluación: A cada uno de las variables de esta población se aplicará la función de
aptitud 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 otros
criterios de detención. Normalmente se usan dos criterios: correr el AG un número
máximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la
población.
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 la
variable que serán cruzados en la siguiente generación. Las variables con mejor
aptitud tienen mayor probabilidad de ser seleccionados.

Recombinación La recombinación es el principal operador genético, representa la
reproducción sexual, opera sobre dos variables a la vez para generar dos
descendientes donde se combinan las características de ambas variables padres.

Mutación modifica al azar parte de las variables de los individuos, y permite alcanzar
zonas del espacio de búsqueda que no estaban cubiertas por los individuos de la
población actual.

Reemplazo una vez aplicados los operadores genéticos, se seleccionan los mejores
individuos para conformar la población de la generación siguiente.
Ambientes de Programación de los A.G.

En la actualidad existe un gran número de ambientes de programación disponibles en
el mercado para experimentar con los algoritmos genéticos. 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 implementación. Sus usuarios
normalmente neófitos 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 genéticos específicos, y
suelen subdividirse en:

•Sistemas de uso específico : Contienen un solo algoritmo genético, y se dirigen a
una aplicación en particular. Algunos ejemplos son: Escapade (Frank
Hoffmeister), GAGA (Jon Crowcroft) y Genesis(John Grefenstette).
Cajas de Herramientas : Proporcionan muchas herramientas de programación,
algoritmos y operadores genéticos 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 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 para
programar cualquier algoritmo genético y desarrollar cualquier aplicación. Tal vez el
sistema más conocido de este tipo es Splicer (NASA).
Lenguajes para desarrollar un AG

Los algoritmos genéticos pueden ser desarrollados en cualquier lenguaje de
programació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 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
gené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
GRACIAS POR SU ATENCION




    12/16/2011

Más contenido relacionado

La actualidad más candente

Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
nenyta08
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
Juank Grifin
 

La actualidad más candente (20)

Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Requerimientos norma ieee830
Requerimientos norma ieee830Requerimientos norma ieee830
Requerimientos norma ieee830
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Arquitectura Web y Aplicaciones web (Infografia)
Arquitectura Web y Aplicaciones web (Infografia)Arquitectura Web y Aplicaciones web (Infografia)
Arquitectura Web y Aplicaciones web (Infografia)
 
Formato ieee830(srs lleno)
Formato ieee830(srs lleno)Formato ieee830(srs lleno)
Formato ieee830(srs lleno)
 
8.realizacion de pruebas
8.realizacion de pruebas8.realizacion de pruebas
8.realizacion de pruebas
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Algoritmos evolutivos
Algoritmos evolutivosAlgoritmos evolutivos
Algoritmos evolutivos
 
Charla evento TestingUY 2017 - ISO/IEC/IEEE 29119 Modelo de Procesos de Softw...
Charla evento TestingUY 2017 - ISO/IEC/IEEE 29119 Modelo de Procesos de Softw...Charla evento TestingUY 2017 - ISO/IEC/IEEE 29119 Modelo de Procesos de Softw...
Charla evento TestingUY 2017 - ISO/IEC/IEEE 29119 Modelo de Procesos de Softw...
 
CompactacióN De Memoria Fer
CompactacióN De Memoria FerCompactacióN De Memoria Fer
CompactacióN De Memoria Fer
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Tipos de Software
Tipos de SoftwareTipos de Software
Tipos de Software
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
 
CMMI y PMI en la Gestión de Requerimientos
CMMI y PMI en la Gestión de RequerimientosCMMI y PMI en la Gestión de Requerimientos
CMMI y PMI en la Gestión de Requerimientos
 
Ejemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdenciesEjemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdencies
 
El DBA y sus funciones
El DBA y sus funcionesEl DBA y sus funciones
El DBA y sus funciones
 
DIAGRAMAS ORIENTADOS A OBJETOS
DIAGRAMAS ORIENTADOS A OBJETOSDIAGRAMAS ORIENTADOS A OBJETOS
DIAGRAMAS ORIENTADOS A OBJETOS
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 

Similar a Desarollo de sofware con algoritmos genéticos

Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
YAn_dy
 

Similar a Desarollo de sofware con algoritmos genéticos (20)

Ag (2005 verano)
Ag (2005 verano)Ag (2005 verano)
Ag (2005 verano)
 
Trabajo algoritmo genetico uba
Trabajo algoritmo genetico uba Trabajo algoritmo genetico uba
Trabajo algoritmo genetico uba
 
Algoritmos genéticos 2 s lun 30 sep-13
Algoritmos genéticos 2 s lun 30 sep-13Algoritmos genéticos 2 s lun 30 sep-13
Algoritmos genéticos 2 s lun 30 sep-13
 
Algoritmo Genético
Algoritmo GenéticoAlgoritmo Genético
Algoritmo Genético
 
Algoritmo Genético
Algoritmo GenéticoAlgoritmo Genético
Algoritmo Genético
 
ALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptxALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptx
 
Alejandra Quintana
Alejandra Quintana Alejandra Quintana
Alejandra Quintana
 
Jgap algritmos geneticosss
Jgap  algritmos geneticosssJgap  algritmos geneticosss
Jgap algritmos geneticosss
 
Xpin algoritmos genéticos
Xpin   algoritmos genéticosXpin   algoritmos genéticos
Xpin algoritmos genéticos
 
ALGORITMO GENETICO - I.pptx
ALGORITMO GENETICO - I.pptxALGORITMO GENETICO - I.pptx
ALGORITMO GENETICO - I.pptx
 
Agente inteligente
Agente inteligenteAgente inteligente
Agente inteligente
 
Algoritmos Genéticos
Algoritmos GenéticosAlgoritmos Genéticos
Algoritmos Genéticos
 
Analisis y diseño de algoritmo
Analisis y diseño de algoritmoAnalisis y diseño de algoritmo
Analisis y diseño de algoritmo
 
ALGORITMOS GENETICOS - BUSQUEDA TABÚ
ALGORITMOS GENETICOS - BUSQUEDA TABÚALGORITMOS GENETICOS - BUSQUEDA TABÚ
ALGORITMOS GENETICOS - BUSQUEDA TABÚ
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
Tutorial jgap
Tutorial jgapTutorial jgap
Tutorial jgap
 
Inteligencia Artificial (Sistemas Expertos y Redes Neuronales)
Inteligencia Artificial (Sistemas Expertos y Redes Neuronales)Inteligencia Artificial (Sistemas Expertos y Redes Neuronales)
Inteligencia Artificial (Sistemas Expertos y Redes Neuronales)
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
Algoritmos Genéticos (1).pptx
Algoritmos Genéticos (1).pptxAlgoritmos Genéticos (1).pptx
Algoritmos Genéticos (1).pptx
 
020 algoritmos2
020 algoritmos2020 algoritmos2
020 algoritmos2
 

Más de Facultad de Ciencias y Sistemas

Más de Facultad de Ciencias y Sistemas (20)

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
Ejercicios HTML 5
 
CSS3
CSS3CSS3
CSS3
 
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
 
06 clases-en-c
06 clases-en-c06 clases-en-c
06 clases-en-c
 
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
 

Último

Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
sandradianelly
 

Último (20)

Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
 
Proyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistasProyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistas
 
Proceso de gestión de obras - Aquí tu Remodelación
Proceso de gestión de obras - Aquí tu RemodelaciónProceso de gestión de obras - Aquí tu Remodelación
Proceso de gestión de obras - Aquí tu Remodelación
 
Presentación Pedagoía medieval para exposición en clases
Presentación Pedagoía medieval para exposición en clasesPresentación Pedagoía medieval para exposición en clases
Presentación Pedagoía medieval para exposición en clases
 
Sesión de clase: Luz desde el santuario.pdf
Sesión de clase: Luz desde el santuario.pdfSesión de clase: Luz desde el santuario.pdf
Sesión de clase: Luz desde el santuario.pdf
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
PLAN DE TRABAJO CONCURSO NACIONAL CREA Y EMPRENDE.docx
PLAN DE TRABAJO CONCURSO NACIONAL CREA Y EMPRENDE.docxPLAN DE TRABAJO CONCURSO NACIONAL CREA Y EMPRENDE.docx
PLAN DE TRABAJO CONCURSO NACIONAL CREA Y EMPRENDE.docx
 
5.Deicticos Uno_Enfermería_EspanolAcademico
5.Deicticos Uno_Enfermería_EspanolAcademico5.Deicticos Uno_Enfermería_EspanolAcademico
5.Deicticos Uno_Enfermería_EspanolAcademico
 
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
 
Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitales
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacionPROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
 
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATRBIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
 
Power Point: Luz desde el santuario.pptx
Power Point: Luz desde el santuario.pptxPower Point: Luz desde el santuario.pptx
Power Point: Luz desde el santuario.pptx
 
Evaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la OrganizaciónEvaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la Organización
 
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docxENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
 
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptxMódulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 

Desarollo de sofware con algoritmos genéticos

  • 1. UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS Y SISTEMAS INTELIGENCIA ARTIFICIAL INTEGRANTES: • Vilma Hernández Salgado. • Jennifer Chavarría Galeano •Luis Freddy Marenco.
  • 2. TEMA DE EXPOCISION Desarrollo de software basados en A.G.
  • 3. Definición Los Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. Están basados en el proceso genético de los organismos vivos. Por imitación de este proceso, los Algoritmos Genéticos son capaces de ir creando soluciones para problemas del mundo real. La evolución de dichas soluciones hacia valores óptimos del problema depende en buena medida de una adecuada codificación de las mismas. Un algoritmo genético consiste en una función matemática 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 generación.
  • 4. Limitaciones El poder de los Algoritmos Genéticos proviene del hecho de que se trata de una técnica robusta, y pueden tratar con éxito una gran variedad de problemas provenientes de diferentes áreas, incluyendo aquellos en los que otros métodos encuentran dificultades. Si bien no se garantiza que el Algoritmo Genético encuentre la solución óptima, del problema, existe evidencia empírica de que se encuentran soluciones de un nivel aceptable. En el caso de que existan técnicas especializadas para resolver un determinado problema, lo más probable es que superen al Algoritmo Genético, tanto en rapidez como en eficacia. El gran campo de aplicación de los Algoritmos Genéticos se relaciona con aquellos problemas para los cuales no existen técnicas especializadas. Incluso en el caso en que dichas técnicas existan, y funcionen bien, pueden efectuarse mejoras de las mismas hibridándolas con los Algoritmos Genéticos.
  • 5. Como Saber si es Posible usar un Algoritmo Genético La aplicación más común de los algoritmos genéticos ha sido la solución de problemas de optimización, en donde han mostrado ser muy eficientes y confiables pero se recomienda en general tomar en cuenta las siguientes características del mismo antes de intentar usarla: •Su espacio de búsqueda y sus posibles soluciones debe estar delimitado dentro de un cierto rango. •Debe poderse definir una función de aptitud que nos indique qué tan buena o mala es una cierta respuesta. •Las soluciones deben codificarse de una forma que resulte relativamente fácil de implementar en la computadora.
  • 6. Función de aptitud Es la función objetivo de nuestro problema de optimización o de búsqueda El algoritmo genético no solo maximiza o minimización ( la minimización puede realizarse fácilmente utilizando el recíproco de la función maximizante) también es capas de realizar búsquedas. Una característica que debe tener esta función 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 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 estos esquemas ha gozado de mucha popularidad debido a que es el que propuso originalmente Holland(pionero en la investigación y desarrollo de los AG), y además porque resulta muy sencillo de implementar.
  • 7. Funcionamiento de un algoritmo genético básico Inicialización: Se genera aleatoriamente la población 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 población inicial, se tenga la diversidad estructural de estas soluciones para tener una representación de la mayor parte de la población posible o al menos evitar la convergencia prematura. Evaluación: A cada uno de las variables de esta población se aplicará la función de aptitud 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 otros criterios de detención. Normalmente se usan dos criterios: correr el AG un número máximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la población.
  • 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 la variable que serán cruzados en la siguiente generación. Las variables con mejor aptitud tienen mayor probabilidad de ser seleccionados. Recombinación La recombinación es el principal operador genético, representa la reproducción sexual, opera sobre dos variables a la vez para generar dos descendientes donde se combinan las características de ambas variables padres. Mutación modifica al azar parte de las variables de los individuos, y permite alcanzar zonas del espacio de búsqueda que no estaban cubiertas por los individuos de la población actual. Reemplazo una vez aplicados los operadores genéticos, se seleccionan los mejores individuos para conformar la población de la generación siguiente.
  • 9. Ambientes de Programación de los A.G. En la actualidad existe un gran número de ambientes de programación disponibles en el mercado para experimentar con los algoritmos genéticos. 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 implementación. Sus usuarios normalmente neófitos 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 genéticos específicos, y suelen subdividirse en: •Sistemas de uso específico : Contienen un solo algoritmo genético, y se dirigen a una aplicación en particular. Algunos ejemplos son: Escapade (Frank Hoffmeister), GAGA (Jon Crowcroft) y Genesis(John Grefenstette).
  • 10. Cajas de Herramientas : Proporcionan muchas herramientas de programación, algoritmos y operadores genéticos 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 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 para programar cualquier algoritmo genético y desarrollar cualquier aplicación. Tal vez el sistema más conocido de este tipo es Splicer (NASA).
  • 11. Lenguajes para desarrollar un AG Los algoritmos genéticos pueden ser desarrollados en cualquier lenguaje de programació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 mencionaremos algunos lenguaje que son usados para hacer aplicaciones AG: PERL Java Pascal C C++ Tcl / Tk PHP Lisp C# COBOL Fortran
  • 12. 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
  • 13. 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 gené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. GRACIAS POR SU ATENCION 12/16/2011