Algoritmo Genético para la solución del problema SAT René Clemente Juárez Angel Felipe Lara Valladares Junio 2012.

Slides:



Advertisements
Presentaciones similares
Diseño y análisis de algoritmos
Advertisements

Algoritmo GENETICO.
Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
Introducción a los Algoritmos
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Unidad 4. Estructuras de selección
1.5 Algoritmos, Pseudocódigo y Diagramas de Flujo
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
“Impulsando la Sociedad
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
Clase # 8: Análisis Conformacional (II)
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Curso de Programación I Parte III
EXCEL – FUNCIONES LOGICAS
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Introducción a la Computación
Definición Los Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. los Algoritmos Genéticos.
“En lugar de envidiar la naturaleza debemos emularla” Holland
Sistemas Inteligentes Algoritmos Geneticos
Optimización matemática Algoritmos Genéticos – Parte 2 Por: Antonio H
Algoritmos Genéticos.
Aplicaciones de Algoritmos Genéticos
Algoritmos Genéticos (AG) Integrantes: Rubén Levineri Miguel Rozas Juan Yañez Faltan autores y bibliografía.
ESTRUCTURAS DE CONTROL
 La resolución de problemas algorítmicos no solamente implica que los informáticos sepan programar sino necesitan de otras habilidades como tener una.
Programación de Computadores
Alumno: Jorge Ahumada A. Profesor Guía : Nelson Baloian T.
Academia de Informática
Programación en Matlab

ESTRUCTURA DE DATOS ESD-243
(Organización y Manejo de Archivos)
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Introducción a la Ingeniería de Sistemas
PENSAMIENTO ANALÍTICO SISTÉMICO DAISY KATERINE RODRÍGUEZ DURÁN
Algoritmos genéticos Introducción Esquema básico Codificación
Sistema De Apoyo A La Asignación De Horarios De Clases Para El Colegio Piamarta UCINFSantiago, 18 de Noviembre 2006 Darío Díaz Videla iii. Teoría Enfoques.
Problema de inclusión en una Curva Digital Por Orellana Muñoz, Alfonso Paz Vicente, Rafael Pérez Medina, Gerardo Rodríguez Naranjo.
Una introducción a la computación evolutiva
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Trabajo de Graduación “SISTEMA DE PLANEACIÓN AVANZADO (APS) PARA DETERMINAR LA UBICACIÓN ÓPTIMA DE CAPACITORES EN UNA RED DE DISTRIBUCIÓN DE ENERGÍA ELÉCTRICA.
Propuesta del algoritmo
Mary C. Jarur M. ww.udec.cl/~mjarur
Programación de Computadores (IWI-131)
Asignación de Horarios
Algorit moAlgorit mo An á lisisAn á lisis Argumen toArgumen to Asignación Asociación Cometar ioCometar io Compilación Constan teConstan te Definición.
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
Elaboración de algoritmos usando lógica de programación
ALGORITMOS GENETICOS.
Sistemas Basados en Reglas
Presente un cuestionario con los aspectos mas importantes sobre los
M.S.C. Ivette Hernández Dávila
Taller: Inteligencia Computacional
TEMA: DISEÑO DE LA SOLUCION INTREGRANTES DE EQUIPO: ERIKA CRUZ MARTINEZ RODOLFO LOPEZ ANOTA LUIS ARMANDO LIÑA QUECHA JOSE FRANCISCO MEZO VARELA LUIS ENRIQUE.
Prueba de escritorio Computación y Sistemas de Información.
Estructuras de Decisión
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
Ing. Uziel Quiroz Castañeda Blanca Esthela Carranza Ortega 8º Semestre Junio/2013.
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
Programación I Prof. Carolina Cols. Algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema.
Grid Initiatives for e-Science virtual communities in Europe and Latin America Algoritmo Genético para la solución del problema SAT.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
ALGORITMOS Asignatura: Informática. Algoritmos Conjunto de instrucciones ordenadas de forma lógica y precisa, con un inicio y fin que permite resolver.
Ing. Barros Rodriguez D. Ronald Introducción a la Programacón.
Transcripción de la presentación:

Algoritmo Genético para la solución del problema SAT René Clemente Juárez Angel Felipe Lara Valladares Junio 2012

El problema de Satisfacibilidad (SAT). Algoritmos genéticos. Objetivo Diseño e implementación Pruebas y análisis de resultados. Conclusiones Contenido

El problema de Satisfacibilidad

La Satisfacibilidad (SAT) es un problema fundamental en Lógica Matemática y Teoría de la Computación. SAT tiene múltiples aplicaciones en diversos campos. 10 El problema SAT

SAT: Definición Tres componentes: Un conjunto de n variables: x 1, x 2, …, x n Un conjunto de literales, una literal es una variable ( Q = x ) o una negación de una variable ( Q = x ). Un conjunto de m cláusulas distintas: C 1, C 2, …, C m.Cada cláusula se forma por la combinación de literales conectadas a través de la cláusula “o” (  ):

FNC: Forma Normal Conjuntiva El problema SAT normalmente se representa en Forma Normal Conjuntiva (FNC). La cual consiste de un conjunto de cláusulas unidas mediante conectores lógicos “y” (  ): Ejemplo: El objetivo del problema SAT consiste en encontrar alguna asignación de valores de verdad que logren satisfacer el máximo número de cláusulas en Forma Normal Conjuntiva.

Formato de archivo de entrada.cnf Las instancias del problema de Satisfacibilidad, normalmente se almacenan en archivos de texto que siguen la siguiente representación: c Ejemplo de un archivo CNF c Este es un comentario p cnf (x 1 ⋁ ¬x 3 ⋁ x 4 ) ∧ (¬x 2 ⋁ x 3 ⋁ ¬x 4 ) ∧ (x 1 ⋁ x 2 ⋁ ¬x 4 )

Algoritmos Genéticos

Los Algoritmos Genéticos (AG) fueron propuestos en 1975 por John Holland. Los AG son algoritmos de optimización, es decir, tratan de encontrar la mejor solución a un problema dado entre un conjunto de soluciones posibles. Los AG son métodos adaptivos que pueden usarse para resolver problemas de búsqueda y optimización. Algoritmos genéticos

Pseudocódigo de un AG general Inicio AG t  0 Inicializa P(t) evalúa P(t) Mientras (no se cumpla condición de paro) entonces t  t + 1 selecciona P(t) a partir de P(t - l) cruce sobre P(t) mutación sobre P(t) evalúa P(t) Fin Mientras Fin AG

Representación. Tamaño de la población. Población inicial. Función objetivo. Criterio de selección. Operadores genéticos Elementos de un AG Forma de representar una solución del problema como un cromosoma. Cantidad de individuos (soluciones) en la población (conjunto de soluciones. Forma en que se genera la primera generación de individuos. Número de cláusulas satisfechas por una solución (asignación de valores de verdad). Forma en que se eligen los padres de un nuevo individuo. Forma en que se “combinan” los padres para obtener nuevos individuos: cruzamiento y mutación.

Objetivo

Perfil de ingreso Objetivo Desarrollar un algoritmo genético paralelo que se ejecute en un ambiente de cluster simulado o real para la resolución del problema SAT.

Diseño e implementación

Perfil de ingreso Diagrama del AG

Se utiliza la representación binaria. Esta representación utiliza un vector cuyo tamaño es el número de variables. Cada elemento del vector representa una variable, que puede tomar solo dos valores: falso (0) o verdadero (1 ). Representación de un invididuo x 1 x 2 x 3 x 4 x 5

La población inicial se genera aleatoriamente y se almacena en una matriz que contiene el conjunto de individuos. Población inicial x 1 x 2 x 3 x 4 x

Ejemplo: Individuo: Cláusulas: Núm. de cláusulas satisfechas: 4 Se encarga de contabilizar el número de cláusulas satisfechas. Evaluación x 1 x 2 x 3 x 4 x (¬x 1 ⋁ x 2 ⋁ x 4 ) ∧ (x 3 ⋁ x 4 ⋁ ¬x 5 ) ∧ (¬x 5 ⋁ ¬x 3 ⋁ ¬x 1 ) ∧ (¬x 2 ⋁ x 1 ⋁ ¬x 5 ) ∧ (x 3 ⋁ ¬x 1 ⋁ ¬x 2 )

Se utiliza la selección por ruleta. Para ello se usa un generador de números aleatorios que determina cuáles elementos constituirán la base de la siguiente generación. Selección

La función de cruzamiento permite generar un número aleatorio entre 1 y el número de variables – 2. Este número permite crear un punto de cruce entre los dos individuos seleccionados para el cruzamiento. Cruzamiento

Esquemas de paralelización Esquema 1Esquema 2

Pruebas y análisis de resultados

Perfil de ingreso Pruebas y análisis de resultados Diagrama de pruebas del AG:

Pruebas tamaño de población: Dos veces el tamaño del individuo (número de variables). Tres veces el tamaño del individuo (número de variables). Cuatro veces el tamaño del individuo (número de variables). Pruebas cruzamiento y mutación. Cruzamiento 100%. Mutación 100%. Cruzamiento 100% y Mutación 20% Perfil de ingreso Pruebas y análisis de resultados

Perfil de ingreso Pruebas y análisis de resultados PRUEBAS AGP con esquema 1: Ejecución en 3 procesadores.

Perfil de ingreso Pruebas y análisis de resultados Ejecución dentro del cluster en una repetición de acuerdo al diagrama de pruebas.

Perfil de ingreso Pruebas y análisis de resultados PRUEBAS AGP con esquema 2: Ejecución en 5 procesadores. La ventaja que obtenemos al ejecutar el AG es que se ejecuta cuatro veces en el mismo tiempo que se ejecutará uno fuera de un cluster.

Perfil de ingreso Pruebas y análisis de resultados Pruebas de tamaño de población: Archivos con 20 variables.

Perfil de ingreso Pruebas y análisis de resultados Pruebas de tamaño de población: Archivos con 100 variables.

Perfil de ingreso Pruebas y análisis de resultados Pruebas de cruzamiento y mutación: Archivos con 50 variables.

Perfil de ingreso Pruebas y análisis de resultados Pruebas de cruzamiento y mutación: Archivos con 100 variables.

Conclusiones

El análisis léxico del AG permite identificar los componentes del problema. Se utilizo un AG para la resolución de SAT ya que son algoritmos fáciles de paralelizar. Para establecer el tamaño de población es de manera fija, este tamaño de población se obtiene utilizando el número de variables multiplicado por 2, 3 y 4. Como se puede observar los mejores resultados obtenidos por operadores fueron cuando se realiza cruzamiento al 100% y mutación al 20% con un tamaño de población por 2, por otra parte los mejores resultados en las pruebas realizadas por el tamaño de población fueron cuando el tamaño de población es el número de variables por 4 pero esto implica un mayor tiempo de resolución del problema. Perfil de ingreso Conclusiones