BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

17
BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES Problemas de satisfacción de restricciones es un tipo especial de problemas que satisfacen algunas propiedades adicionales. Las restricciones pueden involucrar una o varias variables al mismo tiempo. A veces en estos problemas conviene hacer una verificación hacia adelante para detectar estados sin solución. Muchas veces lo que conviene es analizar la variable más restringida, esto es, asignarle un valor a la variable que está involucrada en la mayor cantidad de restricciones. 4.1 PROBLEMAS Y ESPACIOS DE ESTADOS Definición de Problema y Espacio de Estados Un problema se define por: o Estado inicial, conjunto de operadores, predicado meta, función de coste del camino Solución o Camino del estado inicial a un estado que satisface el predicado meta Espacio de Estados o Conjunto de todos los estados alcanzables desde el estado inicial por cualquier secuencia de operadores Formulación de Espacio de Estados La formulación de espacio de estado utiliza: o Estado: descripción de un problema (configuración de) o Operadores: describen acciones que transforman un estado en otro Terminología adicional o Estado inicial: problema inicial o Estado meta: estado en el que se ha resuelto el problema o Predicado meta: test que se puede aplicar a un estado para determinar si es meta

Transcript of BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

Page 1: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

Problemas de satisfacción de restricciones es un tipo especial de problemas que satisfacen algunas propiedades adicionales. Las restricciones pueden involucrar una o varias variables al mismo tiempo. A veces en estos problemas conviene hacer una verificación hacia adelante para detectar estados sin solución. Muchas veces lo que conviene es analizar la variable más restringida, esto es, asignarle un valor a la variable que está involucrada en la mayor cantidad de restricciones.

4.1 PROBLEMAS Y ESPACIOS DE ESTADOS

Definición de Problema y Espacio de Estados

Un problema se define por:

o Estado inicial, conjunto de operadores, predicado meta, función de coste del camino

Solución

o Camino del estado inicial a un estado que satisface el predicado meta

Espacio de Estados

o Conjunto de todos los estados alcanzables desde el estado inicial por cualquier secuencia de operadores

Formulación de Espacio de Estados

La formulación de espacio de estado utiliza:

o Estado: descripción de un problema (configuración de)o Operadores: describen acciones que transforman un estado en otro

Terminología adicionalo Estado inicial: problema inicialo Estado meta: estado en el que se ha resuelto el problemao Predicado meta: test que se puede aplicar a un estado para determinar si

es meta Conjunto de estados, propiedades del estado o del camino hasta el

o Función de coste del camino: suma de los costes de las acciones individuales

Page 2: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

Resolución de problemas

Deseamos definir cualquier tipo de problema de búsqueda de manera que se pueda resolver automáticamente.

Necesitamos:

Una representación común para todos los problemas de búsqueda que podamos definir.

Algoritmos que trabajen sobre esa representación.

Definición de un problema

Elementos de un problemao Un punto de partidao Un objetivo a alcanzar o Acciones para resolver el problema

Puede haber también: Restricciones sobre el objetivo Elementos particulares sobre el dominio del problema

Representación de problemas

Representaciones generaleso Espacio de estados : resolver un problema consiste en un conjunto de

pasos de resolución desde el inicio hasta el objetivo.o Reducción a sub-problemas : un problema se expresa mediante una

jerarquía de sub-problemas (Representaciones para problemas específicoso Juegoso Satisfacción de restricciones (en algorítmica)

Representación de problemas: estados Estado: la representación de los elementos que describen el problema en un

momento concreto de su resolución. Estados especiales: estado inicial, estado final . Mi problema: ¿qué incluir en el estado?

Modificación del estado Para movernos entre los diferentes estados necesitamos operadores de

transformación Operador: función que transforma un estado en otro. Representación de un operador:

o Condiciones de aplicabilidado Función de transformación

Espacio de estados

Los estados y las relaciones de accesibilidad entre ellos conforman lo que se llama el espacio de estados.

Page 3: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

Solución: Secuencia de pasos que llevan del estado inicial al final o también el estado final.

Tipo de solución: una cualquiera, la mejor en algún sentido, todas. Coste de la solución: gasto en recursos de aplicar los operadores a los estados

Descripción de un problema mediante espacio de estados

Definir el espacio de estados Especificar el estado inicial Especificar el estado final Especificar los operadores Especificar el tipo de solución

o La secuencia de operadores o el estado finalo Una solución cualquiera, le mejor o todas.

Resolución Representación del espacio de estados

Estructuras de datos: árboles y grafos. Estados: nodos. Operadores: arcos entre nodos. Árboles: un solo camino lleva a un nodo. Grafos: varios caminos pueden llevar a un nodo.

4.2 ESPACIOS DE ESTADOS DETERMINISTICOS Y ESPACIOS NO DETERMINISTICOS

Un ambiente determinístico es aquel en el cual cualquier acción tiene un solo efecto garantizado, no hay incertidumbre acerca del estado que resultará de la realización de la acción. El mundo físico puede ante todos los intentos y propósitos, ser considerado como no determinístico. Un ambiente no determinístico presente problemas más grandes para el agente.

Page 4: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

  Un sistema es determinístico si, para un estado dado, al menos aplica una regla a él y de solo una manera. Si más de una regla aplica a cualquier estado particular del sistema, o si una regla aplica a un estado particular del sistema en más de una manera, entonces el sistema es no determinístico

 Los modelos determinísticos caracterizan fenómenos cuyo resultado puede predecirse con seguridad, si conocemos las condiciones en las cuales se presentan. Con mayor precisión, si conocemos las condiciones iniciales de un experimento, que da lugar a un fenómeno, entonces podemos prever los resultados posteriores de éste. Los modelos probabilísticos o no determinísticos caracterizan fenómenos aleatorios “fortuitos, al azar” o inciertos, con la propiedad de que al observarlos en determinado conjunto de condiciones, no siempre se obtiene el mismo resultado, es decir que no presentan la regularidad de los fenómenos determinísticos (clásicos) el conjunto de todos los resultados posibles de un experimento aleatorio se llama espacio muestra. Lo denotaremos S.

4.3 BÚSQUEDA SISTEMÁTICA  Sistemática: si existe una solución la encuentra

recorrido ordenado del espacio de estados si un estado no puede ser solución --> poda

No sistemática: pueden no encontrar la solución

Los problemas de búsquedas, que generalmente encontramos en Ciencias Computacionales, son de un estado determinístico. Por ejemplo, en los algoritmos de búsqueda de anchura y de búsqueda de profundidad, uno sabe la secuencia de los nodos visitados en un árbol. Sin embargo, los problemas de búsqueda, los cuales siempre tendremos que tratar en Inteligencia artificial, son no determinísticos y el orden de elementos visitados en el espacio de búsqueda depende completamente en el conjunto de datos. Dependiendo de la metodología de expansión de un espacio de estado y consecuentemente el orden de los estados visitados los problemas de búsqueda se nombran diferentes: Búsqueda de Metas a Profundidad, Búsqueda de Metas en Anchura, Búsqueda Óptima.

Page 5: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

4.3.1 BÚSQUEDA DE METAS A PROFUNDIDAD

Funcionamiento

Expandir un camino hasta llegar al final Si no es solución y no tiene expansión posible, volver a un nodo no expandido del

nivel anterior  Menor exigencia de memoria

o Basta con almacenar los nodos de la ruta que se está expandiendo

Algoritmo

Añadir ESTADO_INICIAL a ABIERTOS Inicializar CERRADOS a VACIORESUELTO:= falseWhile (ABIERTOS no VACIO and no RESUELTO) do ACTUAL:= primer nodo de ABIERTOSif ACTUAL es ESTADO_FINAL thenRESUELTO:= true Else añadir ACTUAL a CERRADOS/* expandir ACTUAL */for all (OPERADOR aplicable a ACTUAL) dogenerar NUEVO_ESTADO aplicando OPERADORañadir NUEVO_ESTADO al principio de ABIERTOSend forend if end while

Características búsqueda en profundidad

No es completa: Puede no acabar nunca si encuentra una rama sin fin en el espacio de estados

o En ciertos casos nunca se volvería atrás Si hay ciclos bucle infinito si espacio de estados es infinito

o Muy dependiente del orden de aplicación de los operadores

No es óptima : Encuentra una solución (la primera que aparezca) que no tiene por qué ser la mejor (la más cercana)

Complejidad

o Complejidad espacial: O(b×m) b, factor de ramificación m, profundidad máxima de cualquier solución

Page 6: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

o Complejidad temporal: O(bm) si no hay solución (o es el ´ultimo estado) examinará todos los

estados(como en anchura) En general, suele ser más rápida que búsqueda en anchura

o es cuestión de suerte”o puede funcionar bien si hay muchos estados finales

Ventajas:o Menores requisitos de memoriao Mayor rapidez (en promedio)

inconvenientes:o Posibilidad de que se estanqueo No asegura solución óptima

Variantes

Profundidad Acotada

o Fijar un límite máximo de profundidad (cota c) Cuando un camino alcanza la profundidad c sin ser solución,

desecharlo Es completo

o Asegura encontrar solución si c es mayor que la profundidad de la solucióno No asegura solución óptimao Complejidad: espacial (O(b×c)), temporal (O(bc))o PROBLEMA: elección cota c

Pequeña :

o Ahorra tiempo y espacio o Puede impedir encontrar solución

Grande:

o Desperdicio de tiempo y espacio o Aumenta posibilidades de encontrar solución

Profundidad Iterativa

o Secuencia de búsquedas por profundidad acotada, incrementando el valor de la cota hasta encontrar solución

o ventajas: Evita problema elección de la cota Es completa y optima Siempre da una solución (si la hay) Encuentra la mejor (a menor profundidad) → Agota todos los nodos

bajo la cota c antes de incrementarla

Page 7: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

o Funcionamiento intermedio (anchura-profundidad)o Uso de memoria reducido (como búsqueda profundidad)

inconvenientes:

o Repetición de cálculos No excesivamente importante (afecta principalmente a estados en

niveles superiores) Mayoría de nodos situados en niveles inferiores

4.3.2 BÚSQUEDA DE METAS EN ANCHURA 

Una alternativa para la búsqueda de profundidad es la búsqueda de metas de anchura (o amplitud).Búsqueda en anchura (en inglés BFS - Breadth First Search) es un algoritmo para recorrer o buscar elementos en un grafo (usado frecuentemente sobre árboles).

Atraviesa un árbol por anchura más que por profundidad. Como puede ser visto en la figura más adelante, el algoritmo de anchura empieza examinando todos los nodos de un nivel (a veces llamado hebra uno) abajo del nodo raíz.

Si un estado meta es alcanzado aquí, el éxito es reportado. De otra forma, la búsqueda continúa ampliando caminos de todos los nodos del nivel en curso, para posteriormente bajar al próximo nivel. De este modo, la búsqueda continúa revisando nodos en un nivel especial, e informará sobre el éxito cuando un nodo meta es encontrado, y reportar una falla si todos los nodos han sido revisados y ningún nodo meta ha sido encontrado.

Funcionamiento

Recorrer árbol/grafo de búsqueda en anchurao Expandir estado raíz

Page 8: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

o Expandir todos sus sucesoreso Expandir todos los sucesores de los sucesores.....

Realiza un ordenamiento de los estados a estudiar en base a su profundidado Todos los nodos de profundidad d se estudiarán antes que cualquier nodoa

profundidad d + 1

Algoritmo

ABIERTOS: Lista ordenada de nodos generados aun no expandidos (no se han generado sus sucesores) → almacena nodos “frontera”, en espera de ser expandidos

Añadir ESTADO_INICIAL a ABIERTOSRESUELTO:= falseWhile (ABIERTOS no VACIO and no RESUELTO) do ACTUAL:= primer nodo de ABIERTOSif  ACTUAL es ESTADO_FINAL thenRESUELTO:= true else/* expandir ACTUAL */For all (OPERADOR aplicable a ACTUAL) do Generar NUEVO_ESTADO aplicando OPERADORAñadir NUEVO_ESTADO al final de ABIERTOSEnd for End if End while

ABIERTOS: Funciona como una cola (fifo)→ mayor profundidad al final de la lista

MEJORA: En espacios de estados con estructura de grafo evitar examinar un estado en múltiples ocasiones

Lista cerrados: Almacena estados ya examinados Expandir solo estados que no parezcan en abiertos (ya generados) ni en cerrados(ya

examinados)

Tipos de estados

Añadir ESTADO_INICIAL a ABIERTOS Inicializar CERRADOS a VACIORESUELTO:=false

Page 9: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

 while (ABIERTOS no VACIO and no RESUELTO)do ACTUAL:= primer nodo de ABIERTOSif ACTUAl es ESTADO_FINAL then RESUELTO:= true elseAñadir ACTUAL a CERRADOS /* expandir ACTUAL */ for all (OPERADOR aplicable a ACTUAL) doGenerar NUEVO_ESTADO aplicando OPERADORif (NUEVO_ESTADO no en ABIERTOS ni en CERRADOS) thenAñadir NUEVO_ESTADO al final de ABIERTOSend if end for end if end while

Incrementa el coste computacional•Gestión de las listas•Comprobación pertenencia (inspeccionar ABIERTOS y CERRADOS) Características búsqueda en anchura•Es completa: Garantiza que se encuentra la solucióno Si esta existeo Si el espacio de búsqueda es finito (sin ciclos)•Es óptima: Siempre encuentra la solución más cortaoSe asegura que la solución encontrada es la de menor profundidadonota: Si los operadores tienen asociado un coste, la solución menosprofunda puede no ser la menos costosa.•ComplejidadoDos factores§b, factor de ramificación: n° promedio de estados generados desdeun estado dado§p, profundidad estado objetivo: n° mínimo de operadores necesariospara alcanzar la solución encontradaoComplejidad espacial: O(bp)o

Page 10: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

Complejidad temporal: O(bp) oEn el peor de los casos examina todos los nodos posibleoComplejidad exponencial: se saca 1 de ABIERTOS y se añaden b demedia •Muy ineficaz (explosión combinatoria), sobre todo en requisitos de espacio. 4.3.3 BÚSQUEDA ÓPTIMA 

La búsqueda óptima también es llamada búsqueda heurística, trata de resolver los problemas mediante un nueva técnica. Podemos expandir nodos por selección seleccionando el nodo más prometedor, donde estos nodos estarán identificados por el valor de su fuerza comparada con sus competidores homólogos, con la ayuda de funciones intuitivas especializadas, llamadas funciones heurísticas. La búsqueda heurística generalmente trabaja para dos tipos distintos de problemas: Forward reasoning (razonamiento hacia delante)Backward reasoning (razonamiento hacia atrás)

Funcionamiento Analizar primero los nodos con menor coste. Ordenar la cola de abiertos por coste, de menor a mayor  De esta manera, cuando se llega por primera vez a un estado final, se llega con el

menor costo posible. Se trata de una búsqueda ciega: No usa conocimiento para guiar la búsqueda

hacia el objetivo Caso particular: búsqueda en anchura.

Propiedades de la búsqueda óptima

Complejidad:o r: factor de ramificación.o p: profundidad de la solución.o Complejidad en espacio: O(rp).o Complejidad en tiempo: O(rp).

Es completa. Es óptima. Salvo en espacios de estados pequeños, en la práctica esta búsqueda no es

posible, debido a la cantidad de tiempo y espacio consumidos

Implementación de la búsqueda óptima

FUNCION BUSQUEDA-OPTIMA ()1. Hacer ABIERTOS la cola formada por el nodo inicial (es decir, el nodo cuyo estado es *ESTADO-INICIAL*, cuyo camino es vacío y cuyo coste es 0); Hacer CERRADOS vacío.2. Mientras que ABIERTOS no esté vacía,

2.1 Hacer ACTUAL el primer nodo de ABIERTOS y ABIERTOS el resto de ABIERTOS

Page 11: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

2.2 Poner el nodo ACTUAL en CERRADOS.2.3 Si ES-ESTADO-FINAL (ESTADO (ACTUAL)),

2.3.1 devolver el nodo ACTUAL y terminar.2.3.2 En caso contrario,

2.3.2.1 Hacer NUEVOS-SUCESORES la lista de nodos de SUCESORES (ACTUAL) que o bien tienen un estado que no aparece en los nodos de ABIERTOS ni de CERRADOS, o bien su coste es menor que cualquier otro nodo con el mismo estado que apareciera en ABIERTOS o en CERRADOS

2.3.2.2 Hacer ABIERTOS el resultado de incluir NUEVOS-SUCESORES en ABIERTOS y ordenar todo en orden creciente de los costes de los caminos de los nodos

3. Devolver FALLO

4.4 SATISFACCIÓN DE RESTRICCIONES

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. Los componentes del estado, son equivalentes a un grafo de restricciones, los cuales están compuestos de:

Variables. Dominios (valores posibles para las variables). Restricciones (binarias) entre las variables

La satisfacción de restricciones s la asignación de valores a un conjunto de variables para satisfacer las restricciones dadas.

Definición: red de restricciones

P = (X, D, C)X = {X 1,X 2,. . .,Xn } variablesD = {D1,D2,. . .,Dn } dominiosC = { C1,C2,. . .,Ce} restricciones

Dada una restricción Ci, var (Ci ) = { Xi 1,..., Xik } relaciona k  variables (restricción k-aria)rel (Ci ) ÍDi 1´Di 2 ´ ... ´Dik  tuplas de valores permitidos.

CSP: problema de resolver la red de restriccionesSolución: asignación de valores a variables satisfaciendo todas las restriccionesComplejidad: NP-completo algoritmos exponenciales (caso peor)

Un problema de satisfacción de restricciones (o PSR) se define por un conjunto de variables,X1, X 2,…,X n, y un conjunto de restricciones, C 1,C 2,…,C m.

Cada variableX i tiene undominiono vacíoD

Page 12: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

i de posiblesvalores.•Cada restricciónC i involucra algún subconjunto de las variables y especifica lascombinaciones permisibles de valores de ese subconjunto.•Un estado del problema se define por unaasignaciónde valores a alguna o todaslas variables, {X i =v i ,X j =v j ,…}.•Una asignación que no viola ninguna restricción es llamadaconsistenteo legal.•Una asignación completa es una en la cual cada variable es mencionada.•Unasolucióna un PSR es una asignación completa que satisface todas lasrestricciones.Objetivo:encontrar un estado que satisface las restriccionesRepresentación•Estado = Grafo de restriccionesoVariables = etiquetas de nodosoDominios = contenido de nodosoRestricciones = arcos dirigidos y etiquetados entre nodos•Ejemplo: colorear mapa

Page 13: BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES