Está en la página 1de 36

Sistemas de produccin y

bsqueda de soluciones

Area de Computacin e Inteligencia Artificial 1


Tcnicas de bsqueda

n Resolucin de problemas en Inteligencia


Artificial.
n En general, podemos afirmar que un problema consiste
en:
n Una descripcin de la situacin de la que se parte;
n Una descripcin de la situacin a la que se quiere llegar;
n Una descripcin de los medios de que disponemos para
alcanzar nuestro objetivo.

Area de Computacin e Inteligencia Artificial 2


Tcnicas de bsqueda

n En el contexto de la Informtica, a partir de un


problema, se intenta construir un sistema que lo
resuelva.
n Resumidamente, las acciones para construir un
sistema que resuelva un problema seran:
n Definir el problema con precisin (especificacin del problema),
habitualmente a partir de un enunciado del problema expresado en
lenguaje natural:
n de qu se parte;
n cul es el objetivo.
n Analizar el problema: informacin para elegir las tcnicas.
n Aislar y representar el conocimiento necesario para resolver el
problema.
n Elegir la mejor tcnica que resuelva el problema y aplicarla al
problema particular.
Area de Computacin e Inteligencia Artificial 3
Tcnicas de bsqueda

n Si particularizamos la definicin de problema


dada en el apartado anterior del siguiente modo:
n Entrada: una descripcin del estado inicial del mundo.
n Salida: una descripcin (parcial) del estado del mundo deseado.
n Medios: una descripcin de acciones que puedan transformar un
estado del mundo en otro, acciones que son consideradas como
operadores o reglas.

Tendremos el marco conceptual que permite


resolver el problema por medio de un sistema de
produccin.

Area de Computacin e Inteligencia Artificial 4


Ejemplos de resolucin de
problemas
n El 8-Puzzle
n Entrada: un tablero 3x3 con fichas y dgitos Fig.1.
n Salida: ordenarlo segn una disposicin, por ejemplo
como en la fig. 2.
n Medios: si una casilla del tablero est al lado de la
casilla vaca se puede desplazar sobre ella.

Area de Computacin e Inteligencia Artificial 5


Ejemplos de resolucin de
problemas
n El problema de las garrafas de vino.
n Entrada: dos garrafas vacas, una de 4 litros y otra de 3.
n Salida: la garrafa de 4 litros contiene exactamente 2
litros de vino
n Medios: se dispone de un depsito con mucho vino y
las nicas operaciones permitidas son llenar cada
garrafa en el depsito, vaciarlas y pasar contenido de
una a otra hasta que la primera se vace o la segunda se
llene.

Area de Computacin e Inteligencia Artificial 6


Sistemas de produccin

n Un sistema de produccin consiste en:


n Una base de datos/hechos/conocimiento con informacin sobre el
problema;
n Un conjunto de reglas (operadores);
n Una estrategia de control;
n Un aplicador de reglas: ciclo de reconocimiento-actuacin.

Area de Computacin e Inteligencia Artificial 7


Espacios de representacin

n Espacio del representacin : entorno en el cual


se desarrolla el proceso de bsqueda. Tambin
se le llama espacio de problema.
n Espacio de estados: conjunto de estados que
podran obtenerse si se aplicaran todos los
operadores posibles a todos los estados que se
fuesen generando. Cada estado representa una
situacin que se debe considerar como candidata
a pertenecer a la solucin del problema.
n Estado meta:
meta es el estado solucin, y debe existir
al menos uno.

Area de Computacin e Inteligencia Artificial 8


Espacios de representacin

n La estrategia de control EC (tambin llamada, en


el contexto de los sistemas expertos, mecanismo
o motor de inferencia). Es la parte ms
importante de los sistemas de produccin y la
que establece el proceso de bsqueda de la
solucin mediante la aplicacin de operadores a
los distintos estados.
n Con esta perspectiva, la EC se encarga de decidir
que estados sern expandidos y decidir qu
operador aplicar en cada momento.

Area de Computacin e Inteligencia Artificial 9


Sistemas de produccin

n Preguntas que se deben hacer sobre los operadores:


n se puede aplicar?
n produce algn cambio en el estado?
n qu estado elegir para aplicar los operadores?
n qu sucede si hay varios operadores posibles a aplicar?
(resolucin de conflictos)
n Los operadores, que admiten una interpretacin como reglas,
son acciones simples que pueden transformar un estado en
otro. Generalmente se distinguen en los operadores una parte
izquierda (el patrn o condicin), que determina la
aplicabilidad de la regla (se dice tambin que si se verifica la
condicin la regla queda sensibilizada), y una parte derecha
que describe la operacin o accin a llevar a cabo al aplicar el
operador (o disparar la regla).

Area de Computacin e Inteligencia Artificial 10


Representacin de problemas

n La representacin se da en tres niveles:


n Conceptual: en lenguaje natural
n Lgico- Fsico : descripcin de estados y operadores, e
implementacin de las estructuras de datos necesarias
para representarlos en un lenguaje (por ejemplo LISP)
y en cada uno de ellos deberemos elegir
representaciones para dos cosas
n Estados
n Operadores

Area de Computacin e Inteligencia Artificial 11


Representacin de problemas

n En un nivel conceptual el estado debe describir


n todo lo que es necesario para resolver el problema
n nada que no sea necesario para resolver el problema
n 8-puzzle:
n Estados: Localizacin de cada casilla y del hueco.
n Operadores: movimiento de las fichas.
n En un nivel lgico debemos representar los
estados
n Estados:
n matriz 3x3
n vector de 9 elementos
n Depender de las estructuras permitidas en el lenguaje
de programacin que usemos
Area de Computacin e Inteligencia Artificial 12
Representacin de problemas

n y los operadores (que deben ser lo ms


generales posibles)
n 4x9! operadores para pasar de un estado a cualquiera
de sus 4 estados sucesores
n 4x8 operadores que mueven cualquier ficha arriba,
abajo, derecha o izquierda.
n 4 operadores que mueven el hueco arriba, abajo,
derecha o izquierda.
n Evidentemente la ltima representacin es la ms
adecuada.

Area de Computacin e Inteligencia Artificial 13


Representacin de problemas

n Para el problema de las garrafas de vino


n Nivel conceptual:
n Estados: el nico dato relevante es la cantidad de vino que
contienen las garrafas, porque lo que contenga la grande
no influye en el problema.
n Operadores:
llena-cuatro: llenar, cogiendo del depsito, la garrafa
de 4 l.
llena-tres: llenar, cogiendo del depsito, la garrafa de
3 l.
vaca-cuatro: vaciar en el depsito la garrafa de 4 l.
vaca-tres: vaciar en el depsito la garrafa de 3 l.
echa-la-cuatro-a-la-tres
echa-la-tres-a-la-cuatro
Area de Computacin e Inteligencia Artificial 14
Representacin de problemas

n Nivel lgico-fsico:
n Un estado va a ser identificado como un par de nmeros
(x,y) donde cada representa el nmero de litros que
contiene la garrafa de cuatro litros, e y la de tres.
n Los operadores se pueden implementar como una regla:
llena-cuatro(x,y):
precondicin: x<4
accin: construir el estado (4,y)
n Implementacin de las estructuras de datos en LISP.

Area de Computacin e Inteligencia Artificial 15


Grafos

n Un grafo viene dado por un conjunto de nodos y


un conjunto de arcos entre los nodos.
n Grafo dirigido:
dirigido grafo en el que (A,B) se considera
diferente de (B,A); ejemplo red bayesiana.
n En caso contrario es no dirigido.
n Camino:
Camino sucesin de nodos tales que entre dos
de ellos consecutivos existe un arco.
n Grafo conexo: entre dos nodos cualesquiera
existe un camino.

Area de Computacin e Inteligencia Artificial 16


Grafos
n En un grafo no dirigido cualquier camino cerrado
recibe el nombre de ciclo. Si no contiene ciclos
se denomina rbol (no dirigido).
n Si el grafo es dirigido y tenemos un camino
cerrado, si podemos recorrerlo siguiendo el
sentido de los arcos y volvemos al punto de
partida tenemos un ciclo.
ciclo Si no tenemos un
bucle.
bucle
n Los grafos dirigidos acclicos (GDA) son aquellos
que no contienen ciclos.
n En grafos acclicos hablaremos de nodos padre e
hijo,
hijo en vez de antecesores y sucesores.
Area de Computacin e Inteligencia Artificial 17
Grafos en bsqueda

n Los GDA conexos que no contienen bucles se


denominan polirboles.
n Nodos: elementos en el espacio de estados que
representan situaciones vlidas en el dominio. Es
decir, nodo y estados son sinnimos.
n Expansin de un nodo: obtener todos sus
posibles sucesores en el grafo de bsqueda a
travs de la aplicacin de todos los operadores.

Area de Computacin e Inteligencia Artificial 18


Grafos en bsqueda

n Conceptos
n Nodo o estado cerrado:
cerrado aquel que ya ha sido expandido.
n Nodo o estado abierto:
abierto aqul en el que todava queda
por aplicar algn operador.
n Coste de un arco:
arco es un valor numrico que refleja el
tiempo requerido para aplicar un operador a un estado
en el proceso de bsqueda.
n Factor de ramificacin:
ramificacin nmero medio de descendientes
de un nodo, o lo que es lo mismo, el nmero medio de
operadores aplicados a dicho camino.
n Profundidad:
Profundidad longitud del camino ms corto desde el
estado inicial a una meta. O la longitud de secuencia
ms corta de operadores que resuelven el problema.

Area de Computacin e Inteligencia Artificial 19


Resumen

n Los procesos de bsqueda tienen sentido en


problemas que renen una serie de
caractersticas:
n Cabe la posibilidad de asociar un conjunto de estados a
las diferentes situaciones en que se puede encontrar el
objeto del dominio sobre el que se define el problema.
n Hay una serie de estados iniciales desde los que
empezar el proceso de bsqueda.
n Existen ciertos operadores, tal que un operador
aplicado sobre un estado producir otro estado.
n Existe al menos un estado meta o estado solucin

Area de Computacin e Inteligencia Artificial 20


Reglas de produccin

n Taxonomas de los sistemas de


produccin/bsqueda/estrategia de control:
n Hacia adelante / hacia atrs / bidireccional
n Irrevocable / tentativa
n Informada / no informada

Area de Computacin e Inteligencia Artificial 21


Bsqueda sin informacin del
dominio
n Tambin se denominan tcnicas de bsqueda
ciega,
ciega porque realizan una bsqueda sistemtica
y objetiva (en el sentido de que el control del
proceso no depende del problema concreto que
se est resolviendo)
n Por el contrario las tcnicas de bsqueda
heurstica realizan una bsqueda informada e
intentan optimizar dicho proceso eligiendo los
caminos que a priori van a suponer un menor
coste.

Area de Computacin e Inteligencia Artificial 22


Bsqueda sin informacin del
dominio
n Objetivos:
Objetivos
n Encontrar el camino ptimo entre la descripcin del
problema o estado inicial y el estado meta.
n A veces basta con devolver el estado meta y no es
necesario conocer todo el camino.
n Caractersticas:
n No dejar (a priori) ningn nodo sin explorar.
n No explorar un nodo ms de una vez.

Area de Computacin e Inteligencia Artificial 23


Bsqueda en amplitud

n Es aqul procedimiento de control en el que se


revisan todas las trayectorias de una
determinada longitud antes de crear una
trayectoria ms larga.
n Es decir, no se genera ningn nodo de nivel N
hasta que no se hayan obtenido todos los del
nivel N-1.

Area de Computacin e Inteligencia Artificial 24


Bsqueda en amplitud
n Algoritmo de bsqueda en amplitud
n 1. Crear una lista de nodos llamada ABIERTA e inicializarla
con un nico nodo raz, al que se le asigna el estado inicial del
problema.
n 2. Hasta que ABIERTA est vaca o se encuentre una meta
realizar las siguientes acciones:
n 2.1 Extraer el primer nodo de ABIERTA y llamar a ese nodo m.
n 2.2 Expandir m (generar todos los sucesores). Para cada operador
aplicable y cada forma de aplicacin:
1) Aplicar el operador a m, obtener un nuevo estado y crear
un puntero que permita saber que su predecesor es m.
2) Si el nuevo estado generado es meta, salir del proceso
iterativo iniciado en 2.2 y devolver dicho estado.
3) Incluir el nuevo estado al final de ABIERTA (una vez
completado este proceso para todos los sucesores de m -
cuando no se haya encontrado una meta- se contina el
proceso iterativo en el paso 2)
Area de Computacin e Inteligencia Artificial 25
Bsqueda en amplitud

n En este algoritmo la lista ABIERTA va a funcionar como


una cola FIFO.
n Los nodos que haya en ABIERTA sern aquellos que hayan
sido generados, pero que todava no han sido expandidos.
n Los elementos que van a ser expandidos se toman al
comienzo de la lista ABIERTA.
n Sus sucesores se aaden al final.
n De esta forma siempre se expandirn los nodos ms
antiguos.

Area de Computacin e Inteligencia Artificial 26


Bsqueda en amplitud

n Ventajas: si el problema tiene una solucin este


procedimiento garantiza el encontrarla. Si hubiera varias
soluciones se obtiene la de menor coste (la ptima), es
decir, la que requiere un menor nmero de pasos (si
consideramos un coste uniforme de aplicacin de los
operadores)
n Desventajas: si el nivel de profundidad asociado a la
solucin es significativamente menor que el factor de
ramificacin se expandiran demasiados nodos intilmente.
Por otro lado la principal desventaja de este mtodo es el
espacio de almacenamiento requerido. Esto lo hace
prcticamente inviable para problemas complejos, como
suelen ser los del mundo real.

Area de Computacin e Inteligencia Artificial 27


Bsqueda en profundidad

n Es aqul procedimiento de control en el que se centra en expandir


un nico camino desde la raz.
n En el caso de llegar a un callejn sin salida se retrocede hasta el
nodo ms cercano desde donde se puede tomar una ruta
alternativa para poder seguir avanzando.
n Para llevar a cabo este tipo de bsqueda debe utilizarse una
estructura de tipo pila (LIFO) que vaya almacenando los nodos
generados.
n Suele establecerse el llamado lmite de exploracin, que marca la
mxima longitud que puede alcanzar cualquier camino desde la
raz durante el proceso de bsqueda.

Area de Computacin e Inteligencia Artificial 28


Bsqueda en profundidad

n Algoritmo de bsqueda en profundidad


n 1. Crear una lista de nodos llamada ABIERTA e inicializarla con un nico
nodo raz, al que se le asigna el estado inicial del problema.
n 2. Hasta que ABIERTA est vaca o se encuentre una meta realizar las
siguientes acciones:
n 2.1 Extraer el primer nodo de ABIERTA y llamar a ese nodo m.
n 2.2 Si la profundidad de m es igual a lp regresar a 2.1. En caso contrario
continuar.
n 2.3 Expandir m (generar todos los sucesores). Para cada operador aplicable
y cada forma de aplicacin:
1) Aplicar el operador a m, obtener un nuevo estado y crear un puntero que
permita saber que su predecesor es m.
2) Si el nuevo estado generado es meta, salir del proceso iterativo iniciado
en 2.1 y devolver dicho estado.
3) Incluir el nuevo estado al principio de ABIERTA en un orden arbitrario.
Si algn sucesor de m es meta, abandonar el proceso iterativo
sealado en 2.1devolviendo el camino de la solucin que se obtiene
recorriendo los punteros de sus antepasados.
Si algn sucesor de m se encuentra en un callejn sin salida
eliminarlo de ABIERTA y continuar en 2.2
Area de Computacin e Inteligencia Artificial 29
Bsqueda en profundidad

n Ventajas: la principal ventaja de esta algoritmo radica en el


reducido valor de su complejidad espacial. Cuando existen
mltiples soluciones posibles la eficiencia del algoritmo
aumenta.
n Desventajas: la dificultad estriba en el tiempo requerido. El
algoritmo puede dedicarse a recorrer un camino demasiado
largo que no conduzca a ninguna solucin. Es ms, si no
se guarda constancia de los nodos que forman el camino
recorrido se podra caer en ciclos y el proceso no acabara.
n El problema por tanto es determinar cul debe ser lp. Si
ste es inferior a la longitud real del camino de la solucin,
sta nunca se encontrara, y si es mucho mayor sera
ineficiente. Esta es la razn por la que lp debera llamarse
lmite de exploracin.
Area de Computacin e Inteligencia Artificial 30
Bsqueda con retroceso
n Es un mtodo que a diferencia de los algoritmos en
amplitud y en profundidad (que consideran todos los
sucesores) solamente expande un sucesor en cada
iteracin, restringiendo por lo tanto el espacio de estados
considerado.
n Cuanto mejor sea el criterio para limitar el nmero de
estados considerados ms eficiente ser el proceso de
bsqueda.
n Es decir, es como el recorrido en profundidad pero nos
ahorramos tener que expandir todos los nodos para
obtener sus sucesores. El camino sigue avanzando por
ese sucesor, y si nos encontramos con un callejn sin
salido retrocedemos hasta el primer antepasado desde el
que todava partan caminos inexplorados.
Area de Computacin e Inteligencia Artificial 31
Bsqueda con retroceso

n Algoritmo de bsqueda en profundidad


n 1. Crear una lista de nodos llamada ABIERTA e inicializarla con un
nico nodo raz, al que se le asigna el estado inicial del problema.
n 2. Hasta que ABIERTA est vaca o se encuentre una meta o se
devuelva fallo realizar las siguientes acciones:
n 2.1 Si ABIERTA est vaca terminar con fallo: en caso contrario continuar.
n 2.2 Extraer el primer nodo de ABIERTA y llamar a ese nodo m.
n 2.3 Si la profundidad de m es igual a lp o si m no tiene ms sucesores
posibles (que no hayan sido examinados anteriormente) eliminarlo de
ABIERTA y regresar a regresar a 2. En caso contrario continuar.
n 2.4 Generar un nuevo sucesor m de m. e introducirlo al principio de
ABIERTA. , creando un puntero a m, y sealar que dicha rama ya ha sido
considerada.
4.1) Si m es meta, abandonar el proceso iterativo iniciado en el paso 2
devolviendo el camino de la solucin, que se obtiene recorriendo los
punteros de sus antepasados.
4.2) Si m se encuentra en un callejn sin salida eliminarlo de
ABIERTA. Se contina el proceso iterativo en el paso 2.

Area de Computacin e Inteligencia Artificial 32


Bsqueda con retroceso

n Ventajas: la principal ventaja de esta algoritmo respecto al


de profundidad es la de necesitar un menor espacio de
almacenamiento. Slo hay que recordar en cada instante
un sucesor del nodo seleccionado. Otra ventaja es que no
se generan las ramas del rbol que se encuentran despus
(a la derecha) de la solucin.
n Desventajas: Vuelve a ser el problema determinar cul debe
ser lp. Para conocer su valor deberamos saber de
antemano en qu nivel se encuantra la solucin

Area de Computacin e Inteligencia Artificial 33


Algoritmo general de bsqueda
en grafos
1) ABIERTOS := (nodo_inicial); RESUELTO:=FALSO;
2) mientras que ABIERTOS no es vaca Y NO RESUELTO
3) N:=quitar elementos de ABIERTOS;
E:=estado asociado a N
4) si E es un estado objetivo
5) entonces RESUELTO:=verdad
si no para cada operador O hacer
6) si O se puede aplicar a E
7) entonces crear un nodo correspondiente
al estado obtenido por aplicacin de O a E
y aadir ese nodo a ABIERTOS
si RESUELTO
8) entonces devuelve el estado objetivo (y si se requiere una explicacin,
el camino por el que hemos llegado a l)
9) si no informa de que el objetivo no puede ser alcanzado
Area de Computacin e Inteligencia Artificial 34
Algoritmo general de bsqueda
en grafos
n En los pasos 6 y 7 se encuentra implicada la parte
del sistema de produccin que dispara las reglas.
n El tipo de bsqueda depende del paso nmero 7:
n Si el algoritmo no sabe nada del problema que est
resolviendo se llama bsqueda sin informacin del dominio.
n Los nodos del grafo son generados a partir del paso 7.
n Si los nuevos nodos son aadidos al final de la lista ABIERTOS
la bsqueda se llama bsqueda en amplitud. As se consigue
que los nodos en abierto estn ordenados segn su
profundidad, en orden decreciente: los menos profundos al
principio y los ms profundos al final. La lista ABIERTOS pasa
a ser una cola FIFO.
n ABIERTOS sera una lista de todos los nodos que se han
generado pero que todava no han sido expandidos
Area de Computacin e Inteligencia Artificial 35
Herramientas de IA

n Intrpretes generales de sistemas de produccin:


n Lenguajes basados en reglas:
n OPS5 (Brownston, en 1985, de CMU, en Common Lisp usa
RETE);
n CLIPS (C Language Integrated Production System) (de
NASA, permite la integracin con lenguajes como C y
Ada).
n Lenguajes basados en lgica: el ms extendido es
PROLOG.
n Armazones de sistemas expertos:
n EMYCIN;
n en entornos de IA (KEE, KnowledgeCraft, LOOPS, ).
n Arquitecturas generales de resolucin de problemas:
n GPS (Newell, Shaw, Simon) 1963;
n SOAR (Newell, Laird, ) 1987.
Area de Computacin e Inteligencia Artificial 36

También podría gustarte