Está en la página 1de 6

INTELIGENCIA ARTIFICIAL

TEMA 1: Sistemas Basados en Reglas de Producción y Métodos de solución de


problemas.

ENCUENTRO NO 4

TÍTULO: Métodos de solución de problemas.

SUMARIO:

1. Introducción.
2. Búsqueda primero a lo ancho.
3. Búsqueda primero en profundidad.
4. Algoritmo Best-First.
5. Algoritmo hill-climbing.
6. Conclusiones.

BIBLIOGRAFIA:

 Rafael E. Bello Pérez. Curso de Métodos de Solución de Problemas para la


Inteligencia Artificial. Universidad Central de las Villas “Marta Abreu”.
 Aurora Pons Porrata, Ernesto Carbonell Rigores. Introducción a la Inteligencia
Artificial. Departamento de computación, Universidad de Oriente, Santiago de
Cuba, 1995.

INTRODUCCION
Los investigadores pioneros en I.A. tuvieron como su primer objetivo la solución de
problemas que fueron difícil de resolver mediante las técnicas computacionales
existentes. Como se dijo antes, estos problemas generalmente no tienen solución
algorítmica conocida o esta es tan compleja que no tiene una implementación práctica
computacional.
La respuesta fue desarrollar nuevas técnicas de solución de problemas, similares a las
humanas, una de las más importantes fue la búsqueda.
La búsqueda de la I.A. difiere de la búsqueda convencional sobre estructuras de datos
esencialmente en que se busca en un espacio problema, no en una pieza de dato
particular. Se busca un camino que conecte la descripción inicial del problema con una
descripción del estado deseado para el problema, es decir, el problema resuelto. Este
camino representa los pasos de solución del problema.
El proceso de buscar una solución a un problema produce un espacio solución, o sea,
la parte del espacio problema que se examina realmente. A diferencia de las estructuras
de datos que están predefinidas y ya existen cuando comienza la búsqueda, los
espacios problema son generalmente definidos proceduralmente, es decir, el espacio
problema es creado a medida que es explorado. Se usan procedimientos para definir
los siguientes estados posibles en el espacio a través de los cuales la búsqueda puede
continuar desde el estado actual. Solamente los caminos explorados tienen que estar
definidos explícitamente.
Hay diferentes alternativas para realizar la búsqueda. Desde un punto de vista podemos
apreciar tres alternativas: aleatoria, a ciegas y dirigida. En esta clase estudiaremos la
búsqueda a ciegas y la búsqueda heurística o dirigida.
La búsqueda a ciegas es aquella donde no existe ninguna información para decidir que
nodo expandir, no se conoce la cantidad de pasos o el costo del camino desde el estado
actual hasta el objetivo. También se denomina búsqueda no informada. En el otro caso,
cuando existe información para decidir, la búsqueda se denomina informada o
heurística.
El conjunto de métodos que utilizan la estrategia de búsqueda a ciegas se consideran
métodos débiles pues imponen restricciones mínimas a la búsqueda y su alta
generalidad implica cierta debilidad. Los métodos con estrategia informada se llaman
métodos fuertes, ellos son más dependientes del dominio.
Los dos métodos básicos de la búsqueda a ciegas son la búsqueda primero a lo ancho
(breadth-first search) y la búsqueda primero en profundidad (depth-first search).

Búsqueda primero a lo ancho (breadth-First)


Una búsqueda primero a lo ancho comienza por generar todos los sucesores de la raíz
del nodo. Luego la búsqueda continúa expandiendo todos los nodos de cada nivel. La
esencia del método es examinar todas las soluciones potenciales a un nivel antes de
pasar al nivel inferior.

Estado inicial Expansión 1 Expansión 2 Expansión 3


En esta estrategia se expande primero el nodo raíz, luego todos los nodos generados
se expanden y así sucesivamente con sus sucesores. En general todos los nodos a
la profundidad d en el árbol de búsqueda son expandidos antes de los del nivel d+1.
Es una estrategia de búsqueda sistemática porque considera todos los caminos de
longitud 1 primero, luego todos los de longitud 2, etc. Si existe una solución este
método garantiza encontrarla y si hay varias soluciones siempre encontrará la menos
profunda en el árbol de búsqueda.
Este método puede describirse como sigue:
P1. Formar conjunto de caminos candidatos (CCC) de un elemento que contiene
el nodo raíz.
P2. Iterar a través de (a) a (b) hasta que CCC esté vacío.
a. Salir con Éxito si el primer camino de CCC contiene un nodo objetivo
como camino, en otro caso.
b. Remover el primer camino desde CCC y generar el conjunto de todas
las posibles extensiones de un paso de este camino, añadiendo este
conjunto de extensiones al final de CCC.
P3. Salir con Fallo si no se encuentra solución.
El procedimiento se ilustra con el ejemplo siguiente. Sea el siguiente árbol de búsqueda
con los nodos f y j como nodos terminales u objetivos.

b c

d e f g

h i j k

P1. CCC= { (a) }


P2. b. CCC= { (a) (a,b), (a,c) }
P2. b. CCC= { (a,b), (a,c), (a,b,d), (a,b,e) }
P2. b. CCC= { (a,c), (a,b,d), (a,b,e), (a,c,f), (a,c,g) }
P2. b. CCC= { (a,b,d), (a,b,e), (a,c,f), (a,c,g), (a,b,d,h) }
P2. b. CCC= { (a,b,e), (a,c,f), (a,c,g), (a,b,d,h), (a,b,e,i), (a,b,e,j) }
P2. a. CCC= { (a,c,f), (a,c,g), (a,b,d,h), (a,b,e,i), (a,b,e,j) }
Búsqueda primero en profundidad (Depth-First)
La búsqueda primero en profundidad procede generando primeramente un sucesor del
nodo raíz y luego un sucesor de este, y continúa extendiendo este camino solamente
hasta que termina o se realiza un corte a alguna profundidad, si no se ha alcanzado el
objetivo se realiza un retroceso al nivel anterior para generar otro camino.

Estado inicial Expansión 1 Expansión 2 Expansión 3 Expansión 4


Este método siempre expande uno de los nodos del nivel más profundo del árbol.
Solamente cuando la búsqueda alcanza un nodo muerto (nodo no objetivo que no se
puede expandir) la búsqueda va a atrás y expande nodos de niveles inferiores.
Este método se describe por el siguiente algoritmo:
P1. Formar una pila de caminos candidatos de un elemento que contiene el nodo
raíz.
P2. Iterar a través de (a) a (b) hasta que la pila esté vacía.
a. Salir con Éxito si el primer camino de la pila contiene un nodo
objetivo como camino, en otro caso.
b. Remover el primer camino desde la pila y generar el conjunto de
todas las posibles extensiones de un paso de este camino,
añadiendo este conjunto de extensiones al principio de la pila.
P3. Salir con Fallo si no se encuentra solución.

El procedimiento se ilustra con el ejemplo anterior:


P1. P= [ (a) ]
P2.b. P= [ (a,c), (a,b) (a) ]
P2.b. P= [ (a,c,g), (a,c,f), (a,c), (a,b) ]
P2.b. P= [ (a,c,g), (a,c,f), (a,b) ]
P2.a. P= [ (a,c,f), (a,b) ]
Los métodos de búsqueda heurísticas están orientados a reducir la cantidad de
búsqueda requerida para encontrar una solución. Cuando un problema es presentado
como un árbol de búsqueda el enfoque heurístico intenta reducir el tamaño del árbol
cortando nodos pocos prometedores. Estos métodos se llaman métodos fuertes porque
ellos son más poderosos que los estudiados hasta aquí al incorporar conocimiento
heurístico o heurística. Hay una contradicción entre generalidad y potencia en el sentido
que los métodos débiles son esencialmente aplicables universalmente mientras que los
fuertes son menos universales en su aplicabilidad y el conocimiento o heurística usado
en un problema dado puede no ser totalmente aplicable o ser inaplicable en otro dominio
o tarea.
En esencia una heurística es simplemente un conjunto de reglas que evalúan la
posibilidad de que una búsqueda va en la dirección correcta. Generalmente los métodos
de búsqueda heurísticas se basan en maximizar o minimizar algunos aspectos del
problema.
La Heurística no garantiza que siempre se tome la dirección de la búsqueda correcta,
por eso este enfoque no es óptimo sino suficientemente bueno. Frecuentemente son
mejores los métodos heurísticos que los métodos de búsquedas a ciegas.
En esta clase veremos dos de los métodos más significativos, algoritmo Best-First
(búsqueda por el mejor nodo) y hill-climbing (ascensión de colinas), los cuales serán
ilustrados con el siguiente grafo ejemplo: el objetivo es encontrar el camino por carretera
de 1 a 5 de menor costo, los nodos son ciudades y los arcos caminos por carretera entre
ciudades, el numero en rojo dentro de cada nodo es la distancia estimada del nodo
actual al nodo objetivo 5 vía aérea, ésta será la heurística a utilizar en este caso.

4 24 5
1∞ 43
6

8 6
36

4 50
Algoritmo Best-First
La búsqueda por el mejor nodo es una forma de combinar las ventajas de las búsquedas
en profundidad y a lo ancho en un único método. En cada paso del proceso de búsqueda
se selecciona el más prometedor de aquellos nodos que se han generado hasta el
momento. Entonces este se expande usando los operadores para generar sus
sucesores. Si uno de ellos es una solución se termina. Si no, todos esos nuevos nodos
se añaden al conjunto de nodos generados hasta ese momento. Se selecciona de nuevo
el nodo más prometedor y el proceso continúa. La selección del nodo a expandir es
independiente de la posición en que nos encontramos en el árbol de búsqueda y de la
posición del nodo más prometedor. Lo que sucede usualmente es que se realiza un
poco de búsqueda a profundidad mientras se explora una rama prometedora. En un
momento dado esa rama comienza a ser menos prometedora que otras de más alto
nivel que se han ignorado hasta ese momento. Este método se describe de la forma
siguiente:
P1: Formar una pila de un elemento consistente en el nodo raíz.
P2: Iterar a través de (a) a (b) hasta que la pila sea vacía.
(a) Salir con éxito si el elemento en el Top de la pila es solución.
(b) Si no es solución, removerlo y añadir sus sucesores a la pila y reordenar
la pila por el estimado de la distancia al objetivo desde cada nodo.
P3: Salir con falla si no se encuentra solución.

Ejemplo:

P1. P = [ (1) ]
P2. b. P= [ (1,2 4) (1,3 6) (1) ] Se coloca el 2 en el tope porque la distancia de el al
objetivo es la menor

P2. b. P= [ (1,2,4 3) (1,2 4) (1,3 6) ]


P2. b. P= [ (1,2,4,5 0) , (1,2,4 3) (1,3 6) ]
P2. a. P= [ (1,2,4,5 0) (1,3 6) ] Salir porque en el tope esta la solución

Al terminar, el algoritmo encuentra el camino 1,2,4,5 como el de menor costo, pero en


realidad no es así, el camino solución tiene un costo de 15 y en realidad el menor es
1,3,5 con costo 12.

Algoritmo hill-climbing
El método de búsqueda conocido por ascensión de colinas (hill-climbing) toma su
nombre de la semejanza que tiene con un alpinista quien desea alcanzar rápidamente
el pico de una montaña, este selecciona la dirección de ascenso mayor a partir de la
posición actual. Con este método la estrategia es repetidamente expandir un nodo,
inspeccionar sus sucesores recién generados, y seleccionar y expandir el mejor entre
los sucesores sin mantener referencias a los padres. Este método se describe de la
forma siguiente:

P1. Formar una pila de un elemento consistente del nodo raíz.


P2. Iterar de (a) a (b) hasta que la pila este vacía.

a. Salir con éxito si el elemento en el Top de la pila es solución.


b. Si el primer elemento no es solución removerlo y ordenar los
descendientes del mismo según la distancia restante al objetivo y luego
añadir el hijo al top de pila.
P3. Salir con Falla.
Al desarrollar este algoritmo con el ejemplo, llegamos a las mismas conclusiones del
algoritmo anterior.

CONCLUSIONES
La búsqueda, como técnica de solución de problemas de la IA se realiza sobre un
espacio problema, obteniéndose un espacio solución. En la búsqueda a ciegas no existe
ninguna información para decidir que nodo expandir, sus métodos imponen restricciones
mínimas a la búsqueda y su alta generalidad implica cierta debilidad, por otra parte, los
métodos de búsqueda heurísticas están orientados a reducir la cantidad de búsqueda
requerida para encontrar una solución, no obstante, no garantizan que siempre se tome
la dirección de la búsqueda correcta, por eso este enfoque no es óptimo, frecuentemente
son mejores los métodos heurísticos que los métodos de búsquedas a ciegas.

EJERCICIO PROPUESTO # 1
Investigar la alternativa aleatoria para realizar la búsqueda.

EJERCICIO PROPUESTO # 2
Analizar costo en tiempo y memoria de los métodos estudiados.

EJERCICIO PROPUESTO # 3 (ENTREGAR EN PRÓXIMO ENCUENTRO)


Realice la búsqueda primero a lo ancho y la búsqueda primero en profundidad en el
árbol de búsqueda visto en clase, suponiéndose que ningún nodo sea nodo objetivo.

También podría gustarte