1 / 10

Motivación

COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL. Motivación.

Download Presentation

Motivación

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL

  2. Motivación llevar a cabo el desarrollo de componentes de software para algoritmos genéticos, implica realizar el análisis, diseño e implementación de cada uno de ellos como un componente independiente dentro del sistema, fundamentado en un modelo de proceso para desarrollo de software basado en componentes, lo que implica realizar una adecuada abstracción, garantizando la identificación, interacción y especificacióninterna de cada componente. Orange es un framework de código abierto que cuenta con componentes de software para algoritmos de aprendizaje automático; sin embargo, Orange no cuenta con algoritmos de optimización. Goldenberry es un proyecto que busca implementar algoritmos de optimización basados en estimación de distribución (EDA) en Orange, como parte del proyecto Goldenberry buscamos aportar la implementación del componente de algoritmo genético, brindando al usuario final la posibilidad de utilizar varios métodos de selección, cruce y mutación o integrar métodos personalizados a través de código inyectado en tiempo de ejecución.

  3. Componentes Un componente es una unidad de composición de aplicaciones software, que posee un conjunto de interfaces y un conjunto de requisitos, y que ha de poder ser desarrollado, adquirido, incorporado al sistema y compuesto con otros componentes de forma independiente, en tiempo y espacio". El paradigma de programación por componentes, esta orientado a crear componentes de software, buscando establecer mecanismos estándar para la creación de los mismos, en este enfoque, los desarrolladores de software crean, utilizan y distribuyen componentes previamente elaborados y probados con el fin de implementar aplicaciones de forma mas rápida. Bajo esta perspectiva se hace necesario pensar en un esquema de adaptación o personalización del componente ver figura.

  4. Algoritmos Genéticos Los Algoritmos Genéticos nacen como una manera de solucionar problemas complejos de búsqueda y optimización, por medio del análisis de sistemas adaptativos en la naturaleza. El termino Algoritmo Genético se usa por el hecho de que estos simulan los procesos de la evolución darwiniana, por esto están clasificados como modelos computacionales inspirados en la evolución. Estos algoritmos codifican una posible solución a un problema especifico en un cromosoma simple como una estructura de datos y aplican los operadores de recombinación a estas estructuras con el fin de preservar la información critica.

  5. Función Objetivo por medio de esta se realiza la exploración sobre la población para determinar la aptitud de los individuos, basados en el valor asociado del cromosoma o "fitness" para ser solución al problema. Al realizar el planteamiento de esta se debe contemplar el criterio del problema de optimización(minimización o maximización de un objetivo) y las restricciones presentes en el problema de optimización. También se debe garantizar que no se produzca una convergencia rápida, haciendo que el algoritmo converja a óptimos locales, esta se denomina prematura, pero también en otros casos el problema es justo el opuesto, es decir se produce una convergencia lenta del algoritmo.

  6. Operadores genéticos Los operadores genéticos son fundamentales en el desarrollo del algoritmos genéticos, ya que por medio de estos se realiza la generación de una nueva población basada en los individuos mejores adaptados de la generación anterior. • Cruce • consiste en combinar dos cromosomas para producir un nuevo cromosoma. • Existen diferentes tipos de cruces, entre los que se encuentran: • Cruce de un punto: una sola posición se elige al azar de los padres y las partes de ambos se intercambian para formar dos hijos. • Cruce de dos puntos: El operador de cruce de dos puntos elige al azar dos puntos de cruce, intercambiando el segmento que cae entre estos dos puntos. • Cruce uniforme: Define un esquema en el cual cada gen tiene una probabilidad de ser incluido en el nuevo cromosoma, esto por medio de una "mascara de cruce"

  7. Operadores genéticos Mutación Por medio de la mutación se garantiza una diversidad genética, asegura a la población contra la fijación permanente en cualquier lugar particular del espacio de búsqueda. Consiste en la alteración uno o mas valores de genes en un cromosoma, esto puede dar lugar a valores de genes nuevos en la estructura del cromosoma. Con estos nuevos valores de genes, el algoritmo genético puede ser capaz de llegar a la mejor solución de manera mas eficiente.

  8. Maestro - Esclavo Paraleliza el paso de evaluación de la población en varios hilos de procesamiento, cuenta con un maestro encargado de dividir los individuos de la población asignando una fracción de esta a cada proceso esclavo (Ver Figura 5.1.1), el maestro, también es responsable por guardar los resultados de la evaluación.

  9. Orange Orange es un software basado en componentes que ofrece un conjunto de herramientas para aprendizaje computacional y minera de datos. Cuenta con una arquitectura multi-capa, proveyendo una interfaz grafica denominada canvaspara el uso y alambrado de componentes graficos (widgets), adicionalmente permite el acceso a dichas funcionalidades a través de invocaciones por código.

  10. ORANGE Orange apoya las diversas tareas de minera de datos que abarcan desde pre-procesamiento de datos para su análisis y evaluación hasta la visualización grafica de resultados, cuenta con técnicas para:

More Related