Documente Academic
Documente Profesional
Documente Cultură
Artificial
Ing. Edgar Taya Acosta
Dr. Alejandro Bassi Acua
Qu es la Inteligencia Artificial?
En una primera aproximacin, se puede
definir la inteligencia artificial como la
rama de la computacin que estudia la
automatizacin del comportamiento
inteligente. La investigacin en este
campo ha llevado al desarrollo de
herramientas computacionales
especficas, entre las cuales se cuentan
una gran diversidad de formalismos de
representacin de conocimientos y de
algoritmos que los aplican, adems de los
lenguajes, estructuras de datos y tcnicas
de programacin utilizados para su
implementacin.
Sin embargo, la definicin anterior no es
completamente satisfactoria porque hace
referencia a la nocin de inteligencia, en s muy
difcil de precisar. A pesar de que a la mayora
de las personas les parece obvio distinguir
cundo un comportamiento es inteligente, la
intuicin que avala este juicio resulta imposible
de describir con el suficiente grado de detalle
para ser utilizada como criterio formal de
evaluacin de la supuesta inteligencia de un
programa computacional.
Se necesitan por lo tanto criterios
ms elaborados para delimitar los
problemas que caen dentro de la
esfera de la inteligencia artificial y
validar los resultados de los
programas construidos para
resolverlos.
Si tomamos al ser humano como modelo de
comportamiento inteligente, el objetivo sera
reproducir en el computador la eficacia de sus
reacciones frente a tareas o situaciones
complejas. Entre las capacidades humanas que
involucran las facultades intelectuales, la de
mayor relevancia es la de dialogar en una
lengua verbal. Fu precisamente dicha
capacidad la que el matemtico Alan Turing
utiliz como base para plantear la validacin de
una mquina inteligente en su famoso paper
"Computing Machinery and Intelligence"
(1950), que fu uno de los primeros trabajos
encaminados a plantear este objetivo.
El test de Turing
Alan Mathison Turing
(1912-1954) es
considerado como el
padre de la teora de la
computacin y de la
inteligencia artificial.
El test de Turing
propone un criterio
emprico para comparar
el desempeo de un
computador al de un
humano en un "juego
de imitacin" en que el
computador trata de
hacerse pasar por un
humano.
En su versin ms simple, el dispositivo
experimental consta de un interrogador humano que
puede comunicarse con un computador y un
contraparte humano por medio de un terminal (o
cualquier dispositivo de transmisin de texto). Se le
pide al interrogador, que est aislado y no tiene la
posibilidad de mirar o hablar directamente con sus
interlocutores, que distinga cul de ellos es el
humano, basndose slo en las respuestas a las
preguntas hechas a travs del terminal. Si
dialogando de esta manera el computador logra
engaar al interrogador, puede asumirse que es
inteligente.
El aspecto ms interesante de este test es que
establece una nocin objetiva de inteligencia que
evita entrar en debates filosficos sobre su
"verdadera" naturaleza.
Es suficiente el test de Turing?
A pesar de sus ventajas, el test de Turing es vulnerable
a varias crticas justificadas que impiden considerarlo
como el nico criterio de validacin de inteligencia:
El juego de imitacin obliga al computador a reproducir
no slo las destrezas del comportamiento humano, sino
que tambin sus flaquezas. Para no ser detectado, el
computador debe cometer el mismo tipo de errores
que un humano, por ejemplo, en el caso de
operaciones aritmticas complejas. Esto es
contraproducente desde el punto de vista tecnolgico.
Lo que realmente importa en un sistema de dilogo es
la ergonoma de la comunicacin, y no que el
computador sea capaz de hacerse pasar por humano.
Hay un sesgo a problemas que dependen de las
capacidades de procesamiento simblico. No se pueden
evaluar capacidades perceptuales o de destreza
manual.
El test se basa enteramente en la
inteligencia humana. Esto restringe
inecesariamente el tipo de inteligencia que
se puede implementar en un computador.
El test indica si un programa cumple o no el
criterio de inteligencia, pero en caso de
falla no entrega herramientas para corregir
defectos y orientar su desarrollo. Tampoco
permite realizar validaciones parciales,
indispensables desde el punto de vista de la
ingeniera de software si se considera la
complejidad de los sistemas inteligentes.
La inteligencia artificial se puede abordar
de una manera mucho ms general,
analizando los distintos objetivos que
justifican su estudio.
Objetivos de la Inteligencia Artificial
Una definicin ms adecuada de la
I.A. puede deducirse de la siguiente
pregunta Para qu sirve? Existen
dos orientaciones bsicas para
responder esta interrogante:
como herramienta cientfica
El objetivo es simular en el computador modelos del
comportamiento de sistemas inteligentes naturales (en
particular humanos) para verificar empricamente su
validez. Esta simulacin es indispensable porque los
sistemas estudiados son generalmente demasiado
complejos para obtener predicciones analticas precisas de
su funcionamiento. Las reas que ms pueden
beneficiarse con esta herramienta son la sicologa
cognitiva y la neurobiologa. Esto no significa que los
aspectos computacionales sean secundarios, ya que todo
comportamiento inteligente implica un procesamiento de
informacin que es legtimo estudiar desde un punto de
vista puramente computacional. Adems, los mecanismos
naturales investigados pueden enriquecer el arsenal de
mtodos de la computacin (como en el caso de las redes
neuronales).
como herramienta tecnolgica
El objetivo es resolver en el computador problemas
"difciles", que se sabe estn al alcance de sistemas
inteligentes naturales pero para los cuales no existe
una descripcin algortmica satisfactoria. Los
problemas incluidos dentro de esta categora se
caracterizan en general por la dificultad de disponer
de toda la informacin necesaria para resolverlos sin
ambigedad. Ya sea hay demasiada informacin que
considerar (ej.: ajedrez), ya sea sta es incompleta
o inconsistente (ej.: lenguaje verbal), ya sea est
muy poco estructurada (ej.: anlisis de imagenes).
En estos casos es interesante reproducir las
capacidades de procesamiento observadas en los
sistemas naturales, aunque no necesariamente
modelando sus mecanismos internos.
Tcnicas de la Inteligencia Artificial
Adems de los mtodos generales de la computacin, en
Inteligencia Artificial se utilizan tcnicas especficas que se
diferencian del enfoque algortmico clsico. El enfoque clsico
da por hecho que se dispone de toda la informacin necesaria
para llegar siempre una solucin ptima del problema
abordado. En Inteligencia Artificial, las decisiones se basan en
un conocimiento parcial que no garantiza encontrar el ptimo.
La inteligencia consiste precisamente en saber sacar el
mximo provecho a la informacin disponible para tratar de
obtener el resultado deseado. Dicho en forma gradual, un
sistema es ms inteligente mientras menos informacin
requiera analizar para llegar a un determinado resultado y
mientras mejor sea este resultado. Esta definicin permite
abarcar a la mayora de los mtodos de la inteligencia
artificial y pone de manifiesto el compromiso entre
exhaustividad del anlisis y calidad del resultado que los
caracteriza: se sacrifica la seguridad de obtener soluciones
ptimas por la ventaja de poder operar con informacin
incompleta.
Las tcnicas computacionales desarrolladas
dentro de este marco metodolgico son
llamadas heursticas (de una raiz griega que
significa hallar). Una heurstica es una
estrategia de resolucin de problemas que
permite orientar la bsqueda de la solucin
haciendo un anlisis selectivo de las
posibilidades ms relevantes segn la
informacin disponible. A pesar de no
garantizar siempre la mejor solucin, una
buena heurstica debera permitir hallar una
solucin muy cercana al ptimo en la mayora
de los casos.
Representacin de conocimientos
Todo comportamiento inteligente implica un uso
intensivo de informacin. Es por lo tanto natural
que una de las preocupaciones centrales de la
Inteligencia Artificial se refiera a cmo
representar la informacin o, para enfatizar la
complejidad de su estructura, el conocimiento
necesario para que el computador pueda operar
inteligentemente. El enfoque ms difundido se
basa en la hiptesis del sstema de smbolos fsico
que plantea que la actividad inteligente, tanto en
el humano como en el computador, se logra a
travs del uso de:
Patrones de smbolos para representar aspectos
significativos de un dominio de problema.
Operaciones sobre estos patrones para generar
soluciones potenciales a los problemas abordados.
Mecanismos de bsqueda para seleccionar la mejor
solucin entre las posibilidades generadas.
Esta hiptesis distingue a los patrones, formados
combinando smbolos, del medio fsico utilizado para
implementarlos. Si la inteligencia depende slo de la
estructura de un sistema de smbolos, cualquier
medio fsico que permita implementarlo, en
particular un computador, puede lograr un
comportamiento inteligente. Entre los mecanismos
simblicos de representacin, se destaca la lgica
formal que presenta las ventajas de una semntica
bien definida y de reglas de inferencia correctas y
completas.
Lgica proposicional
La lgica proposicional permite
representar propiedades
elementales del dominio modelado
y razonar sobre ellas. Los patrones
o expresiones de la lgica
proposicional se construyen a partir
de un alfabeto que consta de los
siguientes smbolos:
conectivos lgicos: ,,,,
smbolos de puntuacin: ), (
un conjunto fijo P = {p, q, r, ...}
de variables proposicionales.
El lenguaje L(P) de expresiones de la
lgica proposicional puede definirse
inductivamente a partir de estos
elementos aplicando las siguientes reglas:
Cada variable proposicional de P es una
expresin (atmica).
Si X es una expresin, entonces la negacin
X tambin es una expresin.
Si X y Y son expresiones, entonces tambin lo
son:
la conjuncin (X Y)
la disyuncin (X Y)
la implicacin (XY)
la equivalencia (XY)
Por ejemplo, si P = {enchufado,
fusibleQuemado, funciona}, entonces las
siguientes expresiones, entre otras, pertenecen
a L(P):
((enchufado fusibleQuemado) funciona)
((enchufado funciona) fusibleQuemado)
Los parntesis pueden omitirse segn la
precedencia habitual de los conectivos lgicos.
Semntica de lenguajes
proposicionales
En trminos generales, una semntica permite atribuir
un significado a las expresiones del lenguaje simblico
considerado. En el caso de un lenguaje de
programacin como C, esta semntica es procedural y
consiste en describir el efecto que produce el programa
sobre sus estructuras de datos. Para un lenguaje de
representacin, lo que interesa es capturar una
descripcin del universo modelado. La lgica permite
hacer esto asignando un valor de verdad a cada
expresin del lenguaje. La semntica de un lenguaje
proposicional depende (i) de la interpretacin de los
conectivos lgicos, que tienen el mismo significado en
todos los dominios, y (ii) de los valores de verdad
asignados a las variables proposicionales, distintos
segn la situacin reflejada.
Dado un lenguaje proposicional
L(P), se define su semntica por
medio de una asignacin de verdad
o valuacin que declara a las
variables proposicionales en P como
verdaderas o falsas. Tomando a 0
como valor falso y a 1 como valor
verdadero, una asignacin de
verdad es una funcin s de P en el
conjunto {0, 1}:
s: P {0, 1}.
Por ejemplo, si P = {p, q, r}, entonces
son valuaciones, entre otras:
s1: p 1, q 0, r 1
s2: p 0, q 1, r 1
Si P tiene n variables proposicionales,
entonces a priori hay 2
n
valuaciones
posibles, aunque no todas tengan sentido
en el universo modelado.
Valuacin de expresiones
compuestas
Para obtener el valor de verdad de expresiones no
primitivas, se extiende la funcin de valuacin
definindola inductivamente sobre L(P). Esta
definicin permite precisar formalmente el
significado de los conectivos lgicos.
Dado un lenguaje proposicional L(P) y una
asignacin s: P {0, 1}, se define la funcin
extendida s: L(P) {0, 1} de la siguiente
manera. Dada una expresin arbitraria X de L(P),
el valor de verdad s(X) es:
Caso bsico: si X es una expresin atmica
constituida por una sola variable proposicional
perteneciente a P, entonces s(X) es el valor de
verdad asignado inicialmente a dicha variable.
Pasos inductivos:
Si X es Y, entonces s(X) = 1 - s(Y).
Si X es (Y Z) entonces s(X) = min{s(Y),
s(Z)}.
Si X es (Y Z) entonces s(X) = max{s(Y),
s(Z)}.
Si X es (Y Z) entonces s(X) = 0 si s(Y) = 1 y
s(Z) = 0, 1 en caso contrario.
Si X es (Y Z) entonces s(X) = 1 si s(Y) =
s(Z), 0 en caso contrario.
Esto puede verse ms claramente definiendo la
semntica de los conectivos lgicos mediante
tablas de verdad.
Tablas de verdad
Dado que en el clculo proposicional
se opera slo sobre dos valores de
verdad, para cualquier expresin
existe un nmero finito de
valuaciones posibles que se pueden
tabular.
La tabla de verdad de una expresin
con n variables proposicionales
tiene 2
n
filas:
X X
0 1
1 0
X Y (X Y) (X Y) (X Y) (X Y)
0 0 0 0 1 1
0 1 0 1 1 0
1 0 0 1 0 0
1 1 1 1 1 1
Estas tablas corresponden a
definiciones extensivas de funciones
sobre {0, 1}, por ejemplo:
: {0, 1} {0, 1} {0, 1}
(0,0) 0
(0,1) 0
(1,0) 0
(1,1) 1
Dos frmulas de L(P) son
lgicamente equivalentes si
exactamente las mismas
valuaciones las hacen verdaderas,
lo que puede verificarse utilizando
una tabla de verdad. Por ejemplo,
para P = {p, q}:
p q (p
q)
( p
q)
0 0 0 0
0 1 0 0
1 0 0 0
1 1 1 1
Mirando la tabla es claro que (p q)
y (p q) son lgicamente
equivalentes, ya que sus valores de
verdad coinciden para cada una de
las cuatro valuaciones posibles de
P.
Identidades lgicas
La equivalencia lgica depende slo
de la forma de las expresiones
comparadas, y no del conjunto
particular de variables
proposicionales utilizadas.
Esto permite definir identidades
lgicas genricas:
doble negacin: X = X
implicacin: (X Y) = (X Y)
ley de Morgan: (X Y) = (X Y)
(X Y) = (X Y)
distributividad:
(X (Y Z)) = ((X Y) (X Z))
(X (Y Z)) = ((X Y) (X Z))
commutatividad:
(X Y) = (Y X)
(X Y) = (Y X)
asociativividad:
((X Y) Z) = (X (Y Z))
((X Y) Z) = (X (Y Z))
ley contrapositiva: (X Y) = (Y X)
Los smbolos X, Y y Z utilizados en estas
identidades no corresponden a variables
proposicionales que representan propiedades de
la realidad modelada, sino que a metavariables
que representan expresiones lgicas arbitrarias.
Las identidades lgicas se pueden utilizar para
trasformar las expresiones del clculo
proposicional conservando su semntica. Esto es
especialmente til para obtener formas normales
ms fciles de manipular. Por ejemplo, toda
expresin lgica puede reescribirse utilizando slo
los conectivos y .
Validez de expresiones lgicas
Una expresin X de L(P) es vlida siempre y
cuando es siempre verdadera, es decir, si y slo
si, para toda valuacin s: P {0, 1} se cumple
s(X) = 1. Estas expresiones, que son verdaderas
independientemente del universo modelado,
tambin son llamadas tautologas.
La validez de una expresin lgica puede
verificarse exhaustivamente mediante una tabla
de verdad. Por ejemplo, para la expresin (((p
q) p) q), que corresponde al modus ponens
"si la premisa mayor [p implica q] es cierta y la
premisa menor [p] es cierta, entonces la
conclusin [q] es cierta":
p q (p q) ((p q)
p)
(((p q) p)
q)
0 0 1 0 1
0 1 1 0 1
1 0 0 0 1
1 1 1 1 1
Otro ejemplo trivial de tautologa es
cualquier expresin de la forma (X X).
Tambin, si X y Y son expresiones
lgicamente equivalentes, entonces (X
Y) es una tautologa.
La importancia de las tautologas desde el
punto de vista computacional radica en el
hecho que se pueden estudiar y aplicar en
forma general. Pertenecen al sistema
lgico, y no al dominio de aplicacin.
Satisfacibilidad de expresiones
lgicas
Una expresin X de L(P) es satisfacible siempre y
cuando existe por lo menos una valuacin s: P
{0, 1} que cumple s(X) = 1. Esta nocin es
menos fuerte que la nocin de validez (si una
expresin es vlida tambin es satisfacible, pero
la recproca no es verdadera).
Por ejemplo, la expresin ((enchufado
fusibleQuemado) funciona) es satisfacible
pero no vlida. Esto se puede ver en una tabla de
verdad verificando que la columna de valores de
la expresin contiene valores verdaderos y falsos:
enchufado fusibleQuemado funciona ((enchufado
fusibleQquemado)
funciona)
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
Si la expresin considerada
corresponde a una regla general del
universo modelado, la nocin de
satisfacibilidad permite acotar los
mundos posibles descartando las
valuaciones que entregan un valor
falso. Por ejemplo, de la tabla, se
puede afirmar que no es posible un
mundo en que un equipo funcione
sin estar enchufado.
Insatisfacibilidad de expresiones
lgicas
Una expresin X de L(P) es insatisfacible si no es
satisfacible, es decir, siempre y cuando no existe
ninguna valuacin s: P {0, 1} que la hace
verdadera. Por ejemplo, cualquier expresin de la
forma (X X) es insatisfacible. Tambin se dice
que es una contradiccin.
Las nociones de validez, satisfacibilidad e
insatisfacibilidad estn relacionadas por las
siguientes propiedades:
X es satisfacible si y slo si X no es vlida
X es insatisfacible si y slo si X es vlida
X es vlida si y slo si X es insatisfacible
Satisfacibilidad de conjuntos de
expresiones lgicas
La nocin de satisfacibilidad puede
extenderse a conjuntos de expresiones.
Una asignacin s: P {0, 1} hace
verdadero, o satisface, a un conjunto de
expresiones siempre y cuando s hace
verdadera a cada una de las expresiones
del conjunto , lo que se denota as: s
|= . Se dice que la valuacin s satisface
a o es un modelo de .
s |= si y slo si para toda expresin X
pertenenciente a se cumple s(X) = 1.
Satisfacer a un conjunto de expresiones
es equivalente a satisfacer la conjuncin
de las expresiones del conjunto. Por
ejemplo, para P = {enchufado,
fusibleQuemado, funciona}, el conjunto
de expresiones = {X1, X2}, con
X1 = ((enchufado fusibleQuemado) funciona)
X2 = ((enchufado funciona) fusibleQuemado)
es satisfacible porque existen
valuaciones que hacen verdaderas a
ambas expresiones
simultneamente. Esto se puede
verificar en una tabla de verdad.
enchufado fusibleQuemado funciona X
1
X
2
=(x
1
,x
2
)
0 0 0 1 1 1
0 0 1 0 1 0
0 1 0 1 1 1
0 1 1 0 1 0
1 0 0 1 0 0
1 0 1 1 1 1
1 1 0 1 1 1
1 1 1 0 1 0
La nocin de consecuencia lgica
Una expresin es consecuencia lgica de
un conjunto de expresiones siempre y
cuando, cada vez que el conjunto de
expresiones es verdadero,
necesariamente la expresin tambin es
verdadera. Esta relacin, entre un
conjunto de expresiones y una expresin
aislada X, se escribe as: |= X (puede
interpretarse como "implica" a X). La
nocin de consecuencia lgica se define
en funcin de la la nocin de
satisfacibilidad y se denota con el mismo
smbolo:
|= X si, para cada valuacin s: P {0,
1} tal que s |= , entonces tambin s |=
X.
Por ejemplo, {p, (p q)} |= q.
Se lee q es consecuencia lgica de p y (p
q).
Este ejemplo, que permite corroborar la
validez del modus ponens, puede
verificarse mediante una tabla de verdad:
p q (p q) {(p q),p}
0 0 1 0
0 1 1 0
1 0 0 0
1 1 1 1
Se ve que todas las valuaciones que
satisfacen a {p, (p q)} (hay slo
una) tambin satisfacen a q.
Lgica de predicados de
primer orden
La lgica proposicional no es lo suficientemente
poderosa para modelar ciertos mecanismos de
razonamiento. Por ejemplo, consideremos el
silogismo clsico:
Premisa mayor: Todos los hombres son mortales
(p).
Premisa menor: Scrates es un hombre (q).
-----------------------------------------------------------
Conclusin: Scrates es mortal (r).
En lgica proposicional, las dos premisas y la
conclusin se representan mediante variables
distintas (p, q y r) cuyos valores de verdad estn
dados por una funcin de valuacin
s: {p, q, r} {0, 1}.
Para modelar este silogismo, se requerira
que, conociendo s(p)=1 y s(q)=1, se
pudiera deducir s(r)=1. Sin embargo no
se puede porque no hay manera de
relacionar la idea "ser hombre" de la
premisa mayor con la idea "ser hombre"
de la premisa menor, ni tampoco la idea
"ser mortal" de la premisa mayor con la
idea "ser mortal" de la conclusin. Las
variables proposicionales son tomos que
no se pueden analizar en trminos ms
primitivos para establecer estas
relaciones.
Predicados
En lgica de predicados, los valores de verdad se
atribuyen a predicados que denotan relaciones
entre entidades del universo modelado. Por
ejemplo, en vez de tener una variable q para
representar "Scrates es un hombre", se escribe
el predicado hombre(scrates) que relaciona a la
entidad "Scrates" con el hecho de "ser hombre".
Un predicado tambin puede aplicarse a variables
que denotan entidades annimas o genricas. Por
ejemplo, para escribir la premisa "Todos los
hombre son mortales", que no se refiere a ningn
"hombre" en particular, se utiliza el predicado
hombre(X) en que X es una variable que denota a
cualquier entidad del universo modelado que
cumple con el hecho de "ser hombre".
El silogismo completo queda expresado de la
siguiente manera:
X (hombre(X) mortal(X))
hombre(scrates)
---------------------------------------
mortal(scrates)
Para aplicar este silogismo basta asignar la
variable X, que puede tomar un valor arbitrario,
con la constante scrates. Se obtiene la frmula:
hombre(scrates) mortal(scrates)
Despus, para obtener la conclusin, se opera
exactamente como en la lgica proposicional.