Você está na página 1de 13

BSQUEDA Y SATISFACCIN DE RESTRICCIONES Problemas de satisfaccin 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 verificacin hacia adelante para detectar estados sin solucin. Muchas veces lo que conviene es analizar la variable ms 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 Definicin de Problema y Espacio de Estados Un problema se define por: o Estado inicial, conjunto de operadores, predicado meta, funcin de coste del camino

Solucin 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

Formulacin de Espacio de Estados La formulacin de espacio de estado utiliza: o o Estado: descripcin de un problema (configuracin de) Operadores: describen acciones que transforman un estado en otro

Terminologa 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  Conjunto de estados, propiedades del estado o del camino hasta el o Funcin de coste del camino: suma de los costes de las acciones individuales

Resolucin de problemas Deseamos definir cualquier tipo de problema de bsqueda de manera que se pueda resolver automticamente. Necesitamos: Una representacin comn para todos los problemas de bsqueda que podamos definir. Algoritmos que trabajen sobre esa representacin. Definicin de un problema Elementos de un problema o Un punto de partida o Un objetivo a alcanzar o Acciones para resolver el problema Puede haber tambin: Restricciones sobre el objetivo Elementos particulares sobre el dominio del problema Representacin de problemas Representaciones generales o Espacio de estados: resolver un problema consiste en un conjunto depasos de resolucin desde el inicio hasta el objetivo. o Reduccin a sub-problemas: un problema se expresa mediante unajerarqua de sub-problemas (Representaciones para problemasespecficos o Juegos o Satisfaccin de restricciones (en algortmica) Representacin de problemas: estados Estado: la representacin de los elementos que describen el problema en unmomento concreto de su resolucin. Estados especiales:estado inicial, estado final. Mi problema: qu incluir en el estado? Modificacin del estado Para movernos entre los diferentes estados necesitamos operadores detransformacin Operador: funcin que transforma un estado en otro. Representacin de un operador: o Condiciones de aplicabilidad o Funcin de transformacin Espacio de estados Los estados y las relaciones de accesibilidad entre ellos conforman lo que se llamaelespacio de estados.

Solucin: Secuencia de pasos que llevan del estado inicial al final o tambin elestado final. Tipo de solucin: una cualquiera, la mejor en algn sentido, todas. Coste de la solucin: gasto en recursos de aplicar los operadores a los estados Descripcin 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 solucin o La secuencia de operadores o el estado final o Una solucin cualquiera, le mejor o todas.

ResolucinRepresentacin 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 DETERMINISTICOS ESTADOS DETERMINISTICOS Y ESPACIOS NO

Un ambiente determinstico es aquel en el cual cualquier accin tiene un solo efectogarantizado, no hay incertidumbre acerca del estado que resultar de la realizacin de laaccin. El mundo fsico puede ante todos los intentos y propsitos, ser considerado comono determinstico. Un ambiente no determinstico presente problemas ms grandes parael agente.

Un sistema es determinstico si, para un estado dado, al menos aplica una regla a l y desolo una manera. Si ms de una regla aplica a cualquier estado particular del sistema, o siuna regla aplica a un estado particular del sistema en ms de una manera, entonces elsistema es no determinstico Los modelos determinsticos caracterizan fenmenos cuyo resultado puede predecirsecon seguridad, si conocemos las condiciones en las cuales se presentan. Con mayor precisin, si conocemos las condiciones iniciales de un experimento, que da lugar a unfenmeno, entonces podemos prever los resultados posteriores de ste.Los modelos probabilsticos o no determinsticos caracterizan fenmenos aleatoriosfortuitos, al azar o inciertos, con la propiedad de que al observarlos en determinadoconjunto de condiciones, no siempre se obtiene el mismo resultado, es decir que nopresentan la regularidad de los fenmenos determinsticos (clsicos) el conjunto de todoslos resultados posibles de un experimento aleatorio se llama espacio muestra. Lodenotaremos S. 4.3 BSQUEDA SISTEMTICA Sistemtica: si existe una solucin la encuentra recorrido ordenado del espacio de estados si un estado no puede ser solucin -->poda No sistemtica: pueden no encontrar la solucin Los problemas de bsquedas, que generalmente encontramos en CienciasComputacionales, son de un estado determinstico. Por ejemplo, en los algoritmos debsqueda de anchura y de bsqueda de profundidad, uno sabe la secuencia de los nodosvisitados en un rbol.Sin embargo, los problemas de bsqueda, los cuales siempre tendremos que tratar enInteligencia artificial, son no determinsticos y el orden de elementos visitados en elespacio de bsqueda depende completamente en el conjunto de datos.Dependiendo de la metodologa de expansin de un espacio de estado yconsecuentemente el orden de los estados visitados los problemas de bsqueda senombran diferentes: Bsqueda de Metas a Profundidad, Bsqueda de Metas en Anchura,Bsqueda ptima.

4.3.1 BSQUEDA DE METAS A PROFUNDIDAD Funcionamiento Expandir un camino hasta llegar al final Si no es solucin y no tiene expansin posible, volver a un nodo no expandido delnivel anterior Menor exigencia de memoria o Basta con almacenar los nodos de la ruta que se est expandiendo Algoritmo Aadir ESTADO_INICIAL a ABIERTOS Inicializar CERRADOS a VACIO RESUELTO:= false While(ABIERTOS no VACIO and no RESUELTO) do ACTUAL:= primer nodo de ABIERTOS if ACTUAL es ESTADO_FINAL then RESUELTO:= true Else aadir ACTUAL a CERRADOS /* expandir ACTUAL */ forall(OPERADOR aplicable a ACTUAL) do generar NUEVO_ESTADO aplicando OPERADOR aadir NUEVO_ESTADO al principio de ABIERTOS end for end if end while Caractersticas bsqueda en profundidad Noescompleta: Puede no acabar nunca si encuentra una rama sin fin en elespacio de estados o En ciertos casos nunca se volvera atrs  Si hay ciclos bucle infinito  si espacio de estados es infinito o Muy dependiente del orden de aplicacin de los operadores Noesptima : Encuentra una solucin (la primera que aparezca) que no tiene por qu ser la mejor (la ms cercana) Complejidad o Complejidad espacial: O(bm)  b, factor de ramificacin  m, profundidad mxima de cualquier solucin

Complejidad temporal: O(bm)  si no hay solucin (o es el ultimo estado) examinar todos los estados(como en anchura) En general, suele ser ms rpida que bsqueda en anchura o es cuestin de suerte o puede funcionar bien si hay muchos estados finales o Ventajas: o Menores requisitos de memoria o Mayor rapidez (en promedio) inconvenientes: o Posibilidad de que se estanque o No asegura solucin ptima Variantes Profundidad Acotada Fijar un lmite mximo de profundidad (cota c)  Cuando un camino alcanza la profundidad c sin ser solucin, desecharlo Es completo o o o o o Asegura encontrar solucin si c es mayor que la profundidad de lasolucin No asegura solucinptima Complejidad: espacial (O(bc)), temporal (O(bc)) PROBLEMA: eleccin cota c

Pequea : o o Ahorra tiempo y espacio Puede impedir encontrar solucin

Grande: o o Desperdicio de tiempo y espacio Aumenta posibilidades de encontrar solucin

Profundidad Iterativa o o Secuencia de bsquedas por profundidad acotada, incrementando el valor de la cota hasta encontrar solucin ventajas:  Evita problema eleccin de la cota  Es completa y optima  Siempre da una solucin (si la hay)  Encuentra la mejor (a menor profundidad) Agota todos los nodos bajo la cota c antes de incrementarla Funcionamiento intermedio (anchura-profundidad) Uso de memoria reducido (como bsqueda profundidad)

o o

inconvenientes: o Repeticin de clculos  No excesivamente importante (afecta principalmente a estados en niveles superiores)  Mayora de nodos situados en niveles inferiores

4.3.2

BSQUEDA DE METAS EN ANCHURA

Una alternativa para la bsqueda de profundidad es la bsqueda de metas de anchura (o amplitud).Bsqueda en anchura (en ingls BFS - BreadthFirstSearch) es un algoritmo para recorrer o buscar elementos en un grafo (usado frecuentemente sobre rboles). Atraviesa un rbol por anchura ms que por profundidad. Como puede ser visto en la figura ms adelante, el algoritmo de anchura empieza examinando todos los nodos de un nivel (a veces llamado hebra uno) abajo del nodo raz. Si un estado meta es alcanzado aqu, el xito es reportado. De otra forma, la bsqueda contina ampliando caminos de todos los nodos del nivel en curso, para posteriormente bajar al prximo nivel. De este modo, la bsqueda contina 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 ningn nodo meta ha sido encontrado.

Funcionamiento Recorrer rbol/grafo de bsqueda en anchura o Expandir estado raz o Expandir todos sus sucesores o Expandir todos los sucesores de los sucesores.....

Realiza un ordenamiento de los estados a estudiar en base a su profundidad o Todos los nodos de profundidad d se estudiarn 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 Aadir ESTADO_INICIAL a ABIERTOS RESUELTO:= false While(ABIERTOS no VACIO and no RESUELTO) do ACTUAL:= primer nodo de ABIERTOS if ACTUAL es ESTADO_FINAL then RESUELTO:= true else /* expandir ACTUAL */ For all (OPERADOR aplicable a ACTUAL) do Generar NUEVO_ESTADO aplicando OPERADOR Aadir NUEVO_ESTADO al final de ABIERTOS End for End if Endwhile

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 enmltiples 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

Aadir ESTADO_INICIAL a ABIERTOS Inicializar CERRADOS a VACIO RESUELTO:=false while(ABIERTOS no VACIO and no RESUELTO)do ACTUAL:= primer nodo de ABIERTOS

if ACTUAl es ESTADO_FINAL then RESUELTO:= true else Aadir ACTUAL a CERRADOS /* expandir ACTUAL */ forall (OPERADOR aplicable a ACTUAL) do Generar NUEVO_ESTADO aplicando OPERADOR if (NUEVO_ESTADO no en ABIERTOS ni en CERRADOS) then Aadir NUEVO_ESTADO al final de ABIERTOS end if end for end if end while Incrementa el coste computacional Gestin de las listas Comprobacin pertenencia (inspeccionar ABIERTOS y CERRADOS) Caractersticas bsqueda en anchura Es completa: Garantiza que se encuentra la solucin o Si esta existe o Si el espacio de bsqueda es finito (sin ciclos) Es ptima: Siempre encuentra la solucin ms corta o Se asegura que la solucin encontrada es la de menor profundidad o nota: Si los operadores tienen asociado un coste, la solucin menosprofunda puede no ser la menos costosa. Complejidad o Dos factores b, factor de ramificacin: n promedio de estados generados desdeun estado dado p, profundidad estado objetivo: n mnimo de operadores necesariospara alcanzar la solucin encontrada o Complejidad espacial: O(b p ) o Complejidad temporal: O(b p

) o En el peor de los casos examina todos los nodos posible o Complejidad exponencial: se saca 1 de ABIERTOS y se aaden b demedia Muy ineficaz (explosin combinatoria), sobre todo en requisitos de espacio. 4.3.3 BSQUEDA PTIMA La bsqueda ptima tambin es llamada bsqueda heurstica, trata de resolver los problemas mediante un nueva tcnica. Podemos expandir nodos por seleccin seleccionando el nodo ms prometedor, donde estos nodos estarn identificados por el valor de su fuerza comparada con sus competidores homlogos, con la ayuda de funciones intuitivas especializadas, llamadas funciones heursticas. La bsqueda heurstica generalmente trabaja para dos tipos distintos de problemas: Forward reasoning (razonamiento hacia delante)Backwardreasoning (razonamiento hacia atrs) 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 bsqueda ciega: No usa conocimiento para guiar la bsqueda hacia el objetivo Caso particular: bsqueda en anchura. Propiedades de la bsqueda ptima Complejidad: o r: factor de ramificacin. o p: profundidad de la solucin. o Complejidad en espacio: O(rp). o Complejidad en tiempo: O(rp). Es completa. Es ptima. Salvo en espacios de estados pequeos, en la prctica esta bsqueda no esposible, debido a la cantidad de tiempo y espacio consumidos Implementacin de la bsqueda ptima FUNCION BUSQUEDA-OPTIMA () 1. Hacer ABIERTOS la cola formada por el nodo inicial (es decir, el nodo cuyo estadoes *ESTADO-INICIAL*, cuyo camino es vaco y cuyo coste es 0); Hacer CERRADOS vaco. 2. Mientras que ABIERTOS no est vaca, 2.1 Hacer ACTUAL el primer nodo de ABIERTOS y ABIERTOS el resto deABIERTOS 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 deSUCESORES (ACTUAL) que o bien tienen un estado que no apareceen los nodos de ABIERTOS ni de CERRADOS, o bien su coste esmenor que cualquier otro nodo con el mismo estado que apareciera enABIERTOS o en CERRADOS 2.3.2.2 Hacer ABIERTOS el resultado de incluir NUEVOSSUCESORES en ABIERTOS y ordenar todo en orden creciente de loscostes de los caminos de los nodos 3. Devolver FALLO 4.4 SATISFACCIN DE RESTRICCIONES Los problemas pueden resolverse buscando en un espacio de estados, estos estadospueden evaluarse por heursticas especficas para el dominio y probados para verificar sison estados meta. Los componentes del estado, son equivalentes a un grafo derestricciones, los cuales estn compuestos de: Variables. Dominios (valores posibles para las variables). Restricciones (binarias) entre las variables La satisfaccin de restricciones s la asignacin de valores a un conjunto de variables parasatisfacer las restricciones dadas. Definicin:red de restricciones P = (X,D,C)X = {X 1,X2,. . .,Xn} variables D= {D1,D2,. . .,Dn} dominios C = {C1,C2,. . .,Ce} restricciones Dada una restriccinCi,var (Ci ) = {Xi 1,..., Xik } relacionak variables (restriccink-aria)rel (Ci ) Di 1Di 2 ... Dik tuplas de valores permitidos. CSP: problema de resolver la red de restricciones Solucin:asignacin de valores a variables satisfaciendo todas las restricciones Complejidad:NP-completo algoritmos exponenciales (caso peor) Un problema de satisfaccin 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 variable X i tiene un dominio no vaco D i de posibles

valores . Cada restriccin C i involucra algn subconjunto de las variables y especifica lascombinaciones permisibles de valores de ese subconjunto. Un estado del problema se define por una asignacin de valores a alguna o todaslas variables, { X i = v i , X j = v j , }. Una asignacin que no viola ninguna restriccin es llamada consistente o legal. Una asignacin completa es una en la cual cada variable es mencionada. Una solucin a un PSR es una asignacin completa que satisface todas lasrestricciones. Objetivo: encontrar un estado que satisface las restricciones Representacin Estado = Grafo de restricciones o Variables = etiquetas de nodos o Dominios = contenido de nodos o Restricciones = arcos dirigidos y etiquetados entre nodos Ejemplo: colorear mapa

Você também pode gostar