Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4 1
Facultad: Ingeniera
Escuela: Computacin
Asignatura: Sistemas Expertos e
Inteligencia Artificial
Objetivos Especficos
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.
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:
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.
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
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.
Esto es muy importante, pues sin abstraccin, un agente se perdera en el mundo real.
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.
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:
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.
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).
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.
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
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
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
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
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
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.
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
EVALUACIN