Inteligencia Artificial - PowerPoint PPT Presentation

About This Presentation
Title:

Inteligencia Artificial

Description:

Title: Inteligencia Artificial Author: Rolando Rafael Hern ndez Cisneros Last modified by: Rolando Hern ndez Created Date: 2/18/2004 8:50:15 AM Document ... – PowerPoint PPT presentation

Number of Views:101
Avg rating:3.0/5.0
Slides: 69
Provided by: Rolan76
Category:

less

Transcript and Presenter's Notes

Title: Inteligencia Artificial


1
Inteligencia Artificial
  • 2.3 Problemas de Satisfacción de Restricciones

2
Introducción
  • Anteriormente se vio que los problemas pueden
    resolverse buscando en un espacio de estados.
  • Estos estados pueden evaluarse por heurísticas
    específicas para el dominio y probados para
    verificar si son estados meta.
  • Desde el punto de vista del algoritmo de
    búsqueda, cada estado es una caja negra sin
    estructura interna discernible.
  • Solo es accesada por las rutinas específicas del
    problema (la función de sucesor, la función
    heurística y la prueba de meta).

3
Introducción
  • En los problemas de satisfacción de restricciones
    (PSR), los estados y la prueba de meta siguen a
    una representación estándar, estructurada y muy
    simple.
  • Los algoritmos de búsqueda pueden ser definidos
    de tal manera que tomen ventaja de la estructura
    de los estados y usen heurísticas de propósito
    general en vez de específicas del problema, para
    permitir la solución de problemas grandes.

4
Introducción
  • Tal vez lo más importante es que la
    representación estándar de la prueba de meta
    revela la estructura del problema mismo.
  • Esto lleva a los métodos para descomposición de
    problemas y a un entendimiento de la conexión
    íntima entre la estructura del problema y la
    dificultad para resolverlo.

5
Problemas de Satisfacción de Restricciones
  • Un problema de satisfacción de restricciones (o
    PSR) se define por un conjunto de variables, X1,
    X2, , Xn, y un conjunto de restricciones, C1,
    C2, , Cm.
  • Cada variable Xi tiene un dominio no vacío Di de
    posibles valores.
  • Cada restricción Ci involucra algún subconjunto
    de las variables y especifica las combinaciones
    permisibles de valores de ese subconjunto.

6
Problemas de Satisfacción de Restricciones
  • Un estado del problema se define por una
    asignación de valores a alguna o todas las
    variables, Xi vi, Xj vj, .
  • Una asignación que no viola ninguna restricción
    es llamada consistente o legal.
  • Una asignación completa es una en la cual cada
    variable es mencionada.
  • Una solución a un PSR es una asignación completa
    que satisface todas las restricciones.

7
Problemas de Satisfacción de Restricciones
  • Problema Colorear el mapa de Australia, usando
    los colores rojo, verde o azul, de tal forma que
    dos regiones vecinas no tengan el mismo color.

Territorio del Norte
Queensland
Australia del Oeste
Australia del Sur
Nueva Gales del Sur
Victoria
Tasmania
8
Problemas de Satisfacción de Restricciones
  • Formulación como PSR
  • Variables las regiones de Australia
  • AO (Australia del Oeste)
  • TN (Territorio del Norte)
  • Q (Queensland)
  • NGS (Nueva Gales del Sur)
  • V (Victoria)
  • AS (Australia del Sur)
  • T (Tasmania)

9
Problemas de Satisfacción de Restricciones
  • Formulación como PSR
  • Dominios El dominio de cada variable es el
    conjunto rojo, verde, azul.
  • Restricciones Las restricciones requieren que
    regiones vecinas tengan distintos colores. Por
    ejemplo, las combinaciones permisibles para AO y
    TN son los pares
  • (rojo, verde), (rojo, azul), (verde, rojo),
    (verde, azul), (azul, rojo), (azul, verde)
  • Esta restricción puede representarse como AO ? TN.

10
Problemas de Satisfacción de Restricciones
  • Formulación como PSR
  • Solución Hay muchas soluciones posibles, como
  • AO rojo, TN verde, Q rojo, NGS verde, V
    rojo, AS azul, T rojo

11
Problemas de Satisfacción de Restricciones
  • Es útil visualizar un PSR como un grafo de
    restricciones.
  • Los nodos del grafo corresponden a las variables
    del problema, y los arcos corresponden a las
    restricciones.

TN
Q
AO
AS
NGS
V
T
12
Problemas de Satisfacción de Restricciones
TN
  • Es útil visualizar un PSR como un grafo de
    restricciones.
  • Los nodos del grafo corresponden a las variables
    del problema, y los arcos corresponden a las
    restricciones.

Q
AO
AS
NGS
V
T
13
Problemas de Satisfacción de Restricciones
  • Tratar un problema como un PSR tiene importantes
    beneficios
  • La representación de estados en un PSR sigue un
    patrón estándar (un conjunto de variables con
    valores asignados), por lo que la función de
    sucesor y la prueba de meta pueden ser escritos
    de una manera genérica que se aplica a todos los
    PSR.
  • Se pueden desarrollar heurísticas efectivas que
    no requieren experiencia adicional específica del
    dominio.
  • La estructura del grafo de restricciones puede
    usarse para simplificar el proceso de solución en
    algunos casos, dando una reducción exponencial en
    complejidad.

14
Problemas de Satisfacción de Restricciones
  • A un PSR se le puede hacer una formulación
    incremental como un problema de búsqueda estándar
    de la siguiente manera
  • Estado inicial La asignación vacía , en la
    cual todas las variables están sin asignar.
  • Función de sucesor Un valor puede ser asignado a
    una variable sin asignar, siempre y cuando no
    entre en conflicto con variables previamente
    asignadas.
  • Prueba de meta La asignación actual está
    completa.
  • Costo de ruta Un costo constante (por ejemplo,
    1) para cada paso.

15
Problemas de Satisfacción de Restricciones
  • Cada solución debe ser una asignación completa y
    por lo tanto tiene una profundidad n si hay n
    variables.
  • Por esta razón, los algoritmos de búsqueda
    primero en profundidad son populares para los
    PSR.
  • También ocurre que la ruta por la cual se alcanza
    una solución es irrelevante. Por lo tanto,
    también se puede usar una formulación de estado
    completo, en la cual cada estado es una
    asignación completa que puede satisfacer o no las
    restricciones. Los métodos de búsqueda local
    trabajan bien con esta formulación.

16
Problemas de Satisfacción de Restricciones
  • El tipo más simple de PSR involucra variables que
    son discretas y tienen dominios finitos.
  • Los problemas de coloreo de mapas son de este
    tipo. Incluso el problema de las 8 reinas puede
    plantearse como PSR
  • Variables Q1, , Q8 (Posiciones de cada reina en
    las columnas 1, , 8).
  • Dominios Cada variable tiene el dominio 1, 2,
    3, 4, 5, 6, 7, 8.
  • Los PSR de dominios finitos incluyen a los PSR
    booleanos, cuyas variables son verdadero o falso.

17
Problemas de Satisfacción de Restricciones
  • Las variables discretas pueden también tener
    dominios infinitos, por ejemplo, el conjunto de
    los números enteros, o el conjunto de todas las
    cadenas de caracteres.
  • Por ejemplo, cuando se requieren programar
    trabajos de construcción en el calendario, la
    fecha de inicio de cada trabajo es una variable,
    y sus valores posibles es el número de días
    enteros a partir de la fecha actual.
  • Con dominios infinitos, ya no es posible
    describir las restricciones enumerando todas las
    combinaciones de valores permisibles.

18
Problemas de Satisfacción de Restricciones
  • Con dominios infinitos, se debe usar entonces un
    lenguaje de restricciones.
  • Por ejemplo, si Trabajo1 toma 5 días, y debe
    preceder a Trabajo3, entonces necesitaríamos un
    lenguaje de restricciones de desigualdades
    algebraicas tal como
  • InicioTrabajo1 5 ? InicioTrabajo3
  • Existen algoritmos de solución especiales para
    las restricciones lineales de variables enteras
    (restricciones como la anterior, en la que cada
    variable aparece sólo en forma lineal).

19
Problemas de Satisfacción de Restricciones
  • Puede demostrarse que no existe un algoritmo para
    resolver restricciones no lineales generales
    sobre variables enteras.
  • En algunos casos, se puede reducir los problemas
    de restricciones enteras a problemas de dominio
    finito simplemente acotando los valores de todas
    las variables. Ejemplo poniendo una cota
    superior igual a la de duración total de todos
    los trabajos a ser programados.

20
Problemas de Satisfacción de Restricciones
  • Los PSR con dominios continuos son muy comunes en
    el mundo real y son ampliamente estudiados en el
    campo de la investigación de operaciones. Por
    ejemplo, la programación de experimentos en el
    Telescopio Espacial Hubble, que requiere una
    medición muy precisa del tiempo para las
    observaciones, para el inicio y fin de cada
    observación, y el manejo de variables continuas
    que deben obedecer una variedad de restricciones
    astronómicas, de precedencia y de energía.
  • La categoría mejor conocida de PSR de dominio
    continuo es la de los problemas de programación
    lineal, donde las restricciones deben ser
    desigualdades lineales formando una región
    convexa.

21
Problemas de Satisfacción de Restricciones
  • Los problemas de programación lineal pueden ser
    resueltos en tiempo polinomial en el número de
    variables. También se han estudiado otros
    problemas con diferentes tipos de restricciones y
    funciones objetivo (programación cuadrática,
    programación cónica de segundo orden, etc.)

22
Problemas de Satisfacción de Restricciones
  • Los tipos de restricciones que se pueden tener
    son
  • Restricciones unarias restringen el valor de una
    sola variable.
  • Ejemplo A la gente de Australia del Sur no le
    gusta el color verde. AS ? verde
  • Cada restricción unaria puede eliminarse
    simplemente preprocesando el dominio de la
    variable correspondiente para eliminar cualquier
    valor que viole la restricción.
  • Restricciones binarias relacionan dos variables.
  • Ejemplo Australia del Sur y Nueva Gales del Sur
    no pueden tener el mismo color. AS ? NGS
  • Un PSR binario es uno que tiene sólo
    restricciones binarias, y se puede representar
    con un grafo de restricciones.

23
Problemas de Satisfacción de Restricciones
  • Las restricciones de alto orden involucran tres o
    más variables. Un ejemplo familiar de esto lo
    representan los problemas de criptoaritmética.

T W O T W O F O U R
24
Problemas de Satisfacción de Restricciones
  • El hecho de que cada letra representa un dígito
    diferente se puede representar mediante una
    restricción de seis variables TodasDif (F, T, U,
    W, R, O), o puede ser representado por la
    colección de restricciones binarias F ? T, F ?
    U, , R ? O.
  • Las restricciones de adición de las cuatro
    columnas también involucran varias variables
  • O O R 10 ? X1
  • X1 W W U 10 ? X2
  • X2 T T O 10 ? X3
  • X3 F
  • X1, X2 y X3 son variables auxiliares que
    representan el dígito (0 o 1) acarreado a la
    siguiente columna.

25
Problemas de Satisfacción de Restricciones
  • Las restricciones de alto orden se pueden
    representar en un hipergrafo de restricciones

F
T
U
W
R
O
X3
X2
X1
26
Problemas de Satisfacción de Restricciones
  • Cada restricción de alto orden, con dominio
    finito, puede reducirse a un conjunto de
    restricciones binarias, si se introducen las
    variables auxiliares suficientes. Es por eso que
    se estudian preferentemente problemas sólo con
    restriccines binarias.
  • Hasta ahora se han descrito sólo restricciones
    absolutas (cualquier asignación completa que
    viole alguna de ellas, se descarta como
    solución).
  • Muchos PSR del mundo real incluyen restricciones
    de preferencia, indicando cuales soluciones son
    preferibles. Estas restricciones pueden ser
    codificadas como costos sobre las asignaciones de
    variables individuales.

27
Búsqueda backtracking para los PSR
  • Usando la formulación antes mencionada para PSR,
    cualquier algoritmo de búsqueda visto
    anteriormente puede ser usado para resolverlos.
  • Suponiendo que se usa búsqueda primero por
    amplitud, el factor de ramificación en el nivel
    superior es nd, en el siguiente nivel es (n
    1)d, y así sucesivamente para los n niveles. Se
    genera un árbol de n!dn hojas.

28
Búsqueda backtracking para los PSR
  • Sin embargo, todos los PSR tienen la propiedad de
    la conmutatividad.
  • Un problema es conmutativo si el orden de
    aplicación de cualquier conjunto dado de acciones
    no tiene efecto en la salida.
  • Por lo tanto, todos los algoritmos de búsqueda en
    PSR generan sucesores considerando las posibles
    asignaciones para sólo una variable en cada nodo
    del árbol de búsqueda.

29
Búsqueda backtracking para los PSR
  • La búsqueda backtracking es una búsqueda primero
    en profundidad que elige valores para una
    variable a la vez y regresa (backtraks)
    cuando a una variable no le quedan valores
    legales para asignarle.

30
Búsqueda backtracking para los PSR
AO rojo
AO verde
AO azul
AO rojo TN verde
AO rojo TN azul
AO rojo TN verde Q rojo
AO rojo TN verde Q rojo
31
Búsqueda backtracking para los PSR
  • La búsqueda backtracking simple es un algoritmo
    no informado, asi que no se espera que sea
    efectivo para problemas grandes.

32
Búsqueda backtracking para los PSR
Problema Back- Tracking BTMVR Forward Checking FC MVR Conflictos Min.
USA (gt1,000K) (gt1,000K) 2K 60 64
n-Reinas (gt40,000K) 13,500K (gt40,000K) 817K 4K
Cebra 3,859K 1K 35K 0.5K 2K
Aleatorio 1 415K 3K 26K 2K
Aleatorio 2 942K 27K 77K 15K
K miles de chequeos de consistencia, ( ) no
halló solución
33
Búsqueda backtracking para los PSR
  • Los métodos de propósito general se hacen las
    siguientes preguntas
  • Qué variable debe asignarse en seguida, y en que
    orden deben intentarse los valores?
  • Cuáles son las implicaciones de las asignaciones
    actuales de variables para las otras variables
    sin asignar?
  • Cuando una ruta falla (es decir, un estado es
    alcanzado en el cual una variable no tiene
    valores legales) Puede la búsqueda evitar
    repetir esta falla en rutas subsecuentes?

34
Búsqueda backtracking para los PSR
  • Orden de las variables y de los valores
  • Por default, la siguiente variable a asignar se
    selecciona de una lista estática de variables que
    rara vez produce una búsqueda eficiente.
  • La idea intuitiva de elegir la variable que tenga
    el mínimo de valores legales es llamada la
    heurística del mínimo de valores remanentes
    (MVR). También se le llama la de la variable
    más restringida o de falla-primero, porque
    selecciona la variable que probablemente pronto
    causará una falla, podando el árbol de búsqueda.

35
Búsqueda backtracking para los PSR
  • Orden de las variables y de los valores
  • La heurística MVR no ayuda en absoluto para
    elegir la primera region a colorear del mapa de
    Australia, porque inicialmente cada región tiene
    tres colores legales.
  • En este caso, la heurística de grado es
    utilizada. Intenta reducir el factor de
    ramificación para elecciones futuras
    seleccionando la variable que está involucrada en
    el mayor número de restricciones. AS tiene grado
    5, las otras tiene 2 o 3, y T tiene 0.
  • La heurística de MVR es una guía más poderosa,
    pero la heurística de grado puede ser muy útil
    para romper empates.

36
Búsqueda backtracking para los PSR
  • Orden de las variables y de los valores
  • Una vez que una variable ha sido seleccionada, el
    algoritmo debe decidir en qué orden examinar sus
    valores.
  • Para esto, la heurística del valor menos
    restrictivo puede ser efectiva en algunos casos.
  • Esta heurística prefiere el valor que elimine la
    menor cantidad de valores posibles de las
    variables vecinas en el grafo de restricciones.
  • Por ejemplo, si se ha asignado AOrojo, TNverde,
    y se tiene que elegir Q. Si se elige azul, esto
    elimina el último valor legal que podíamos
    asignarle a AS. Por lo tanto, según la heurística
    del valor menos restrictivo, se debe asignar
    Qrojo.
  • La idea es contar siempre con la mayor
    flexibilidad posible para las asignaciones de
    variables subsecuentes.

37
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Hasta ahora solo se han considerado las
    restricciones sobre una variable solo cuando la
    variable se elige para asignarle valor.
  • Observando algunas restricciones un poco antes
    durante la búsqueda, o incluso antes de que la
    búsqueda comience, se puede reducir drásticamente
    el espacio de búsqueda.

38
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Forward checking
  • Cuando una variable X es asignada, el proceso FC
    observa a cada variable sin asignar Y que esté
    conectada a X por una restricción y borra del
    dominio de Y cualquier valor que sea
    inconsistente con el valor elegido para X.

39
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Forward checking

AO TN Q NGS V AS T
Dominios Iniciales RVA RVA RVA RVA RVA RVA RVA
Después que AOrojo R VA RVA RVA RVA VA RVA
Después que Qverde R A V R A RVA A RVA
Después que Vazul R A V R A --- RVA
40
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Propagación de restricciones
  • Aunque FC detecta muchas inconsistencias, no las
    detecta todas.
  • En la tabla anterior, puede verse que cuando AO
    es rojo y Q es verde, tanto TN como AS son
    forzados a ser azules. Sin embargo, estos dos
    últimos son adyacentes y por lo tanto, no pueden
    tener el mismo color. FC no detecta esto como una
    inconsistencia, porque no mira más allá.
  • La propagación de restricciones es el término
    general para propagar las implicaciones de una
    restricción sobre una variable en otras variables.

41
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Propagación de restricciones
  • La idea de consistencia de arco proporciona un
    método rápido de propagación de restricciones que
    es sustancialmente más fuerte que FC.
  • Arco se refiere al arco dirigido en el grafo de
    restricciones, por ejemplo, el arco que va de AS
    a NGS.
  • Dados los dominios actuales de AS y NGS, el arco
    es consistente si, para cada valor x de AS, hay
    algún valor y de NGS que sea consistente con x.
  • En el renglón 3 de la tabla, se puede ver que el
    arco de AS a NGS es consistente, pero el arco
    inverso de NGS a AS no lo es. Este arco puede
    hacerse consistente borrando el valor azul del
    dominio de NGS.

42
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Propagación de restricciones
  • La verificación de consistencia de arco puede ser
    aplicada tanto como un paso de preprocesamiento
    antes de empezar la búsqueda, o como un paso de
    propagación (como FC) después de cada asignación
    durante la búsqueda.
  • En cualquiera de los dos casos, el proceso debe
    ser aplicado repetidamente hasta que no quede
    ninguna inconsistencia, ya que la eliminacion de
    una de ellas puede crear otras nuevas.
  • El algoritmo completo para consistencia de arco
    es llamado AC-3.

43
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Propagación de restricciones
  • Formas más fuertes de propagación se pueden
    definir usando la notación llamada
    k-consistencia.
  • Un PSR es k-consistente si, para cualquier
    conjunto de k-1 variables y para cualquier
    asignación consistente a esas variables, un valor
    consistente puede siempre ser asignado a
    cualquier k-ésima variable.
  • Por lo tanto, 1-consistencia significa que cada
    variable individual es consistente por sí misma
    esto es también llamado consistencia de nodo.
    2-consistencia es lo mismo que consistencia de
    arco. 3-consistencia significa que cualquier par
    de variables adyacentes puede siempre ser
    extendida a una tercera variable vecina, lo que
    se llama consistencia de ruta.

44
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Propagación de restricciones
  • Un grafo es fuertemente k-consistente si es
    k-consistente y además es también
    (k-1)-consistente, (k-2)-consistente, y así
    hasta llegar a 1-consistente.
  • Si se tiene un problema con n nodos, y se hace
    fuertemente n-consistente, entonces el problema
    se puede resolver sin backtracking.
  • Sin embargo, cualquier algoritmo para establecer
    la n-consistencia debe tomar tiempo exponencial
    en n en el peor caso.

45
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Manejo de restricciones especiales
  • Ejemplo, la restricción TodasDiferentes dice que
    todas las variables involucradas deben tener
    valores diferentes.
  • Una forma simple de detectar la inconsistencia de
    esta restricción es si hay m variables
    involucradas en la restricción, y si ellas tienen
    n posibles valores distintos cada una, y m gt n,
    entonces la restricción no puede ser satisfecha.

46
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Manejo de restricciones especiales
  • Tal vez la restricción de alto orden más
    importante es la restricción de recursos, algunas
    veces llamada restricción cuandomucho.
  • Por ejemplo, sean PA1, , PA4 las cantidades de
    personal asignado a cada una de 4 tareas. La
    restricción de que no se asignen más de 10
    personas en total se escribe como cuandomucho(10,
    PA1, PA2 PA3, PA4).
  • Una inconsistencia puede detectarse simplemente
    checando la suma de los valores mínimos de los
    dominios actuales. Por ejemplo, si cada variable
    tiene el dominio 3,4,5,6, la restricción
    cuandomucho no puede ser satisfecha.

47
Búsqueda backtracking para los PSR
  • Propagando información a través de las
    restricciones
  • Manejo de restricciones especiales
  • Para problemas grandes limitados en recursos,
    como problemas de logística involucrando miles de
    personas o cientos de vehículos, usualmente no es
    posible representar el dominio de cada variable
    como un conjunto de enteros y reducirlo
    gradualmente con los métodos de verificación de
    consistencia.
  • Lo que se hace en estos casos es representar los
    dominios por medio de límites superiores e
    inferiores, y manejarlos por propagación de
    límites.

48
Búsqueda backtracking para los PSR
  • Backtracking inteligente mirando hacia atrás.
  • Cuando una rama de la búsqueda falla, el
    algoritmo de BT regresa a la variable precedente
    e intenta un nuevo valor para ella.
  • Esto es llamado Backtracking cronológico.
  • Qué pasaría si en el problema de Australia se
    hubiera elegido un orden de instanciación fijo Q,
    NGS, V, T, AS, AO, TN? Supón que ya se ha
    generado la asignación Qrojo, NGSverde,
    Vazul, Trojo. Cuando se intenta asignar la
    siguiente variable, AS, todo falla. Regresar y
    cambiar el valor a T no soluciona el problema.

49
Búsqueda backtracking para los PSR
  • Backtracking inteligente mirando hacia atrás.
  • Un enfoque más inteligente que el BT es regresar
    hasta una de las variables del conjunto que
    causaron la falla. Este conjunto es llamado el
    conjunto conflicto.
  • El conjunto conflicto para la variable X es el
    conjunto de variables previamente asignadas que
    están conectadas a X por restricciones.
  • El conjunto conflicto para AS es Q,NGS,V.

50
Búsqueda backtracking para los PSR
  • Backtracking inteligente mirando hacia atrás.
  • El método backjumping regresa a la variable más
    reciente en el conjunto conflicto. En este caso,
    BJ brincaría sobre Tasmania y buscaría un nuevo
    valor para V.
  • El algoritmo FC puede crear el conjunto conflicto
    mientras realiza su búsqueda (simplemente
    almacena lo que elimina).
  • BJ ocurre cuando cada valor en el dominio está en
    conflicto con la asignación actual FC detecta
    esto antes y previene que la búsqueda llegue a un
    nodo así. Por lo tanto, cada rama podada por BJ
    es también podada por FC, así que son
    redundantes.

51
Búsqueda backtracking para los PSR
  • Backtracking inteligente mirando hacia atrás.
  • BJ nota la falla cuando el dominio de una
    cariable queda vacío, pero en muchos casos una
    rama está perdida mucho antes de que esto ocurra.
  • Ejemplo, cuando se hace la asignación parcial
    AOrojo, NGSrojo. Si se intenta Trojo, y
    luego se asignan TN, Q, V, AS, ninguna asignación
    funciona para estas últimas.
  • A dónde hacer backtrack? BJ no puede funcionar,
    porque TN SÍ tiene valores consistentes con las
    variables asignadas precedentes. TN no tiene un
    conjunto conflicto completo.
  • Esto lleva a una noción más profunda del conjunto
    conflicto si el conjunto de variables
    precedentes que causaron TN, junto con cualquier
    variable subsecuente, no tienen solución
    consistente.
  • A este algoritmo se le llama backjumping dirigido
    por conflictos.

52
Búsqueda local para PSR
  • Los algoritmos de búsqueda local son efectivos
    para resolver muchos PSR.
  • Usan una formulación de estado completo el
    estado inicial asigna un valor a cada variable, y
    la función sucesor usualmente trabaja cambiando
    el valor de una variable a la vez.
  • El problema de las 8 reinas puede plantearse de
    dos formas
  • Poner las 8 reinas en las 8 columnas al azar, y
    mover luego cada reina a lo largo de su columna.
  • Poner las 8 reinas, una por columna en una
    permutación de las 8 columnas, y luego generar
    sucesores intercambiando dos reinas de columna.

53
Búsqueda local para PSR
  • Para elegir un nuevo valor para una variable, la
    heurística más obvia es seleccionar el valor que
    resulte en el número mínimo de conflictos con
    otras variables la heurística de conflictos
    mínimos.

54
La estructura de los problemas
  • La única manera en la que podemos esperar tratar
    con el mundo real es, posiblemente,
    descomponiéndolo en muchos subproblemas.
  • Por ejemplo, analizando el problema de colorear
    Australia para identificar su estructura, un
    hecho sobresale Tasmania no está conectado al
    continente.
  • Intuitivamente, es obvio que colorear Tasmania y
    colorear el continente son subproblemas
    independientes.
  • Cualquier solución para el continente, combinada
    con cualquier solución para Tasmania, proporciona
    una solución para el mapa entero.

55
La estructura de los problemas
  • La independencia puede ser confirmada simplemente
    observando los componentes conectados del grafo
    de restricciones.
  • Los subproblemas completamente independientes son
    muy deseables, pero raros.
  • En la mayoría de los casos, los subproblemas de
    un CSP están conectados. El caso más simple es
    cuando el grafo de restricciones forma un árbol
    cualquier par de variables está conectado a lo
    mucho por una ruta.

56
La estructura de los problemas
E
A
D
B
F
C
Grafo de restricciones de un PSR estructurado
como árbol
57
La estructura de los problemas
  • Cualquier PSR estructurado como árbol puede ser
    resuelto en un tiempo lineal en el número de
    variables.

58
La estructura de los problemas
  • El algoritmo es el siguiente
  • PASO 1 Elija cualquier variable como la raíz del
    árbol, y ordene las variables desde la raíz hasta
    las hojas de tal forma que el padre de cada nodo
    en el árbol lo preceda en el ordenamiento.
    Etiquete las variables X1, , Xn en orden. Ahora,
    cada variable, excepto la raíz, tiene exactamente
    una variable padre.

59
La estructura de los problemas
A
B
C
E
D
F
Un ordenamiento lineal de las variables
consistente con el árbol con A como raíz
60
La estructura de los problemas
  • PASO 2 Variando los valores de j desde n hasta 2
    (disminuyendo de 1 en 1), aplique verificación de
    consistencia de arco al arco (Xi, Xj), donde Xi
    es el padre de Xj, removiendo valores del
    DOMINIOXi conforme sea necesario.
  • PASO 3 Variando los valores de j desde 1 hasta n
    (aumentando de 1 en 1), asigne cualquier valor
    para Xj consistente con el valor asignado para
    Xi, donde Xi es el padre de Xj.

61
La estructura de los problemas
  • Ahora que se tiene un algoritmo eficiente para
    árboles, se puede considerar si grafos de
    restricciones más generales pueden reducirse a
    árboles de alguna manera.
  • Hay dos maneras principales de hacer esto, una
    basada en remover nodos y otra basada en colapsar
    varios nodos juntos en uno.

62
La estructura de los problemas
  • El primer enfoque involucra asignar valores a
    algunas variables de tal manera que las variables
    restantes formen un árbol.
  • Considera el grafo de restricciones para
    Australia. Si se pudiera eliminar Australia del
    Sur, el grafo se convertiría en un árbol.

63
La estructura de los problemas
TN
TN
Q
Q
AO
AO
AS
NGS
NGS
V
V
T
T
Grafo de Restricciones Original
Grafo de Restricciones después de quitar AS
64
La estructura de los problemas
  • Afortunadamente, esto se puede hacer fijando un
    valor para AS y borrando de los dominios de las
    otras variables cualquier valor que sea
    inconsistente con el valor elegido para AS.
  • Ahora, cualquier solución para el PSR después de
    que AS y sus restricciones fueron removidas será
    consistente con el valor elegido para AS.
  • El árbol restante puede se resuelto con el
    algoritmo para árboles ya mencionado.

65
La estructura de los problemas
  • El segundo enfoque está basado en la construcción
    de una descomposición en árbol del grafo de
    restricciones en un conjunto de subproblemas
    conectados.
  • Cada subproblema se resuelve independientemente,
    y las soluciones resultantes son combinada.
  • Como cualquier algoritmo del tipo
    divide-y-vencerás, éste trabaja bien si ningún
    subproblema es demasiado grande.

66
La estructura de los problemas
TN
TN
Q
AO
AS
AS
Q
AS
NGS
Una descomposición en árbol del grafo del
restricciones del problema del coloreo de
Australia
AS
NGS
V
T
67
La estructura de los problemas
  • Una descomposición en árbol debe satisfacer los
    siguientes tres requerimientos
  • Cada variable en el problema original aparece en
    por lo menos uno de los subproblemas.
  • Si dos variables están conectadas por una
    restricción en el problema original, deben
    aparecer juntas (con su restricción) en por lo
    menos uno de los subproblemas.
  • Si una variable aparece en dos subproblemas en el
    árbol que se está creando, debe aparecer en cada
    subproblema que forme parte de la ruta que
    conecta a los dos primeros subproblemas.

68
La estructura de los problemas
  • Los problemas se resuelven independientemente. Si
    cualquiera de los subproblemas no tiene solución,
    entonces sabemos que el problema completo tampoco
    tiene solución.
  • Si todos los subproblemas se pueden resolver, se
    intenta construir entonces una solución global al
    problema.
Write a Comment
User Comments (0)
About PowerShow.com