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

Slides:



Advertisements
Presentaciones similares
Problemas de Satisfacción de Restricciones
Advertisements

Problemas del método de Newton
Logística (Manejo de la cadena de abastecimiento)
TÉCNICA DE DISEÑO BACKTRACKING
Inteligencia Artificial Búsqueda informada y exploración
Método para resolver colisiones
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Mauricio Granada Echeverri Universidad Tecnológica de Pereira
1.5 Algoritmos, Pseudocódigo y Diagramas de Flujo
Ecuaciones y Resolución de Ecuaciones Lineales
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.
INFERENCIA ESTADISTICA
Algoritmos de Búsqueda
Problemas de Satisfacción de Restricciones (CSP)
Método de Ford-Fulkerson
Estructuras de control
Solución de problemas por búsqueda inteligente
Sistemas de ecuaciones
SATISFACCION DE RESTRICCIONES Sección 1-3
El algoritmo primal-dual
ESCUELA POLITECNICA DEL EJERCITO COMPUTACIÒN AVANZADA NOMBRES:
Teoría de Grafos.
Programación entera y grafos
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

Sesión 13: Lógica y Probabilidad. Incertidumbre - LD y LP, L.E. Sucar2 Contenido Lógica probabilista Redes bayesianas con nodos lógico Modelos relacionales.
Universidad de los Andes-CODENSA
Inteligencia Artificial Problemas de satisfacción de restricciones
Optimización Combinatoria usando Algoritmos Evolucionistas Problemas de Optimización. Idea: Encontrar una solución "factible" y "óptima" de acuerdo a algún.
Recuperaci ó n Basada en Contenido M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción
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.
Diplomado en Logística de Negocios
PROGRAMACIÓN LINEAL.
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)
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
Relajación y procesamiento híbrido de restricciones Diferentes técnicas de relajación Algunas técnicas híbridas populares.
Control de Flujo.
5. El Método Simplex En lo que sigue consideremos un problema de programación lineal en su forma estándar ³ =
Tecnologías de las computadoras
CLASE 96. Las desigualdades de la forma mx + n > 0 o mx + n < 0 ( mx + n  0 o mx + n  0 ) con m, n  ( m  0) o que se reducen a ella mediante transformaciones.
Una introducción a la computación evolutiva
SIG. LAURA VELAZQUEZ MORELOS. Hace referencia a un refrán que implica resolver un problema difícil, dividiéndolo en partes más simples tantas veces como.
DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso Modelos y Técnicas para Problemas de Satisfacción de Restricciones.
Agenda Clase 6 Iteradores. Enumeración sin iteradores. Loops lógicos. Recursión vs. Iteración. Recursión de Cola. Orden de Evaluación Normal y Aplicativo.
PROBLEMAS DE SATISFACCIÓN DE RESTRICCIONES
Sabemos reconocerlas, y calcularlas como soluciones de sistemas de ecuaciones, o de desigualdades Buscamos métodos de cálculo generales y eficientes Problemas.
1 Flujo Máximo Agustín J. González ELO320: Estructura de Datos y Algoritmos.
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)
Sistemas Basados en Reglas
Integrantes: Yesid Mendoza Beatriz Borja Cristina Taramuel Xavier Ortega ING : César Osorio.
Solver complemento de excel
METODO DE SUMA Y RESTA. INDICE.
Replicación Bases de Datos Distribuidas Ing. Fernando Ortiz Ahumada.
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.
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 AC1AC3Path-consistency

3 Ejemplo  4 familias A, B, C y D viven unas junto a otras en casas numeradas 1, 2, 3 y 4.  D vive en una casa con número más bajo 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.  ¿Cuál familia vive en cuál casa ?  El enigma 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 nodos:  Las restricciones unarias son eliminadas por reducción del dominio:  O: consistencia-1  (solo 1 variable involucrada)  r(C) = C  4  r(D) = D  2 d C = { 1, 2, 3} d D = { 1, 3, 4}

6 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:  Asuma que fijamos el valor de 1 variable zi: zi = a  Forward Check(zi) =  activar cada restricción r(zi, zj) o r(zj, zi) una vez para remover los valores inconsistentes con 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  sugiere el uso en combinación con backtracking 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 Método de relajación más fuerte (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}  Aun no produce un estado consistente  no se realiza toda la relajación  El resultado puede depender del orden en el cual se procesan las restricciones.  La remoción de algunos valores inicialmente puede permitir hallar otros inconsistentes.

Técnicas de consistencia de arco Técnicas que reducen los dominios a estados consistentes para cada restricción (o arco). También llamadas: técnicas consistencia-2

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 Ocurrió_borrado := verdad Until (not Ocurrió_borrado)  Fuerza a que Look ahead alcance un estado consistente  por reactivación de Look ahead hasta consistencia Ocurrió_borrado := falso ;

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}  Primera pasada (== 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}  Ocurrió_borrado := verdad

17 El ejemplo (2):  Segunda pasada: 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}  Ocurrió_borrado := verdad 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):  Tercera pasada:  Ocurrió_borrado := falso 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 o 3), B (3 o 4), C (1 o 2), D (1 o 3)  Consistente, pero ¡¡ NO REALMENTE UNA SOLUCIÓN !!

19 AC-3 (Mackworth) Consistencia 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 inconsistentes de Remover todos los valores inconsistentes de los dominios D x y D y con respecto a r(x,y); los dominios D x y D y con respecto a r(x,y); While not vacia(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 involucranx (o y) a COLA; que involucranx (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) Todo ya en 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:  Igual resultado: completa consistencia de arco:  A = {2,3}, B = {3,4}, C= {1,2}, D = {1,3}  Eficiencia:  AC1:  3 veces 6 verificaciones = 18  AC3:  9 verificacíones de restricciones

27Consistencia-k:  consistencia-1 (consistencia de nodo):  restricciones unarias (en 1 variable) son consistentes  consistencia-2 (consistencia de arco):  restricciones binarias (en 2 variables) son consistentes  consistencia-3:  todas las restricc. que involucran 3 variables 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 se mantiene en el dominio si hay valores consistentes en los dominios de las otras 2 variables (para todas las restricciones que las conectan) Ejemplo:

28 Practicidad de la consistencia k:  Verificar la consistencia-k para k  2 es muy dificil de realizar eficientemente !!  Ejemplo: consistencia-4 para el enigma de las 4 casas es equivalente a hallar soluciones del problema original.

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

Forward checking Backtracking combinado con Forward Check

31 Forward checking: Forward Checking: Execute Standard Backtracking After cada asignación de un After cada asignación de un valor a una variable zi DO valor a una variable zi DO Forward Check(zi) BUT

32 1A Funcionamiento de 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 2fallaexito

Lookahead checking Backtracking combinado con Look ahead check

34 Lookahead checking: Execute Standard Backtracking Look Ahead Check BUT Look Ahead Check ; Lookahead Checking: After cada asignación de un After cada asignación de un valor a alguna variable DO valor a alguna variable DO

35 Funcionamiento de 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 exito

36 ¿Cuál es mejor?  Forward checking:  hace menos verificación de consistencia  tiene mas ramificación  más cercano a backtracking  Lookahead checking:  lleva más tiempo con consistencia  intenta menos valor alternativos  Usualmente: forward checking es la mejor solución de compromiso  Para problemas MUY restringidos:  Lookahead checking es necesario para podar más

37 Aplicaciones:  Todos los problemas de búsqueda combinatorios  Problemas de distribución de tareas:  Ej.: redistribución de horario de trenes cuando ha ocurrido algun problema en las vías.  Problemas de distribución de trabajos:  Ej.: computar turnos de trabajo, dadas varias res- tricciones de expertise y preferencias personales  Planeamiento de producción:  Ej.: planificar el flujo óptimo 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 la resolución de sistemas de ecuaciones lineales (e inecuaciones) + problemas de optimización  Ej.: algoritmo simplex  Funciona MUY bien para restricciones ‘lineales’ 4*X - 3*Y  Z + 2 X 3 - 3*Y  Z ¡ SI ! ¡ NO !  Funciona, pero no MUY bien, para problemas discretos  En tales casos: Procesam. de Restricc. es una mejor opción  También: para problemas de restricciones en datos no- numericos !