Download Lógica formal - Universidad Nacional de Colombia

Document related concepts

Lógica de primer orden wikipedia , lookup

Lógica proposicional wikipedia , lookup

Predicado (lógica) wikipedia , lookup

Proposición wikipedia , lookup

Constante lógica wikipedia , lookup

Transcript
4. REPRESENTACIÓN FORMAL
"Es fácil tocar cualquier instrumento musical:
todo lo que hay que hacer es tocar la tecla correcta
en el instante apropiado, y el instrumento tocará sólo"
J.S. Bach.
Una motivación importante en el uso de programas de computador es incrementar la
fiabilidad, oportunidad y completez con la que se aplica conocimiento para ejecutar
una determinada tarea. La lógica, como herramienta para el análisis del
comportamiento racional tiene una historia milenaria, por tanto juega un papel
destacado en la representación del conocimiento.
Aristóteles (384-322 a.C.), es considerado el padre de la lógica, valorado así por los
griegos por la gran capacidad para la oratoria1, al construir argumentos persuasivos a
favor, y refutar argumentos de los demás; Aristóteles creo métodos sistemáticos para
analizar y evaluar los argumentos. El análisis científico aristotélico transcurrió en
forma sosegada de lo general a lo particular, aplicando silogismos dentro de una
concepción de la unidad de la ciencia. Desarrolló la lógica silogística y catalogó un
buen número de falacias usadas en los argumentos; mediante la inducción y deducción
estableció el método de investigación que conduciría al conocimiento.
Un siglo después de Aristóteles, otro griego Chryssipus desarrolló la lógica
proposicional, determinó procedimientos para hallar la verdad o falsedad de una
proposición compuesta a partir de la verdad o falsedad de sus componentes.
El trabajo de los lógicos medievales culminaron con William de Occam, quien
desarrolló la lógica modal2 en el siglo XIV, la cual incluye conceptos tales como
posibilidad, necesidad, creencia, duda, etc.
En el siglo XVII, Wilhelm Leibniz (1676-1716), planteó un esquema para que la
máquina razonara, una "característica universal", un cálculo para cubrir todo
pensamiento y reemplazar controversias en los cálculos, requiriéndose para ello que el
conocimiento estuviese en forma sistemática. Además, planteó que la dependencia
lógica entre proposiciones se logra reduciendo conceptos amplios a conceptos simples
que lo constituyen; igualmente, buscó representar el conocimiento en una forma que
1
Se llamó oratoria a la habilidad para refutar o plantear argumentos en un debate público.
La lógica modal es el método clásico para razonar sobre el conocimiento, aumenta la capacidad de la
lógica de primer orden por medio de operadores modales, tales como C (cree) y S (sabe), con los que las
oraciones constituyen argumentos en vez de términos.
2
Inteligencia artificial
pudiera usarse en un razonamiento mecánico,3 desafortunadamente, no contó con
herramientas para implementar sus ideas. Solamente con las capacidades del moderno
computador es que puede concebirse remotamente aproximarnos a la representación
del conocimiento y a los sistemas de razonamiento propuestos por Leibniz.
El progreso de la lógica continuo su desarrollo en el siglo XIX por filósofos y
matemáticos como Bolzano, De Morgan, Boole, Venn y Frege.
En 1854 George Boole (1815-1864) publicó "Una investigación de las leyes del
pensamiento", en la cual se fundamentan teorías matemáticas de lógica y probabilidad.
El mayor logro del libro fue la demostración de las herramientas del álgebra que se
aplican en la deducción lógica. Boole tomó los operadores aritméticos de adición,
multiplicación y sustracción y creo sus operadores lógicos equivalentes de unión,
intersección y el conectivo "de negación". Boole también formuló las tablas de verdad
en orden a comprobar la verdad de proposiciones compuestas.
Fue Gottlob Frege (1848-1925) quien creó una teoría completa de la lógica, que
excepto, algunos cambios de notación, es la lógica de primer orden que se utiliza
actualmente en la representación de conocimiento. Alfred Whitehead y Bertrand
Russell4 (1872-1970) hacia 1910 codificaron la lógica en su presente forma como un
sistema por reducciones matemáticas. La constitución de la lógica formal moderna es a
menudo atribuida a ellos. En 1930, Kurt Gödel (1906-1978) demostró que existe un
procedimiento eficiente para demostrar cualquier aseveración verdadera en la lógica de
primer orden de Frege y Russell.
La lógica formal ha tenido su desarrollo a pesar de innatas tendencias de humanos a
irracionales y emocionales conductas que se hallan a menudo fuera de cualquier
lógica. La lógica está fuertemente relacionada con los procesos para manipular y
representar conocimiento a fin de probar la validez de proposiciones o predicados
teniendo en cuenta la validez de los argumentos que posean (ver anexo B), esto es, la
lógica son métodos para determinar si unas conclusiones pueden deducirse partir de
unos hechos supuestos5.
Las lógicas con mayor desarrollo son:
-
3
Lógica booleana o bivaluadas, lógica de proposiciones. Son aquellas en la que
sólo se admiten dos valores: verdadero o falso (uno o cero, blanco o negro).
Leibniz fue optimista y apoyó la visión mecanicista del mundo con importantes contribuciones a la
física y a la matemática. Las causas finales o teológicas fueron también su preocupación, apoyándose en
concepciones analógicas.
4
Russell particularmente desarrollo toda la aritmética en términos de lógica pura.
5
El análisis logístico estudia el crecimiento del conocimiento a partir de juicios y razonamiento con
proposiciones concretas lógico-matemáticas y con un lenguaje que se manifiesta en una sintaxis.
Luis Carlos Torres Soler
122
Representación formal
-
Lógica de orden 0+, permite la representación en ternas del tipo objeto,
atributo, valor.
-
Lógica trivalente. Es aquella en que las variables admiten tres posibles
valores.
-
Lógica multivalente. En la que las variables toman muchos valores discretos.
-
Lógica de primer orden o lógica de predicados.
-
Lógica difusa o borrosa. Una generalización de la lógica multivalente y
permite la existencia de valores continuos entre los valores límites (creada por
Lofti Zadeh en 1965)
La lógica difusa nace de la necesidad para representar proposiciones como: María es
muy alta, Luis está un poco enfermo, Ganar Millonarios es casi imposible, La
mayoría de mujeres vallunas son bellas.
Mientras la lógica clásica define el pertenecer al conjunto o no, la lógica difusa indica
el grado de pertenencia de un elemento a ese conjunto, inclusive pertenencia con grado
cero.
También existen la lógica modal, lógica temporal6, lógica de creencias, lógica de
restricciones, lógica paraconsistente, ...
Además de la lógica y del cálculo, la matemática ha dado grandes contribuciones a la
IA. La teoría de probabilidad es una de ellas. Fue el italiano Gerolamo Cardano (15011576) quien concibiera primero la noción de probabilidad como posible resultado de
los juegos de apuesta. Pierre Fermat (1601-1665), Blas Pascal (1623-1662), James
Bernoulli (1654-1705), Pierre Laplace (1749-1827) y otros más hicieron avanzar esta
teoría e introdujeron métodos estadísticos. En la teoría de decisión, propuesta por John
Von Newman y Oskar Morgenstern (1944), se combina la teoría de la probabilidad
con la teoría de la utilidad; la teoría de decisiones constituye la base teórica de muchas
técnicas de IA.
Si deseamos que un computador actúe inteligentemente, debemos ayudarlo. Hay que
decirle qué conocimiento tiene y cómo debe trabajarlo: manipularlo, almacenarlo, etc.
No necesariamente con sólo procesos algorítmicos, también pueden ser declarativos o
funcionales.
Existen diferentes tipos de conocimiento, sin entrar en puntos filosóficos (o
6
El anexo C indica unas carácterísticas de la lógica temporal.
Universidad Nacional de Colombia
123
Inteligencia artificial
especialmente epistemología7), hay dos principales: hechos y procedimientos de
razonamiento. Hechos, son proposiciones o predicados acerca de los objetos del
mundo, y procedimientos de razonamiento, son maneras de cómo se encadenan los
hechos. La lógica, utilizando diferentes simbologías manipulan el conocimiento según
normas y procedimientos preestablecidos que conducen a la solución de problemas en
un sistema por medio de modelos que las ciencias proponen.
{PRIVADO }4.1. Lógica de predicados
La lógica proposicional permite representar propiedades elementales del dominio.
Construcciones simples del lenguaje. Pero, es insuficiente para representar los
procesos del lenguaje que son utilizados efectivamente en la computación, linguistica,
matemática,... o para formalizar fragmentos significativos del razonamiento, por
ejemplo: ciertos estudiantes asisten a todos los cursos; ningún estudiante asiste a un
curso no interesante.
Lo que le falta a la lógica proposicional, es la posibilidad de distinguir un hecho
elemental bajo la forma de un objeto que posee un atributo; una relación entre varios
objetos.
Los patrones o expresiones de la lógica proposicional se construyen a partir de un
alfabeto que consta de los siguientes símbolos:
1. Conectivos lógicos: ¬, ∧, ∨, →, ↔.
2. Los paréntesis: ), (
3. Un conjunto P = {p, q, r, ...} de variables proposicionales.
El lenguaje L(P) de expresiones de la lógica proposicional puede definirse
inductivamente a partir de las siguientes reglas:
1. Cada variable proposicional de P es una expresión (atómo - atómica).
2. Si X es una expresión, entonces la negación ¬X también es una expresión.
3. Si X y Y son expresiones, entonces también lo son:
Conjunción (X, Y): X∧Y
Disyunción (X, Y): X∨Y
Implicación (X, Y): X→Y
Equivalencia (X, Y): X↔Y
Por ejemplo, si P = {enchufado, fusibleQuemado, funciona}, entonces las siguientes
expresiones, entre otras, pertenecen a L(P):
7
Del griego: episteme, "conocimiento"; logos, "teoría", rama de la filosofía que trata de los problemas
que rodean la teoría del conocimiento. La epistemología se ocupa de la definición del saber y de los
conceptos relacionados, de las fuentes, los criterios, los tipos de conocimiento posible y el grado con el
que cada uno resulta válido; así como la relación exacta entre el que conoce y el objeto conocido.
Luis Carlos Torres Soler
124
Representación formal
(¬enchufado ∨ fusibleQuemado) → ¬funciona
(enchufado ∧ ¬funciona) → fusibleQuemado
Los paréntesis pueden omitirse según la precedencia habitual de los conectivos
lógicos.
La semántica8 del lenguaje proposicional depende i) de la interpretación de los
conectivos lógicos y, ii) de los valores de verdad asignados a las variables
proposicionales, distintos según la situación reflejada.
Dado un lenguaje proposicional L(P), se define su semántica por medio de una
valuación que asigna a las variables proposicionales en P un valor: verdadero (1) o
falso (0).
Una valuación es una función s: de P en {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 2n valuaciones posibles,
aunque no todas tengan sentido en el universo modelado.
Valuación de expresiones compuestas. Para obtener el valor de verdad de
expresiones compuestas, se extiende la función de valuación definiéndola
inductivamente sobre L(P). Esta definición precisa formalmente el significado de los
conectivos lógicos. Dado un lenguaje proposicional L(P) y una asignación s: P en {0,
1}, se define una función extendida.
Dada una expresión arbitraria X de L(P), el valor de verdad s(X) es:
1. Si X es una expresión perteneciente a la expresión P, entonces s(X) es el valor de
verdad asignado inicialmente a dicha variable.
2. 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.
8
En términos generales, la semántica atribuye significado a las expresiones del lenguaje simbólico
considerado. En el caso de un lenguaje de programación como C, la semántica consiste en describir el
efecto que produce el programa sobre las estructuras de datos. Para el lenguaje de representación, lo que
interesa es capturar una descripción del universo a modelar. La lógica permite hacer esto asignando
valores de verdad a cada expresión del lenguaje.
Universidad Nacional de Colombia
125
Inteligencia artificial
Esto puede verse más claramente definiendo la semántica de los conectivos lógicos
mediante tablas de verdad.
Tablas de verdad. Dado que la lógica proposicional opera sólo con dos valores de
verdad, para cualquier expresión existe un número finito de valuaciones posibles de
tabular. La tabla de verdad de una expresión con n variables proposicionales tiene 2n
filas.
{PRI Y
(X∧Y)
(X∨Y)
(X⇔Y)
(X⇒Y)
¬X
VA
DO
}X
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
Equivalencia lógica. Dos fórmulas de L(P) son lógicamente equivalentes si
exactamente las mismas valuaciones las hacen verdaderas, lo que puede verificarse
utilizando una tabla de verdad. Por ejemplo, para P={p, q}:
{PRIVADO }Tabla 4.1 Tablas de verdad.
p
q
~p
p&q
pvq
p→q
V
V
F
F
V
F
V
F
F
F
V
V
V
F
F
F
V
V
V
F
V
F
V
V
Mirando la tabla es claro que (p⇒q) y (¬p∨q) son lógicamente equivalentes, ya que
sus valores de verdad coinciden para cada una de las cuatro valuaciones posibles.
Validez de expresiones lógicas. La validez de una expresión se verifica
exhaustivamente mediante las tablas de verdad. Una expresión X de L(P) es válida
siempre y cuando sea siempre verdadera, es decir, si y sólo si, para toda valuación s: P
en {0, 1} se cumple s(X) = 1. Estas expresiones, que son verdaderas
independientemente del universo modelado, se llaman tautologías.
Un ejemplo trivial de tautología es cualquier expresión de la forma (X∨¬X). La
importancia de las tautologías desde el punto de vista computacional radica en el
hecho que pueden estudiarse y aplicar en forma general. Pertenecen al sistema lógico y
no al dominio de aplicación.
Satisfacibilidad de expresiones lógicas. Una expresión X de L(P) es satisfacible
126
Luis Carlos Torres Soler
Representación formal
siempre y cuando existe por lo menos una valuación s: P en {0, 1} que cumple s(X) =
1. Esta noción es menos fuerte que la noción de validez (si una expresión es válida
también es satisfacible, pero la recíproca no es verdadera).
Por ejemplo, la expresión (¬enchufado ∨ fusibleQuemado → ¬funciona) es
satisfacible pero no válida. Esto se ve en una tabla de verdad verificando que la
columna de valores de la expresión contiene valores verdaderos y falsos:
Sea p1=enchufado, q1=fusiblequemado, r1=funciona
{PR q1 r1 (¬p1∨q1) →¬r1)
IVA
DO
}p1
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 expresión considerada corresponde a una regla general del universo modelado, la
noción de satisfacibilidad permite acotar los mundos posibles descartando las
valuaciones que entregan 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 lógicas. Una expresión X de L(P) es insatisfacible si
no es satisfacible, es decir, siempre y cuando no exista ninguna valuación s: P {0, 1}
que la hace verdadera. Por ejemplo, cualquier expresión de la forma (X∧¬X) es
insatisfacible. También se dice que es una contradicción. Las nociones de validez,
satisfacibilidad e insatisfacibilidad están relacionadas por las siguientes propiedades:
1. X es satisfacible, si y sólo si, X¬ no es válida
2. X es insatisfacible, si y sólo si, ¬X es válida
3. X es válida, si y sólo si, ¬X es insatisfacible
Las nociones de validez e insatisfacibilidad también son extensibles a conjuntos de
expresiones lógicas.
Consecuencia lógica. Una expresión es consecuencia lógica de un conjunto de
expresiones siempre y cuando, cada vez que el conjunto de expresiones es verdadero,
necesariamente la expresión también es verdadera. Esta relación, entre un conjunto de
expresiones y una expresión aislada X, se escribe así: a  X (puede interpretarse como a
Universidad Nacional de Colombia
127
Inteligencia artificial
"implica" X). La noción de consecuencia lógica se define en función de la noción de
satisfacibilidad y se denota con el mismo símbolo.
Los sistemas inteligentes (SI) usan lenguajes y sublenguajes. Especialmente utilizan la
lógica de predicados para representar hechos del conocimiento en un lenguaje
expresivo, conciso, inequívoco, independiente del contexto y eficiente.9
Esto requiere simbolizar proposiciones del lenguaje ordinario en estructuras a fin de
hacer explícitas sus conexiones lógicas. Proposiciones como: todo hombre es mortal,
todo metal brilla, todo felino tiene garras, etc., fueron representadas por Aristóteles en
la expresión TODO P ES Q. Y proposiciones como: algunos hombres son buenos,
existen animales mansos, los árboles son seres vivos, etc., en la expresión EXISTE P
ES Q.
La lógica de predicados estudia la estructura lógica de las proposiciones a través de
formar conexiones sujeto-acción-complemento para representar hechos u objetos del
mundo.
El desarrollo de la lógica de predicados se basa en unidades representativas de
información llamadas átomos, los cuales representan una oración declarativa que
puede ser verdadera o falsa pero no ambas. A partir de los átomos se construyen
nuevas fórmulas. Sin embargo, existe conocimiento que no puede ser tratado mediante
determinadas estructuras atómicas (EA), pero son muy correctas en el lenguaje natural
(LN), por ejemplo:
Sólo los tontos se dejan engañar por los vendedores
Alberto se deja engañar por Juan
Alberto es tonto
luego,
Juan es un vendedor
Estas proposiciones podrían tener la siguiente representación formal:
p(x) → t(y), q(z), r(x) => ¬ s(y)
Se observa que ninguna proposición puede escribirse mediante partes de las mismas
dotadas de significado propio, se unen por conectivas y la relación entre premisas y
conclusión hace que la deducción correcta no pueda detectarse con este nivel de
representación. Esto se debe a que la relación entre las proposiciones está en la propia
estructura interna, en efecto se afirma en ellas propiedades o relaciones de distintas
9
El poder de expresión de la lógica de predicados es mucho mayor que el de la lógica proposicional:
primero es necesario construir términos que representan los objetos y las fórmulas atómicas que
corresponden a las relaciones entre objetos.
Luis Carlos Torres Soler
128
Representación formal
personas o conjuntos de personas (las propiedades son: “...es tonto..”, “...se deja
engañar por...”, “..es vendedor ambulante..”, los objetos de la atribución de estas
propiedades y relaciones son colectivos definidos a su vez por propiedades y
relaciones en la proposición: Alberto y Juan), por ello, para tratar este tipo de EA es
preciso desarrollar una teoría que tome como base sus componentes, es decir: ¿Qué se
afirma?, ¿de quién se afirma?, y ¿cuánto se afirma?
Un sistema lógico se define desde dos puntos de vista diferentes que son equivalentes:
* Punto de vista semántico, y
* Punto de vista sintáctico.
Las dos aproximaciones se fundamentan en la definición de un lenguaje. Un lenguaje
es una colección de símbolos y de reglas para la construcción de fórmulas bien
formadas.
La primera componente se define como el predicado, la segunda como el objeto o
sujeto y la tercera, cuarta, quinta, etc., componente: valor que se ha de tomar.
Así en las frases:
Juan es negro,
Objeto: Juan; predicado: es negro
negro(juan)
César está en clase, entre Pedro y Manuela
Predicado: está en clase entre; objeto: César; valores: Pedro, Manuela
en_clase_entre(carlos, césar, maría)
La película está de primera
Predicado: está de primera; objeto: la película
de_primera(película)
Juan es un estudiante adelantado
Predicado: es un estudiante; objeto: Juan; valor: adelantado
estudiante(juan, adelantado)
El atributo, la relación, la asignación de la proposición se denomina "predicado" y los
objetos y/o valores "argumentos".
Otros ejemplos son: (m(x), q(x), r(y,3), s(t(x), z, 3115)
ciudad(Bogotá, Cali, Medellín)
nombre_predicado_largo(argumento_largo, argumento_corto, calificativo)
Una vez se definan los componentes de la proposición, se plantea su representación
formal con base a términos. Para la simbolización de los términos se toma como base
de referencia un dominio genérico, no vacío. Los términos se representan por
constantes o variables cuyos valores posibles son elementos del dominio. La intención
Universidad Nacional de Colombia
129
Inteligencia artificial
de un predicado es relacionar cosas en espacio y tiempo por familiaridad, asignación o
similitud. Un objeto puede estar al norte, sur, este u oeste de otro objeto, o estar al
frente, atrás, arriba, abajo, a la izquierda, a la derecha. Similarmente, un evento en el
tiempo puede estar antes, después, simultáneamente con otro evento.
Variable. Indica un objeto cualquiera que pertenece a una clase determinada; sea x o
y, son términos que permiten identificar diferentes entidades o individuos u objetos de
una clase.
Constante. Indica un objeto especial, es un térmiono simple de un dominio; por
ejemplo, Bogotá, corto, ciudad, 3.1416, 48, Gaviria.
Función. Permite representar transformaciones del dominio; por ejemplo, t(x),
marido(x), madre(x)
Por ejemplo, la función padre puede usarse para denotar una aplicación entre un
individuo y el hijo. Para expresar la proposición "La madre y el padre de John son
casados" se haría:
casados(padre(john),madre(john))
Se define el alfabeto, constituido por los siguientes conjuntos de caracteres:
1.
Símbolos para constantes = {a,b,c,...a1,a2,a3,...}
2.
Símbolos para variables = {x,y,z,...x1,x2,x3,...}
3.
Símbolos de función
= {f,g,h,...f1,f2,f3,... o cadenas de caracteres en
minúscula como: padre, madre, mayor, etc.}
4.
Símbolos de predicado = {P,Q,R,....P1,P2,P3,...}
5.
Símbolos de conectivas = {¬, &, v, ⇒, ⇔}
6.
Símbolos de cuantificación = { ∀, ∃}
7.
Paréntesis = { ( , ) }
8.
Símbolos especiales: Τ fórmula inválida, ⊥ fórmula válida, => se deduce, V
verdadero, F falso.
Los objetos o términos son definidos recursivamente como sigue:
1.
2.
130
Las constantes son términos,
Las variables son términos,
Luis Carlos Torres Soler
Representación formal
3.
4.
Si f es un símbolo de función de aridad10 n y t1,t2,...,tn son términos, entonces
f(t1,t2,...,tn) es un término
Todos los términos son obtenidos por la aplicación de las reglas 1,2 y 3.
Definición. Un predicado es una correspondencia entre una lista de constantes o
variables del alfabeto y el conjunto de valores de verdad {V, F}
Definición. Si P(p1,p2,...,pn) es un símbolo de predicado de aridad n y t1,t2,...,tn son
términos, entonces P(t1,t2,...,tn) es un átomo. Ninguna otra expresión puede ser átomo.
De lo anterior, el símbolo de predicado P(p1,p2,...,pn) no puede ser considerado un
átomo hasta que no se reemplace cada uno de sus argumentos p1,p2,...,pn por un
término.
Esto puede hacerse de dos formas:
1. Por sustitución
En este caso se asigna a cada símbolo argumento del predicado un símbolo término
que puede ser constante, variable o función. En el símbolo de predicado P(p1,p2,...,pn)
una sustitución puede ser:
P(x1,x2,a3,a4,...,f(x1))
2. Por cuantificación
Algunas veces una EA, digamos P(x), toma valor "V" sin interesar que asignación se le
da a la variable x, o puede tomar valor "V" para unas pocas asignaciones a la variable
x.
En este caso se asigna a cada argumento símbolo del predicado un conjunto de
elementos del dominio. Los cuantificadores indican cuantas particularizaciones
necesitan tomar las variables para que la proposición tenga un valor de verdad
"VERDADERO". Hay dos posibilidades:
a. Cuantificación universal
Uno o varios argumentos símbolo del predicado se cuantifican universalmente,
colocando el símbolo de cuantificador universal, ∀, junto con la variable, ejemplo:
∀x2 …∀xn P(a1,x2,x3,...,Xn) o, ∀x2xn P(a1,x2,x3,...,Xn)
b. Cuantificación existencial
10
Según el número de términos que tienen los predicados se define la aridad, un término da aridad uno,
dos términos es aridad dos o diádicos, tres de aridad tres o triádicos, etc.
Universidad Nacional de Colombia
131
Inteligencia artificial
Uno o varios argumentos símbolo del predicado se cuantifican existencialmente,
colocando el símbolo de cuantificador existencial, ∃, junto con la variable, ejemplo:
∃x2 …∃xn P(a1,x2,f(x3),...,Xn) o, ∃x2... xn P(a1,x2,f(x3),...,Xn)
La fórmula con cuantificador universal (∀x) al frente, (∀x)p(x) toma el valor "V" para
toda asignación de x en el dominio. La fórmula con cuantificador existencial (∃x) al
frente (∃x)p(x) toma el valor "V" para al menos una asignación de x en el dominio11.
Ejemplos:
(∃x) { animal(x) --> color(x,gris) }
(∀x) { escribió(x,programas_ajedrez) }
La cuantificación existencial y universal puede mezclarse en la misma expresión. En
este caso, el orden con el que se introducen las variables cuantificadas puede afectar el
significado.
P.e., ∀x ∃y (empleado(x) -->supervisa(y,x) ). Podría leerse como: todo empleado tiene
supervisor.
Mientras que si se invierte el orden, ∃y ∀x (empleado(x) --> supervisa(y,x)). Se leería:
hay una persona que supervisa a todos.
Otros ejemplos son:
a.
Para todo número x existe al menos otro y tal que x<y.
∀x ∃y menor(x,y)
b.
Existe al menos un número y tal que para todo x, x < y.
∃y ∀x menor(x,y)
Debe definirse el alcance de un cuantificador que está en una fórmula. Por ejemplo: en
la fórmula ∀x ∃y menor(f(x),y), el alcance de los cuantificadores ∀x y ∃y es
menor(f(x),y). En la fórmula ∀x P(x) ⇒ Q(x) el alcance es solo P(x).
Como se ha dicho, al computador debe ayudársele para que actúe inteligentemente.
Por ejemplo, al desear decir o comunicar algo acerca del Presidente Gaviria, se escribe:
presidente(gaviria), que significaría "Gaviria es Presidente", o en otras palabras que
Gaviria es un ejemplo del tipo "Presidente". El predicado es "presidente", y el
argumento "gaviria".
También debe informarsele para dos o más objetos del predicado presidente, así:
11
El radio de acción del cuantificador es justamente esa parte del dominio en el cual las proposiciones
son verdaderas.
Luis Carlos Torres Soler
132
Representación formal
presidente(uribe)
presidente(chavez)
presidente(castro)
Similarmente se dan otros predicados como:
barco(arc_gloria)
barco(almirante_padilla)
universidad(fundación_universitaria_autónoma_de_colombia)
universidad(universidad_de_los_andes)
universidad(universidad_distrital)
universidad(manuela_beltrán)
día_de_la_semana(lunes)
día_de_la_semana(domingo)
Un objeto puede tener asociado más de un tipo:
presidente(uribe)
antioqueño(uribe)
liberalismo(uribe)
Y los tipos pueden contener subtipos:
militar(arc_gloria),
barco(militar)
loco(julio),
persona(loco)
Todos estos ejemplos son tipos de predicados, y ellos tienen un sólo argumento. Para
representar propiedades de objetos como expresiones de predicados, es necesario
especificar la característica o propiedad en el nombre del predicado, el primer
argumento es el nombre del objeto y el segundo es el valor de la propiedad, por
ejemplo:
barco(arc_gloria)
color(arc_gloria, gris)
tamaño(arc_gloria, grande)
Color y tamaño son nombres de las propiedades para los cuales gris y grande son
valores. Mostrar la relación entre gris y Arc_gloria, y entre grande y Arc_gloria, es una
ventaja.
Al clasificar, se ordenan los objetos que van a ser manipulados. En realidad la
clasificación es la construcción de una relación "uno a uno" entre los símbolos y los
objetos o ideas externas.
Universidad Nacional de Colombia
133
Inteligencia artificial
La relación de objetos por predicados es importante en IA porque el razonamiento
humano se basa en la relación.
Sean los hechos:
parte_de(arc_gloria, armada_colombiana)
parte_de(armada_colombiana, gobierno_colombiano)
parte_de(escuela_naval, armada_colombiana)
parte_de(sistema_propulsión, barco)
En otras palabras, el arc_gloria es parte de la armada_colombiana, la
armada_colombiana es parte del gobierno_colombiano, la escuela_naval es parte de la
armada_colombiana, el sistema_propulsión es parte del barco.
Un predicado de relación "dueño" indica que "x es dueño".
dueño(julián, fido)
dueño(julián, carro_negro)
Definición. Una variable es acotada en una fórmula, sii, una ocurrencia de la variable
está dentro del alcance del cuantificador.
Definición. Una variable es libre en una fórmula, si está libre del alcance de un
cuantificador.
En la fórmula, ∀x P(z,x) , la variable x es acotada, z es libre. También puede hallarse
una variable libre y acotada a la vez; ejemplo ∀x Q(x,t) → ∃t R(x,t)12.
Con el fin de decidir sobre la aceptabilidad de un determinado argumento, es necesario
hacer alguna prueba. La forma de realizar esto, dentro de la lógica, es comparar el
texto bajo estudio con una serie de patrones abstractos de argumentos, y ver si alguno
se ajusta con el planteado. Tales patrones se denominan "modelos" y están constituidos
por secuencias abstractas de hechos y por reglas que previamente se han demostrado
que son válidas13 de una forma matemática (o formal).
Por ejemplo, sea la regla:
"SI Mario estudia sistemas
IMPLICA Mario es un masoquista "
Asumiendo el hecho "Mario estudia sistemas" puede parecer natural concluir que:
"Mario es masoquista", formalmente se está aplicando el modelo lógico
SI P IMPLICA Q, P POR TANTO Q
12
Es importante colocar los paréntesis para evitar interpretaciones contradictorias.
Cuando una fórmula tiene cuantificadores, no todas las veces es posible verificar la validez o
consistencia. Hay necesidad de evaluarla bajo todas las posibles interpretaciones.
Luis Carlos Torres Soler
134
13
Representación formal
P → Q, P ⇒ Q
Habiendo encontrado el modelo correspondiente, puede afirmarse que el predicado
tiene estructura lógica aceptable.
El hecho que el contenido no tenga sentido en el mundo real, no produce ningún
elemento para la validez del "modelo". P.e., el siguiente argumento es valido, aunque
la suposición pueda ser quizás dudosa
SI Fxx es político
IMPLICA Fxx está muerto.
Federico es político, POR TANTO, Federico está muerto.
El sencillo modelo de argumento utilizado en los ejemplos anteriores, es fundamental
en lógica, y se le ha dado nombre especial en Latín: modus ponendo ponens (abreviado
modus ponens).
A menudo, de una proposición, el predicado es identificado con el verbo, y los
términos son identificados con el sujeto y complemento. Usualmente, puede tenerse
varias formas para representar una proposición. Por ejemplo, puede representarse la
proposición "la manzana es roja" por:
roja(manzana) ,
color(manzana,rojo) , O
valor(color,manzana,rojo).
El diseño de una representación selecciona el alfabeto y los términos a emplear.
A cada predicado, se le asigna una relación correspondiente en el dominio; a cada
constante una entidad, y a cada transformación una función. Esas asignaciones definen
la semántica del lenguaje del cálculo de predicados. Una vez una interpretación para
una fórmula se define, se dice que la fórmula tiene valor V (verdadero), justamente,
cuando la correspondiente instrucción en el dominio es verdadera, y tendrá valor F
(falso) en caso contrario.14
Así,
escribió(garcía_márquez, cien_años_de_soledad); tiene valor V;
escribió(garcía_márquez,la_eneida); tiene valor F.
Definición. Una fórmula bien formada15 (FBF) se define como:
14
En lógica de predicados las estructuras denominadas proposiciones siempre toman el valor
"VERDAD" o el valor "FALSO". Las proposiciones son: estudia(federico,sistemas); masoquista(federico);
político(martha); muerta(martha).
15
En inglés Well Formed Formulas -WFF'sUniversidad Nacional de Colombia
135
Inteligencia artificial
1.
Todo átomo es una fórmula.
2.
Si P(p1,p2,...,pn) es un predicado, entonces P(t1,t2,...,tn) es fórmula siendo
t1,t2,...,tn términos.
3.
Si G(a) es una fórmula y x es una variable del dominio, ∀xG(x) y ∃xG(x) son
fórmulas.
4.
Si H(a) y G(b) son fórmulas, también lo son ¬H(x), H(x)^G(x), H(x)vG(x),
G(x)→H(x), H(x)⇔G(x).
5.
Las fórmulas son generadas solamente por la aplicación de un número finito
de veces de las reglas 1,2,3 y 4.
Las siguientes expresiones son fbf:
∃x { ∀y [P(x,y) & Q(y,x)] → R(x) }
~ ∀y { ∃x [P(x) v R(y)] }
~ P[ A, s(a,b,c) ]
{ ~ [P(w) →P(u) ] } → P(u)
En estas expresiones se usan llaves, paréntesis y corchetes como delimitadores para
agrupar componentes de las fbf. Se usan delimitadores para eliminar cualquier
ambigüedad y para mejorar su compresión.
Algunos ejemplos de expresiones que no son fbf:
{PRIVADO }~ f(B)
f( P(A))
Q{ g(A), [P(B) → Q(C)]}
& ~ ∀x v R(x)
Se niega un predicado no una función.
Un predicado no puede ser parte de una función.
La implicación no puede ser parte de un argumento.
La conjunción debe unir dos predicados.
Las fórmulas quiere_a(X,Y) y, hermano(X,Y) son estructuras que forman predicados
básicos.
Las fórmulas atómicas, como escribió(x,y), son construcciones elementales. Se
combinan fórmulas atómicas para formar fbf más complejas usando conectivas, tal
como: " & " (y), " v " (o), y "→" (implica).
La conectiva "&" (conjunción o conjuntor) tiene un obvio uso representando oraciones
compuestas,
gusta(john,maría) & gusta(john,susana),
vive(patricia,suba) & color(casa,azul).
El símbolo "v" se usa para representar la disjunción o disjuntor.
136
Luis Carlos Torres Soler
Representación formal
Por ejemplo, "María juega béisbol o practica ciclismo" puede representarse por:
juega(maría,béisbol) v practica(maría,ciclismo).
El valor verdad de una conjunción y una disyunción está determinado por los valores
de verdad de las componentes. Una conjunción tiene valor "V" si cada una de las
componentes de la conjuntiva tiene valor "V", en otro caso el valor es "F". Una
disyunción tiene valor "V" si al menos una de las disyuntivas tiene valor "V", en otro
caso toma valor "F".
P.e., la oración "si María juega en el equipo, se gana el partido" se representa por:
juega(maría,equipo) --> gana(equipo,partido).
Una fórmula construida conectando dos fórmulas con un "→" se llama una
implicación. El lado izquierdo de una implicación se llama antecedente, y el lado
derecho se llama consecuente. Una implicación tiene valor "F" si el antecedente tiene
valor "V" y el consecuente tiene valor "F", en otros casos el valor es "V".
El símbolo "~" (negación o negador) se emplea para negar el valor de una fórmula;
esto es, se cambia el valor de una fbf de V a F o viceversa. P.e., la oración "García
Márquez no escribe programas de Ajedrez" se representa como:
~ escribe(garcía_márquez, programas_ajedrez)..
Ejemplo: analizar si la expresión ∃x(P(x) → ∀y Q(y,w)) es fbf.
Q(y,w) es fórmula por la regla 2 ya que esta constituida por la letra de predicado, Q,
seguida por las variables de términos y y w.
∀y Q(y,w) es fórmula de acuerdo a la regla 3.
P(x) es fórmula de acuerdo a la regla 2, ∃x P(x) lo es por la regla 3
∃x P(x) → ∀y Q(y,w) es fórmula por la regla 4, ya que P(x) y ∀y Q(y,w) son
fórmulas.
∃x P(x) → ∀y Q(y,w) tiene las variables acotadas x y y, w es libre.
El proceso descrito anteriormente permite decidir en un número finito de pasos si una
fórmula es o no correcta de acuerdo a las reglas de la gramática del 1 al 5 y los
conjuntos de símbolos definidos para el alfabeto.
Cuando se trate de fórmulas con varios cuantificadores se realiza en el orden de mayor
a menor proximidad a la fórmula cuantificada.
Así, la fórmula:
∀x ∃y ∀z ∃w P(z,x,y,w)
Universidad Nacional de Colombia
137
Inteligencia artificial
debe entenderse en la forma ∀x (∃y (∀z (∃w (P(z,x,y,w) ) ) ) ).
{PRIVADO }4.1.1. Formalización
No puede definirse un procedimiento mecánico que permita obtener la fórmula que
representa una frase. En algunos casos debe modificarse la redacción de la frase, sin
alterar el significado hasta obtener una expresión lingüística que contenga elementos
de fácil traslación a expresiones lógicas con conectivas y cuantificadores.
A continuación se dan ejemplos de cómo formalizar frases en lógica de predicados.
Frases simples. Son constituidas por átomos con un único predicado que puede estar
cuantificado o no.
Existe un número que es primo.
Dominio: como la propiedad es "... es primo", sólo está definida para el
conjunto de los números enteros positivos, por tanto se deja éste como
dominio.
Símbolo constante: no hay
Símbolo variable: sea x para denotar número entero.
Símbolo función: no hay
Símbolo predicado: P(x) ↔ x es primo
Fórmulas: ∃x P(x)
Todos son negros.
Dominio: Conjunto de personas de... (aunque puede cambiar tomando otro
contexto).
Constantes: no hay
Variables: x para denotar una persona cualquiera.
Función: no hay
Predicados: N(x) ↔ x es negro
Fórmulas: ∀x N(x)
Juan es amigo de todos. Algunos son amigos de Juan.
Dominio: Conjunto de personas de.
Constantes: J ↔ Juan
Variables: x para denotar una persona cualquiera.
Función: no hay
Predicados: A(x,y) ↔ x es amigo de y
Fórmulas: ∀x A(j,x); ∃x A(x,j)
Frases compuestas. Están constituidas por expresiones cuantificadas en las que
intervienen conectivas y cuantificadores. Las frases compuestas tienen gran variedad
138
Luis Carlos Torres Soler
Representación formal
de estructuras.
Algunos Bogotanos son ricos.
Sin alterar el contenido de información, la frase puede redactarse:
¿Existen personas que son Bogotanos y ricos a la vez?
Dominio: Conjunto de personas.
Constantes: no hay
Variables: x para denotar una persona cualquiera.
Función: no hay
Predicados: B(x) ↔ x es Bogotano; R(x) ↔ x es rico
Fórmulas: ∃x (B(x) & R(x)).
Todas las águilas vuelan alto. Cualquier ave, si el ave es águila, entonces vuela alto.
Dominio: Conjunto de águilas (¿Conjunto de todas las aves?).
Constantes: no hay
Variables: x para denotar un águila cualquiera.
Función: no hay
Predicados: V(x) ↔ x vuela alto; A(x) ↔ x es águila
Fórmulas: ∀x (A(x) & V(x)); ∀x (A(x) → V(x))
En toda pareja de vecinos existe algún envidioso.
Se transforma la frase en la siguiente:
¿Cualesquiera que sean x y w, si x y w son vecinos, entonces x o w o ambos son
envidiosos?
Dominio: Conjunto de personas.
Constantes: no hay
Variables: x, w para denotar una persona cualquiera.
Función: no hay
Predicados: V(x,w) ↔ x es vecino de w; E(x) ↔ x es envidioso
Fórmulas: ∀x ∀w (V(x,w) → E(x) ∨ E(w)).
Algunos estudiantes de sistemas tienen amigos aficionados al fútbol.
Dominio: Conjunto de personas.
Constantes: no hay
Variables: x, w para denotar una persona cualquiera.
Función: no hay
Predicados: S(x) ↔ x estudia sistemas; F(x) ↔ x es aficionado al fútbol;
A(x,w) ↔ x es amigo de w
Fórmulas: ∃x ∃w (S(x) → A(x,w) & F(w)).
Universidad Nacional de Colombia
139
Inteligencia artificial
Sólo los CUAN's admiran a los CUAN's
Dominio: Conjunto de personas.
Constantes: no hay
Variables: x, w para denotar una persona cualquiera.
Función: no hay
Predicados: S(x) ↔ x es CUAN; AD(x,w) ↔ x admira a w
Fórmulas: ∃x ∀w (AD(x,w) & S(w) → S(x)).
Todos los CUAN's admiran sólo a los CUAN's
Dominio: Conjunto de personas.
Constantes: no hay
Variables: x, w para denotar una persona cualquiera.
Función: no hay
Predicados: S(x) ↔ x es CUAN; AD(x,w) ↔ x admira a w
Fórmulas: ∀x (S(x) → ∀w (AD(x,w) → S(w)).
Sólo los tontos se dejan engañar por los vendedores
¿Para todo w y z del dominio, si w se deja engañar por z y z es vendedor, entonces w
es tonto?
Dominio: Conjunto de personas.
Constantes: no hay
Variables: x, w para denotar una persona cualquiera.
Función: no hay
Predicados: V(x) ↔ x es vendedor; E(x,w) ↔ x se deja engañar por w
T(x) ↔ x es tonto
Fórmulas: ∀x,w (E(x,w) & V(w) → T(x)).
Lo más necesario, es extenderse a frases más complejas
Juan es antioqueño, Sandra es del valle, todos los antioqueños son trabajadores, todas
las vallunas son bellas, Narda es hermosa y es antioqueña, luego hay antioqueñas
bellas y trabajadoras.
Dominio: Conjunto de personas
Constantes: Juan, Sandra, Narda
Variables: x,y,z para denotar cualquier persona
Función: no hay
Predicados: A(x) ↔ x es antioqueño; V(x) ↔ x es del valle
B(y) ↔ y es bella; T(y) ↔ y es trabajador
Fórmulas: {A(juan), V(sandra),{ ∀z A(z) → T(z)},{ ∀y V(y) →B(y)},
{B(narda) & A(narda)} } →{ ∃x A(x) → B(x) & T(x)}
Los valores de verdad de las fbf se calculan por tablas de verdad. (ver tabla 4.1), y
140
Luis Carlos Torres Soler
Representación formal
aplicando fórmulas equivalentes16.
Las reglas básicas de inferencia son dadas en la tabla 4.2.
{PRIVADO }Tabla 4.2 Reglas básicas de inferencia.
A→B,A⇒B
A → B , ~B → ~ A
A⇔~(~A)
A,B⇒A&B
A → B , A → ~ B , ⇒ ~A
Modus ponendo ponens, MPP
Modus tollendo tollens, MTT
Doble negación, DN
Introducción, INT
Reducción al absurdo, RAA
Especialización universal, US
∀x W(x) , s → W(s)
Identidades lógicas. La equivalencia lógica entre expresiones depende sólo de la
forma de las expresiones comparadas, y no del conjunto particular de predicados
utilizados. Sin embargo, existen identidades lógicas genéricas como:
R1:
R2:
~(~X)
XvY
(~Y v X)&(Y v ~X)
Leyes DeMorgan
R3:
~(X & Y)
~(X v Y)
↔
Leyes distributivas
R4:
X & (Y ∨ Z)
X ∨ (Y & Z)
Leyes conmutativas
R5:
X&Y
X∨Y
Leyes asociativas
R6:
(X & Y) & Z
(X ∨ Y) ∨ Z
Ley contrapositiva
R7
X -> Y
↔
↔
↔
X
~Y->X
Y<->X
~X v ~Y
↔
~X & ~Y
↔
↔
(X & Y) ∨ (X & Z)
(X ∨ Y) & (X ∨ Z)
↔
↔
Y&X
Y∨X
↔
↔
X & (Y & Z)
X ∨ (Y ∨ Z)
↔
~Y -> ~X
Las identidades lógicas se utilizan para trasformar expresiones conservando su
significado. Esto es especialmente útil para obtener formas normales más fáciles de
manipular. Por ejemplo, toda expresión lógica puede reescribirse utilizando sólo los
conectivos ¬ y ∧.
Usando cuantificadores, existen otras equivalencias:
R9:
16
~ ∃x P(x)
~ ∀x P(x)
↔
↔
∀x {~P(x)}
∃x {~P(x)}
Si dos fbf tienen el mismo valor de verdad pero estas difieren en su LN aunque parecen iguales al
observar la interpretación, entonces se dice que esas fbf son equivalentes.
Universidad Nacional de Colombia
141
R10:
∀x P(x)
∃x P(x)
↔
↔
Inteligencia artificial
∀y P(y)
∃y P(y)
Estas dos equivalencias indican que la variable acotada en una expresión cuantificada
es una clase de variable simulada. Puede arbitrariamente reemplazarse por cualquier
otro símbolo variable.
R11:
R12:
R13:
R14:
R15:
R16:
R17:
∀x[P(x) & Q(x)]
∃x[P(x) v Q(x)]
∀x[P(x) ∨ ¬P(x)]
∀x[P(x) & ~P(x)] ↔
P(x) & V
P(x) ∨ V
↔
P(x) & F
P(x) ∨ F
↔
↔
↔
⊥
↔
V
↔
↔
∃xP(x) & ∀yQ(y)
∃xP(x) ∨ ∃yQ(y)
Τ
P(x)
F
P(x)
Otras reglas básicas son:
R19:
R20:
R21:
R22:
R23:
P(x) v P(x)
↔
P(x) & P(x)
↔
~P(x) & P(x)
↔
~P(x) ∨ P(x)
↔
{P(x) ∨ Q(x) } & { ~P(x) ∨ Q(x) }
P(x)
P(x)
F (falso) 17
V (verdadero)
Q(x)
↔
Para mostrar la versatilidad de la lógica de predicados como un lenguaje para
expresiones de varias acepciones, veamos unos ejemplos más:
Toda ciudad tiene un cartero quien ha sido mordido por todo perro de la ciudad
∀x{ciudad(x) → ∃y{cartero(x,y) &
∀z{[perro(z) & vive(x,z)] → mordido(y,z)}}}
"Para todo conjunto x, hay un conjunto y, tal que la cardinalidad de y es mayor que la
cardinalidad de x"
∀x{conjunto(x) → ∃y{mayor[cardinalidad(y),cardinalidad(x)]}}
Todo bloque encima de un bloque o que ha sido ligado a un bloque que se mueve
también se mueve.
∀x ∀y{{bloque(x)&bloque(y)&[encima(x,y)∨ligado(x,y)]&mueve(y)} → mueve(x)}
17
Existen tres principios o postulados, que se refieren a los seres y que se imponen necesariamente por
su evidencia inmediata: a) Todo objeto es idéntico a sí mismo; b) Ningún objeto puede ser, al mismo
tiempo, P y no P; c) Todo objeto tiene que ser P o no P.
Luis Carlos Torres Soler
142
Representación formal
Ejemplo de encadenamiento hacia adelante con predicados:
Sean los hechos H1: hermano(carlos,maría)
H2: hermano(maría,alberto)
H3: hermano(josé,carlos)
y las reglas R1: ∀x,y hermano(x,y) → quiere_a(y,x)
R2: ∀x,y,z hermano(x,y) & quiere_a(z,y) → quiere_a(z,x)
¿Cómo usar estas reglas
quiere_a(alberto,josé)?
para
ver
si
puede
generarse
la
inferencia
Se ve que la inferencia no puede hacerse directamente; de R1 + H2 se tiene
quiere_a(alberto,maría)
(H4)
con H4 + R2 + H1 se tiene quiere_a(alberto,carlos) (H5)
ahora H5 + R2 + H3 se tiene quiere_a(alberto,josé) (H6)
que es lo que se quería hallar.
Las reglas de inferencia, producen fbf derivadas de unas dadas, tales fbf derivadas se
llaman teoremas y la secuencia de aplicación de reglas de inferencia en la derivación
constituye la demostración del teorema.
{PRIVADO }4.1.2. Válidez
El problema de encontrar un procedimiento general de decisión para verificar la
validez (o inconsistencia) de todas las fórmulas de la lógica de Primer Orden es muy
antiguo. Los primeros trabajos provienen de Leibnitz (1646-1716). Peano revisó los
trabajos de Leibnitz a finales del siglo XIX, pero sin obtener ninguna conclusión
importante; y no hasta 1920, cuando la escuela de Hilbert continuó trabajando en ello,
encuentra resultados importantes. Un poco después, en 1936, Church y Turing, cada
uno por su lado, demostraron que es imposible encontrar un procedimiento general de
decisión. A pesar de esto existen procedimientos de prueba que pueden verificar si una
fórmula es válida (cuando efectivamente lo es), aunque no se pueda conocer
efectivamente cuando una fórmula es inválida.
Una interpretación Þ de una fórmula G sobre un dominio D no vacío, consiste de una
asignación de valores a cada una de las constantes, símbolos de función y predicados
que ocurren en la fórmula.
Universidad Nacional de Colombia
143
Inteligencia artificial
Una fórmula G es consistente o satisfactible, sii, existe una interpretación Þ, tal que el
valor de verdad de G bajo Þ es V.
Una fbf P es modelo lógico de un conjunto de fbf S, si toda interpretación satisfaciendo
S también satisface P. Así, es fácil ver que la fórmula
∀x∀y[(P(x) v P(y) ] es modelo lógico del conjunto
{∀x∀y[P(x) ∨ P(y)] , ∀z[R(z) ∨ Q(A)]}
También, la fbf P(A) es modelo lógico de ∀xP(x), al igual que ∀xQ(x) es modelo
lógico del conjunto {∀x[~P(x) ∨ Q(x)] , ∀xP(x) }.
Si una fbf toma el valor V para toda posible interpretación, se dice es válida (lo básico
de la validez de fbf son usualmente llamadas tautologías).
Utilizando tablas de verdad, la fbf P(A) → [P(A) v P(B) ] tiene el valor V para toda
interpretación, por tanto, es válida. El método de la tabla de verdad puede usarse
siempre para determinar la validez de cualquier fbf que no tenga variables acotadas.
Cuando se tienen cuantificadores, no siempre puede darse la validez de una fbf. Se ha
demostrado que es imposible encontrar un método general para decidir la validez de
una expresión cuantificada, por esta razón, en la LP se dice que es indecisa. Sin
embargo, la validez de ciertas fórmulas conteniendo cuantificadores puede decidirse,
cuando se hable de subclases definidas de la LP.
Hay una importante conección entre el concepto de una fbf modelo lógico, de un
conjunto de fbf, y el concepto de una fbf teorema derivado de un conjunto de fbf por
aplicación de reglas de inferencia.
Sea que se ha dado un sistema de reglas de inferencia. Se dice que un conjunto de
reglas de inferencia son reglas sólidas si cualquier teorema derivado de cualquier
conjunto de fbf es modelo lógico de ese conjunto de fbf.
Se dice que el sistema de reglas de inferencia es completo si toda fbf que es modelo
lógico de cualquier conjunto es también teorema derivado de ese conjunto.
Unificación
En la prueba de teoremas se involucran fórmulas cuantificadas, es a menudo necesario
hacer concordar ciertas subexpresiones. Por ejemplo, para aplicar la combinación de
modus ponens y especialización para producir W2(A) a partir de fbf ∀x[W1(x) →
W2(x)] y W1(A), es necesario encontrar la sustitución "A por x" que hace W1(A) y
W1(x) idénticas. Encontrar sustituciones de términos por variables para hacer
expresiones idénticas es un proceso extremadamente importante en LP es llamado
144
Luis Carlos Torres Soler
Representación formal
unificación.
Un caso de sustitución de una expresión es obtenida al sustituir constantes por
variables, o una variable por otra, o una variable por una función en esa expresión. Así,
ejemplos de P[x,f(y),B] son:
P[ z,f(w),B ]
P[ x,f(C),B ]
P[g(z),f(A),B]
P[ C,f(A),B]
El primer caso es llamado variante alfabética por que solamente se ha sustituido
variables por variables.
El último caso es llamado básico, puesto que ninguno de los términos en el literal
contiene variables.
Se representa una sustitución por un conjunto de pares ordenados s = {t1/v1, t2/v2, ...,
tn/vn}. El par ti/vi significa que el término ti sustituye a la variable vi en todas partes; no
existen dos parejas ti/vi, tj/vj tal que vi=vj, i><j.
Ninguna variable puede ser sustituida por un término conteniendo la misma variable.
Las sustituciones usadas antes para obtener los cuatro casos de P[x,f(y),B] son:
s1 = {z/x, w/y}
s2 = {C/y}
s3 = {g(z)/x, A/y}
s4 = {C/x, A/y}
Sea E una expresión, y s una sustitución, entonces "Es" es una expresión obtenida de E
al reemplazar simultáneamente toda ocurrencia de la variable vi por el término ti, así:
P[ z, f(w), B ] = P[ x, f(y), B ]s1
La composición de dos sustituciones s1 y s2 es denotada por s1s2, la cual es la
sustitución obtenida al aplicar s2 a los términos de s1 y además adicionando cualquier
par de s2 teniendo variables que no ocurren entre las variables de s1. Así,
{g(x,y)/z}{A/x,B/y,C/w} = {g(A,B)/z,A/x,B/y,C/w}
Puede demostrarse que aplicando s1 y s2 sucesivamente a una expresión E es lo mismo
que aplicar s1s2 a E; esto es, (Es1)s2 = E (s1s2). Puede también demostrarse que la
composición de sustituciones es asociativa:
Universidad Nacional de Colombia
145
Inteligencia artificial
(s1s2)s3 = s1(s2s3)
Las sustituciones no son en general conmutativas; esto es, no se tiene generalmente el
caso que s1s2 = s2s1.
Si una sustitución s es aplicada a todo miembro de un conjunto {Ei} de expresiones, se
denota la sustitución por {Ei}s. Se dice que un conjunto {Ei} de expresiones es
unificada si existe una sustitución s tal que E1s = E2s = ... = Ens = ...
En tal caso, s se dice es un unificador de {Ei}.
Por ejemplo, s ={A/x,B/y} unifica a
{P[x,f(y),B]}, {P[x,f(B),B]} para producir {P[A,f(B),B].
Hay muchos algoritmos que pueden usarse para unificar un conjunto finito de
expresiones y/o reportar fallas cuando el conjunto no puede ser unificado.
El procedimiento UNIFIC, dado informalmente, se usa para establecer una idea
general de como unificar un conjunto de dos expresiones de estructuras de listas.
PROC UNIFIC(E1,E2)
SI E1 o E2 es un átomo
V: SI E1 y E2 son idénticas
V: retornar NULL
F: SI E1 es una variable,
V: SI E1 ocurre en E2
V: retornar FALLO
F: retornar (E2/E1)
FSI
F: SI E2 es una variable,
V: SI E2 ocurre en E1
V: retornar FALLO
F: retornar (E1/E2)
FSI
FSI
F: retornar FALLO
FSI
F1 <-- el primer elemento de E1, T1 <-- el resto de E1
F2 <-- el primer elemento de E2, T2 <-- el resto de E2
Z1 = UNIFIC(F1,F2)
SI Z1=FALLO
V: retornar FALLO
F: G1 <-- el resultado de aplicar F1 a T1
FSI
G2 <-- el resultado de aplicar F1 a T2
Z2 <-- UNIFIC(G1,G2)
SI Z2 = FALLO
V: retornar FALLO
146
Luis Carlos Torres Soler
Representación formal
F: retornar la composición Z1 y Z2
FSI
FSI
Fin UNIFIC()
Típicamente se usa unificación para observar si componentes concuerdan.
{PRIVADO }4.1.3. Resolución
La resolución es una importante regla de inferencia que puede ser aplicada a ciertas
clases de fbf padres para hallar cláusulas. Una cláusula es una fbf que sólo contiene
disyunciones.
Primero que todo, cualquier fbf puede ser convertida a un conjunto de cláusulas. Se
ilustra el proceso de conversión al aplicarlo a la siguiente fbf como ejemplo:
∀x{P(x) →{ ∀y[P(y) → P(f(x,y)] & ~ y[Q(x,y) → P(y)]}}
El proceso de conversión consiste de los siguientes pasos:
1.
R2
Eliminar implicaciones y equivalencias. Se aplican reglas equivalentes como
∀x{~P(x) ∨ {∀y[~P(y) ∨ P(f(x,y))] & ~∀y[~Q(x,y) ∨ P(y)]}}
2.
Reducir campo de acción de una negación. Existen diferentes reglas de
equivalencia a aplicar, con el objeto que una negación sólo actúe sobre un predicado,
estructura atómica o átomo, y en ningún momento sobre un conjunto de ellos que se
hallen agrupados por algún tipo de paréntesis.
Para la fbf en cuestión se tiene:
∀x{~P(x) ∨ {∀y[~P(y) ∨ P(f(x,y))] & ∃y[Q(x,y) & ~P(y)]}}
3.
Estandarizar variables. Dentro del dominio de cada cuantificador, una variable
acotada por ese cuantificador es una variable simulada. Puede reemplazarse por
cualquier otra, siempre y cuando no cambie el valor de verdad en la fbf.
∀x{~P(x) ∨ {∀y[~P(y) ∨ P(f(x,y))] & ∃w[Q(x,w) & ~P(w)]}}
4.
Eliminar cuantificadores existenciales. Considérese la fbf ∀y[∃xP(x,y)].
Nótese que el cuantificador existencial está dentro del dominio del cuantificador
universal, que da la posibilidad que la x que exista, pueda depender del valor de y. Se
Universidad Nacional de Colombia
147
Inteligencia artificial
hace esta dependencia explícita al definir alguna función g(y), la cual aplica a cada
valor de y en la x que existe18. Al usar esta función se elimina el cuantificador
existencial escribiendo ∀yP(g(y),y).
La regla general para eliminar un cuantificador existencial de una fbf es reemplazar
cada ocurrencia de la variable de existencialidad cuantificada por una función cuyos
argumentos son esas variables del cuantificador existencial y que es acotada por el
cuantificador universal.
Ejemplo sea
[∀wQ(w)] →∀x{∀y{∃z[P(x,y,z) →∀uR(x,y,u,z)]}}
queda
[∀wQ(w)] → ∀x{ ∀y{ P(x,y,g(x,y)) → ∀uR(x,y,u,g(x,y))}}
Si el cuantificador existencial a ser eliminado no está dentro del dominio de un
cuantificador universal, la función de Skolem es sin argumentos, es decir, una
constante. Así, ∃xP(x) por P(A), donde el símbolo constante A se usa para referirse a
entidad que se conoce en un contexto. Es importante que A es un nuevo símbolo
constante y no empleado dentro de la fórmula.
Para el ejemplo en desarrollo se tiene:
∀x{~P(x) ∨ {∀y[~P(y) ∨ P(f(x,y))] & [Q(x,g(x)) & ~P(g(x))]}}
5.
Convertir a forma Prefija. Es mover todos los cuantificadores al frente de la
fbf. En este estado no existen cuantificadores existenciales y cada cuantificador
universal tiene su propia variable.
Una fbf en forma prefija consiste de una cadena de cuantificadores universales,
llamados prefijos, seguida por una fórmula libre llamada matriz.
La forma prefija de la fbf en desarrollo es:
∀x∀y{~P(x) ∨ {[~P(y) ∨ P(f(x,y))] & [Q(x,g(x)) & ~P(g(x))]}}
6.
Colocar la fbf en forma normal conjuntiva (FNC). Cualquier fbf puede ser
escrita como un conjunto finito de conjunciones de literales. Tal matriz se dice que es
una FNC.
Si F es fórmula, es FNC si es escribe (F1 & F2 & ... & Fk), donde cada Fi (i=1,2,...,k)
es un predicado, su negación o puede escribirse de la forma (G1 v G2 v...v Gl), donde
cada Gj (j=1,2,...,l) es un predicado o su negación.
18
Tal función se llama función de Skolem (función de depuración).
Luis Carlos Torres Soler
148
Representación formal
Ejemplos de fórmulas en FNC es:
[P(x) ∨ Q(x,y)] & [P(w) ∨ ~R(y)] & Q(x,y)
P(x) ∨ Q(x,y)
P(A) & Q(x,y)
~R(g(y))
(P(x) ∨ ~Q(y)) & (~R(z) ∨ Q(y)) & ~P(x)
Para la fórmula del ejemplo en desarrollo se tiene:
∀x∀y{[~P(x) ∨ ~P(y) ∨ P(f(x,y))] & [~P(x) ∨ Q(x,g(y))] & [~p(x) ∨ P(g(y))]}
7.
Eliminar cuantificadores universales. Puesto que todas las variables en la fbf
están totalmente acotadas, aseguramos que todas las variables que permanecen en este
paso son cuantificables universalmente. Además el orden de la cuantificación universal
no es importante.
Por tanto, para la fbf en proceso, se tiene:
[~P(x) ∨ ~P(y) ∨ P(f(x,y))] & [~P(x) ∨ Q(x,g(y))] & [~P(x) ∨ P(g(y))]
8.
Crear cláusulas. Ahora puede eliminarse las ocurrencias de los símbolos &
(conjunciones) reemplazando expresiones de la forma X1 & X2, con el conjunto de fbf
{X1, X2}.
Cualquier fbf consistiendo de solamente disyunciones de literales es llamada forma
clausular.
Nuestro ejemplo de desarrollo se transforma en:
{~P(x) ∨ ~P(y) ∨ P(f(x,y)), ~P(x) ∨ Q(x,g(y)), ~P(x) ∨ ~P(g(y))}
9.
Normalizar variables. Las variables pueden ser renombradas así que ningún
símbolo variable debe aparecer en más de una cláusula.
Nuestras cláusulas ahora son:
~P(x) ∨ ~P(y) ∨ P(f(x,y))
~P(w) ∨ Q(w,g(w))
~P(u) ∨ ~P(g(u))
La resolución en el cálculo de predicados es una regla de inferencia para probar
teoremas. El conjunto de fbf de la cual se desea probar el teorema primero se convierte
a cláusulas.
Puede demostrarse que si la fbf R es un modelo lógico de un conjunto de fbf, S,
entonces, es también modelo lógico del conjunto de cláusulas obtenidas convirtiendo
la fbf de S a forma clausular. Por tanto, para el propósito trazado, las cláusulas son
Universidad Nacional de Colombia
149
Inteligencia artificial
formas completamente generales para expresar fbf.
Ejemplo:
∀x {P(x) → ~∃y { {Q(x,y) → R(y)} ∨ ~{R(x) → Q(x,y) }}}
1.
∀x {~P(x) ∨ ~∃y { {~Q(x,y) ∨ R(y)} ∨ ~{~R(x) ∨ Q(x,y) }}}
2.
∀x {~P(x) ∨ ∀y ~{ {~Q(x,y) ∨ R(y)} ∨ ~{~R(x) ∨ Q(x,y) }}}
∀x {~P(x) ∨∀y {~ {~Q(x,y) ∨ R(y)} & {~R(x) ∨ Q(x,y) }}}
∀x {~P(x) ∨∀y { {Q(x,y) & ~R(y)} & {~R(x) ∨ Q(x,y) }}}
3. y 4. No se aplican en este ejemplo.
5.
∀x∀y {~P(x) ∨ { {Q(x,y) & ~R(y)} & {~R(x) ∨ Q(x,y) }}}
6.
∀x∀y {{~P(x) ∨{{Q(x,y) & ~R(y)}}&{~P(x)v{~R(x) ∨ Q(x,y)} }}}
∀x∀y {{~P(x) ∨ Q(x,y) } & {~P(x)∨~R(y)}} & {~P(x)∨ ~R(x) ∨ Q(x,y) }}
7.
{~P(x) ∨ Q(x,y) } & {~P(x)∨~R(y)}} & {~P(x) ∨ ~R(x) ∨ Q(x,y) }
8.
~P(x) ∨ Q(x,y), ~P(x) ∨ ~R(y),
~P(x) ∨ ~R(x) ∨ Q(x,y)
9.
~P(x) ∨ Q(x,y), ~P(w) ∨ ~R(z),
~P(u) ∨ ~R(u) ∨ Q(u,v)
Ejemplo:
∀x {∃y{P(x,y)→ ~∃y{{Q(x,y) → R(y,x)} ∨ ~∃y{R(x,y) → Q(x,y) }}}}
1.
∀x{∃y{~P(x,y) ∨ ~∃y{{Q(x,y) -> R(y,x)} v ~∃y{R(x,y) → Q(x,y) }}}}
∀x{∃y{~P(x,y) ∨ ~∃y{{~Q(x,y) ∨ R(y,x)} v ~∃y{R(x,y) → Q(x,y) }}}}
∀x{∃y{~P(x,y) ∨ ~∃y{{~Q(x,y) ∨ R(y,x)} ∨ ~∃y{~R(x,y) ∨ Q(x,y) }}}}
2.
∀x{∃y{~P(x,y) ∨ ∀y~{{~Q(x,y) ∨ R(y,x)} ∨ ~∃y{~R(x,y) ∨ Q(x,y) }}}}
∀x{∃y{~P(x,y) ∨ ∀y~{{~Q(x,y) ∨ R(y,x)} ∨ ∀y~{~R(x,y) ∨ Q(x,y) }}}}
∀x{∃y{~P(x,y) ∨ ∀y~{{~Q(x,y) ∨ R(y,x)} ∨ ∀y{~~R(x,y) &~Q(x,y)}}}}
∀x{∃y{~P(x,y) ∨ ∀y{~{~Q(x,y) ∨ R(y,x)} & ~∀y{R(x,y) & ~Q(x,y) }}}}
∀x{∃y{~P(x,y) ∨ ∀y{{~~Q(x,y)&~R(y,x)} & ∃y~{R(x,y) &~Q(x,y)}}}}
∀x{∃y{~P(x,y) ∨ ∀y{{Q(x,y)& ~R(y,x)} & ∃y{~R(x,y) ∨ ~~Q(x,y) }}}}
∀x{∃y{~P(x,y) ∨ ∀y{{Q(x,y) & ~R(y,x)} & ∃y{~R(x,y) ∨ Q(x,y) }}}}
3.
∀x{∃y{~P(x,y) ∨ ∀y{{Q(x,y) & ~R(y,x)} & ∃z{~R(x,z) ∨ Q(x,z)}}}}
∀x{∃y{~P(x,y) ∨ ∀w{{Q(x,w) & ~R(w,x)} & ∃z{~R(x,z) ∨ Q(x,z)}}}}
4.
∀x{∃y{~P(x,y) ∨ ∀w{{Q(x,w)& ~R(w,x)} & {~R(x,h(w)) ∨ Q(x,h(w))}}}}
150
Luis Carlos Torres Soler
Representación formal
∀x{{~P(x,g(x)) ∨ ∀w{{Q(x,w)& ~R(w,x)}& {~R(x,h(w)) ∨ Q(x,h(w))}}}}
5.
∀x∀w{{~P(x,g(x)) ∨ {{Q(x,w)& ~R(w,x)}& {~R(x,h(w)) ∨ Q(x,h(w))}}}}
6.
∀x,w{{~P(x,g(x)) ∨ {{Q(x,w)& ~R(w,x)}} & {~P(x,g(x)) ∨ {~R(x,h(w)) ∨
Q(x,h(w))}}
∀x,w{~P(x,g(x))∨Q(x,w)}&{~P(x,g(x))v~R(w,x)}&{~P(x,g(x))∨~R(x,h(w))∨Q(x,h(
w))}
7.
{~P(x,g(x))∨Q(x,w)} & {~P(x,g(x)) ∨~R(w,x)} & {~P(x,g(x))∨ ~R(x,h(w)) ∨
Q(x,h(w))}
8.
~P(x,g(x)) ∨ Q(x,w),
~P(x,g(x)) ∨ ~R(w,x) ,
~P(x,g(x)) ∨ ~R(x,h(w)) v Q(x,h(w))
9.
~P(x,g(x)) ∨ Q(x,w) ,
~P(y,g(y)) ∨ ~R(u,y) ,
~P(z,g(z)) ∨ ~R(z,h(r)) ∨ Q(z,h(r))
Resolución general. De lo anterior se nota que alguna cláusula contiene términos que
es la negación exacta de términos en otra cláusula. Del par de cláusulas puede inferirse
otra cláusula.
En orden a aplicar resolución a cláusulas conteniendo variables, se requiere encontrar
una sustitución que pueda ser aplicada a cláusulas padres así que ellas contengan
literales complementarios. Para discutir este caso, nos ayuda la representación de una
cláusula por un conjunto de literales. Sean las cláusulas padres {Pi} y {Qi} y
asumiendo que las variables que ocurren en esas dos cláusulas han sido estandarizadas.
Sea que {pi} es subconjunto de {Pi} y que {qi} es un subconjunto de {Qi} tal que un
unificador general s existe para la unión de los conjuntos {pi} y {~qi}. Se dice que las
cláusulas {Pi} y {Qi} resuelven y que la nueva cláusula:
{{Pi} - {pi}}s + {{Qi} - {qi}}s es una resolvente de las dos cláusulas
Si dos cláusulas resuelven, ellas pueden tener más de una resolvente porque hay más
de una manera para escoger {pi} y {qi}. En cualquier caso, ellas pueden tener al menos
un conjunto finito de resolventes. Como ejemplo, tómese las cláusulas:
P[x,f(A)] ∨ P[x,f(y)] ∨ Q(y) , y ~P[z,f(A)] ∨ ~Q(z)
Con {pi} = {P[x,f(A)]} y {qi} = {~P[z,f(A)]}, se obtiene la resolvente P[z,f(y)] v
~Q(z) v Q(y)
Con {pi} = {[P(x,f(A)],P[x,f(y)]} y {qi} = {~P[z,f(A)]} se obtiene la resolvente Q(A) v
~Q(z)
Universidad Nacional de Colombia
151
Inteligencia artificial
Notese que en el último caso, dos literales en la primera cláusula colisionan al sustituir
en un sólo literal, complementado por un ejemplo de uno de los literales de la segunda
cláusula.
Hay cuatro diferentes resolventes de esas dos cláusulas, tres se obtienen solucionando
sobre P y una solucionando sobre Q. No es difícil demostrar que la resolución es una
básica regla de inferencia; esto es, que la resolvente de un par de cláusulas es un
modelo lógico de ese par de cláusulas.
Uso de la lógica. La lógica de primer orden, en la actualidad, es una de las
herramientas más importantes para la solución de problemas. Y su enfoque
corresponde a lo que se ha denominado como la Demostración Automática de
Teoremas. En términos generales se describe como: los métodos para demostrar que
un conjunto de cláusulas es insatisfactible, basados en los trabajos de Herbrand. Una
manera de describir la mecánica de los mencionados métodos es la siguiente: A partir
de un conjunto de cláusulas originales P, se genera un conjunto de cláusulas base
instanciadas P1, P2, ...,Pk. Los métodos deben controlar la generación
combinatorialmente explosiva de nuevas cláusulas y obtener un conjunto de cláusulas
que resultan ser insatisfactibles.
El modelamiento de acciones para determinar estados óptimos y metas de un tipo de
problemas pueden describirse por fbf de la lógica. En la figura 4.1(a), por ejemplo, se
muestra una situación en la cual hay 4 bloques; A,B,C y D sobre una tabla.
0Figura 4.1 Acciones y colocación de bloques.
Puede representarse esta situación al realizar conjunción de las siguientes fórmulas:
SOBRE(A,C),
SOBRE(D,A),
SOBRE(B,D),
TOP(B),
BASE(C)
∀x [TOP(x) →~∃y SOBRE(y,x)
La fórmula TOP(x) significa que el bloque x no tiene otro bloque sobre él. El
predicado SOBRE se usa para describir cuál bloque está directamente sobre otro
bloque. La fórmula BASE(y) significa que y está sobre la tabla, la última fórmula da
152
Luis Carlos Torres Soler
Representación formal
información de como TOP y SOBRE puede tener una relación.
Una conjunción de varias de estas fórmulas puede servir como una descripción de una
situación particular. Se llama estado descripción. Actualmente, cualquier conjunción
finita de fórmulas realmente describe una familia de diferentes estados, cada miembro
puede mirarse como una interpretación satisfaciendo las fórmulas. Puede eliminarse
algunas de esas interpretaciones al adicionar o eliminar términos a la descripción, por
ejemplo, el conjunto anterior de fórmulas no dice nada del color de los bloques, así,
puede describirse una familia de estados en la cual los bloques pueden tener varios
colores. Por ejemplo, adicionar la fórmula COLOR(B,café).
La manera en la cual esas fórmulas se usan depende del problema y la interpretación.
En modelos de cambio de estado tal como los bloques, las acciones son instantáneas y
no hay lugar para decir que algo es verdadero mientras esté en ejecución. Puesto que
los estados de descripción no incluyen información acerca de las acciones ocurridas,
tales sistemas no pueden representar la ocurrencia de una acción mientras otra acción
no ocurra. Finalmente, no hay razonamiento acerca del futuro en esos modelos excepto
por búsqueda a través de diferente secuencia de acciones.
Suponiendo que el problema es demostrar que cierta propiedad es verdadera en un
estado dado, por ejemplo, puede establecerse que no hay ningún bloque C en el estado
descrito en la figura. Podemos probar este hecho al demostrar la verdad de la fórmula
~∃y SOBRE(y, A). Equivalentemente podemos demostrar que dicha fórmula es un
teorema derivado de la descripción de estados al aplicar reglas de inferencia19.
Un uso obvio y directo de probar teoremas es al aplicarse a teoremas. Una menos
obvia, pero importante, es el uso en sistemas inteligentes de recuperación de
información donde deducciones deben desarrollarse a partir de una base de datos de
hechos para hallar respuesta a las preguntas. Por ejemplo, para las expresiones:
administrador(compras,juan_quintero),
trabaja_en(compras,maría_garcía), Y
{[administrador(x,y) & trabaja_en(x,z)] → jefe_de(y,z)}
Un sistema espera contestar a "¿Quién es el jefe de María García?", tal pregunta puede
escribirse como el siguiente teorema a probar:
19
Se usa un SP para demostrar que una formula dada, llamada fbf meta, es un teorema derivable de un
conjunto de formulas.
Universidad Nacional de Colombia
153
Inteligencia artificial
∃x jefe_de(x,maría_garcía).
Figura 4.2 Acciones realizadas para ir desde el estado inicial a la META.
A menudo muchas tareas de razonamiento de sentido común que ordinariamente no
puede formalizarse, se manipulan por sistemas que prueban teoremas. La estrategia
general es representar conocimiento especializado en el dominio como expresiones del
cálculo de predicados y representar el problema o pregunta como un teorema a probar.
El estado inicial mostrado en la figura 4.1(a) y la meta en la figura 4.1(b) induce a
realizar un conjunto de acciones que hace pasar por diferentes estados para cumplir el
plan. Se requiere de acciones que podría ser DESPLAZAR(x,y), para colocar el bloque
x encima del bloque y, siempre y cuando se tenga TOP(x) ^ TOP(y). La figura 4.2
muestra esta secuencia.
{PRIVADO }4.1.4. Construcción de bases de conocimiento
La organización de objetos en clases es una parte medular en la representación del
conocimiento. Aunque la relación que se establece con el mundo se produce a nivel de
objetos individuales, buena parte del razonamiento se realiza a nivel de clases. Un
ejemplo sencillo sería el de quien desea comprar una manzana, no es la compra de un
objeto específico, es de una Manzana. Las clases permiten hacer predicciones acerca
de los objetos, una vez que estos se clasifican. Es posible poder inferir la existencia de
un objeto determinado a partir de una información perceptual, inferir que tipo de
objeto es dentro de una clase con base en las propiedades que se hayan percibido de
dicho objeto y luego utilizar la información de la clase para hacer predicciones sobre
todo el conjunto de objetos. Por ejemplo, con base en su piel verde, tamaño pequeño y
forma redonda, puede inferirse que un objeto es una manzana (podría ser un tomate); y
de ello, se infiere que puede servir para ensalada de frutas.
Existen dos maneras para representar clases en la lógica de primer orden. La primera,
154
Luis Carlos Torres Soler
Representación formal
la representación de clases mediante predicados unarios. Por ejemplo limon(x)
significa x es un limón, casa(y) significa y es una casa. La segunda manera consiste en
objetivar la clase. La objetivación es el procedimiento mediante el cual un predicado o
una función se convierte en un objeto del lenguaje.20 En este caso, manzana es un
signo constante que se refiere al objeto constituido por el conjunto de todas las
manzanas. Para decir x es una manzana, se escribe x en Manzanas. Mediante las clases
objetivadas se hacen aseveraciones sobre la clase misma, más que sobre los objetos de
dicha clase, por ejemplo, puede afirmarse poblacion(gallinas)=500, refiriéndose a la
población de gallinas en algún lugar.
Las clases desempeñan un papel muy importante; sirven para organizar y simplificar la
BC a través de la herencia. Si se afirma que todos los objetos de la clase comida son
comestibles, y si decimos que tubérculos es una subclase de comida y que papa es una
subclase de tubérculos, diremos que el objeto papa es comestible. Se dice entonces que
el objeto papa hereda la propiedad de ser comestible.
Las relaciones de subclase facilitan una jerarquía taxonómica de las clase.
La lógica de primer orden facilita la expresión de hechos que se refieren a clases, sea
relacionando los objetos con las clases, o cuantificándolos con sus objetos.
*
Un objeto es un miembro de una clase. Por ejemplo:
limonj de Limones
*
Una clase es una subclase de otra clase. Por ejemplo:
Limones pertenece a Frutas
*
Todos los objetos de una clase tienen algunas propiedades. Por ejemplo:
Para todo z, z de Limones ⇒ verde(z) & redondo(z)
*
Los objetos de una clase se reconocen por ciertas propiedades. Por ejemplo:
∀x amarillo(interior(x))&verde(exterior(x)) & x es Manzana ⇒ x es Fruta
*
Una clase en cuanto un todo tiene algunas propiedades. Por ejemplo:
Limones es alimento_acido.
Si bien las relaciones de subclase y de objetos son los más importantes para las clases,
también es necesario ser capaces de establecer relaciones entre categorías que no son
subclase unas de otras. Por ejemplo, al afirmar que hombre y mujer son subclase de
humanos, no se está diciendo que un hombre no puede ser una mujer. Se dice que dos
clases son disyuntas sino tienen ningún objeto en común.
20
Objetivar no es un término muy adecuado. Varios intentos se han dado por utilizar un término correcto
sin que prospere la idea. Como el término "cosificación" propuesto por John McCarthy
Universidad Nacional de Colombia
155
Inteligencia artificial
Algunas clases se definen de manera rigurosa: un objeto se considera un triángulo si y
sólo si es un polígono de tres lados. Por el contrario, muchas clases del mundo real son
clases de género natural, carentes de una definición precisa. Por ejemplo, base en su
piel verde, tamaño pequeño y forma redonda, puede inferirse que un objeto es un
tomate (ya se había dicho antes que era manzana) por que los tomates que no están
maduros aún se hallan verdes, debe darse otras características para distinguir muy bien.
La idea clave, para evitar problemas como lo anterior, es separar lo que es válido para
todos los elementos de una clase, de aquello que sólo se cumple en determinados casos
de la clase. Por ejemplo, además de verde, redondo y pequeño, puede indicarse pulpa
blanda y en casos extremos se contaría con la clase típico(tomates). En este caso,
típico es una función que correlaciona una clase con la subclase donde se hallan tipos
especiales.
La planificación de un menú es un ejemplo sencillo de como construir una BC.
Realizar una cena requiere de saber preparar unos platillos, y estos requieren unos
ingredientes que son objetos de alguna clase. Si debo ir a la tienda a comprar los
ingredientes como: tomates, lechuga, pepino, manzanas amarillas, aceite de oliva, etc.
y no encuentro tomates, al saber que dichos ingredientes eran para la ensalada se me
ocurrirá cambiarla por pimentones rojos. Pero si la lista es: tomates, cebolla cabezona,
apio, zanahoria, carne molida, leche, vino blanco, etc., inferirá que se trata de preparar
una salsa a la boloñesa, por tanto, deberá reemplazar los tomates es por tomates
enlatados. La persona tendrá que hacer dos tipos de inferencia. La primera, de la lista
de partes poder inducir el objeto compuesto (clase), es difícil por que la combinación
de las partes puede dar como resultado varios objetos compuestos. La segunda, la
persona debe ser capaz de decidir cómo reemplazar una parte que no se encuentra para
complementar el objeto compuesto que interesa. Puede hacerse en dos niveles:
reemplazando un ingrediente por otro y complementar el platillo o, reemplazar todo el
platillo para completar la cena o comida.
El primer paso consiste en convertir la lista de compras en una lista de partes: una lista
de clases.
refiere("tomates", hortaliza) o
refiere("tomates", tomates)
refiere("lechuga", hortaliza)
refiere("pepino" , verduras)
refiere("cebolla", hortaliza)
refiere("zanahoria", hortaliza)
refiere("alverja", legumbres)
................
El siguiente paso consiste en describir clases en función de sus partes necesarias y de
156
Luis Carlos Torres Soler
Representación formal
las opcionales.
∀r,z parte_requerida(r,z) ⇒ ∀y, y en r ⇒ parte_requerida(y,w)
∀t,z parte_opcional(t,z) ⇒∀m, m en t ⇒ parte_opcional(m,z)
∀s,z parte_de(s,z) ⇔∃p, p en z ⇒∀j, j en s, parte_de(j,p)
∃q,z parte_opcional(q,z) ⇔∃k, k en z ⇒∀c, c en q, parte_de(q,k)
El siguiente paso consiste en describir comidas y platillos en función de sus partes
respectivas:
parte_requerida({plato_principal}, comidas)
parte_opcional({entradas, ensaladas,...}, comidas)
parte_requerida({lechuga, aderezo}, ensalada_verduras)
parte_opcional({tomate, pepino, pimentón, zanahoria,...}, ensalada_verdura)
...............................
Luego se necesita la información sobre platillos y alimentos. Posteriormente se decide
que platillos preparar de la lista. Tenga en cuenta que faltarían algunos objetos
requeridos, pero que no van en la lista dado que se hallan en la casa, como la sal, la
mantequilla, etc., por tanto debe existir algún predicado que los incluya.
{PRIVADO }4.2. INCERTIDUMBRE
Una limitación de la lógica de primer orden es que el sistema casi nunca tiene acceso a
toda la verdad acerca del dominio del problema. Algunas de las cláusulas se infieren a
partir de cláusulas previas, habrán preguntas importantes a las que el sistema no puede
dar respuesta categórica. El sistema debe, por tanto, actuar bajo condiciones de
incertidumbre. La incertidumbre es en general producto de la incompletez y de la
inexactitud del conocimiento sobre las características del ambiente del problema.
Un diagnóstico -sea médico, mecánico, financiero, o cualquier otro- es una tarea en la
que por lo general está presente la incertidumbre. Si lo que nos interesara fuera para
diagnóstico odontológico, en LP propondríamos las reglas:
∀x sintoma(x,dolor_dientes) → padece(x, caries)
El problema inicia aquí, porque conocemos que no todos los pacientes que tienen dolor
de dientes padecen de caries, por tanto, se amplia la regla, como:
∀x sintoma(x,dolor_dientes) → padece(x, caries)
& padece(x, dolor_encias)
& padece(x, estres)...
Universidad Nacional de Colombia
157
Inteligencia artificial
Desafortunadamente, para que la regla sea válida es necesario añadir una lista de
posibles causas. Si se transforma la regla en:
Para todo x padece(x, caries) → sintoma(x, dolor_dientes)
Se tendría que tampoco está bien; no todas las caries producen dolor.
La única manera de tener una regla correcta es haciéndola exhaustiva21 desde el punto
de vista lógico: ampliar las partes pertinentes. Incluso así, para efectos de diagnóstico,
es necesario tomar en cuenta la posibilidad que el paciente tenga dolor de dientes a
partir de otra causa.
La probabilidad es una forma de resumir la incertidumbre originada por la ignorancia o
para no crear fórmulas extremadamente grandes. Posiblemente no sepamos cual es el
padecimiento específico de un paciente, sin embargo, considerando que existe una
posibilidad de 70% que la caries sea el motivo22. El restante 30% resume todas las
otras causas de dolor.
La probabilidad 0 asignada a un determinado predicado no indica que el predicado es
falso, en tanto, que una probabilidad de 1 no da la total característica de verdadero. La
probabilidad 0.6 no implica que haya 60% de verdad, sino que el grado de creencia es
80%, es decir una posibilidad bastante elevada, si se asigna una probabilidad de 0.75 a
un predicado, entonces se espera que en 75% de los casos evaluados, el predicado
resultará en efecto verdadero.
Conforme una persona o el sistema recibe nuevas percepciones y realiza acciones23, la
probabilidad se actualiza, de manera que refleje nuevas evidencias.
La presencia de la incertidumbre modifica radicalmente la forma de tomar decisiones.
Por lo general, una persona (o sistema) tiene una sola meta y ejecuta cualquier plan
que garantice el logro. Una acción se acepta o se rechaza dependiendo que permita o
no alcanzar la meta, sin importar si existen otras acciones que permitan lograrlo. Para
poder tomar decisiones, es necesario que previamente se tenga diferentes preferencias.
Un resultado determinado constituye un estado completamente especificado. Para la
representación y razonamiento con las preferencias nos valdremos de la teoría de la
utilidad. La utilidad de un estado depende de las preferencias que la función de utilidad
21
El listar el conjunto completo de antecedentes y/o consecuentes necesarios para garantizar reglas sin
excepciones implica demasiado trabajo, y también sería muy difícil emplear las reglas resultantes,
además existen ciencias que aun no cuentan con una teoría completa del dominio de un problema
produciendo ignorancia teórica y en algunas veces práctica.
22
La probabilidad a priori del 70% se obtiene de datos estadísticos, de algunas reglas generales o a
partir de una combinación de diversas fuentes de evidencias.
23
La percepción implica la interpretación de la visión, los sonidos, los olores y el tacto. La acción
incluye la habilidad de navegar por el mundo y de manipular objetos.
Luis Carlos Torres Soler
158
Representación formal
debe representar.
Ahora entramos a trabajar con un lenguaje formal para representar el conocimiento
incierto y razonar con él.
La notación p(A) indica la probabilidad a priori o incondicional que A es verdadera.
p(viaja_a(x,cali)) = .6 indica que la probabilidad que x viaje a Cali es 0.6.
p(tiempo = soleado) = 0.60
p(tiempo = nublado) = 0.25
p(tiempo = lluvia) = 0.15
Este último caso, el objeto de atención es la variable (aleatoria) tiempo. A toda
variable aleatoria X corresponde un dominio de valores que puede asumir [a1, a2,...,
am]. Términos de predicados pueden ser variables aleatorias y su dominio es
[verdadero, falso].
Considerando esta notación, se escribiría p(tiempo) = [.6, .25, .15]. La aseveración
anterior define una distribución de probabilidad para la variable tiempo.
Sea: Juan no está asegurado, viajó a Cali y Chocó, puede escribirse:
~asegurado(juan) & viajó_a(juan,cali) & choco(juan)
En predicado:
~Q(x) & R(x,y) & S(x)
Así que se escribe:
p(~Q(x) & R(x,y) & S(x))=0.75
Para expresar la probabilidad de la oración compleja, conocidos los hechos, pero si se
conoce p(~Q(x))=.8, p(R(x,y))=.9 y p(S(x))=.3, ¿cuál debe ser el razonamiento?
Una vez que se cuenta con evidencias respecto a las proposiciones desconocidas que
constituyen el dominio, las probabilidades a priori pierden vigencia. En vez de éstas, se
utilizan las probabilidades condicionales o posteriores, representadas como p(A/B) y
que se interpreta como "la probabilidad de A, considerando que se conoce B".
La ecuación: p(A/B) =
p(A & B)
p(B)
, p(B) > 0 , evalúa la probabilidad condicional.
La ecuación p(A v B) = p(A) + p(B) - p(A & B) expresa la probabilidad de una
disyunción.
Universidad Nacional de Colombia
159
Inteligencia artificial
La ecuación, p(B/A) =
p(A/B)p(B)
p(A)
, p(A) > 0 , se le conoce como regla de
Bayes. Constituye una regla importante para los SBC que emplean factores
probabilísticos en las premisas de una regla para determinación del valor de verdad de
la inferencia.
Aparentemente, la regla de Bayes no parecería ser de utilidad. La regla de Bayes es útil
en la práctica gracias a que hay muchos casos en los que se dispone de buenas
estimaciones de probabilidad para los tres términos necesarios (una probabilidad
condicional y dos probabilidades incondicionales) y es necesario calcular el cuarto.
Suponga que un doctor asegura que la meningitis provoca una rigidez en el cuello del
paciente, en el 50% de los casos, también conoce que entre 50000, una persona puede
sufrir meningitis (M) y la probabilidad que algún paciente padezca rigidez en el cuello
(R) es de 1/20, entonces: p(R/M) = 0.5, p(M)=1/50000, p(R)=1/20, por tanto,
p(M/R)=p(R/M)p(M) / p(R) = [0.5 * 1/50000 ] / [1/20] =0.0002
Es decir, se espera que sólo una persona de 5000 que padezca de rigidez en el cuello
tenga meningitis.
Supongase que también interesa conocer la posibilidad que el paciente sienta latigazos,
Q, consecuencia de la rigidez en el cuello: p(Q/R) =
p(R/Q)p(Q)
.
p(R)
Para poder calcular la posibilidad relativa de la meningitis y del latigazo, partiendo que
existe una rigidez en el cuello, vemos que es necesario valorar la probabilidad a priori
p(R). Y suponga que p(R/Q)= 0.8 y p(Q)=1/1000. Por tanto:
1
p(M/R) p(R/M)p(M)
50000 = 1 .
=
=
1
p(Q/R)
p(R/Q)p(Q)
80
.8 *
1000
.5 *
Es decir, el latigazo tiene 80 veces más de posibilidad de presentarse que la meningitis,
en el caso de un cuello rígido.
Es posible escribir las ecuaciones correspondientes a M y a ~M:
p(M/R) =
160
p(R/M)p(M)
p(R/¬M)p( ¬M)
y p( ¬M/R) =
.
p(R)
p(R)
Luis Carlos Torres Soler
Representación formal
Al sumar ambas ecuaciones, y tomando en cuenta que p(M/R)+p(~M/R)=1 se obtiene:
p(R) = p(R/M)p(M) + p(R/~M)p(~M) y al sustituir en la ecuación para p(M/R), se
tiene:
p(M/R) =
p(R/M)p(M)
.
p(R/M)p(M) + p(R/¬M)p( ¬M)
Procedimiento que se conoce con el nombre de normalización.
La lógica difusa es probablemente la técnica más prometedora para el manejo de la
incertidumbre, la mayoría de los métodos disponibles modelan la incertidumbre
cuantitativamente (un hecho tiene un grado de verdad de 0.8, por ejemplo). Por otra
parte, la lógica difusa modela la incertidumbre con conjuntos difusos. Los conjuntos
convencionales tienen un bien definido grupo de elementos y estos pertenecen o no al
conjunto. Sin embargo, en los conjuntos difusos las funciones de pertenencia pueden
alcanzar valores entre 0 y 1, indicando que la pertenencia de ciertos elementos no es
clara.
{PRIVADO }4.3. EJERCICIOS
1.
Sean las oraciones Martha es la madre de Carlos, Fidel es un ancestro de
Carlos.
Representadas por madre(martha,carlos), ancestro(fidel,carlos) escribir una fbf
para representar Todo ancestro de Carlos es o su padre, su madre o uno de sus
ancestros.
2.
Representar las siguientes oraciones por fbf en lógica de predicados:
a) Un sistema de computador es inteligente si puede desarrollar una tarea la
cual, si es desarrollada por un humano, usa inteligencia.
b) Si un programa no puede entender un hecho, entonces el no puede aprender
ese hecho.
c) Todas las asignaturas son básicas para todas las carreras, existen asignaturas
que no son básicas para la profesión, por tanto, hay asignaturas que no deben
ser básicas.
3.
Convertir las siguientes fbf a forma clausular
a) ∀x{P(x) → {∀y[P(y) → P(f(x,y))] & ~∃y[Q(x,y) → P(y)]}}
b) {∀xP(x)} → {∃x[~P(x)]}
Universidad Nacional de Colombia
161
Inteligencia artificial
c) ∀xy{[P(x,y) → Q(y,x)] & [Q(y,x) → S(x,y)]}→ ∀xy[P(x,y) → S(x,y)]
d) ∀x{[R(x) & C(x,a)] → [O(x,b) ∨ {∃y(∃z[O(y,z) → Q(x,y)])}]}
4.
Formalizar los siguientes enunciados:
a) Si gana millonarios, viajo a Cali. Si gana santafé, viajo a Medellín, ganó
santafé o millonarios. Voy para Medellín, por tanto, millonarios no ganó.
b) Si Diego estudia, aprueba. Si Diego no estudia, está enfermo. Diego ni
estudia ni esta enfermo. Por tanto, Diego esta de vacaciones.
c) Todo estudiante es honesto. Juan no es honesto luego, Juan no es
estudiante.
d) Todo atleta tiene físico y es fuerte. Todo aquel que es fuerte e inteligente
tendrá éxito en la carrera, Pedro es atleta, Pedro es inteligente, luego, Pedro
tiene éxito en la carrera.
e) No voy a Cali ni a Medellín.
162
Luis Carlos Torres Soler