Está en la página 1de 18

Sistemas Expertos e Inteligencia Artificial. Gua No.

4 1

Facultad: Ingeniera
Escuela: Computacin
Asignatura: Sistemas Expertos e
Inteligencia Artificial

Tema: Bsqueda a Ciegas (No Informada).

Objetivos Especficos

Comprender el concepto de Bsqueda en la Inteligencia Artificial.


Comprender cmo un agente puede encontrar una secuencia de acciones que le permita
alcanzar sus objetivos, cuando ninguna accin simple lo har.
Identificar tipos de bsqueda utilizados en algoritmos de inteligencia artificial.
Implementar agentes que utilicen mtodos de bsqueda no informada utilizando Windows
Forms de Microsoft Visual C#.

Materiales y Equipo

Gua Nmero 4.
Computadora con programa Microsoft Visual C#.

Introduccin Terica

Una aplicacin que se les da a los agentes inteligentes es la de ser solucionadores de problemas.
Para poder disear un agente resolvente de problemas deben considerarse ciertos criterios, los cuales
mencionaremos a continuacin.
Lo que se requiere es resolver un problema de forma automtica, a travs de un agente.
Para ello se necesita:
Una representacin del problema.
Algoritmos que usen alguna estrategia para resolver el problema definido en esa
representacin.

Definicin del problema.


Si se abstraen los elementos de un problema se pueden identificar los siguientes:
Un punto de partida.
2 Sistemas Expertos e Inteligencia Artificial. Gua No. 4

Un objetivo a alcanzar.
Acciones a disposicin para resolver el problema.
Restricciones sobre el objetivo (ejemplo: de costo).
Elementos del dominio que son relevantes en el problema (ejemplo: conocimiento incompleto
del punto de partida).

Para poder resolver el problema, debemos construir un modelo para basar nuestras decisiones en las
consecuencias (hipotticas) de nuestras acciones.
En la imagen siguiente, observamos la descripcin de un problema tpico en Inteligencia Artificial:

Un agente simple resolvente de problemas, se puede implementar con el siguiente algoritmo:


Sistemas Expertos e Inteligencia Artificial. Gua No. 4 3

Solucin de problemas con bsqueda.


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.

Qu es bsqueda?
La bsqueda es una tcnica para resolver problemas cuya solucin consiste en una serie de pasos
que frecuentemente deben determinarse mediante la prueba sistemtica de las alternativas.
Desde los inicios de la Inteligencia Artificial, la bsqueda se ha aplicado en diversas clases de
problemas como juegos de dos jugadores, problemas de satisfaccin de restricciones y problemas de
encontrar solucin a travs de agentes.

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:
1. La generacin del espacio de estados.
2. La bsqueda del estado deseado en ese espacio.

Debido a que todo el espacio de bsqueda de un problema 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.

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
4 Sistemas Expertos e Inteligencia Artificial. Gua No. 4

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.
Con ello, podemos reescribir el algoritmo para el agente solucionador de problemas as:
1. estado inicial sensar/leer estado
2. meta seleccionar/leer meta
3. sucesor seleccionar/leer modelos de accin
4. problema (estado inicial, meta, sucesor)
5. solucin bsqueda(problema)
6. ejecutar(solucin)

Esto significa que el agente necesita realizar un proceso de bsqueda para encontrar la solucin, por
lo tanto el problema a resolver por el agente se convierte en un problema de bsqueda.

Por ello es necesario la formulacin de un problema de bsqueda:


Sistemas Expertos e Inteligencia Artificial. Gua No. 4 5

Ambientes del mundo real abstraccin


Validez: Se puede ejecutar la solucin? Contiene el espacio de estados la solucin?
Utilidad: Es el problema abstracto ms fcil que el problema del mundo real.

Esto es muy importante, pues sin abstraccin, un agente se perdera en el mundo real.

Un problema de bsqueda en Inteligencia Artificial consta de:


Un espacio de estados. Es discreto. Cada estado es una representacin abstracta del ambiente.
Representa todos los caminos que hay entre todos los estados posibles de un problema. El
espacio de estados forma un grafo (representacin matemtica de un problema de bsqueda) en
el cual los nodos son estados y los arcos son acciones. La solucin del problema est dentro de
ese mapa.

Un conjunto de operadores (acciones, con costes), funcin sucesor. Es una representacin


del problema a travs de las posibles acciones del agente. Para poder moverse entre los
diferentes estados se necesita una funcin sucesor (funcin de transformacin sobre la
representacin de un estado que lo convierte en otro estado). Esta funcin define una relacin
de accesibilidad entre estados.

Un estado inicial (punto de partida de la bsqueda). Se denomina estado a la representacin


de los elementos que describen el problema en un momento dado. Se distinguen dos estados
especiales: el estado inicial (punto de partida, usualmente el estado actual) y el estado final (en
general, el objetivo del problema).

Una funcin objetivo. Comprueba si el estado actual corresponde a una solucin del problema.
Usualmente es una condicin, algunas veces la descripcin de un estado.

Tambin debe considerarse el costo del camino (nmero positivo), que usualmente es la suma de los
costos de cada paso.

Bsqueda en el espacio de estados.


Se define una representacin del espacio de estados para poder implementar algoritmos que busquen
soluciones.
6 Sistemas Expertos e Inteligencia Artificial. Gua No. 4

La resolucin de un problema con esta representacin pasa por explorar el espacio de estados. Se
empieza del estado inicial y se evala cada paso hasta encontrar un estado final. En el caso peor se
exploran todos los posibles caminos entre el estado inicial del problema y el estado final.
La bsqueda la realiza un programa (o agente).
Para representar el espacio de estados pueden utilizarse las estructuras de datos: rboles y grafos.
El grafo es una representacin matemtica de un problema de bsqueda (nodos: estados; arcos:
operadores). Representa todas las posibles transformaciones del sistema aplicando todos los
operadores posibles recursivamente.
El espacio de bsqueda ser un grafo dirigido en el que cada nodo representa un posible estado del
sistema. Dependiendo del problema, cada nodo incluir una descripcin completa del sistema, o bien
slo las modificaciones necesarias para pasar de un nodo padre a su hijo.
Debido a la complejidad exponencial del grafo implcito, se ir generando, paso a paso, una porcin
del grafo conforme avance el proceso de bsqueda. El grafo explcito es el subgrafo del grafo implcito
que se va generando durante el proceso de bsqueda de una secuencia de operadores que resuelva
nuestro problema (camino solucin), usualmente, en forma de rbol, de ah su nombre: rbol de
Bsqueda. En la figura siguiente observamos la representacin de este rbol:

Para la bsqueda bsica se toman las siguientes suposiciones:


El ambiente es esttico.
El ambiente es discretizable.
El ambiente es observable.
Las acciones son determinsticas.

En el rbol de bsqueda podemos distinguir:


Nodo raz: Estado inicial.
Hijos de un nodo: Posibles sucesores (nodos correspondientes a estados resultantes de la
aplicacin de un operador al nodo padre).
Sistemas Expertos e Inteligencia Artificial. Gua No. 4 7

Los nodos del rbol representan estados, pero corresponden a planes mediante los cuales se
alcanzan dichos estados.
Las diferentes polticas de orden de expansin y de insercin de los nodos generados en la estructura
determinan el tipo de bsqueda a utilizar.
Las condiciones de parada en el rbol de bsqueda son:
Se ha encontrado la solucin.
Se ha acabado el tiempo disponible.
Se ha llegado a un nivel de profundidad determinado.

Segn el tipo de problema, nos podemos encontrar con:


Agentes de bsqueda que devuelven un nico operador, por ejemplo: Juegos con adversario
(como el ajedrez).

Agentes de bsqueda que devuelven una secuencia de operadores, por ejemplo: Juegos sin
adversario (como el 8-puzzle), Sistemas de planificacin, Sistemas expertos (con
encadenamiento hacia adelante).
8 Sistemas Expertos e Inteligencia Artificial. Gua No. 4

Algoritmos de Bsqueda.
La idea bsica de estos algoritmos es: fuera del mundo real, realizar exploracin simulada del espacio
de estados generando sucesores de los estados ya explorados (tambin conocida como expansin
de los estados).

Un estado es una representacin de una configuracin fsica.


Un nodo es una estructura de datos que forma parte de un rbol de bsqueda e incluye: padres, hijos,
profundidad y costo del camino. Los estados carecen de esas cosas.
La funcin Expandir crea nuevos nodos, llenando los distintos campos y usando la funcin sucesor
del problema para crear los estados correspondientes.
Entonces el algoritmo de bsqueda cambia a:

Los algoritmos de bsqueda en general deben implementar dos tareas para la consecucin del
objetivo final:
a. Permitir la transicin de un estado a otro mediante operadores o acciones.
b. Controlar en cierto modo esos movimientos, porque habitualmente responden a decisiones
que se han ido tomando.
Sistemas Expertos e Inteligencia Artificial. Gua No. 4 9

La bsqueda aleatoria puede funcionar en algunos problemas, pero, en general, la bsqueda debe
ser organizada, debe realizarse en forma metdica para que sea ms eficiente y tener control de la
misma.
Por eso, las tareas de bsqueda se clasifican en dos grandes grupos segn sea la situacin inicial o
el planteamiento del problema a resolver:
1. La bsqueda sistemtica que no utiliza informacin sobre el problema para ayudarse en esa
bsqueda directa en el espacio de estados, es la llamada bsqueda a ciegas (no
informada), o fuerza bruta. Es decir, no hay caminos prioritarios hacia el objetivo final.

2. Los algoritmos que utilizan informacin sobre el problema, como el coste o la distancia al
estado final, se denominan heursticos o bsqueda dirigida o respaldada con
informacin. La principal ventaja de stos es que se puede seleccionar con ms fundamento
cul es el siguiente nodo que se debe expandir, lo que mejora la eficiencia de la bsqueda.

Para juzgar la eficiencia de una bsqueda, e incluso para determinar si se trata de una bsqueda a
ciegas o una bsqueda heurstica, hay algunos conceptos que se deben considerar:
Coste de un arco. Indica el tiempo requerido para aplicar un operador a un estado en el
proceso de bsqueda (por defecto tiene el valor de 1).
Coste de un nodo. Medida del tiempo consumido en un nodo a lo largo del mejor camino
encontrado hasta un momento dado.
Factor de ramificacin. Nmero medio de descendientes de un nodo o nmero medio de
operadores que pueden aplicarse a un estado.
Longitud de una trayectoria. Nmero de nodos generados en un camino, es decir, el nmero
de operadores aplicados en dicho camino.
Profundidad. Longitud del camino ms corto desde el estado inicial a un nodo determinado.
La profundidad del nodo raz es 0.

Bsqueda a Ciegas (Bsqueda no informada).


10 Sistemas Expertos e Inteligencia Artificial. Gua No. 4

Como se mencion anteriormente, es la que no cuenta con informacin a priori que la dirija en su
secuencia de acciones para la consecucin del objetivo final. Es decir, realiza una bsqueda
exhaustiva.
Slo realizaremos una bsqueda a ciegas (blind search) cuando no exista informacin especfica
sobre el problema que nos ayude a determinar cul es el mejor operador que se debera aplicar
en cada momento o el mejor nodo por el que continuar la bsqueda.
Se pueden utilizar distintos criterios para explorar el espacio de bsqueda, por ejemplo: LIFO (en
profundidad) o FIFO (en anchura).
Las estrategias de bsqueda no informada slo utilizan la informacin disponible en la definicin del
problema. No tienen en cuenta el coste de la solucin en la bsqueda. Su funcionamiento es
sistemtico, siguen un orden de visitas y generacin de nodo establecido por la estructura del espacio
de bsqueda.
Ejemplos:
Bsqueda primero en anchura.
Bsqueda primero en profundidad.
Bsqueda de profundidad limitada.
Bsqueda en profundidad iterativa.

Procedimiento

Ejemplo 1. En esta sesin de laboratorio simularemos el funcionamiento de un agente de


bsqueda en juegos sin adversario: el problema del juego 8 puzzle en Microsoft Visual C#.

El tradicional juego del 8-puzzle consiste, en un tablero con 9 casillas, las cuales van enumeradas
del 1 al 8 ms una casilla vaca. Dicha casilla vaca, es la que, con movimientos horizontales,
verticales, hacia la izquierda o derecha, debe ser desplazada e intercambiada con alguno de sus
vecinos, de manera que, dada una configuracin inicial se llegue a una configuracin final (meta).
Sistemas Expertos e Inteligencia Artificial. Gua No. 4 11

Este problema, al tratar de ser resuelto computacionalmente representa un problema al que


debemos de tratar con sumo cuidado.
Aunque las reglas del juego sean sencillas de realizar (y evidentemente de programar) conlleva
una complejidad mayor al momento de obtener la solucin, es por esta razn que resulta un
ejemplo clsico y muy didctico para poner en prctica algoritmos de bsqueda que encuentren
la solucin eficiente a una configuracin de 8-puzzle.
Definimos el problema como un problema de bsqueda en Inteligencia Artificial:

A continuacin se muestra el rbol de bsqueda para el ejemplo mostrado:

A continuacin procederemos a disear el simulador para el agente de bsqueda del 8 puzzle.


12 Sistemas Expertos e Inteligencia Artificial. Gua No. 4

1. Crear un proyecto de tipo Windows Forms Application, se sugiere darle el nombre de Agente
de Bsqueda.
2. Disear el formulario de tal manera que luzca similar al mostrado en la figura:

El formulario est compuesto por 18 botones. Los del lado izquierdo (Estado Inicial) son los que
permitirn realizar la simulacin para el juego manual del usuario. Los botones de lado derecho
no tienen mayor utilizacin ms que la visual, pues indican el Estado Objetivo.
Se llevar un control de la cantidad de movimientos realizados en el juego.

3. Al dar clic a cualquiera de los botones, este se intercambiar con el botn blanco, si este se
encuentra cercano. Esto permitir simular la animacin del movimiento de las piezas del puzzle.
Para ello haremos uso de una funcin de nombre Intercambio. El cdigo para realizar esto se
muestra a continuacin.
Sistemas Expertos e Inteligencia Artificial. Gua No. 4 13

4. Al dar clic por ejemplo al botn de la esquina superior izquierda, se activara el siguiente cdigo:

5. Un proceso similar se realiza para los restantes ocho botones, como se indica en el cdigo
mostrado a continuacin:
14 Sistemas Expertos e Inteligencia Artificial. Gua No. 4
Sistemas Expertos e Inteligencia Artificial. Gua No. 4 15

A medida se vayan realizando movimientos de piezas en el puzzle, esto se indicar a travs de


una etiqueta, como observamos en la imagen siguiente:
16 Sistemas Expertos e Inteligencia Artificial. Gua No. 4

La funcionalidad para verificar que se ha llegado al estado objetivo, la realizar el estudiante como
ejercicio.
El cdigo propuesto es un ejemplo de cmo podra resolverse. Pero tambin puede elaborarse
de otra forma creativa que defina cada estudiante.

Anlisis de resultados

Tomando como referencia el cdigo de ejemplo proporcionado, se les pide implementar un


simulador para el agente de bsqueda para el juego 8 puzzle con la siguiente funcionalidad:
a) La aplicacin debe permitir indicar al usuario el estado inicial, es decir, debe solicitarse al
usuario, los valores que contendr cada una de las fichas antes de iniciar el juego. El estado
objetivo ser:

b) Permitir que el usuario juegue, es decir, que pueda mover las piezas del puzzle. La aplicacin
debe indicar al usuario cuando se ha logrado conseguir el estado objetivo.

c) El simulador debe tener una opcin de solucin automtica, de tal manera que cuando se
seleccione esta opcin, el simulador utilizar un algoritmo de bsqueda para encontrar la
solucin correspondiente, o en su defecto indicar que no existe solucin. Deber mostrarse
los movimientos necesarios para llegar del estado inicial al estado objetivo (simulacin).
Debe implementarse esta opcin utilizando el mtodo de bsqueda ciega Recorrido en
Profundidad o Recorrido en Anchura.

Investigacin Complementaria

Para la siguiente semana:


Sistemas Expertos e Inteligencia Artificial. Gua No. 4 17

Aplicar las modificaciones necesarias, para agregar mayor funcionalidad al programa simulador
del agente de bsqueda para el juego 8 puzzle.
Deben implementarse las siguientes opciones:
a. El simulador debe tener la opcin de generar el estado inicial de forma aleatoria.

b. El usuario debe decidir la forma en que se generar el estado inicial:


i. Introduciendo l los valores a cada pieza del puzzle.
ii. Generado en forma automtica, sin intervencin del usuario.

c. El usuario seleccionar el estado objetivo. La aplicacin debe permitir la seleccin de uno


de tres estados objetivo, los cuales se muestran a continuacin:

Es decir que el usuario debe seleccionar tanto el estado inicial, como el estado objetivo
al cual quiere llevar el puzzle.

d. Permitir que el usuario juegue, es decir, que pueda mover las piezas del puzzle. La
aplicacin debe indicar al usuario cuando se ha logrado conseguir el estado objetivo.

e. El simulador debe tener una opcin de solucin automtica, de tal manera que cuando se
seleccione esta opcin, el simulador utilizar un algoritmo de bsqueda para encontrar la
solucin correspondiente, o en su defecto indicar que no existe solucin. Deber
mostrarse los movimientos necesarios para llegar del estado inicial al estado objetivo
(simulacin). Debe implementarse esta opcin utilizando el mtodo de bsqueda ciega
Recorrido en Profundidad o Recorrido en Anchura.
18 Sistemas Expertos e Inteligencia Artificial. Gua No. 4

Gua 4: Bsqueda a Ciegas (No Hoja de cotejo: 4


Informada).

Alumno: Mquina No:

Docente: GL: Fecha:

EVALUACIN

% 1-4 5-7 8-10 Nota

CONOCIMIENTO Del 20 Conocimiento Conocimiento Conocimiento


al 30% deficiente y explicacin completo y
de los incompleta de explicacin
fundamentos los clara de los
tericos fundamentos fundamentos
tericos tericos

APLICACIN Del 40%


DEL al 60%
CONOCIMIENTO

ACTITUD Del 15% No tiene Actitud Tiene actitud


al 30% actitud propositiva y proactiva y
proactiva. con sus propuestas
propuestas no son concretas.
aplicables al
contenido de
la gua.
TOTAL 100%