La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Algoritmo Genético para la solución del problema SAT René Clemente Juárez Angel Felipe Lara Valladares Junio 2012."— Transcripción de la presentación:

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

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

3 El problema de Satisfacibilidad

4 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

5 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” (  ):

6 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.

7 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 4 3 1 -3 4 0 -2 3 -4 0 1 2 -4 0 (x 1 ⋁ ¬x 3 ⋁ x 4 ) ∧ (¬x 2 ⋁ x 3 ⋁ ¬x 4 ) ∧ (x 1 ⋁ x 2 ⋁ ¬x 4 )

8 Algoritmos Genéticos

9 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

10 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

11 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.

12 Objetivo

13 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.

14 Diseño e implementación

15 Perfil de ingreso Diagrama del AG

16 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

17 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 5 01101 10011 00101 00110

18 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 5 01101 (¬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 )

19 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

20 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

21 Esquemas de paralelización Esquema 1Esquema 2

22 Pruebas y análisis de resultados

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

24 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

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

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

27 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.

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

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

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

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

32 Conclusiones

33 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


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

Presentaciones similares


Anuncios Google