Академический Документы
Профессиональный Документы
Культура Документы
FACULTAD DE MATEMTICAS
UNIDAD ACAPULCO
No. 001
Apuntes de
FUNDAMENTOS DE
INTELIGENCIA ARTIFICIAL
Primera Edicin
Contenido
1. Introduccin.
6
13
24
41
49
Aplicaciones
7. Aplicaciones.
54
Bibliografa.
61
FACULTAD DE MATEMATICAS
1. Introduccin
Inteligencia Artificial.
Es el estudio de cmo hacer que las computadoras realicen tareas que por el momento,
las personas realizan mejor.
El quhacer en IA parece haber convergido a dos objetivos :
a). Hacer que las computadoras ejecuten acciones que de ser realizadas por el hombre, se
denominaran inteligentes, y
b). Entender el proceso inteligente natural con la ayuda conceptual de los sistemas que
ejecutan tales acciones.
Orgenes.
El origen de lo que conocemos como inteligencia artificial se puede detectar formalmente
en la dcada de los aos sesentas; en 1961, Marvin Minsky, en el MIT, escribi un artculo
titulado "Hacia la Inteligencia Artificial"; en 1960, John McCarthy, crea el lenguaje de
programacin LISP, con caractersticas apropiadas para manipular problemas del tipo de
los identificados como de inteligencia artificial; en 1964, Weizenbaum escribe el programa
llamado "Eliza", el cual simula la actuacin de un psicoanalista; en la misma dcada de los
sesentas aparecen los primeros programas que juegan ajedrez; el entusiasmo por realizar
programas inteligentes tuvo en esta dcada su primer efervecencia.
Aunque como los investigadores intentaron generalizar sus aplicaciones se encontraron
con que los recursos informticos existentes resultaban insuficientes; las capacidades de
memoria y rapidez de ejecucin no eran tiles para manipular los problemas; en los aos
setentas las capacidades computacionales aumentaron aunque todava subsisti lo que hoy
conocemos como la crisis del software.
Es hasta finales de los aos setentas cuando se conocen aplicaciones al procesamiento del
lenguaje natural, representacin de conocimientos, resolucin de problemas difciles y la
aparicin de los sistemas expertos.
Otro de los acontecimientos importantes en la IA es el anuncio en 1981, de la industria
informtica japonesa respecto a utilizar el lenguaje Prolog como base de sus
computadoras de quinta generacin; ste lenguaje de programacin fu creado desde fines
de la dcada de los sesentas en Europa, pero es hasta la dcada de los ochentas en que su
utilizacin en IA cobra una importancia primordial junto a LISP al grado de conocerse
como los dos lenguajes de la IA.
En sta dcada de los aos ochentas, la IA pasa de los laboratorios de investigacin a las
aplicaciones reales y a la comercializacin de software y hardware orientados a IA. A fines
de esta dcada cobra adems importancia la tecnologa de programacin orientada a
objetos y los lenguajes C, C++, Smalltalk y otros con orientaciones especficas a campos
de la IA.
En la actualidad se reconocen tambin varias reas de estudio dentro del campo de la IA
- Representacin de Conocimientos
FACULTAD DE MATEMATICAS
- Resolucin de problemas
- Teora de juegos
- Procesamiento del lenguaje natural
- Visin
- Robtica
- Sistemas Expertos
- Redes Neuronales
- Aprendizaje
- Razonamiento Artificial.
Estas reas de estudio se han venido incorporando individualmente a las aplicaciones
informticas tradicionales; por ejemplo, los sistemas manejadores de bases de datos
pueden contener ahora un elemento deductivo (razonamiento) para obtener informacin
no explcita en la base pero que se puede inferir; otra incorporacin es el proceso del
lenguaje natural para consultas en la base de datos.
Algunas definiciones de la I.A.
Es la ciencia de la inteligencia en general.
Es el estudio de la manera en que pueden construirse programarse las computadoras
para que realicen el tipo de cosas que la mente puede hacer.
La creacin de computadoras cuyo desempeo observable tiene caractersticas que, en
los seres humanos atribuiriamos a procesos mentales.
Es el estudio de problemas complejos de procesamiento de informacin que a menudo
tienen sus races en algn aspecto del procesamiento biolgico de informacin. Su
objetivo es identificar problemas interesantes y resolubles del procesamiento de
informacin para solucionarlos.
Es el arte de crear mquinas que ejecutan funciones que requieren inteligencia cuando
son realizadas por las personas.
Es el estudio de los problemas de computacin que todava no han sido resueltos.
Es la simulacin computacional de procesos cognitivos.
FACULTAD DE MATEMATICAS
C
Figura 2.1. El problema de los bloques.
las restricciones al problema son las siguientes: solamente podemos mover un bloque cada
vez; un bloque puede levantarse nicamente cuando no tiene nada encima; el bloque
levantado puede colocarse sobre el piso sobre otro bloque.
FACULTAD DE MATEMATICAS
Para resolver el problema se requiere encontrar una secuencia de movimientos vlidos que
hagan la conversin. Es decir, podemos entender el problema como una exploracin de
alternativas posibles; en el estado inicial nicamente tenemos una alternativa: colocar el
bloque C sobre el piso. Luego del primer movimiento encontramos ahora tres alternativas:
poner el bloque A sobre el piso, colocar el bloque A sobre C y, poner el bloque C sobre A.
Este tipo de anlisis est basado en el manejo de dos tipos de conceptos: estados del
problema y, movimientos vlidos que nos hagan pasar de un estado del problema a otro
estado del mismo.
El espacio de estados para este ejemplo se muestra en la figura 2.2.
C
A
B
B
A
C
A
BC
C
B
A
B
AC
C
AB
ABC
B
AC
A
B
C
A
BC
B
C
A
C
AB
A
C
B
FACULTAD DE MATEMATICAS
El rompecabezas de 8.
El problema consiste de una tabla de 3x3 celdas conteniendo ocho nmeros del 1 al 8 y
una celda vaca. Como son ocho nmeros, una celda siempre permanecer vaca; un
nmero puede moverse a una celda adyacente si sta est vaca, dejando vaca la celda
donde se encontraba; el problema consiste en ordenar los nmeros del 1 al 8 en forma
circular dejando la celda central vaca tal y como se muestra en la figura 2.3.
1 2 3
4
8
7 6 5
1 3
8 2 4
7 6 5
1 3 4
8 2
7 6 5
1
3
8 2 4
7 6 5
1 3
8 2 4
7 6 5
1 2 3
8
4
7 6 5
1 3 4
8 2 5
7 6
1 3 4
2
8
7 6 5
FACULTAD DE MATEMATICAS
8
7
6
5
4
3
2
1
a
b
c
d
E
f
g
h
TN CN AN RN DN AN CN TN
PN PN PN PN PN PN PN PN
PB PB PB PB PB PB PB PB
TB CB AB RB DB AB CB TB
8
7
6
5
4
3
2
1
A
b
c
d
e
f
g
h
TN CN AN RN DN AN CN TN
PN PN PN PN PN PN PN PN
PB
PB PB PB PB
PB PB PB
TB CB AB RB DB AB CB TB
Estado X
Estado Y
Figura 2.5. Tablero de Ajedrez
FACULTAD DE MATEMATICAS
10
2.3. Heursticas
FACULTAD DE MATEMATICAS
11
Para solucionar la mayora de los problemas difciles, a menudo es necesario construir una
estructura de control que aunque no nos garantice encontrar la mejor respuesta, por lo
menos proporcione una respuesta satisfactoria para nuestros propsitos. Una tcnica
heurstica es aqulla que mejora la eficiencia del proceso de bsqueda de soluciones a
cambio, posiblemente, de sacrificar su completitud. Como ejemplo de aplicacin de
tcnicas heursticas consideraremos un problema clsico de optimizacin :
El problema del agente viajero.
Un vendedor tiene una lista de ciudades cada una de las cuales debe visitar solamente una
vez; existen carreteras directas entre cada par de ciudades de la lista. Se debe encontrar la
ruta que el vendedor debera seguir para que, siguiendo el camino ms corto posible,
visitara todas las ciudades, comenzando por cualquiera de ellas y volviendo a la misma. Un
ejemplo de ste tipo de problemas para seis ciudades se plantea en la figura 2.6.
1
Red de Ciudades
1
13 12 18
2 13
21 26
3 12 21
11
4 18 26 11
5
2 3
7 14
15 25
6 4
12 14
7 15 6 12
6 14 25 4 14 9
Matriz de distancias
12
1500 millas
Calgary
Toronto
1800
1000
Los Angeles
1000
Chicago
1900
Denver
1000
1500
1000
800
500
Urbana
1500
Houston
FACULTAD DE MATEMATICAS
Nueva York
13
FACULTAD DE MATEMATICAS
14
Primero a lo ancho.
Explora cada nodo sobre el mismo nivel antes de intentar analizar un nivel ms profundo.
Ejemplo :
A
FACULTAD DE MATEMATICAS
15
3
6
5
13
14
17
19
12
10 11
21
15
18
20
16
12
13
17
14
10
11
15
16
18
20
19
FACULTAD DE MATEMATICAS
21
16
...
...
P1
Figura 3.5. Bsqueda en profundidad.
llegamos hasta el nodo X usando algn camino parcial P1 y hay que decidir cmo
continuar. Si el nodo X coincide con Z, se termin la bsqueda y el camino P1 es el
resultado. Si todava no llegamos a la meta y X no tiene ningn sucesor hay que regresar a
su predecesor y continuar usando el prximo hermano de X disponible. Si X todava tiene
sucesores disponibles, se toma el primero de ellos (sea ste Y), el camino parcial P1 se
prolonga hasta l y el proceso se repite.
Diseamos una funcin recursiva path1 con argumentos X, Z, P1, G, SCX, cuya tarea es
realizar los pasos especificados arriba; SCX representa la lista de los sucesores disponibles
del nodo X (son los sucesores que todava no se encuentran en el camino parcial P1). La
definicin de la funcin path1 se muestra a continuacin :
FACULTAD DE MATEMATICAS
17
(return (cond
; se termin la bsqueda
((eq x z) p1)
; no hay sucesores
((null scx) nil)
; se toma el primer sucesor disponible y se prueba
((setq p (path1 (car scx)
z
(cons (car scx) p1)
g
(sucd (car scx) g p1)
)
) p)
; el primer sucesor no tuvo xito, se quita de la lista
; de sucesores y se repite la bsqueda
(t (path1 x z p1 g (cdr scx))) )
)))
en sta funcin, primero se prueba si los nodos X y Z coinciden, y en ste caso se regresa
P1 como resultado. Luego se averigua si hay todava sucesores disponibles y se reporta
falla (nil) en caso contrario (el regreso al predecesor de X y el uso de los hermanos de X
est asegurado por la recursin y las alternativas que siguen).
Luego se toma el primer sucesor disponible y se busca algn camino entre l y el nodo Z
llamando otra vez la misma funcin path1 con argumentos ajustados apropiadamente (la
funcin SUCD determina los sucesores disponibles y por sto necesita tener acceso al
camino parcial P1). Si el avance por el primer sucesor no tuvo xito, ste se quita de la
lista SCX y se repite la bsqueda con la lista reducida.
La funcin que llama a path1 y que representa el algoritmo completo de bsqueda en
profundidad es el siguiente :
(defun pathdep (a z g)
(reverse
(path1 a z (list a) g (sucd a g (list a))) ))
sta funcin llama a la funcin path1 dndole el nodo inicial (n1), el nodo meta (n21), el
camino parcial (contiene inicialmente slo a n1), la grfica g, y los sucesores disponibles
que se determinan usando la funcin sucd.
La grfica dirigida G se puede representar en Lisp utilizando una lista de la siguiente
forma :
(setq g '( (n1 n9 n12) (n2 n3 n5 n6 n7) (n3 n2 n4 n8) (n4 n3 n8 n21)
(n5 n2 n6) (n6 n2 n5 n9) (n7 n2 n9) (n8 n3 n4 n10)
(n9 n1 n6 n7 n12) (n10 n8 n11 n15) (n11 n10)
(n12 n1 n9 n14 n17) (n13 n14 n17 n19) (n14 n12 n13)
(n15 n10 n16 n18) (n16 n15 n20) (n17 n12 n13 n19)
FACULTAD DE MATEMATICAS
18
( ( n1
(CAAR G)
s11 s12 . . . )
(CDR G)
( n2 . . . )
... )
(CDAR G)
;------------------------------------------------------------------------------------; busprof1.lsp
;---------------------------------------------------------------------------------; Representacin de la grfica g.
(setq g '( (n1 n9 n12) (n2 n3 n5 n6 n7) (n3 n2 n4 n8) (n4 n3 n8 n21)
FACULTAD DE MATEMATICAS
FACULTAD DE MATEMATICAS
19
Ejemplo de ejecucin :
A:\> mulisp common <enter>
;Loading A:COMMON.LSP
$(load busprof1) <enter>
;Loading A:BUSPROF1.LSP
T
$(pathdep 'n1 'n21 g) <enter>
(N1 N9 N6 N2 N3 N4 N21)
$(pathdep 'n1 'n1 g) <enter>
(N1)
$(pathdep 'n18 'n21 g) <enter>
(N18 N15 N10 N8 N3 N4 N21
$(pathdep 'n4 'n21 g) <enter>
(N4 N21)
$(system) <enter>
A:\> _
FACULTAD DE MATEMATICAS
20
21
22
se ven en la figura 13. Usando la relacin member se elige algn elemento Y de la lista de
sucesores Scx (que adquiri su valor en el empatamiento con la cabeza) y se verifica si no
est en el camino parcial P1. Si est all, el retroceso automtico de Prolog llama otra vez
la relacin member para que le d el siguiente elemento de la lista Scx y as se procede
hasta que se encuentre algn sucesor disponible bien la relacin sucd falle.
G = [ [ n1 s11 s12 . . . ] [ n2 . . . ] . . . ]
[[ X |
ScX
] |
FACULTAD DE MATEMATICAS
23
Ejemplo de ejecucin :
A:\> api <enter>
?- consult( 'busprof1.ari' ). <enter>
yes
?- resolver( n1, n21, X ). <enter>
X = [n1,n9,n6,n2,n3,n4,n21] -> ;
X = [n1,n9,n6,n2,n3,n8,n4,n21] -> ;
X = [n1,n9,n6,n5,n2,n3,n4,n21] -> ;
X = [n1,n9,n6,n5,n2,n3,n8,n4,n21] -> ;
X = [n1,n9,n7,n2,n3,n4,n21] -> ;
X = [n1,n9,n7,n2,n3,n8,n4,n21] -> ;
X = [n1,n9,n12,n14,n13,n17,n19,n20,n16,n15,
n10,n8,n4,n21] -> <enter>
yes
?- halt. <enter>
A:\> _
FACULTAD DE MATEMATICAS
24
FACULTAD DE MATEMATICAS
25
FACULTAD DE MATEMATICAS
26
FACULTAD DE MATEMATICAS
27
f). Si p es una letra de predicado de n plazas p(t 1, t2, t3, ... , t n) es una frmula, siendo t i
smbolos de trminos.
g). Si A es una frmula que contiene libre la variable xi :
xi A(x1, x2, x3, ... , xn)
xi A(x1, x2, x3, ... , xn)
son frmulas sintcticamente correctas; las otras variables xk que figuran en A distintas de
xi continan libres.
h). Si A y B son frmulas, A, B, A B, A B, A B, son tambin frmulas.
i). Slo son frmulas aqullas construidas segn los incisos de a) hasta h).
Axiomas.
Se pueden utilizar los axiomas de Kleene referidos ahora a frmulas del clculo de
predicados, completados con otros referentes a propiedades de los cuantificadores, por
tanto, las frmulas vlidas para el clculo de proposiciones son tambin vlidas para el
clculo de predicados. Los axiomas de Kleene son :
1. A (B A)
2. (A B) ((A (B C)) (A C))
3. A (B (A B))
4. A B AA B B
5. A A B A B A
6. (A C) ((B C) ((A B) C))
7. (A B) ((A B) A)
8. (A) A
9. x B(x) B(t)
10. B(t) x B(x)
en los ltimos axiomas (9 y 10), t representa un trmino cualquiera, constante variable.
Reglas de inferencia.
1. Modus Ponens.
A,
A B
-----------------B
A B(y)
---------------------A x B(x)
(en A no aparece libre y)
28
A(y) B
---------------------x A(x) B
(en B no aparece libre y).
Reglas complementarias de inferencia.
Adems de las reglas anteriores es posible demostrar la validez de las siguientes reglas de
inferencia que son de gran utilidad :
4. Generalizacin universal.
A(y)
-------------------x A(x)
6. Especificacin universal.
x A(x)
---------------------A(y)
5. Generalizacin existencial.
A(y)
--------------x A(x)
7. Especificacin existencial.
x A(x), A(y) B
----------------------------B
(en B no aparece libre y)
FACULTAD DE MATEMATICAS
29
% por 9, sustitucin.
% por 10, sustitucin.
% por 5, sustitucin.
% por 2.
% por 8, sustitucin.
FACULTAD DE MATEMATICAS
30
vivo(marco, ahora).
muerto(marco, ahora).
% por 9, sustitucin.
mortal(marco)
nace(marco, t1)
mayor_que(ahora - t1, 150)
% por 7, sustitucin.
hombre(marco)
nace(marco, t1)
mayor_que(ahora - t1, 150)
% por 4, sustitucin.
nace(marco, t1)
mayor_que(ahora - t1, 150)
% por 1.
% por 3.
% por 8.
mayor_que(1954, 150).
NIL.
FACULTAD DE MATEMATICAS
31
por A B
por A B
por A
por (x){A}
por (x){A}
3). Normalizar variables. Cada cuantificador debe estar ligado a una sola variable.
Dentro del mbito de cualquier cuantificador, una variable ligada a l, se dice que es una
variable muda y puede ser reemplazada por cualquier otra variable que no aparezca en
otra parte, uniformemente en todo el mbito del cuantificador, sin cambiar el valor de
verdad de la frmula. La normalizacin de variables en una frmula significa cambiar los
nombres de las variables mudas para asegurar que cada cuantificador tenga su propia
variable muda, distinta de las de los otros cuantificadores.
Por ejemplo, en lugar de escribir (x)[P(x) (x)Q(x)] escribiremos lo siguiente : (x)
[P(x) (y)Q(y)].
4). Eliminar cuantificadores existenciales. La regla general para eliminar un
cuantificador existencial en una frmula es reemplazar la variable cuantificada
existencialmente, en cada sitio en que aparezca, por una funcin de Skolem cuyos
argumentos sean aqullas variables cuantificadas universalmente que estn ligadas por
cuantificadores universales cuyos mbitos comprendan el mbito del cuantificador
FACULTAD DE MATEMATICAS
32
existencial que se est eliminando; los smbolos usados para las funciones de Skolem
deben ser nuevos en el sentido de que no sean algunos de los que ya aparecen en la
frmula.
Consideremos por ejemplo la frmula (y)[(x)P(x,y)] que puede entenderse como "para
todo y existe un x, posiblemente dependiente de y, tal que P(x,y)". Ntese que como el
cuantificador existencial est en el mbito del cuantificador universal, admitimos la
posibilidad de que el x que existe pueda depender del valor de y. Definiremos
explcitamente sa dependencia mediante una funcin g(y) que hace corresponder a cada
valor de y el valor de x que "existe". Tal funcin se denomina como funcin de Skolem.
Si utilizamos la funcin de Skolem en lugar de la x que existe, podemos eliminar el
cuantificador existencial y escribir : (y)P(g(y),y).
Sea por ejemplo la siguiente frmula :
[(w)Q(w)] (x){(y){(z)[P(x,y,z) (u)R(x,y,u,z)]}}.
eliminamos (z) y obtenemos :
[(w)Q(w)] (x){(y)[P(x,y,g(x,y)) (u)R(x,y,u,g(x,y))].
Si el cuantificador existencial que vamos a eliminar no aparece en el mbito de un
cuantificador universal, usaremos una funcin de Skolem sin argumentos, sto es, una
constante. Por ejemplo, (x)P(x) dar lugar a P(A), donde A es un smbolo de constante
para referirnos al elemento que sabemos que existe. A debe ser un smbolo de constante
nuevo, no usado todava en ninguna frmula para referirse a otros elementos constantes.
5). Convertir a forma prenex. Como ya no quedan cuantificadores existenciales y cada
cuantificador universal tiene su propia variable, podemos mover todos los cuantificadores
universales al principio de la frmula y hacer que el mbito de cada cuantificador incluya
toda la parte de la frmula que le sigue. Se dice que la frmula que resulta est en forma
prenex. Esta frmula consiste de un prefijo de cuantificadores seguido de una frmula
exenta de cuantificadores llamada matriz.
6). Escribir la matriz en forma normal conjuntiva. Una matriz puede escribirse como
una conjuncin de un nmero finito de disyunciones de predicados y/ negaciones de
predicados. Tal matriz se dice que est en forma normal conjuntiva. Ejemplos de stas
matrices son :
[P(x) Q(x,y)] [P(w) R(y)] Q(x,y)
P(x) Q(x,y)
P(x) Q(x,y)
R(y)
Podemo escribir cualquier matriz en forma normal conjuntiva usando repetidamente la
regla :
FACULTAD DE MATEMATICAS
33
Reemplazar A {B C} por {A B} {A C}
7). Eliminar cuantificadores universales. En ste momento todas las variables que
quedan estn cuantificadas universalmente, por tanto, el orden de los cuantificadores no
importa y en consecuencia podemos eliminar su escritura explcita conviniendo, para todo
lo que sigue, que todas las variables de la matriz estn cuantificadas universalmente.
8). Eliminar los smbolos . Podemos evitar la aparicin explcita de los smbolos ,
reemplazando las expresiones de la forma x y con las dos frmulas x, y. El resultado
final de stas operaciones es un conjunto finito de frmulas, cada una de las cuales es una
disyuncin de predicados y/ negaciones de predicados. Estas frmulas se denominan
clusulas.
9). Renombrar variables. Se cambian los smbolos de las variables de tal forma que no
haya dos clusulas que hagan referencia a la misma variable. Al realizar sta
transformacin nos basamos en el hecho de que :
(x)[P(x)Q(x)] es equivalente a [(x)P(x) (y)Q(y)]
Este proceso se denomina tambin como normalizar las variables por separado.
Finalmente, notaremos que los predicados de una clusula pueden contener variables, pero
se sobreentiende que sas variables estn siempre cuantificadas universalmente.
Si las variables se sustituyen por trminos que no contienen variables, obtenemos una
particularizacin bsica del predicado. Por ejemplo, Q(A,f(g(B)) es una particularizacin
bsica de Q(x,y).
Cuando se usa la resolucin como regla de inferencia en un sistema de demostracin de
teoremas, el conjunto de frmulas a partir del cual deseamos probar un teorema, ser
convertido, en primer lugar, en clusulas. Se puede ver que si una frmula X se sigue
lgicamente de un conjunto de frmulas S, tambin se sigue lgicamente del conjunto de
clusulas obtenidas al convertir las frmulas de S en clusulas, por lo tanto, para nuestros
propsitos, las clusulas son una forma general de expresin de las frmulas.
Ejemplo. Convertir la siguiente frmula lgica a su forma clausular :
(x) {P(x) {(y) [P(y) P(f(x,y))] (y) [Q(x,y) P(y)]}}
1). Eliminar los smbolos de implicacin.
(x) {P(x) {(y)[P(y) P(f(x,y))] (y)[Q(x,y) P(y)]}}.
2). Reducir los mbitos de los smbolos de negacin.
(x) {P(x) {(y)[P(y) P(f(x,y))] (y)[Q(x,y) P(y)]}}.
3). Normalizar variables.
FACULTAD DE MATEMATICAS
34
FACULTAD DE MATEMATICAS
35
p q r
p q
t q
p
q
t
[]
Algoritmo de unificacin.
En lgica de proposiciones para determinar que dos proposiciones no pueden ser ciertas al
mismo tiempo comprobamos L y L. En lgica de predicados el proceso de
empatamiento es ms complicado puesto que deben considerarse las ligaduras de las
variables; por ejemplo, hombre(Jos) y hombre(Jos) es una contradiccin, mientras que
hombre(Jos) y hombre(Mara) no es una contradiccin. Por lo tanto, necesitamos un
proceso de empatamiento que compare dos predicados y encuentre si existe un conjunto
de sustituciones que los haga idnticos. El algoritmo de unificacin que se presenta
enseguida es un procedimiento recursivo directo que realiza lo anterior.
FACULTAD DE MATEMATICAS
36
FACULTAD DE MATEMATICAS
37
hombre(x1) mortal(x1)
hombre(x1) mortal(x1)
mortal(Marco)
38
romano(Marco) leal(Marco,Csar)
pompeyano(Marco) leal(Marco,Csar)
7
1
4
leal(Marco,Csar)
intentaasesinar(Marco,Csar)
8
[]
En forma clausular :
1. estudia(Juan,x) estudia(Antonio,x).
2. estudia(Juan, Ingeniera)
3. estudia(Antonio,y).
estudia(Juan,x) estudia(Antonio,x).
estudia(Juan, Ingeniera)
estudia(Antonio,Ingeniera) estudia(Antonio,Ingeniera)
[]
por lo tanto es deducible que: (y)estudia(Antonio,y)
Si adicionamos el predicado 'respuesta(y)' para el ejemplo anterior :
estudia(Juan,x) estudia(Antonio,x).
estudia(Juan, Ingeniera)
39
FACULTAD DE MATEMATICAS
40
41
bao
sala
fuga_en_la_cocina
ventana_cerrada
no_entra_agua_de_afuera
no_hay_lluvia
Figura 5.2. Grafo AND/OR del problema.
Encadenamiento hacia atrs.
FACULTAD DE MATEMATICAS
42
43
sto nos permite escribir las reglas de produccin de la figura 5.2. en la siguiente forma :
si cocina_seca y sala_mojada
entonces fuga_en_el_bao.
si sala_mojada y bao_seco
entonces problema_en_la_cocina.
si ventana_cerrada o no_hay_lluvia
entonces no_entra_agua_de_afuera.
si problema_en_la_cocina y no_entra_agua_de_afuera
entonces fuga_en_la_cocina.
Los elementos de evidencia (hechos observados) se pueden escribir con una relacin
hecho :
hecho( sala_mojada ).
hecho( bao_seco ).
hecho( no_entra_agua_de_afuera ).
Ahora necesitamos un intrprete para las reglas escritas con sta nueva sintaxis. Este
intrprete lo podemos definir con el siguiente procedimiento :
es_cierto( P )
donde la proposicin P est dada en la relacin hecho puede deducirse utilizando las
reglas. El intrprete se muestra en la figura 5.3. y puede responder a la pregunta :
?- es_cierto( fuga_en_la_cocina ) .
yes
una gran desventaja todava de stos ejemplos es la de que los hechos observados tienen
antes que escribirse como tales; lo correcto es que debe existir un dilogo con el usuario
para establecer estos hechos.
FACULTAD DE MATEMATICAS
44
FACULTAD DE MATEMATICAS
FACULTAD DE MATEMATICAS
45
46
5.2. Redes.
Se emplean principalmente grficas dirigidas tales como grficas relacionales, redes
semnticas, redes conceptuales y otras.
5.2.1. Redes semnticas.
Las redes semnticas fueron propuestas por Ross Quillian en 1966 como un medio para
codificar el significado de las palabras del lenguaje natural; en una red semntica la
informacin se representa como un conjunto de nodos conectados entre s por medio de
arcos etiquetados, que representan las relaciones entre los nodos; la idea principal parte de
que el significado de un concepto se infiere de los modos en que ste se encuentra
relacionado con otros conceptos. En la figura 5.5. se muestra un fragmento de una red
semntica.
Mamfero
es_un
Persona
Verde
color_de
uniforme
es_parte_de
Nariz
instancia
Jorge
Campos
equipo
Mxico
FACULTAD DE MATEMATICAS
47
animal
es_un
luz_del_da
activo_en
pjaro
mtodo_para
moverse
es_un
es_un
albatros
color
es_un
Kim
es_un
activo_en
Rosa
es_un
Alberto
volar
kiwi
color
noche
mtodo_para
moverse
caf
caminar
blanco_y_negro
FACULTAD DE MATEMATICAS
48
as, podramos establecer una regla para cada relacin que pudiera 'heredarse', aunque
podemos tambin escribir una regla ms general acerca de los hechos explcitamente
establecidos heredados :
hecho( Hecho ) :Hecho, ! .
hecho( Hecho ) :Hecho = .. [ Rel, Arg1, Arg2 ] ,
es_un( Arg1, SuperArg ) ,
SuperHecho = .. [ Rel, SuperArg, Arg2 ] .
a la red semntica puede hacrsele la siguiente pregunta :
?- hecho( mtodo_para_moverse( kim, Mtodo) ) .
Mtodo = caminar
lo cual fu heredado del hecho explcito de que los kiwis caminan; por otra parte :
?- hecho( mtodo_para_moverse( alberto, Mtodo) ) .
Mtodo = volar
se hered de la clase pjaro.
FACULTAD DE MATEMATICAS
49
50
tamao : 120
es importante destacar la diferencia entre las dos relaciones un_tipo_de e instancia_de; la
primera es la relacin entre una clase y una superclase, mientras que la segunda es la
relacin entre un miembro de una clase y la clase. Los marcos anteriores se pueden
representar en prolog como una serie de hechos, un hecho por cada valor; por ejemplo :
Nombre_del_marco( Slot, Valor)
en la figura 6.1. se presentan algunos marcos con ste formato.
Para manipular los marcos necesitamos un procedimiento para recuperar hechos a partir
de los valores de los slots :
valor( Marco, Slot, Valor )
donde Valor es el valor del slot Slot en el marco Marco; si el valor existe explcito en el
marco, entonces se recupera dicho valor, de otro modo el valor se obtiene al travs de un
proceso de inferencia (por ejemplo la herencia).
Para encontrar un valor por medio de la herencia tenemos que movernos del marco actual
a otro ms general de acuerdo con la relacin un_tipo_de la relacin entre marcos
instancia_de. Este proceso nos lleva a un marco "padre" en el cual los valores pueden
encontrarse explcitos al travs de otros procesos de herencia :
FACULTAD DE MATEMATICAS
FACULTAD DE MATEMATICAS
51
52
53
animal( tamao_relativo,
execute( tamao_relativo( Objeto, Valor), Objeto, Valor ) ) .
Enseguida debemos modificar el procedimiento valor para que pueda manejar slots con
procedimientos :
valor( Marco, Slot, Valor ) :- valor( Marco, Marco, Slot, Valor ) .
%
valor( Marco, SuperMarco, Slot, Valor ) :Pregunta = .. [ SuperMarco, Slot, Informacin ] ,
call( Pregunta ) ,
procesar( Informacin, Marco, Valor ) , ! .
% Inferir un valor por medio de la herencia.
valor( Marco, SuperMarco, Slot, Valor ) :padre( SuperMarco, MarcoSuperPadre ) ,
valor( Marco, MarcoSuperPadre, Slot, Valor ) .
% procesar( Informacin, Marco, Valor ).
procesar( execute( Meta, Marco, Valor ), Marco, Valor ) :! , call( Meta ) .
procesar( Valor, _, Valor ) .
6.2. Procedimientos.
La representacin mediante procedimientos utiliza un lenguaje de alto nivel en el
tratamiento de los conocimientos en forma explcita mediante un programa. El
comportamiento del programa est dirigido por instrucciones. Los conocimientos que
trata no se expresan en forma declarativa sino que se encuentran a travs de todo el
programa. Un ejemplo interesante de lenguaje procedural que facilita stas caractersticas
es PLANER (Hewitt 72). La controversia entre la estrategia procedural y declarativa
presenta amplias discusiones (Winograd 75); sin embargo, ninguna de las dos se
contrapone, de ah que el balance entre una y otra utilizacin depende de las caractersticas
del problema a tratar.
6.3. Conclusiones.
El estudio de los programas de aplicacin producidos dentro de la IA incluye la
representacin de conocimientos que utilizan, de ah que no es evidente la delimitacin de
una frontera rigurosa en el estudio de stos temas por s mismos. Se puede afirmar que
una aplicacin normalmente utiliza ms de un tipo de formalismo para la representacin de
conocimientos; la seleccin de stos repercute en la eficiencia de los sistemas.
FACULTAD DE MATEMATICAS
54
Aplicaciones.
7. Aplicaciones.
En ste captulo se presenta una taxonoma de las aplicaciones de la Inteligencia Artificial,
as como algunas recomendaciones de libros y artculos relacionados; se recomienda que el
estudiante debe leer entre diez y quince artculos durante el semestre para que se pueda
familiarizar con la forma en que se estn desarrollando actualmente las aplicaciones de I.A.
7.1. Programacin Automtica.
Comprende la elaboracin de programas de apoyo para el usuario en el desarrollo de otros
programas.
7.1.1. Construccin de programas.
Un sistema capaz de comprender el enunciado de un problema especfico en un lenguaje
que no es de programacin; y a partir de sta interpretacin resolver el problema
ensamblando programas ya probados.
7.1.2. Verificacin de programas.
A partir de las especificaciones de un problema, as como de la interpretacin del sentido
de su solucin, un programa inteligente establece cuando un problema tiene solucin.
7.1.3. Programacin asistida por computadora.
Aqu se estudian los programas que sirven de herramienta a un usuario programador en la
comprensin de mensajes en lenguaje natural; para ello cuenta con subrutinas que
depuran, localizan y explican las acciones a efectuar.
7.1.4. Referencias.
1. The handbook of artificial intelligence. Vol. I, II, y III.
A. Barr; E. A. Feigenbaum. / William Kaufmann Inc. 1982.
2. Symbolic logic and mechanical theorem proving.
C. L. Chang; R. C. Lee. / Academic Press, 1973.
3. Artificial Intelligence Programming.
E. Charniack; C. Riesbeck; D. McDermott. / Laurence Erlbaum, 1980.
4. Logic for problem solving. / R. A. Kowalski. / North Holland, 1979.
5. Problem solving methods in artificial intelligence.
N. J. Nilsson. / Mc Graw-Hill, 1971.
6. Automatic generation of computer programs. Computers, Vol. 16.
M. Rubinoff; M. Yovits; (ed.). / Academic Press, 1977.
7. A global view of automatic programming.
Proceedings of the 3rd international conference on artificial intelligence.
pp. 494-499., 1973.
7.2. Deduccin.
El estudio de los mecanismos para ejecutar inferencias tales como : aplicacin de reglas,
demostracin de teoremas, deduccin de respuestas a preguntas, mtodos de planeacin,
resolucin de problemas y otros.
FACULTAD DE MATEMATICAS
55
FACULTAD DE MATEMATICAS
56
Los mtodos que comprenden la formacin de reglas, los cuales pueden ser usados por
mtodos de inferencia inductiva.
7.3.4. Parmetros con cierto peso.
El ajuste de los coeficientes de evaluacin funciones de decisin, son un ejemplo tpico.
7.3.5. Referencias.
1. The handbook of artificial intelligence. Vol. I, II, y III.
A. Barr; E. A. Feigenbaum. / William Kaufmann Inc. 1982.
2. Introduction to artificial intelligence.
E. Charniack; D. McDermott. / Addison-Wesley. 1985.
3. Artificial intelligence. / E. Hunt. / Academic Press. 1975.
4. Principles of artificial intelligence.
J. Nilsson. / Tioga Publishing Company. 1980.
5.Planning and understanding.A computational approach to human reasoning.
R. Wilensky. / Addison-Wesley. 1983.
6. Artificial intelligence. / P.Winston. / Addison-Wesley. 1985.
7.4. Procesamiento del lenguaje natural.
El estudio de cmo disear y construir programas que traten el lenguaje natural como
parte de las tareas bajo el cual se construy el sistema.
7.4.1. Comprensin de la voz.
7.4.2. Anlisis lexicogrfico.
La representacin interna del sentido de un texto escrito bajo una sintaxis de un lenguaje,
por ejemplo, el denominado como natural.
7.4.3. Anlisis del discurso.
La interpretacin de un texto que comprende mltiples frases, como son las historietas, los
dilogos, tc.
7.4.4. Generacin del lenguaje.
La interpretacin de la representacin interna de un texto para contestar preguntas,
comandar un robot, tc.
57
7.6.1. Redes.
Esta representacin presenta diversos tipos : grficas dirigidas como es el caso de grficas
relacionales, redes semnticas, redes conceptuales, tc.
7.6.2. Clculo de predicados.
Representacin basada en la lgica simblica.
7.6.3. Por procedimientos.
Por medio de procedimientos algortmicos escritos en lenguajes de alto nivel.
7.6.4. Referencias.
1. The handbook of artificial intelligence. Vol. I, II, y III.
FACULTAD DE MATEMATICAS
58
7.8.3. Movimientos.
Por ejemplo el tratamiento de una serie de imgenes concernientes con el movimiento de
objetos.
7.8.4. Referencias.
1. Computer image processing and recognition.
E. L. Hall. / Academic Press. 1979.
2. Artificial intelligence, an MIT perspective. Vol. II.
H. P. Winston; R. H. Brown. / M.I.T. Press. 1979.
7.9. Software.
El estudio de tcnicas de programacin para crear programas utilizables en ms de un
campo de aplicacin :
7.9.1. Estructuras de control.
FACULTAD DE MATEMATICAS
59
7.9.1.1. Jerrquicas.
7.9.1.1.1. Recursivas.
7.9.1.1.2. Con retroceso. (bactracking).
7.9.1.2. Heterrquicas.
7.9.1.2.1. Datos directos.
7.9.1.2.2. Corrutinas de comunicacin.
7.9.2. Lenguajes.
Es estudio sobre el diseo de lenguajes que incorporan tcnicas como parte de rutinas
bsicas, datos estructurados y/ estructuras de control. Ejemplos tpicos son los lenguajes
PLANNER, SAIL y STRIPS.
7.9.3. Referencias.
1. Artificial intelligence. 2a.ed. / E. Rich; K.Knight. / Mc Graw-Hill. 1991.
7.10. Sistemas expertos.
Son sistemas especializados que presentan comportamiento inteligente en un campo
particular de la ciencia. Para su estudio la subdivisin de sta rama es de acuerdo a
diferentes aspectos :
7.10.1. Por el dominio de aplicacin :
7.10.1.1. Sistemas qumicos.
Por ejemplo el sistema DENDRAL que infiere estructuras moleculares a partir de los
datos experimentales del espectro de absorcin de masas.
7.10.1.2. Sistemas mdicos.
Ejemplo de stos sistemas es MYCIN, que diagnostica infecciones bacterianas y sugiere
como contrarrestarlas.
7.10.2. Por el objetivo bajo el cual estn diseados :
7.10.2.1. Sistemas de diagnstico.
7.10.2.2. Sistemas de prediccin.
7.10.2.3. Sistemas de interpretacin.
7.10.3. Por el mecanismo de inferencia empleado :
7.10.3.1. Sistemas de mquina de inferencia cero.
7.10.3.2. Sistemas de mquina de inferencia con variables.
7.10.4. Referencias.
1. Inteligencia artificial: sistemas expertos.
J. Cuena; G. Fernndez; R. Lpez de Mntaras; M. Verdejo.
Alianza editorial. 1986.
2. Los sistemas expertos en la empresa.
Benchimol; Levine; Pomerol. / Macrobit. 1990.
3. Sistemas Expertos. Una metodologa de programacin.
Snchez; Beltrn. / Macrobit. 1990.
4. Principios de inteligencia artificial y sistemas expertos.
D.W.Rolston. / Mc Graw-Hill. 1990.
5. Expert System. A practical introduction.
P. S. Sell. / MacMillan. 1985.
6. Building expert systems.
FACULTAD DE MATEMATICAS
60
FACULTAD DE MATEMATICAS
FACULTAD DE MATEMATICAS
61