Relajaci - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

Relajaci

Description:

4 familias A, B, C y D viven unas junto a otras en casas numeradas 1, 2, 3 y 4. ... Los dominios: dA = dB = dC = dD = { 1, 2, 3, 4} Restricciones: unaria: r(C) = C 4 ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 39
Provided by: OG
Category:
Tags: db | relajaci

less

Transcript and Presenter's Notes

Title: Relajaci


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

2
Relajación
  • Consistencia de nodo
  • Forward check
  • Lookahead check
  • AC1
  • AC3
  • Path-consistency

3
Ejemplo
  • El enigma de las 4 casas
  • 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 ?

4
Representación
  • Las variables A, B, C y D
  • Los dominios dA dB dC dD 1, 2, 3, 4
  • Restricciones
  • unaria
  • r(C) C ? 4
  • r(D) D ? 2
  • binaria
  • r(A,B) B A 1
  • r(A,C) A ? C
  • r(B,D) D ? B
  • r(A,D) A ? D
  • r(B,C) B - C ? 1
  • r(C,D) C ? D

5
Consistencia de nodos
  • O consistencia-1
  • (solo 1 variable involucrada)
  • Las restricciones unarias son eliminadas por
    reducción del dominio
  • r(C) C ? 4
  • r(D) D ? 2

6
Red de restricciones
7
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
  • 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
  • No produce un estado consistente
  • no se realiza toda la relajación

10
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

12
Ejemplo (continuac.)
  • Las otras 3 restricciones

13
Look ahead resultados finales
  • 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.

14
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
Ocurrió_borrado falso
Look ahead check
If algún valor fue removido de 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

16
El ejemplo (1)
  • Primera pasada ( Look ahead check)
  • Ocurrió_borrado verdad

17
El ejemplo (2)
  • Segunda pasada
  • Ocurrió_borrado verdad

18
El ejemplo (3)
  • Tercera pasada
  • Ocurrió_borrado falso
  • 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
COLA todas las restricciones en el problema
Remover r(x,y) de COLA
Remover todos los valores inconsistentes de
los dominios Dx y Dy con respecto a r(x,y)
End-While
20
El ejemplo (1)
  • COLA r(A,B), 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)
  • COLA r(A,C), r(A,D), r(B,C), r(B,D), r(C,D)

21
El ejemplo (2)
  • 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)
  • COLA r(B,C), r(B,D), r(C,D)
  • Para agregar r(A,B), r(A,C), r(B,D), r(C,D)
  • COLA r(B,D), r(C,D), r(A,B), r(A,C)

23
El ejemplo (4)
  • COLA r(B,D), r(C,D), r(A,B), r(A,C)
  • Para agregar r(A,D), r(C,D)
  • COLA r(C,D), r(A,B), r(A,C), r(A,D)

24
El ejemplo (5)
  • COLA r(C,D), r(A,B), r(A,C), r(A,D)
  • Para agregar r(A,C), r(A,D)
  • COLA r(A,C), r(A,D)

25
El ejemplo (6)
  • 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

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

Ejemplo
  • 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)

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.

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

30
Forward checking
  • Backtracking combinado con Forward Check

31
Forward checking
Forward Checking
Execute Standard Backtracking
BUT
After cada asignación de un valor a una
variable zi DO
Forward Check(zi)
32
Funcionamiento de forward checking
falla
falla
falla
exito
33
Lookahead checking
  • Backtracking combinado con Look ahead check

34
Lookahead checking
Lookahead Checking
Look Ahead Check
Execute Standard Backtracking
BUT
Look Ahead Check
35
Funcionamiento de lookahead checking
falla
falla
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
  • 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 !
Write a Comment
User Comments (0)
About PowerShow.com