You are on page 1of 17

UNIDAD II.

- TECNICAS DE BUSQUEDA

S.E.P

D.G.E.S.T.

INTELIGENCIA ARTIFICIAL

UNIDAD II.- TECNICAS DE BUSQUEDA

CATEDRATICO:
LIC. MA. TERESA COBOS PONCE

INVESTIGACION

CERRO AZUL, VER.

Pgina 1

OCTUBRE DE 2013

UNIDAD II.- TECNICAS DE BUSQUEDA

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

UNIDAD II.- TECNICAS DE BUSQUEDA

UNIDAD 2 TECNICAS DE BUSQUEDA


2.1. SOLUCION DE PROBLEMAS CON BUSQUEDA La solucin de problemas es fundamental para la mayora de las aplicaciones de IA; existen principalmente dos clases de problemas que se pueden resolver mediante procesos computables: aqullos en los que se utiliza un algoritmo determinista que garantiza la solucin al problema y las tareas complejas que se resuelven con la bsqueda de una solucin; de sta ltima clase de problemas se ocupa la IA. La solucin de problemas requiere dos consideraciones: Representacin del problema en un espacio organizado. La capacidad de probar la existencia del estado objetivo en dicho espacio. Las anteriores premisas se traducen en: la determinacin del estado objetivo y la determinacin del camino ptimo guiado por este objetivo a travs de una o ms transiciones dado un estado inicial El espacio de bsqueda, se le conoce como una coleccin de estados. En general los espacios de bsqueda en los problemas de IA no son completamente conocidos de forma a priori. De lo anterior resolver un problema de IA cuenta con dos fases: La generacin del espacio de estados La bsqueda del estado deseado en ese espacio. Debido a que todo el espacio de bsqueda de un p roblema es muy grande, puede causar un bloqueo de memoria, dejando muy poco espacio para el proceso de bsqueda. Para solucionar esto, se expande el espacio paso a paso, hasta encontrar el estado objetivo.

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

UNIDAD II.- TECNICAS DE BUSQUEDA

Si un error de hardware hace que su estado para cambiar de un modo inesperado.

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

UNIDAD II.- TECNICAS DE BUSQUEDA

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

UNIDAD II.- TECNICAS DE BUSQUEDA

Aunque en este explorado parcialmente ptima est asegurada

caso un

se analizan ms nodos camino equivocado), la

(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,

http://marianahistoriadelaia.blogspot.mx/2011/07/breve-historia-de-la-inteligencia.html Inteligencia artificial recuperado isc.blogspot.mx/p/unidad-2.html el 29/09/13, http://inteligenciaartificial-

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

You might also like