Professional Documents
Culture Documents
- TECNICAS DE BUSQUEDA
S.E.P
D.G.E.S.T.
INTELIGENCIA ARTIFICIAL
CATEDRATICO:
LIC. MA. TERESA COBOS PONCE
INVESTIGACION
Pgina 1
OCTUBRE DE 2013
INDICE
2.1 Solucin de problemas con la bsqueda ................................................... 3 2.2 Espacios de estados .................................................................................. 4 2.2.1 Espacio de estados determinsticos ...................................................... 5 2.2.2 Espacio de estados no determinsticos ................................................ 5
2.3 Mtodos de bsquedas .............................................................................. 7 2.3.1 Primero en anchura(breadthfirst) ........................................................... 7 2.3.2 Primero en profundidad (depthfirst) ....................................................... 8 2.3.3 Grafos O ................................................................................................ 9 2.3.4 Grafos A ................................................................................................. 12 2.4 Satisfaccin de restricciones...................................................................... 15 2.5 Teora de juegos ........................................................................................ 16 Fuentes de informacin .................................................................................... 17
INVESTIGACION
Pgina 2
INVESTIGACION
Pgina 3
UNIDAD II.- TECNICAS DE BUSQUEDA 2.2. ESPACIOS DE ESTADOS Muchos de los problemas que pueden ser resueltos aplicando tcnicas de inteligencia artificial se modelan en forma simblica y discreta definiendo las configuraciones posibles del universo estudiado. El problema se plantea entonces en trminos de encontrar una configuracin objetivo a partir de una configuracin inicial dada, aplicando transformaciones vlidas segn el modelo del universo. La respuesta es la secuencia de transformaciones cuya aplicacin sucesiva lleva a la configuracin deseada. Los ejemplos ms caractersticos de esta categora de problemas son los juegos (son universos restringidos fciles de modelar). En un juego, las configuraciones del universo corresponden directamente a las configuraciones del tablero. Cada configuracin es un estado que puede ser esquematizado grficamente y representado en forma simblica. Las transformaciones permitidas corresponden a las reglas o movidas del juego, formalizadas como transiciones de estado. Entonces, para plantear formalmente un problema, se requiere precisar una representacin simblica de los estados y definir reglas del tipo condicin accin para cada una de las transiciones vlidas dentro del universo modelado. La accin de una regla indica como modificar el estado actual para generar un nuevo estado. La condicin impone restricciones sobre la aplicabilidad de la regla segn el estado actual, el estado generado o la historia completa del proceso de solucin. El espacio de estados de un juego es un grafo cuyos nodos representan las configuraciones alcanzables (los estados vlidos) y cuyos arcos explicitan las movidas posibles (las transiciones de estado). En principio, se puede construir cualquier espacio de estados partiendo del estado inicial, aplicando cada una de las reglas para generar los sucesores inmediatos, y as sucesivamente con cada uno de los nuevos estados generados (en la prctica, los espacios de estados suelen ser demasiado grandes para explicitarlos por completo). Cuando un problema se puede representar mediante un espacio de estados, la solucin computacional corresponde a encontrar un camino desde el estado inicial a un estado objetivo.
INVESTIGACION
Pgina 4
UNIDAD II.- TECNICAS DE BUSQUEDA 2.2.1. Determinsticos El espacio de estados determinsticos contienen un nico estado inicial y seguir la secuencia de estados para la solucin. Los espacios de estados determinsticos son usados por los sistemas expertos. Se puede describir a su vez, que un sistema es determinstico si, para un estado dado, al menos aplica una regla a l y de solo una manera. Un ambiente determinstico es aquel en el cual cualquier accin tiene un solo efecto garantizado, no hay incertidumbre acerca del estado que resultar de la realizacin de la accin. El mundo fsico puede ante todos los intentos y propsitos, ser considerado como no determinstico. Un ambiente no determinstico presente problemas ms grandes para el agente diseador. Un sistema es determinstico si, para un estado dado, al menos aplica una regla a l y de solo una manera. Si ms de una regla aplica a cualquier estado particular del sistema, o si una regla aplica a un estado particular del sistema en ms de una manera, entonces el sistema es no determinstico. 2.2.2. No determinsticos Un algoritmo no determinista es un algoritmo que con la misma entrada ofrece muchos posibles resultados. No se puede saber de antemano cul ser el resultado de la ejecucin de un algoritmo no determinista. El no determinstico contiene un amplio nmero de estados iniciales y sigue la secuencia de estados perteneciente al estado inicial del espacio. Son usados por sistemas de lgica difusa. En otras palabras, si ms de una regla aplica a cualquier estado particular del sistema, o si una regla aplica a un estado particular del sistema en ms de una manera, entonces el sistema es no determinstico. Una variedad de factores pueden causar un algoritmo para comportarse de una manera que es no determinista, o no determinista:
Si se utiliza el estado externo que no sea el de entrada, tales como la entrada del usuario, una variable global, un valor de temporizador de hardware, un valor aleatorio, o los datos del disco almacenados. Si se opera de una manera que es sensible al tiempo, por ejemplo si tiene varios procesadores de escritura para los mismos datos al mismo tiempo. En este caso, el orden preciso en el que cada procesador escribe sus datos afectar el resultado.
INVESTIGACION
Pgina 5
Aunque los programas reales rara vez son puramente det erminista, es ms fcil para los seres humanos, as como otros programas de razonar acerca de los programas que son. Por esta razn, la mayora de los lenguajes de programacin y lenguajes de programacin especialmente funcionales hacen un esfuerzo para evitar que los eventos anteriores a ocurrir, excepto bajo condiciones controladas. Una forma de simular algoritmos no deterministas N mediante el empleo de otros deterministas D puede realizarse tratando los estados de N como estados de D. Esto significa que D puede trazar todas las posibilidades y trayectorias de ejecucin del algoritmo N. Otra posibilidad es emplear algoritmos de generacin de nmeros aleatorios que consisten en perturbar los estados mediante el establecimiento de todas las posibilidades mediante un generador de nmeros aleatorios. El resultado es un algoritmo determinista probabilstico.
INVESTIGACION
Pgina 6
UNIDAD II.- TECNICAS DE BUSQUEDA 2.3. METODOS DE BUSQUEDA 2.3.1. Primero en anchura (breadthfirst) En ingles, breadth-first search. Si el conjunto open se maneja como una lista FIFO, es decir, como una cola, siempre se estar visitando primero los primeros estados en ser generados. El recorrido del espacio de estados se hace por niveles de profundidad. procedure Bsqueda_en_amplitud { Open () [estado_inicial] Closed () {} while (open no est vaca) { remover el primer estado X de la lista open if (X es un estado objetivo) return xito else { generar el conjunto de sucesores del estado X agregar el estado X al conjunto closed eliminar sucesores que ya estn en open o en closed agregar el resto de los sucesores al final de open } } return fracaso } Si el factor de ramificacin es B y la profundidad a la cual se encuentra el estado objetivo ms cercano es n, este algoritmo tiene una complejidad en tiempo y espacio de O (Bn). Contrariamente a la bsqueda en profundidad, la bsqueda en amplitud garantiza encontrar el camino ms corto.
INVESTIGACION
Pgina 7
UNIDAD II.- TECNICAS DE BUSQUEDA 2.3.2. Primero en profundidad (depthfirst) En ingls, depth-first search. Si el conjunto open se maneja como una lista LIFO, es decir, como un stack, siempre se estar visitando primero los ltimos estados en ser generados. Esto significa que si A genera B y C, y B genera D, antes de visitar C se visita D, que est ms alejado de la raiz A, o sea ms profundo en el rbol de bsqueda. El algoritmo tiene en este caso la tendencia de profundizar la bsqueda en una rama antes de explorar ramas alternativas. procedure Bsqueda_en_profundidad { open () [estado_inicial] closed () {} while (open no est vaca) { remover el primer estado X de la lista open if (X es un estado objetivo) return xito else { generar el conjunto de sucesores del estado X agregar el estado X al conjunto closed eliminar sucesores que ya estn en open o en closed agregar el resto de los sucesores al principio de open } } return fracaso } Considerando que la cantidad promedio de sucesores de los nodos visitados es B (llamado en ingls el branching factor y en castellano el factor de ramificacin), y suponiendo que la profundidad mxima alcanzada es n, este algoritmo tiene una complejidad en tiempo de O(Bn) y, si no se considera el conjunto closed, una complejidad en espacio de O(B n). En vez de usar el conjunto closed, el control de ciclos se puede hacer descartando aquellos estados que aparecen en el camino generado hasta el momento (basta que cada estado generado tenga un puntero a su padre).
INVESTIGACION Pgina 8
UNIDAD II.- TECNICAS DE BUSQUEDA 2.3.3. Grafos O Los grafos 0 permiten encontrar una solucin sin tener que expandirse completamente por todas las ramas. La bsqueda primero en anchura presenta la ventaja de que no queda atrapada en callejones sin salida. Puede consistir en seguir un nico camino cada vez, y cambiarlo cuando alguna ruta parezca ms prometedora que la que se est siguiendo en ese momento. En cada paso del proceso de bsqueda el primero mejor, se selecciona el nodo ms prometedor que se haya generado hasta ese momento. Esto se puede conseguir con una funcin heurstica apropiada. A continuacin se expande el nodo elegido aplicando las reglas para generar a sus sucesores. Si alguno de ellos es una solucin, el proceso termina. Si no es a si estos nuevos nodos se aaden a la lista de nodos que se han generado hasta ese momento. De nuevo se selecciona el ms prometedor de ellos y el proceso continuo de la misma forma. Sin embargo si no se encuentra una solucin, la rama empezara a parecer menos prometedora que otras por encima de ella y que se haban ignorado. EJEMPLOS Muestra el comienzo de un proceso de bsqueda el primero mejor. Inicialmente solo existe un nodo, de forma que este se expande, al hacerlo se generan tres nodos nuevos. En este ejemplo la funcin heurstica es una estimacin del coste necesario para llegar a una solucin a partir del nodo dado, y se aplica a cada nodo.
INVESTIGACION
Pgina 9
Para poder implementar un procedimiento de bsqueda sobre un grafo se necesitan dos listas de nodos ABIERTOS: Nodos que se han generado y a los que se les ha aplicado la funcin heurstica, pero que aun no han sido examinados (es decir no se han generados nuevos sucesores. CERRADOS: nodos que ya se han examinado.es necesario mantener estos nodos en memoria si lo que se desea es hacer una bsqueda sobre un grafo y no sobre un rbol, debido a que cuando se genera un nuevo nodo, se debe verificar si ese nado se haba generado con anterioridad. El proceso puede resumirse como sigue: Algoritmo: Bsqueda el primero mejor. 1.- comenzar con ABIERTOS conteniendo solo el estado inicial. 2.-hasta que se llegue a un objetivo o no queden nodos en ABIERTOS hacer: a) Tomar el mejor nodo de ABIERTOS b) Generar sus sucesores. c) Para cada sucesor hacer:
INVESTIGACION
Pgina 10
UNIDAD II.- TECNICAS DE BUSQUEDA i. si no se ha generado con anterioridad, evaluarlo, aadirlo a ABIERTOS y almacenar a su padre.
ii. Si ya se ha generado antes, cambiar al padre si el nuevo cambio es mejor que el anterior. En este caso, se actualiza el coste empleado para alcanzar el nodo y a los sucesores que pudiera tener. ALGORITMOS A* El algoritmo de la bsqueda del primero mejor descrito antes es una simplificacin de un algoritmo denominado A* , que fue introducido por primera vez por Hart et al.(1968;1972).este algoritmo utiliza las mismas funciones , g y h , as como las listas ABIERTOS Y CERRADOS , que ya sean descrito. PASOS: Empezar con ABIERTOS conteniendo solo el nodo inicial Repetir el siguiente procedimiento hasta que se encuentre un nodo objetivo: si no existen nodos abiertos informar el fallo. Si SUCESOR no se encuentra en ABIERTOS, mirar si se encuentra en CERRADOS. Si SUCESOR no estaba ya en ABIERTOS o en CERRADOS ponerlo en ABIERTOS y aadirlo a la lista de sucesores de MEJORNODO. AGENDAS Es una lista de las tareas que un sistema puede realizar. Normalmente a cada tarea se le asocian dos abiertos: una de las listas de las razones por las que se propone la tarea (con frecuencia denominadas justificaciones) y un valor que represente el peso total de la evidencia que dice que la tarea sera til. Un sistema conducido mediante agenda utiliza el siguiente procedimiento: Algoritmo: bsqueda conducida mediante agenda 1-hasta que se alcance un estado objetivo o la agenda vaca hacer: a) Elegir una tarea ms prometedora de la agenda. b) Ejecutar la tarea asignndole un nmero de recursos determinados por su importancia. c) mirar si ya se encuentra en la segunda. Si es as, mirar si la razn por la que debe realizarse ya est en su lista de justificaciones.
INVESTIGACION
Pgina 11
UNIDAD II.- TECNICAS DE BUSQUEDA 2.3.4. Grafos A BUSQUEDA POR EL METODO ALGORITMICO A* Bsqueda A* El algoritmo de bsqueda A*(pronunciado A asterisco o A estrella) se clasifica dentro de los algoritmos de bsqueda en grafos. Presentado por primera vez en 1968 por Peter E. Hart, Nils J. Nilsson y Bertram Raphael, el algoritmo A* encuentra, siempre y cuando se cumplan unas determinadas condiciones, el camino de menor coste entre un nodo origen y uno objetivo. Bsqueda por el mtodo algortmico A* l mtodo busca el camino en un grafo de un vrtice inicial hasta un vrtice final. l es la combinacin de aproximaciones heursticas como del algoritmo Best-first Search. Su aplicacin va desde aplicativos para encontrar rutas de desplazamiento entre localidades la resolucin de problemas, como la resolucin de uno quiebra-cabezas. l es muy usado en juegos. Motivacin y descripcin. El problema de algunos algoritmos de bsqueda en grafos informados, como puede ser el algoritmo voraz, es que se guan en exclusiva por la funcin heurstica, la cual puede no indicar el camino de coste ms bajo, o por el coste real de desplazarse de un nodo a otro (como los algoritmos de escalada), pudindose dar el caso de que sea necesario realizar un movimiento de coste mayor para alcanzar la solucin. Es por ello bastante intuitivo el hecho de que un buen algoritmo de bsqueda informada debera tener en cuenta ambos factores, el valor heurstico de los nodos y el coste real del recorrido. Conseguir buenas soluciones (ptimas). Ganar en eficiencia (reduciendo el rbol de bsqueda). Objetivo de la bsqueda A: g(n): coste del camino hasta n. h(n): heurstica del nodo, estimacin del coste de un camino ptimo desde n hasta un estado final. f (n): estimacin del coste total de una solucin ptima que pasa por n Idea: Asignar a cada nodo n un valor f (n) = g(n) + h(n) Ordenando la cola de ABIERTOS en orden creciente respecto a f Seleccionar siempre el nodo con menor valor de f Propiedades de A* Solucin. Solucin encontrada: I-W-K-M-F ptima (heurstica admisible) Nodos analizados: 8
INVESTIGACION Pgina 12
caso un
(se ha solucin
Ntese que se generan dos nodos distintos con el mismo estado K (pero distinto camino) Cuando un algoritmo de tipo A utiliza una funcin heurstica h (n) que es una corta inferior de h* (n). Recordemos que h* (n) es el coste real del camino ptimo de n a un nodo terminal .Entonces el algoritmo A recibe el nombre de A*. El inters de dicho algoritmo A* se puede resumir en dos propiedades fundamentales: 1. Si existe un camino solucin, entonces aplicando el algoritmo A* tendremos garanta de encontrar el camino ptimo. Esta propiedad se conoce con el nombre de admisibilidad del algoritmo A*. Algoritmo A* 2.Dadas dos funciones heursticas admisibles H1 (n) <<h* (n) y h2 (n) <h* (n) tales que h1 (n) <h2 (n)1 para todos los nodos del grafico implcito, entonces el algoritmo A* utilizando la funcin menos informada h1 (n) expandir como mnimo los mismos nodos que expandira usando h2 (n). Esta propiedad nos dice que los algoritmos A* tienden a expandir menos nodos cuando h (n) se acerca a h*(n). Donde C (ni, nj) es el coste del camino optimo entre los nodos ni y ni podemos asegurar que cada nodo seleccionado por A* se encuentra con seguridad en el camino solucin: el crecimiento de la complejidad es lineal con la profundidad de bsqueda (N). f (n) = g(n) + h(n): Coste real del plan (camino) de mnimo coste que pasa por n. f* (n) = g(n) + h*(n): estimacin de f Funcin heurstica de A*: ABIERTOS := [INICIAL] //inicializacin CERRADOS:= [] f'(INICIAL) := h'(INICIAL) Repetir si ABIERTOS = [] entonces FALLO Si no // quedan nodos Extraer MEJORNODO de ABIERTOS con f' mnima // Cola de prioridad Mover MEJORNODO de ABIERTOS si MEJORNODO contiene estado objetivo entonces
INVESTIGACION
CERRADOS
Pgina 13
UNIDAD II.- TECNICAS DE BUSQUEDA SOLUCION_ENCONTRADA:= TRUE Si no Generar SUCESORES de MEJORNODO Para cada SUCESOR hacer TRATAR_SUCESOR Hasta SOLUCION_ENCONTRADA o FALLO Implementacin algoritmo A* en pseudocdigo La complejidad del algoritmo est ntimamente relacionada con la calidad de la heurstica que se utilice en el problema. En el caso peor, con una heurstica de psima calidad, la complejidad ser exponencial, mientras que en el caso mejor, con una buena, el algoritmo se ejecutar en tiempo lineal. Para que esto ltimo suceda, se debe cumplir que h(x)<=g(y)-g(x)+h(y) Donde h* es una heurstica ptima para el problema, como por ejemplo, el coste real de alcanzar el objetivo Complejidad Como todo algoritmo de bsqueda en amplitud, A* es un algoritmo completo: en caso de existir una solucin, siempre dar con ella. Si para todo nodo n del grafo se cumple g(n)=0, nos encontramos ante una bsqueda voraz. Si para todo nodo n del grafo se cumple h(n)=0, A* pasa a ser una bsqueda de coste uniforme no informada. Para garantizar la optimalizad del algoritmo, la funcin debe ser admisible, esto es, que no sobrestime el coste real de alcanzar el nodo objetivo. Propiedades De no cumplirse dicha condicin, el algoritmo pasa a denominarse simplemente A, y a pesar de seguir siendo completo, no se asegura que el resultado obtenido sea el camino de coste mnimo. Asimismo, si garantizamos que es consistente (o montona), es decir, que para cualquier nodo y cualquiera de sus sucesores, el coste estimado de alcanzar el objetivo desde n no es mayor que el de alcanzar el sucesor ms el coste de alcanzar el objetivo desde el sucesor
INVESTIGACION
Pgina 14
UNIDAD II.- TECNICAS DE BUSQUEDA 2.4. SATISFACCION DE RESTRICCIONES Los problemas pueden resolverse buscando en un espacio de estados, estos estados pueden evaluarse por heursticas especficas para el dominio y probados para verificar si son estados meta. Los componentes del estado, son equivalentes a un grafo de restricciones, los cuales estn compuestos de: Variables. Dominios (valores posibles para las variables). Restricciones (binarias) entre las variables. Objetivo: encontrar un estado (una asignacin completa de valores a las variables) Que satisface las restricciones. En los Problemas de Satisfaccin de Restricciones (PSR), los estados y la prueba de meta siguen a una representacin estndar, estructurada y muy simple. Ejemplos: Crucigramas Colorear mapas
INVESTIGACION
Pgina 15
UNIDAD II.- TECNICAS DE BUSQUEDA 2.5. TEORIA DE JUEGOS Siendo una de las principales capacidades de la inteligencia humana su capacidad para resolver problemas, as como la habilidad para analizar los elementos esenciales de cada problema, abstrayndolos, el identificar las acciones que son necesarias para resolverlos y el determinar cul es la estrategia ms acertada para atacarlos, son rasgos fundamentales. Podemos definir la resolucin de problemas como el proceso que partiendo de unos datos inciales y utilizando un conjunto de procedimientos escogidos, es capaz de determinar el conjunto de pasos o elementos que nos llevan a lo que denominaremos una solucin ptima o semi-ptima de un problema de planificacin, descubrir una estrategia ganadora de un juego, demostrar un teorema, reconocer Una imagen, comprender una oracin o un texto son algunas de las tareas que pueden concebirse como de resolucin. Una gran ventaja que nos proporciona la utilizacin de los juegos es que a travs de ellos es muy fcil medir el xito o el fracaso, por lo que podemos comprobar si las tcnicas y algoritmos empleados son los ptimos. En comparacin con otras aplicaciones de inteligencia artificial, por ejemplo comprensin del lenguaje, los juegos no necesitan grandes cantidades de algoritmos. Los juegos ms utilizados son las damas y el ajedrez.
INVESTIGACION
Pgina 16
UNIDAD II.- TECNICAS DE BUSQUEDA FUENTES BIBLIOGRAFICAS Y ELECTRONICAS Mariana Cambronero, recuperado el 01/10/13,
Asociacin Mexicana para el Procesamiento del Lenguaje Natural, recuperado el 29/09/13, http://www.cicling.org/ampln/NLP.htm Libro Inteligencia Artificial un enfoque moderno, segunda edicin. Autores: Stuart J. Russell y Peter Norving. Recuperado el 13/09/13
http://exordio.qfb.umich.mx/archivos%20pdf%20de%20trabajo%20umsnh/stuart%20j%2 0russell,%20peter%20norvig%20%20inteligencia%20artificial,%20un%20enfoque%20mod erno%20-%20prentice%20hall%20(ocr.pdf
INVESTIGACION
Pgina 17