Documente Academic
Documente Profesional
Documente Cultură
1
INTERFACE
Reglas: Un componente de los SE son las reglas a aplicar sobre los símbolos definidos.
Estas se obtienen de expertos humanos. En el siguiente ejemplo estas reglas representan
el conocimiento de los médicos. Estas reglas combinadas en un sistema de inferencias
permiten mapear síntomas en enfermedades. Estas reglas de los expertos son
consideradas heurísticas, dado que no es posible demostrar su validez general.
Hechos: Los hechos son los predicados que se suponen verdaderos. En nuestro ejemplo
se trata de características que se obtienen de un registro de pacientes y constituyen la
Base de Datos de Conocimiento (KDB), por ejemplo: (edad ana 51) (presion juan 5/3),
etc…
2
Lógica de Predicados y Lógica Proposicional
Interrogativo
Imperativo
Declarativo
Para esto emplea dos niveles de abstracción distintos según el grado de detalle con que
se quiera formalizar:
La Lógica de Predicados estudia las frases declarativas con mayor grado de detalla,
considerando la estructura interna de las proposiciones. Toma como elementos básicos
los objetos y sus relaciones. Es decir:
Sócrates es hombre y todos los hombres son mortales entonces Sócrates es mortal
3
aparecen variables que pueden ser instanciadas para evaluar una declaración. A
continuación veamos un ejemplo elemental:
FND p v -q v s
FNC p ^ q ^ -s
CH -p v -q v s
La CH tiene a su vez gran importancia en la teoría de los SE. Esto es debido a diferentes
factores, los cuales en general han sido más bien probados o mostrados por inducción –
ejemplos- por algunos investigadores en la década del 70. Una característica favorable
de fácil visualización es que una Cláusula de Horn representa por si sola una
implicación lógica, q → p.
4
Elementos Básicos del Lenguaje Lógico (Alfabeto)
La Lógica de Primer Orden es uno de los formalismos más utilizados para representar
conocimiento en IA. La Lógica cuenta con un lenguaje formal mediante el cual es
posible representar fórmulas, que permiten describir fragmentos del conocimiento y,
además consta de un conjunto de reglas de inferencia que aplicadas a los axiomas,
permiten derivar nuevo conocimiento.
Cuantificador universal: Significa que las variables son comunes a todos los
elementos
de la expresión.
5
Cuantificador existencial: ∃. Se debe eliminar porque la cláusula debe cumplirse
para todos los elementos. Las variables deben ser comunes a toda la expresión.
Se entiende por silogismo a una fórmula lógica con premisas seguidas de una
conclusión, como ser, si q y p, entonces s. Los silogismos mas empleados en SE y SI
son: 1) Hipotético: p es q y q es s -> p es s, y 2) Disyuntivo: -p o q es decir p ∴q
Una proposición es una sentencia simple que tiene un valor asociado ya sea de
verdadero (V), o falso (F). Por ejemplo:
Hoy es Viernes
6
Funciones de Skolem
\ x E y (x < y)
\ y (y-1 < y)
x hombre(x) ^ E y pareja(y,x)
Leyes de DeMorgan
7
Reducción a forma clausal
La expresión vista
Sócrates es hombre y todos los hombres son mortales entonces Sócrates es mortal
Siendo las 2 últimas expresiones formas clausales, por cierto mas difíciles de
comprender para nosotros que la expresión de predicados original.
- H ˇ -H ˇ M ˇ M
8
Los pasos relevantes de la reducción pueden resumirse como sigue:
x→y ≡ –x v y
-(-x)) ≡ x
-(x v y)) ≡ x ^ y
-(x ^ y)) ≡ x v -y
3. Eliminar cuantificadores
p v (q v r) = (p v q) v r
(p ^ q) v r = (p v r) ^ (q v r)
Ejemplo:
9
Formas Clausales
Cláusulas de Horn
Por ejemplo:
(-B1 v -B2 v B3 ) es una Cláusula Horn.
(-A1 v A2) ^(-B1 v B3 ) es una Formula Horn. Sus componentes son cláusulas Horn.
Estas implicaciones se codifican en lenguaje Prolog usando “:-“ (“si”) y “,” (el último
representa ^ en Prolog )
A :- B1 , … ,Bk ( el símbolo :- se lee “si”)
Es necesario que no haya dependencia lógica entre los literales para que el método de
resultados correctos. Por ejemplo:
Chico(a) ^ (-Chico(a) v Cubo(a)) ^ (Esfera(a) v - Cubo(a))
Con el algoritmo citado el resultado seria satisfacible pero erróneo ya que se concluye
que “un cubo es chico y es esfera”
1
Satisfacibilidad y completitud
{ a v -b, b v c, –a }
(a v –b) ^ (b v c) ^ –a
Un principio clásico para atacra este problema se conoce como Resolución o regla de
Robinson.
1
Resolución
La Programación Lógica tiene sus orígenes más cercanos en los trabajos de prueba
automática de teoremas de los años sesenta. J. A. Robinson propone en 1965 una regla
de inferencia a la que llama resolución, mediante la cual la demostración de un teorema
puede ser llevada a cabo de manera automática
La resolución es una regla que se aplica sobre cierto tipo de fórmulas del Cálculo de
Predicados de Primer Orden, llamadas cláusulas. La demostración de teoremas bajo esta
regla de inferencia se lleva a cabo por reducción al absurdo.
A partir de lenguajes preexistentes se desarrolló un lenguaje orientado a la
programación lógica que fue llamado precisamente Prolog. Con este lenguaje es posible
hacer preguntas sobre objetos y relaciones del dominio y estas preguntas se formulan
como objetivos o metas, que son evaluadas por el intérprete de Prolog utilizando su
mecanismo de inferencia interno, el cual determina si la meta a demostrar es una
consecuencia lógica del programa, aplicando reglas de deducción para obtener la
respuesta.
Por ejemplo, utilizando la cláusula de tipo meta ?abuelo(X,juan), para preguntar
quién es el abuelo de Juan? o bien quiénes son los abuelos de Juan?, es posible deducir
por ejemplo que Luis es abuelo de Juan, La ejecución del programa, arrojaría como
resultado X=luis.
El método de deducción utilizado por Prolog, para dar respuesta a los objetivos
planteados, se basa en el uso de una única regla de inferencia: el Principio de
Resolución. Los primeros trabajos de prueba automática de teoremas utilizaban la
resolución, aplicada a cláusulas cualesquiera, pero el problema de las deducciones con
cláusulas generales es el gran número de combinaciones posibles para llevar a cabo las
resoluciones. Por ello Prolog restringe el conjunto de cláusulas, lo que le permite llevar
a cabo una prueba dirigida y, en la mayoría de los casos, con un universo de
posibilidades explorable en tiempo de ejecución.
Fundamento de la Resolución
1
Para este método se definen las propiedades siguientes;
El algoritmo de resolución por refutación se puede sintetizar como una prueba de una
proposición P con respecto a un conjunto de axiomas C. A partir de esta definición se
establece el algoritmo que comprende los siguientes pasos.
Ejemplo: dada la siguiente inferencia en lenguaje natural, “La casa de enfrente parece
deshabitada desde hace unos días. Algunos diarios mojados yacen en el jardín. El
pasto se ve crecido. Por lo tanto, la gente de esa casa debe estar de viaje”. Evaluar la
validez de la inferencia por resolución.
1
-P v Q P -P v R P
Q -Q R -R
En el ejemplo anterior observamos que según las reglas que elijamos podemos llegar o
no a la solución correcta (F). Por ejemplo tomando -S v Q en lugar de -U v Q.
La explicación de esta falla es algo sutil. El procedimiento de resolución es completo
en lógica proposicional y no en lógica de predicados.
Como el ejemplo anterior esta planteado en lógica proposicional, deberíamos hallar
siempre la solución correcta.
Pero vemos en el ejemplo que esto puede no ocurrir. Esto es porque la afirmación de
que la resolución es completa en lógica proposicional, se basa en una demostración
teórica, pero esta no nos da un algoritmo para hacerlo. De modo que en la práctica este
procedimiento puede darnos un resultado erróneo si no disponemos de un algoritmo
adecuado. El algoritmo completo mas usado se llama DPLL, y se define por la
aplicación de un conjunto de reglas de las cuales veremos algunas en lo que sigue.
1
Resolución: Estrategias de aplicación
Estrategia de borrado.
Se dice que un literal es puro si no existe uno complementario con el que unifique en el
conjunto de cláusulas. Las cláusulas con literales puros son inútiles para obtener la
cláusula vacía, puesto que el literal puro no puede ser eliminado por resolución.
Eliminación de Tautologías.
Tautología es una cláusula que contiene el mismo literal en forma directa e inversa.
b v a v –b v c es una tautología
Una cláusula de este tipo no afecta la condición de satisfacibilidad del conjunto, este
será satisfacible o no aunque se añadan tautologías. Es posible entonces eliminar las
tautologías.
Eliminación de subsunciones
Una cláusula F subsume a una D si existe una sustituición s tal que s(F) este incuida en
D.
1
Resolución Unitaria
Un resolvente unitario es aquel en el que al menos uno de los padres es una cláusula
unitaria (con un solo literal).
En la estrategia de resolucion unitaria es la aplicación de resolución en la cual todos los
resolventes son unitarios.
Ejemplo: Se seleccionan siempre dos clausulas en las que una de ellas tenga un solo
literal
C={p v q, -p v r, -q v r, -r}
1. p v q
2. -p v r
3. -q v r
4. -r
5. -p (de 2 y 4)
6. -q (de 3 y 4)
7. q (de 1 y 5)
8. p (de 1 y 6)
9. r (de 3 y 7)
10. vacia (de 6 y 7)
Los resolventes generados son un subconjunto de los que podeían haberse obtenido sin
esta restricción, por ej. De 1 y 2 podría haberse obtenido q v r, pero esta clausula nunca
sera generada por esta estrategia.
Observar que en esta estrategia el resolvente siempre contiene menos literales que la
clausula padre no unitaria, por lo que el método sigue una búsqueda directa hacia la
cláusula vacía ganando eficiencia.
La estrategia no produce un algoritmo COMPLETO. Por ejemplo la fórmula
Resolución de entrada
Es aquella en la cual al menos una de las clausulas padre pertenece al conjunto original
de entrada
Ejemplo:
C={p v q, -p v r, -q v r, -r}
1. p v q
2. -p v r
3. -q v r
4. -r
5. q v r (de 1 y 2)
1
6. p v r (de 1 y 3)
7. -p (de 2 y 4)
8. r (de 2 y 6)
9. vacía (de 4 y 8)
Resolución Lineal
pvq -p v q p v –q -p v –q
-q q
vacia
Resolución ordenada
Es la mas eficiente.
1. p v q
2. -p v r
3. -q v r
4. -r
5. q v r (de 1 y 2)
6. r (de 3 y 5)
7. vacio (de 4 y 6)
1
Observese que 1 y 3, 2 y 4, 3 y 4 no resuelven por no ser los primeros los literales que
podrian combinarse.
No es completa pero si lo es para cláusulas de Horn, al igual que la lineal, por lo cual
son las que mas se emplean.
Si consideramos lo visto para ser aplicado en formulas que esten expresadas en lógica
de predicados, tendremos expresiones en las que aparecen en lugar de los literales, los
predicados y sus argumentos. A su vez estos últimos podrán ser variables o constantes,
por ejemplo:
Para poder aplicar la resolución en este caso, previamente debemos asignar valores a las
variables, lo que dependera del problema planteado, para de ese modo determinar que
cláusulas se podran seleccionar para aplicar resolución. Por ejemplo si damos a x el
valor a, podemos resolver las dos primeras cláusulas.
Desde el punto de vista lógico, los predicados con argumentos constantes son hechos.
Para poder determinar si un predicado p(x) –o una combinación mas compleja- se
corresponde con un hecho p(a) se debe instanciar x, lo que se conoce como unificación.
Es decir que no hablamos de “dar valor a las variables” sino de “unificar predicados”.
1
Unificación
Ejemplos:
1
Propagacion unitaria. HornSat. Importancia de cláusulas Horn.
Propagación Unitaria
El procedimiento se basa en considerar las cláusulas unitarias, i.e. cláusulas que son
compuestas de un literal simple. Si un conjunto de cláusulas contiene la cláusula
unitaria l, las otras cláusulas son simplificadas por la aplicación de las dos reglas
siguientes:
{avb,-avc,-cvd,a}
2
Algoritmo de Satisfacibilidad HornSat
En todas las cláusulas que contienen -l se remueve solo este literal negado.
El resultado de la segunda regla podría ser una cláusula unitaria la que se propaga
de la misma manera. La formula es satisfacible si esta transformación no genera
un par de cláusulas unitarias contradictorias l y -l.
Este algoritmo puede expresarse alternativamente de este otro modo, para determinar la
asignación de un valor de verdad a una formula Horn satisfacible: Todas las variables
contenidas en una cláusula unitaria son seteadas al valor que satisface la cláusula
unitaria; todos los otros literales se setean a falso. El resultado es el mínimo modelo de
la formula de Horn, es decir, la expresión con el conjunto mínimo variables y
asignación de verdad.
2
Una generalización de la clase de formulas Horn es la de formulas Horn renombrables,
las cuales en el conjunto de formulas que pueden ponerse en cláusulas Horn
reemplazando algunas variables con su respectiva negación. Checkear la existencia de
tal reemplazo puede hacerse en tiempo lineal; de donde la satisfacibilidad de tal
formula es en P ya que puede resolverse primero efectuando el reemplazo y luego
chekeando la satisfacibilidad de la formula Horn obtenida.
Ejemplos:
1)
-p v -q v r , -r v q , q
Tomando q
2)
-p v -q v r , -r v q , p
Tomando p
1)
-p v -q v r , -r v q , -q v s , s
Tomando s
-p v -q v r , -r v q
2
Consideraciones acerca del alcance y aplicaciones de los SE
Ante la metodología hasta aquí citada podríamos antes que nada preguntarnos
¿Que significado tiene pretender aplicar las herramientas de la lógica de predicados a
programas informáticos?, ¿Que alcance puede esperarse de estas aplicaciones en el
mundo real?, ¿Que problemas confronta esta idea?
En general tenemos al menos alguna noción de métodos formales de
representación de conocimientos y/o de resolución de problemas tales como el
formalismo matemático, el formalismo químico, la codificación de la música, etc.
Si tomamos por ejemplo el caso de la matemática, vemos que en el se aplican las
reglas de la lógica a un conjunto de símbolos cuyo significado esta definido con
precisión.
De estas simples ideas podemos intuir que para que la lógica de primer orden
nos garantice inferencias válidas, el significado de los símbolos a emplear debe ser
preciso, o dicho de otro modo no deben existir ambigüedades respecto del posible
significado de un símbolo. Por este motivo a menudo en el estudio de la lógica se
representan los predicados por solo una letra mayúscula que podrá ser verdadera o falsa,
por ejemplo “si A entonces B”.
En el caso de los SE se pretende aplicar la lógica a mundos que solo conocen en
profundidad los expertos humanos. Estos expertos expresan su conocimiento del mundo
que manejan con sus propias palabras. Estas palabras no son otra cosa que los símbolos
del lenguaje natural (humano) cuyo significado generalmente dista mucho de estar bien
establecido.
Por lo tanto, para que exista alguna chance de que un SE basado en el
formalismo lógico produzca inferencias correctas, se requiere en primer lugar definir los
símbolos (palabras y predicados) con los cuales se operará y su significado preciso.
Por otra parte, al expresar el experto humano su conocimiento en lenguaje
natural, existe la necesidad de que quien implemente el SE , (Quien a veces ha sido
llamado ingeniero del conocimiento) deba traducir los conocimientos expresados en
lenguaje natural por el experto humano a las expresiones lógicas correspondientes, para
que estas puedan ser procesadas por el SE.
Este último punto es de proverbial importancia y en muchos casos el talón de
Aquiles de los SE basados en reglas. Es natural que el lector se formule al respecto dos
preguntas centrales: ¿Cómo garantizar que las afirmaciones lógicas escritas por el
programador se correspondan exactamente en todos los casos con el conocimiento del
experto? ¿Es posible en un mundo complejo aplicar esta metodología de desarrollo de
un SE dada la inabordable cantidad de información a recopilar y sistematizar? La
respuesta a la segunda pregunta es que solo se intenta aplicar SE a mundos reducidos.
Por ejemplo se consideran absolutamente inviables para problemas de sentido común
dado la cantidad de información que debería sistematizarse. La respuesta a la primera
pregunta, parece ser que depende de la calidad del trabajo hecho por quien releva y
transcribe los conocimientos del experto, es decir un aspecto práctico que incide sobre
la confiabilidad que tendrá un sistema real.
En resumen, los SE se basan en la posibilidad de aplicar las nociones de lógica
formal para incrementar una base de conocimientos o demostrar hipótesis, y solo
pueden aplicarse prácticamente a mundos de muy baja complejidad, en el sentido de la
cantidad de símbolos y predicados que deben manejarse.
2
Empleo de reglas explícitas
Existen dos lenguajes muy difundidos orientados a este tipo de procesamiento, Lisp y
Prolog, este último fue desarrollado a partir del primero y se orienta específicamente a SE de
encadenamiento hacia atrás.
2
Unificación y Ligaduras
2
Sin embargo, cuando se trabaja en el campo de la IA Simbólica o Lingüística,
por usar solo algunas denominaciones posibles, se plantea un problema de
()
Filtro para primer
antecedente
(pluto es un perro)
(pluto es un animal)
2
6.5.1. Procedimientos de Correspondencia Simbólica
Ejemplos de datos
(color (? x) rojo)
(color manzana (? y) )
(color (? x) (? y) )
Sobre esta base de código la correspondencia simbólica se define como sigue:
Cuando un patrón no tiene variables de patrón, corresponde con un dato solo si es exactamente
el mismo que el dato (cada posición correspondiente ocupada por el mismo átomo).
En este caso (color manzana rojo) corresponde con (color manzana rojo) pero no con (color
manzana verde)
Asi que cuando un patron contiene variables de patrón estas actúan inicialmente como
comodín. Se observa que al intentar corresponder
Se “liga” la variable de patrón “x” con algún elemento del dato “manzana”
2
Encadenamiento
Encadenamiento Progresivo.
Encadenamiento Regresivo.
Ligaduras iniciales:
((CRIA . DAISY) (ANIMAL . PLATA))
((CRIA . RIKI) (ANIMAL . PLATA))
Ligaduras resultantes:
((ESPECIE . CABALLO) (ANIMAL . PLATA))
((ESPECIE . CABALLO) (ANIMAL . PLATA))
((CRIA . DAISY) (ANIMAL . PLATA))
((CRIA . RIKI) (ANIMAL . PLATA))
Ligaduras extendidas:
((ESPECIE . CABALLO) (ANIMAL . PLATA)(CRIA . RIKI) )
((ESPECIE . CABALLO) (ANIMAL . PLATA) (CRIA . DAISY))
Se concluiría con instanciación para nuevas afirmaciones a partir del patron de la
hipótesis y las ligaduras triples.
Se trata de verificar la hipótesis (cría "es un" especie) haciéndola corresponder
con elementos en ligaduras triples