Relajación y procesamiento híbrido de restricciones Diferentes técnicas de relajación Algunas técnicas híbridas populares.

Slides:



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

TÉCNICA DE DISEÑO BACKTRACKING
Inteligencia Artificial Búsqueda informada y exploración
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Tema 1: Programación dinámica
Son problemas secuenciales: El problema se puede dividir en etapas. Definición: Método que permite determinar de manera eficiente las decisiones que optimizan.
Análisis Matemático III
PROGRAMACION DE ESTRUCTURAS DE DATOS
Algoritmos de Búsqueda
Estructuras de control
Solución de problemas por búsqueda inteligente
Sistemas de ecuaciones
Sistemas de Ecuaciones lineales
Métodos de Mejoría o de Busca Local Gladys Maquera I COPIOS Lima, 03 al 05 de noviembre de 2009.
SATISFACCION DE RESTRICCIONES Sección 1-3
Complejidad Problemas NP-Completos
El algoritmo primal-dual
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Módulo 8 Ecuaciones Lineales.
Relajación y Procesamiento híbrido de restricciones Diferentes técnicas de relajación Algunas técnicas híbridas populares.
Matemáticas para Ciencias de la Computación MCC3182
EXPANSIÓN DE SISTEMAS ELÉCTRICOS DE Universidad Tecnológica de Pereira
Clase 2, Parte 2: Métodos Tradicionales de Optimización y Búesqueda
Técnicas Algorítmicas
Temas importantes para el desarrollo de la segunda parte del TPE

Universidad de los Andes-CODENSA
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Optimización Combinatoria usando Algoritmos Evolucionistas Problemas de Optimización. Idea: Encontrar una solución "factible" y "óptima" de acuerdo a algún.
Universidad de los Andes-CODENSA
Resolución de Problemas Método Simplex
Recuperaci ó n Basada en Contenido M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción
Single-Source Shortest Paths “Camino más corto desde/hacia una fuente”
Estructura de Datos y Algoritmos

Diseño y análisis de algoritmos
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
BUSQUEDA SECUENCIAL Consiste en revisar elemento tras elemento hasta encontrar el dato buscado, o llegar al final del conjunto de datos disponibles. La.
Diseño y análisis de algoritmos
Diplomado en Logística de Negocios
DEFINICIONES Sea (P) el siguiente problema de programación lineal:
Diseño y análisis de algoritmos
(Organización y Manejo de Archivos)
Programación lineal: 1- Introducción: dualidad, definiciones, holguras
Investigación de Operaciones (IO)
Solución de sistemas de ecuaciones
METODOS DE BUSQUEDA INFORMADOS CAPITULO 5
SEGURIDAD EN SISTEMAS DE POTENCIA
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Sincronización de Procesos
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Inteligencia Artificial
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/08/2006.
Control de Flujo.
5. El Método Simplex En lo que sigue consideremos un problema de programación lineal en su forma estándar ³ =
DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso Modelos y Técnicas para Problemas de Satisfacción de Restricciones.
Parte I. Estructuras de Datos.
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 2: Divide y Vencerás Unidad 1: Nociones básicas.
Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)
COMPUTO III Ing. Jimmy Ojeda Arnica.
Reglas Básicas del Álgebra de Boole
Sistemas Basados en Reglas
Lección 11 Capítulo 5 Sec. 5.5 Solución de Ecuaciones Racionales
METODO DE SUMA Y RESTA. INDICE.
Matemáticas II. Profesor: Ing. Yadhira M. Rangel Carrillo.
Ecuaciones y Sistemas de Ecuaciones Lineales
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
Planeación En planeación, dada una descripción del mundo, una situación inicial y una situación deseada, la meta es hallar una secuencia de acciones.
La Programación Lineal es un procedimiento o algoritmo matemático mediante el cual se resuelve un problema indeterminado, formulado a través de ecuaciones.
Ing. Haydeli del Rosario Roa Lopez
Transcripción de la presentación:

Relajación y procesamiento híbrido de restricciones Diferentes técnicas de relajación Algunas técnicas híbridas populares

Relajación Consistencia de nodo Forward check Lookahead check AC1AC3 Consistencia de camino

3 Ejemplo  4 familias A, B, C y D viven al lado una de otra en casas numeradas 1, 2, 3 y 4.  D vive en una casa con numero menor que B,  B vive al lado de A en una casa con número mayor,  Hay al menos una casa entre B y C,  D no vive en la casa con número 2,  C no vive en la casa con número 4.  ¿Qué familia vive en cúal casa ?  El problema de las 4 casas:

4 Representación:  Las variables: A, B, C y D  Los dominios: d A = d B = d C = d D = { 1, 2, 3, 4}  Restricciones:  unaria:  r(C) = C  4  r(D) = D  2  binaria:  r(A,B) = B = A + 1  r(B,D) = D  B  r(B,C) = |B - C|  1  r(A,C) = A  C  r(A,D) = A  D  r(C,D) = C  D

5 Consistencia de nodo:  Las restricciones unarias son eliminadas por medio de reducciones del dominio:  O: 1-consistencia  (sólo 1 variable involucrada)  r(C) = C  4  r(D) = D  2 d C = { 1, 2, 3} d D = { 1, 3, 4}

6 La red de restricciones: AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 1, 2, 3, 4} { 1, 2, 3}{ 1, 3, 4}

Relajación débil Forward Check Lookahead Check

8 Forward Check:  Fijamos el valor de 1 variable zi: zi = a  Forward Check(zi) =  activar cada restricc. r(zi, zj) o r(zj, zi) una vez para remover los valores inconsistentes para zi = a AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D {2} { 1, 2, 3, 4} { 1, 2, 3}{ 1, 3, 4}  Nuestro ejemplo: asumir A = 2 :

9 Forward check: consistencia débil  Requiere que 1 variable ya haya obtenido un valor AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D {2} { 1, 2, 3, 4} { 1, 2, 3}{ 1, 3, 4}  No produce un estado consistente  no se realiza toda la relajación

Look ahead check Un método de relajación más potente (débil)

11 Look ahead Check:  Look Ahead Check =  activar cada restricción r(zi, zj) exactamente una vez para remover los valores inconsistentes de los dominios Di y Dj.  Nuestro ejemplo: AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 1, 2, 3, 4} { 1, 2, 3}{ 1, 3, 4} { 1, 2, 3, 4}

12 Ejemplo (continuac.): AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 2, 3, 4} { 1, 2, 3}{ 1, 3, 4} { 1, 2, 3}  Las otras 3 restricciones:

13 Look ahead resultados finales: AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 3, 4} { 1, 2}{ 1, 3} { 1, 2, 3}  Tampoco produce un estado consistente  no se ha realizado toda la relajación  Los resultados pueden depender del orden en que se procesan las restricciones.  Remover primero algunos valores puede permitir encontrar otras inconsistencias

Técnicas de consistencia de arco Tecnicas que reducen dominios a un estado que es consistente para cada restricción (o arco). También llamadas: técnicas de 2-consistencia

15 AC 1 (Mackworth) AC1: Repeat Look ahead check; Look ahead check; If algún valor fue removido de If algún valor fue removido de algún dominio then algún dominio then Deletion_occurred := true Until (not Deletion_occurred)  Fuerza Look ahead para alcanzar un estado consistente  reactivando Look ahead hasta alcanzar consistencia Deletion_occurred := false ;

16 El ejemplo (1): AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 1, 2, 3, 4} { 1, 2, 3}{ 1, 3, 4} { 1, 2, 3, 4}  Primer paso (== Look ahead check): AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 3, 4} { 1, 2}{ 1, 3} { 1, 2, 3}  Deletion_occurred := true

17 El ejemplo (2):  Segundo paso: AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 3, 4} { 1, 2}{ 1, 3} { 1, 2, 3}  Deletion_occurred := true AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 3, 4} { 1, 2}{ 1, 3} { 2, 3}

18 El ejemplo (3):  Tercer paso:  Deletion_occurred := false AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 3, 4} { 1, 2}{ 1, 3} { 2, 3}  Resultado: A (2 ó 3), B (3 ó 4), C (1 ó 2), D (1 ó 3)  Consistente, pero NO REALMENTE UNA SOLUCIÓN !!

19 AC-3 (Mackworth) consist. de arco más eficiente : AC3: Remover r(x,y) de COLA; Remover r(x,y) de COLA; End-While COLA := {todas las restricciones en el problema} Remover todos los valores inconsist. de los Remover todos los valores inconsist. de los dominios D x y D y con respecto a r(x,y); dominios D x y D y con respecto a r(x,y); While no vacía(COLA) DO If algún valor fué removido de D x (o D y ) If algún valor fué removido de D x (o D y ) then agregar todas las otras restricciones then agregar todas las otras restricciones que involucren a x (o y) a COLA; que involucren a x (o y) a COLA;

20 El ejemplo (1): AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 1, 2, 3, 4} { 1, 2, 3}{ 1, 3, 4} { 1, 2, 3, 4}  COLA = {r(A,B), r(A,C), r(A,D), r(B,C), r(B,D), r(C,D)}:  COLA = {r(A,C), r(A,D), r(B,C), r(B,D), r(C,D)}  Para agregar: r(A,C), r(A,D), r(B,C), r(B,D) ¡ Ya todas en la COLA !

21 El ejemplo (2): AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 2, 3, 4} { 1, 2, 3}{ 1, 3, 4} { 1, 2, 3}  COLA = {r(A,C), r(A,D), r(B,C), r(B,D), r(C,D)}:  COLA = {r(B,C), r(B,D), r(C,D)}

22 El ejemplo (3): AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 2, 3, 4} { 1, 2, 3}{ 1, 3, 4} { 1, 2, 3}  COLA = {r(B,C), r(B,D), r(C,D)}:  COLA = {r(B,D), r(C,D), r(A,B), r(A,C)}  Para agregar: r(A,B), r(A,C), r(B,D), r(C,D)

23 El ejemplo (4): AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 3, 4} { 1, 2}{ 1, 3, 4} { 1, 2, 3}  COLA = {r(B,D), r(C,D), r(A,B), r(A,C)}:  COLA = {r(C,D), r(A,B), r(A,C), r(A,D)}  Para agregar: r(A,D), r(C,D)

24 El ejemplo (5): AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 3, 4} { 1, 2}{ 1, 3} { 1, 2, 3}  COLA = {r(C,D), r(A,B), r(A,C), r(A,D)}:  COLA = {r(A,C), r(A,D)}  Para agregar: r(A,C), r(A,D)

25 El ejemplo (6): AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 3, 4} { 1, 2}{ 1, 3} { 2, 3}  COLA = {r(A,C), r(A,D)}:  COLA = vacía ¡PARAR!

26 Comparación:  Los mismos resultados: consistencia de arco completa:  A = {2,3}, B = {3,4}, C= {1,2}, D = {1,3}  Eficiencia:  AC1:  3 veces 6 verificaciones = 18  AC3:  9 verificaciones de restricciones

27 Consistencia K:  1-consistencia (consistencia de nodo):  restricc. unarias (sobre 1 variable) son consistentes  2-consistencia (consistencia de arco):  restricc.binaria(sobre 2 variables) son consistentes  3-consistencia:  todas las restricc.que comprenden.3var.son consist. AB DC B = A + 1 A  C D  BD  B A  D |B - C|  1 C  D { 1, 2, 3, 4} { 1, 2, 3}{ 1, 3, 4} { 1, 2, 3, 4}  Un valor permanece en el dominio si hay valores consistentes en los dominios de las otras 2 variables (para todas las restricciones que conectan) Ejemplo:

28 Practicidad de consistencia k:  Verificar consistencia k para k  2 es muy difícil de hacer eficientemente !!  Ejemplo: consistencia 4 para el problema de las 4 casas es equivalente a hallar soluciones al problema original.

Procesamiento híbrido de restricciones Combina el poder de Búsqueda exhaustiva (backtrack) con (relajación) poda

Forward checking Backtracking combinado con Forward Check

31 Forward checking: Forward Checking: Ejecuta Standard Backtracking Después de cada asignac. de un Después de cada asignac. de un valor a una variable zi DO valor a una variable zi DO Forward Check(zi) PERO

32 1A Forward checking B2 AB CD{1}{1,2,3,4}{1,2,3} {1,3,4} B=A+1 ADADADAD ACACACAC AB CD{1}{2}{2,3} {3,4} |B-C|  1 D BD BD BD B falla AB CD{2}{1,2,3,4}{1,2,3} {1,3,4} B=A+1 ADADADAD ACACACAC 2 B3 AB CD{2}{3}{1,3} {1,3,4} D BD BD BD B C1 AB C D{4}{3}{1}{1} CDCDCDCD falla AB CD{3}{1,2,3,4}{1,2,3} {1,3,4} B=A+1 ADADADAD ACACACAC 3 B4 AB CD{3}{4}{1,2} {1,4} D BD BD BD B AB C D{3}{4}{1}{1} CDCDCDCD AB C D{3}{4}{2}{1} CDCDCDCD 1C 2fallaéxito

Lookahead checking Backtracking combinado con Look ahead check

34 Lookahead checking: Ejecuta Standard Backtracking Look Ahead Check PERO Look Ahead Check ; Lookahead Checking: Después de cada asignac. de un Después de cada asignac. de un valor a alguna variable DO valor a alguna variable DO

35 Lookahead checking AB C D{1,2,3,4}{1,2,3,4}{1,2,3}{1,3,4} B=A+1 ADADADAD ACACACAC D BD BD BD B |B-C|  1 CDCDCDCD AB CD{1}{3,4}{1,2} {1,3} B=A+1 falla AB C D{2}{3,4}{1,2}{1,3} B=A+1 ADADADAD ACACACAC D BD BD BD B CDCDCDCD falla AB C D{3}{3,4}{1,2}{1,3} B=A+1 ADADADAD ACACACAC D BD BD BD B CDCDCDCD AB C D{3}{4}{2}{1} D BD BD BD B CDCDCDCD AB C D{3}{4}{2}{1} CDCDCDCD 1A 2 3 B4 C2 éxito

36 ¿Cuál es mejor?  Forward checking:  hace menos verificación de consistencia  tiene más ramificación  más cercano a backtracking  Lookahead checking:  requiere más trabajo con consistencia  prueba menos valores alternativos  Usualmente:forward checking es el mejor trade-off  Para problemas MUY marcadamente restringidos:  se necesita Lookahead checking para podar más

37 Aplicaciones:  Todos los problemas de búsqueda combinatoria  Problemas de asignac. de horarios(scheduling):  Ej.: reasign. de horarios de trenes cuando ha ocurrido algún problema en las vías  Problemas de horarios de trabajo:  Ej.: computar rotacs. de trabajo, dadas varias restricc. de expertise y preferencias personales  Planeamiento de producción:  Ej.:asign.el recorr. óptimo en el lugar de trabajo  Problemas de carga:  Ej.: optimizar el espacio en un camión dados varios tipos de cargas

38 Técnicas alternativas  Programación lineal  técnicas numéricas para resolver sistemas de ecuaciones lineales (e inecuac.) + problemas de optimización  Ej.: algoritmo simplex  Trabaja MUY bien con restricciones ‘lineales’ 4*X - 3*Y  Z + 2 X 3 - 3*Y  Z ¡ SI ! ¡ NO !  Trabaja, pero no MUY bien, con problemas discretos  En tales casos: Procesam.de Restricc. es mejor opción  También: para problemas de restricciones en datos no numéricos!