Sunteți pe pagina 1din 31

Bsqueda general de soluciones

Bsqueda no informada

Tema 3: Tcnicas bsicas de bsqueda para la resolucin de problemas


Jos Luis Ruiz Reina Jos Antonio Alonso Franciso J. Martn Mateos
Departamento de Ciencias de la Computacin e Inteligencia Articial Universidad de Sevilla

Inteligencia Articial I, 2012

Bsqueda general de soluciones

Bsqueda no informada

ndice

Bsqueda general de soluciones

Bsqueda no informada

Bsqueda general de soluciones

Bsqueda no informada

Recordar: mtodo de solucin de problemas


ABSTRACCION

Problema

Expresion como espacio de estados

Solucion
INTERPRETACION

Aplicacion de al goritmos de bus queda de solucion

Implementacion en un lenguaje de programacion

Bsqueda general de soluciones

Bsqueda no informada

Bsqueda de soluciones en espacios de estados


Objetivo: encontrar una secuencia de operadores que,

partiendo del estado inicial, obtenga un estado nal


Idea bsica: exploracin del grafo del espacio de estados
En cada momento se analiza un estado actual (en un

principio, el inicial)
Si el estado actual es nal, acabar (recopilando la sucesin

de operadores)
En caso contrario, obtener los sucesores del estado actual

(expandir)
Elegir un nuevo estado actual, dejando los restantes para

analizarlos posteriormente (si fuera necesario)


Repetir el proceso mientras haya estados por analizar

La eleccin del estado actual en cada momento determina

una estrategia de bsqueda

Bsqueda general de soluciones

Bsqueda no informada

rboles de bsqueda

El proceso anterior puede verse como la construccin

incremental de un rbol de bsqueda


Ejemplo en el problema de las jarras:
(0 0)

(4 0) (4 3) (1 3) (1 0)

(0 3) (3 0) (3 3)

Bsqueda general de soluciones

Bsqueda no informada

rboles de bsqueda
Nodo de un rbol de bsqueda, componentes:
Estado Secuencia de operadores que conducen al estado desde el

inicial (camino) Nodo raz del rbol de bsqueda: estado inicial +

secuencia vaca Nodos hoja del rbol de bsqueda:


Nodos cuya expansin no ha producido sucesores nuevos Nodos pendientes de considerar (y expandir en su caso)

Diferencias entre el espacio de estados y el rbol de

bsqueda:
Arbol vs. grafo Nodos del rbol de bsqueda: estado + camino El rbol de bsqueda se construye incrementalmente y

reeja un proceso de bsqueda sobre el grafo del espacio de estados

Bsqueda general de soluciones

Bsqueda no informada

Recordar: implementacin de un problema de espacio de estados


Eleccin de una representacin (estructura de datos):
para los estados para los operadores

La implementacin de un problema como espacio de

estados consta de:


Una variable global *ESTADO-INICIAL* Una funcin ES-ESTADO-FINAL(ESTADO) Una variable global *OPERADORES*. Una funcin APLICA(OPERADOR,ESTADO)

La funcin APLICA(OPERADOR,ESTADO):
Devuelve NO-APLICABLE si OPERADOR no es aplicable a ESTADO En caso contrario, devuelve el estado resultante de aplicar OPERADOR a ESTADO

Bsqueda general de soluciones

Bsqueda no informada

Implementacin de la bsqueda (funciones auxiliares)


Nodo de bsqueda: estado + camino
Funciones de acceso: ESTADO(NODO) y CAMINO(NODO)

Sucesores de un nodo:
FUNCION SUCESOR(NODO,OPERADOR) 1. Hacer ESTADO-SUCESOR igual a APLICA(OPERADOR,ESTADO(NODO)) 2. Si ESTADO-SUCESOR=NO-APLICABLE devolver NO-APLICABLE en caso contrario, devolver un nodo cuyo estado es ESTADO-SUCESOR y cuyo camino es el resultado de aadir OPERADOR a CAMINO(NODO) FUNCION SUCESORES(NODO) 1. Hacer SUCESORES vaco 2. Para cada OPERADOR en *OPERADORES*, si SUCESOR(NODO,OPERADOR) =/= NO-APLICABLE, incluir SUCESOR(NODO,OPERADOR) en SUCESORES 3. Devolver SUCESORES

Bsqueda general de soluciones

Bsqueda no informada

Implementacin de un procedimiento general de bsqueda

FUNCION BUSQUEDA-GENERAL() 1. Hacer ABIERTOS la "cola" formada por el nodo inicial (es decir, el nodo cuyo estado es *ESTADO-INICIAL* y cuyo camino es vaco); Hacer CERRADOS vaco 2. Mientras que ABIERTOS no est vaca, 2.1 Hacer ACTUAL el primer nodo de ABIERTOS 2.2 Hacer ABIERTOS el resto de ABIERTOS 2.3 Poner el nodo ACTUAL en CERRADOS. 2.4 Si ES-ESTADO-FINAL(ESTADO(ACTUAL)), 2.4.1 devolver el nodo ACTUAL y terminar. 2.4.2 en caso contrario, 2.4.2.1 Hacer NUEVOS-SUCESORES la lista de nodos de SUCESORES(ACTUAL) cuyo estado no est ni en ABIERTOS ni en CERRADOS 2.4.2.2 Hacer ABIERTOS igual a GESTIONA-COLA(ABIERTOS,NUEVOS SUCESORES) 3. Devolver FALLO.

Bsqueda general de soluciones

Bsqueda no informada

Procedimiento general de bsqueda: comentarios


La implementacin anterior es independiente del problema ABIERTOS puede verse como una cola en la que esperan

los nodos para ser analizados


CERRADOS contiene los nodos ya analizados:
Permite no iniciar la bsqueda en estados analizados En particular, nos permite evitar ciclos en el proceso de

bsqueda
En determinados problemas es prescindible

GESTIONA-COLA(ABIERTOS,NUEVOS SUCESORES):
Aade NUEVOS-SUCESORES a ABIERTOS, reordenando

segn algn criterio concreto


Distintas concreciones de esta funcin dan lugar a distintos

algoritmos de bsqueda (estrategias de bsqueda)


Bsqueda no informada o ciega vs. bsqueda informada

Bsqueda general de soluciones

Bsqueda no informada

Propiedades a estudiar de los algoritmos de bsqueda

Completitud: si existe solucin, la encuentra? Solucin ptima o mnima: obtiene la solucin de menor

nmero de pasos o de menor coste?


Complejidad en tiempo: cunto se tarda en encontrar una

solucin?
Complejidad en espacio: cunta memoria necesitamos?

Bsqueda general de soluciones

Bsqueda no informada

Observaciones sobre la complejidad

Siempre en notacin O, considerando el peor caso En funcin del tamao del problema de entrada: r (factor

de ramicacin), p (mnima profundidad de una solucin) y m (profundidad mxima en el rbol de bsqueda)


Complejidad en tiempo: nmero de nodos analizados Complejidad en espacio: tamao mximo de ABIERTOS (y
CERRADOS)

durante el proceso de bsqueda

Bsqueda general de soluciones

Bsqueda no informada

Implementacin de la bsqueda en anchura


En la bsqueda en anchura, ABIERTOS se gestiona como

una cola (FIFO):


FUNCION BUSQUEDA-EN-ANCHURA() 1. Hacer ABIERTOS la cola formada por el nodo inicial (el nodo cuyo estado es *ESTADO-INICIAL* y cuyo camino es vaco) Hacer CERRADOS vaco 2. Mientras que ABIERTOS no est vaca, 2.1 Hacer ACTUAL el primer nodo de ABIERTOS 2.2 Hacer ABIERTOS el resto de ABIERTOS 2.3 Poner el nodo ACTUAL en CERRADOS. 2.4 Si ES-ESTADO-FINAL(ESTADO(ACTUAL)), 2.4.1 devolver el nodo ACTUAL y terminar. 2.4.2 en caso contrario, 2.4.2.1 Hacer NUEVOS-SUCESORES la lista de nodos de SUCESORES(ACTUAL) cuyo estado no est ni en ABIERTOS ni en CERRADOS 2.4.2.2 Hacer ABIERTOS el resultado de incluir NUEVOS-SUCESORES al final de ABIERTOS 3. Devolver FALLO.

Bsqueda general de soluciones

Bsqueda no informada

Bsqueda en anchura
Arbol de bsqueda en anchura en el problema de las

jarras:
(0 0) 1

(4 0) 2 (4 3) 4 (1 3) 5 (1 0) 7

(0 3) 3 (3 0) 6 (3 3) 8

(0 1) 9

(4 2) 10

(4 1) 11

(0 2) 12

(2 3) 13

(2 0)

Bsqueda general de soluciones

Bsqueda no informada

Bsqueda en anchura
Bsqueda en anchura para el problema de las jarras:
Nodo 1 2 3 4 5 6 7 8 9 10 11 12 13 Actual (0 0) (4 0) (0 3) (4 3) (1 3) (3 0) (1 0) (3 3) (0 1) (4 2) (4 1) (0 2) (2 3) Sucesores ((4 0) (0 3)) ((4 3) (1 3)) ((3 0)) () ((1 0)) ((3 3)) ((0 1)) ((4 2)) ((4 1)) ((0 2)) ((2 3)) ((2 0)) Abiertos ((0 0)) ((4 0) (0 3)) ((0 3) (4 3) (1 3)) ((4 3) (1 3) (3 0)) ((1 3) (3 0)) ((3 0) (1 0)) ((1 0) (3 3)) ((3 3) (0 1)) ((0 1) (4 2)) ((4 2) (4 1)) ((4 1) (0 2)) ((0 2) (2 3)) ((2 3) (2 0))

Bsqueda general de soluciones

Bsqueda no informada

Propiedades de la bsqueda en anchura

Complejidad en tiempo O (r p ), donde: r : factor de ramicacin. p : profundidad de la solucin ms corta. Complejidad en espacio O (r p ). Es completa. Obtiene una solucin con el mnimo nmero de

operadores.

Bsqueda general de soluciones

Bsqueda no informada

Limitaciones de la bsqueda en anchura


Tiempo y espacio exponenciales, la hace muchas veces

inasumible en la prctica
Suponiendo ramicacin 10, 106 nodos por seg. y 1000

bytes por nodo: Profundidad 2 4 6 8 10 12 14 16 Nodos 110 11110 106 108 1010 1012 1014 1016 Tiempo 0.11 ms. 11 ms. 1.1 s. 2 min. 3 horas 13 das 3.5 aos 350 aos Espacio 107 Kb 10.6 Mb 1 Gb 103 Gb 10 Tb 1 Pb 99 Pb 10 Eb

Bsqueda general de soluciones

Bsqueda no informada

Implementacin de la bsqueda en profundidad


Bsqueda en profundidad, ABIERTOS se gestiona como una

pila (LIFO):
FUNCION BUSQUEDA-EN-PROFUNDIDAD() 1. Hacer ABIERTOS la pila formada por el nodo inicial (el nodo cuyo estado es *ESTADO-INICIAL* y cuyo camino es vaco) Hacer CERRADOS vaco 2. Mientras que ABIERTOS no est vaca, 2.1 Hacer ACTUAL el primer nodo de ABIERTOS 2.2 Hacer ABIERTOS el resto de ABIERTOS 2.3 Poner el nodo ACTUAL en CERRADOS. 2.4 Si ES-ESTADO-FINAL(ESTADO(ACTUAL)), 2.4.1 devolver el nodo ACTUAL y terminar. 2.4.2 en caso contrario, 2.4.2.1 Hacer NUEVOS-SUCESORES la lista de nodos de SUCESORES(ACTUAL) cuyo estado no est ni en ABIERTOS ni en CERRADOS 2.4.2.2 Hacer ABIERTOS el resultado de incluir NUEVOS-SUCESORES al principio de ABIERTOS 3. Devolver FALLO.

Bsqueda general de soluciones

Bsqueda no informada

Bsqueda en profundidad
Arbol de bsqueda en profundidad para el problema de las

jarras:
(0 0) 1

(4 0) 2 (4 3) 3 (1 3) 4 (1 0) 5

(0 3)

(0 1) 6

(4 1) 7

(2 3) 8

Bsqueda general de soluciones

Bsqueda no informada

Bsqueda en profundidad
Tabla de bsqueda en profundidad para el problema de las

jarras: Nodo 1 2 3 4 5 6 7 8

Actual (0 0) (4 0) (4 3) (1 3) (1 0) (0 1) (4 1) (2 3)

Sucesores ((4 0) (0 3)) ((4 3) (1 3)) () ((1 0)) ((0 1)) ((4 1)) ((2 3))

Abiertos ((0 0)) ((4 0) (0 3)) ((4 3) (1 3) (0 3)) ((1 3) (0 3)) ((1 0) (0 3)) ((0 1) (0 3)) ((4 1) (0 3)) ((2 3) (0 3))

Bsqueda general de soluciones

Bsqueda no informada

Propiedades de la bsqueda en profundidad

No es completa (puede no terminar)


S lo es en espacios nitos

Cuando termina, no necesariamente obtiene una solucin

mnima.
Complejidad en tiempo O (r m ), donde:
r : factor de ramicacin. m: mxima profundidad de la bsqueda.

Complejidad en espacio: en la implementacin dada anteriormente (que usa la lista de CERRADOS), O (r m )

Bsqueda general de soluciones

Bsqueda no informada

Observaciones sobre la complejidad en espacio


En la implementacin que se ha dado: El mximo tamao de la lista de ABIERTOS es O (r m) La complejidad exponencial la introduce la lista de CERRADOS Deteccin de ciclos en la bsqueda:
En algunos espacios de estados no hay posibilidad de

caminos cclicos (y por tanto no se necesita la lista de CERRADOS para detectar ciclos) En general, para detectar ciclos slo es necesario almacenar los nodos de la rama que se est explorando en cada momento Es decir, es sencillo implementar una bsqueda en profundidad que, an detectando ciclos, tiene complejidad espacial O (r m) Por tanto, en general consideraremos que la bsqueda en

profundidad tiene complejidad espacial O (r m)

Bsqueda general de soluciones

Bsqueda no informada

Bsqueda en profundidad acotada

Podemos paliar en cierto modo la incompletitud de la

bsqueda en profundidad
Idea: no explorar caminos ms all de una determinada

longitud.
Problema: tampoco es completa, si la cota es menor de la

longitud de la solucin ms corta


Aunque en muchos casos se puede conocer de antemano

una cota adecuada.

Bsqueda general de soluciones

Bsqueda no informada

Implementacin de la bsqueda en profundidad acotada


FUNCION BUSQUEDA-EN-PROFUNDIDAD-ACOTADA(COTA) 1. Hacer ABIERTOS la pila formada por el nodo inicial (el nodo cuyo estado es *ESTADO-INICIAL* y cuyo camino es vaco); Hacer CERRADOS vaco 2. Mientras que ABIERTOS no est vaca, 2.1 Hacer ACTUAL el primer nodo de ABIERTOS 2.2 Hacer ABIERTOS el resto de ABIERTOS 2.3 Poner el nodo ACTUAL en CERRADOS. 2.4 Si ES-ESTADO-FINAL(ESTADO(ACTUAL)), 2.4.1 devolver el nodo ACTUAL y terminar. 2.4.2 en caso contrario, si la profundidad del ACTUAL es menor que la cota, 2.4.2.1 Hacer NUEVOS-SUCESORES la lista de nodos de SUCESORES(ACTUAL) cuyo estado no est ni en ABIERTOS ni en CERRADOS 2.4.2.2 Hacer ABIERTOS el resultado de incluir NUEVOS-SUCESORES al principio de ABIERTOS 3. Devolver FALLO.

Bsqueda general de soluciones

Bsqueda no informada

Propiedades de la bsqueda en profundidad acotada


Complejidad en tiempo O (r c ), donde:
r : factor de ramicacin c : cota de la profundidad

Complejidad en espacio: O (rc ) En general, no es completa


Si la cota es demasiado pequea Incluso si la cota se toma mayor que la longitud de una

solucin, la implementacin anterior podra no encontrar solucin, debido a CERRADOS La versin que no usa CERRADOS s es completa cuando la cota es mayor que la profundidad de una solucin No necesariamente obtiene una solucin mnima

Bsqueda general de soluciones

Bsqueda no informada

Bsqueda en profundidad iterativa

Cuando no se conoce la cota, una opcin para evitar la

incompletitud es realizar bsquedas acotadas, incrementando la cota gradualmente


Implementacin de la bsqueda en profundidad iterativa
FUNCION BUSQUEDA-EN-PROFUNDIDAD-ITERATIVA(COTA-INICIAL) 1. Hacer N=COTA-INICIAL 2. Si BUSQUEDA-EN-PROFUNDIDAD-ACOTADA(N) no devuelve fallo, 2.1 devolver su resultado y terminar. 2.2 en caso contrario, hacer N igual a N+1 y volver a 2

Bsqueda general de soluciones

Bsqueda no informada

Bsqueda en profundidad iterativa


Arbol de bsqueda en profundidad iterativa (problema de

las jarras):
(0 0) 1,2,5,11,19,29,41

(4 0) 3,6,12,20,30,42

(0 3) 4,9,16,25,36

(4 3) 7,13,21,31,43 (1 3) 8,14,22,32,44 (3 0) 10,17,26,37 (1 0) 15,23,33,45 (3 3) 18,27,38

(0 1) 24,34,46

(4 2)

28,39

(4 1) 35,47

(0 2) 40

(2 3) 48

(2 0)

Bsqueda general de soluciones

Bsqueda no informada

Propiedades de la bsqueda en profundidad iterativa

Complejidad en tiempo O (r p ), donde: r : factor de ramicacin. p : profundidad de solucin. Complejidad en espacio, O (rp ). Es completa Obtiene una solucin con el mnimo nmero de

operadores (en la versin que no usa CERRADOS)

Bsqueda general de soluciones

Bsqueda no informada

Propiedades de la bsqueda en profundidad iterativa


La bsqueda iterativa es el mtodo preferido si el espacio

de bsqueda es grande y no se conoce la profundidad de la solucin La redundancia en la expansin queda compensada con la completitud
Adems, la redundancia no es signicativa Ejemplo, r = 10 y p = 5: Bsqueda acotada, nodos analizados:

1 + 10 + 100 + 1000 + 10000 + 100000 = 111111


Bsqueda iterativa, nodos analizados:

1 + 11 + 111 + 1111 + 11111 + 111111 = 123456


Tan slo un 10 % ms Razn: la mayora de los nodos estn en el ltimo nivel del

rbol

Bsqueda general de soluciones

Bsqueda no informada

Comparacin de procedimientos

Anchura Tiempo Espacio Completa Mnima O (r p ) O (r p ) S S

Profundidad O (r m ) O (rm) No No

Profundidad acotada O (r c ) O (rc ) S, si c >= p No

Profundidad iterativa O (r p ) O (rp ) S S

r : factor de ramicacin. p : profundidad de la solucin. m: mxima profundidad de la bsqueda. c : cota de la profundidad.

Bsqueda general de soluciones

Bsqueda no informada

Bibliografa
Russell, S. y Norvig, P. Inteligencia articial: Un enfoque

moderno (segunda edicin) (Prentice Hall, 2004).


Cap. 3: Solucin de problemas mediante bsqueda

Russell, S. y Norvig, P. Articial Intelligence (A Modern

Approach) (PrenticeHall, 2010). Third Edition


Cap. 3: Solving problems by searching.

Luger, G.F. Articial Intelligence (Structures and Strategies

for Complex Problem Solving (4 edition) (AddisonWesley, 2002)


Cap. 3: Structure and strategies for state space search Nilsson, N.J. Inteligencia articial (Una nueva sntesis)

(McGrawHill, 2001)]
Cap. 8: Bsqueda a ciegas Poole, D.; Mackworth, A. y Goebel, R. Computational

Intelligence (A Logical Approach) (Oxford University Press, 1998).


Cap. 4: Searching

S-ar putea să vă placă și