Download Sistemas de Razonamiento Lógico

Document related concepts
Transcript
Sistemas de
Razonamiento
Lógico
Capítulo X
¿Cómo construir programas eficientes
que razonen de manera lógica?
X.I Introducción
Son sistemas que pueden representar el
conocimiento y efectuar razonamientos
sobre él.
Ventajas
Alto grado de modularidad
Independiente la estructura de control
de la estructura del conocimiento
(independencia)
Modifica el conocimiento con la
experiencia
Facilita el autoaprendizaje
Sistemas de razonamiento
automático
Se clasifican en cuatro grupos:
Demostradores de teoremas y
lenguajes de programación lógicos
Sistemas de producción
Sistemas de cuadro y redes
semánticas
Sistemas lógicos por descripción
Demostradores de teoremas
y lenguajes de programación
lógicos
En los demostradores de teoremas se
emplea la lógica de primer orden total.
(utilizado para trabajos matemáticos o
científicos)
En los lenguajes de programación
lógicos se restringe la lógica. Esto
impide el manejo de la negación, la
disyunción y la igualdad. (utiliza la
estructura de control con
encadenamiento hacia atrás)
Sistemas de producción
Al igual que en los lenguajes de
programación lógicos utilizan la
implicación como elemento primario de
las representaciones. Intersección de
los conocimientos de la base de datos
con las entradas y salidas (utiliza la
estructura de control con
encadenamiento hacia adelante)
Sistemas de cuadro y redes
semánticas
Los objetos representan nodos en una
gráfica organizados de acuerdo con
una estructura taxonómica y
vinculados para representar relaciones
binarias
Sistemas lógicos por
descripción
La idea consiste en emplear como medio
de expresión y de razonamiento las
definiciones complejas de objetos y
clases, así como sus relaciones entre
ellos
Técnicas para mantener una
base de conocimiento
1.
2.
3.
4.
Implantación de oraciones y términos
Almacenar y recoger
Indización basada en tablas
Indización basada en árboles
Implantación de oraciones y
términos
Para construir un sistema de
razonamiento debe definirse:
Tipo de datos de las oraciones y los
términos
Definir las sintaxis de las oraciones
Definir la representación interna en
donde el sistema guardará y manejará
las oraciones
Almacenar y recoger
Recoger(BC,Q): Debe recorrer todos los
elementos de la base de
conocimientos, de uno a la vez, hasta
que coincida con Q o hasta llegar al
final
Guardar(BC,S): Representa añadir todos
los conjuntos de la oración S a la base
de conocimientos BC
Indización basada en tablas
 Implantar la base de conocimientos como
una tabla de dispersión.
 Las tablas de dispersión son estructuras de
datos para guardar y recuperar información
que se indiza por medio de llaves fijas.
 Los tiempos de acceso y almacenamiento
son constantes aun cuando en dicha tabla
exista una gran cantidad de elementos
 Las tablas son ideales cuando existen varios
signos de predicado y pocas cláusulas por
signo
Indización basada en un
arbol
Hace posible una búsqueda más
eficiente
Es necesario indizar los argumentos
como los signos de los predicados
Esta estructura organiza la BC donde
cada nodo es una tabla indizada por el
valor correspondiente a una
determinada posición de oración
Indización basada en árboles
Ejemplo: En el caso de una base de
datos de conocimientos, como la
Oficina de Censos de Estados
Unidos en donde se utilizan
¿Predicado?
los números de afiliación al
seguro social para
representar a las
Hermano
personas. Se
desea conocer
la consulta:
¿Primer argumento?
Hermano (012-34-5678,x).
012-34-5678
X.III Sistemas de
programación lógicos
La programación lógica considera:
 al programa y a sus entradas como
aseveraciones lógicas acerca del mundo
 al procedimiento como el control y
unificación de la inferencia
La relación lógica y el algoritmo se resumen a
la ecuación de Robert Kowalski:
ALGORITMO = LOGICA + CONTROL
Los lenguajes de programación permiten
escribir algoritmos al complementar las
oraciones lógicas con información para
control del procedimiento de inferencia
El Lenguaje PROLOG
PROLOG es un lenguaje de
programación lógica que más se a
utilizado.
Aplicaciones:
Para elaborar prototipos
En tareas donde hay que manejar
signos
En sistemas expertos en las áreas
legales, medicina, financiera y otras
PROLOG - Implantación
 Todas las inferencias se realizan por
ENCADENAMIENTO-HACIA- ATRÁS.
Cuando en el proceso de demostración de
una oración se tope con un callejón sin
salida, Prolog retrocederá al paso inmediato.
 El orden de búsqueda de un antecedente es
siempre de izquierda a derecha
 Las cláusulas de la base de conocimientos
se aplica en orden de primero al último
 La búsqueda es preferente por profundidad
 La ejecución de un programa se realiza por
interpretación y por compilación.
PROLOG - Ventajas
El modelo de ejecución es lo
suficientemente sencillo como para
que un programador con la
capacitación necesaria pueda
incorporar información de control y
producir así programas eficientes
PROLOG – Mejoras
Punto de elección
En vez de construir la lista de todas las
respuestas posibles para cada subtema,
PROLOG genera una respuesta y una
promesa o punto de elección. Una vez que
la búsqueda preferente por profundidad
concluye, retrocede hasta el punto de
elección y se expande para producir una
nueva submeta y un nuevo punto de
elección.
Ventajas:
 Permite ahorrar tiempo y espacio
 Más sencilla la depuración puesto que
trabaja con una sola ruta de solución
PROLOG – Mejoras
Pista
El Encadenamiento-hacia-atrás implica el
consumo de mucho tiempo para
sustituciones. PROLOG implementa
variables lógicas capaces de recordar su
vinculación actual. De esta manera se
produce una sustitución a la vez. Si fallara
una ruta de la búsqueda, PROLOG
retrocederá a un punto de elección previo y
posiblemente allí deba desvincular alguna
variable. Para ello es necesario que lleve un
registro de todas las variables vinculadas en
una pila que se conoce con el nombre de
pista
PROLOG –
Recurso avanzados de control
 Metarrazonamiento: Permite al programador
escribir metarreglas donde se afirme que la
meta que implica menos variables se
resuelva primero
 Salto regresivo: De esta manera se evita
tener que hacer repeticiones inútiles dando
un salto reversivo mediante la información
que el compilador conserva y que llevaron a
ir a un callejón sin salida.
X.V Sistemas de producción
por encadenamiento hacia
adelante
Se aplican reglas de inferencia a la base
de conocimientos. Este procedimiento
se repite indefinidamente o hasta que
se logra satisfacer un criterio de paro.
Características
 Memoria de trabajo: donde se guardan el
conjunto de literales positivas que no tienen
variables.
 Memoria de reglas: Reglas del tipo
p1, p2 => act1, act2
donde pi son literales y acti son acciones
 Fases:
Fase de cotejo
Fase de resolución de conflictos
Fase de actuación
Fase de cotejo – red rete
Memoria de reglas
A(x) and B(x) and C(x) =>anadir D(x)
A(x) and B(y) and D(x) =>anadir E(x)
A(x) and B(x) and E(x) =>borrar A(x)
A
B
A(1),A(2) B(2),B(3),B(4)
D
A=D
añadir E
A=B
C
añadir D
A(2)
C(5)
B(2)
Ventajas
Memoria de trabajo
{A(1),A(2),B(1),B(2),B(3)}
E
D(2)
borrar A
 Elimina la duplicación en las reglas (las tres comienzan
por la conjunción A y B , parte que se puede compartir)
 Elimina el tiempo de duplicación
Fase de solución de conflictos
Esta fase es de control y determina cuales de
las reglas de la fase de cotejo se ejecutarán.
Criterios
 No duplicación: No aplica dos veces la
misma regla a los mismos argumentos
 Novedad: Prefiere aquellas reglas más
recientes
 Especificidad: Prefiere reglas más
específicas
 Prioridad de operación: prefiere aquellas
acciones que tienen mayor prioridad
Fase de actuación
Los sistemas de producción son
sistemas expertos que aplican
inteligencia artificial.
Utilidad
Para la resolución de conflictos
Para guardar los resultados de los
razonamientos para ser utilizados en el
futuro
Sistemas de Marco y
Redes Semánticas
Las redes semánticas son una representación
por nodos y vínculos de la lógica. Esta
lógica se la considera de primer orden
Características
 Más fácil es su comprensión
 Modelo más sencillo
 Mejor visualización de los pasos que dará
un procedimiento de inferencia
 Impide consultas complicadas porque el
lenguaje es sencillo
Sintaxis y semántica de las
redes semánticas
En las redes semánticas hablamos de:
 Categorías de objetos
 Relaciones
Notación Gráfica (redes semánticas)
Gatos
subconjunto
Mamíferos
Notación Normalizada
x Gato(x) => Mamífero(x)
Herencia múltiple
 Se da cuando un objeto pertenece a más de
una categoría, y por lo tanto, hereda
propiedades de varias rutas.
 Pueden existir conflictos que produzcan
conflictos. Para ello es necesario contar con
una base de conocimientos para resolver
estas situaciones
Implantación de
redes semánticas
Las redes semánticas se implantan
mediante lenguaje de programación
lógica.
Las distintas funciones y
procedimientos van recorriendo los
vínculos que corresponda hasta
encontrar lo que se está buscando o
hasta que se sale de los vínculos.
Lógica para la descripción
 La lógica de la descripción permite efectuar
operaciones lógicas directas en los
predicados en vez de tener que crear
oraciones que se unen por medio de
conectores
 La lógica de la descripción carece de la
negación y la disyunción ya que en la
mayoría de los casos hacen que la función
de tiempo de resolución sea exponencial
Manejo de retracciones
La capacidad de retractar una oración en la
base de conocimientos corresponde a los
siguientes casos:
 Un hecho que ha perdido importancia se
desea eliminarlo para aprevechar ese lugar.
 El sistema no le importa almacenar datos
correspondientes al pasado.
 El sistema concluye que algo es verdad pero
se desea suponer que es falso.
Suposiciones
Ofrecer explicaciones de las
preposiciones puede no siempre ser
posible.
De ahí basarse en suposiciones para dar
una acertada explicación
Conclusión
Existen distintos razonamientos y estos
pueden ser representados y aplicados por
diferentes métodos de acuerdo a la lógica
que se aplique. Si bien hablamos en todo
momento de una lógica de primer orden se
puede optar por una representación gráfica
o más bien algo más metodológico se puede
optar por lógicas como puede ser la
notación normalizada.
El hecho de aplicar una programación a la
interpretación de textos y oraciones hace
posibles, independientemente del método
que empleemos, la aplicación de los
conocimientos en forma automatizada