Sistemas deSistemas deRazonamientoRazonamiento
LógicoLógico
Capítulo X
¿Cómo construir programas eficientes que razonen de manera lógica?
X.I IntroducciónX.I IntroducciónSon sistemas que pueden representar el
conocimiento y efectuar razonamientos sobre él.
VentajasVentajasAlto grado de modularidadIndependiente la estructura de control
de la estructura del conocimiento (independencia)
Modifica el conocimiento con la experiencia
Facilita el autoaprendizaje
Sistemas de razonamiento Sistemas de razonamiento automáticoautomático
Se clasifican en cuatro grupos:
Demostradores de teoremas y lenguajes de programación lógicos
Sistemas de producciónSistemas de cuadro y redes
semánticasSistemas lógicos por descripción
Demostradores de teoremas Demostradores de teoremas y lenguajes de programación y lenguajes de programación
lógicoslógicosEn los demostradores de teoremasdemostradores 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 lenguajes de programación lógicos 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ónSistemas 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 Sistemas de cuadro y redes semánticassemá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 Sistemas lógicos por descripcióndescripció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 Técnicas para mantener una base de conocimientobase de conocimiento
1. Implantación de oraciones y términos
2. Almacenar y recoger
3. Indización basada en tablas
4. Indización basada en árboles
Implantación de oraciones y Implantación de oraciones y términostérminos
Para construir un sistema de razonamiento debe definirse:
Tipo de datos de las oraciones y los términos
Definir las sintaxis de las oracionesDefinir la representación interna en
donde el sistema guardará y manejará las oraciones
Almacenar y recogerAlmacenar y recoger
Recoger(BC,Q):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):Guardar(BC,S): Representa añadir todos los conjuntos de la oración S a la base
de conocimientos BC
Indización basada en tablasIndización basada en tablas
Implantar la base de conocimientos como una tabla de dispersión.
Las tablas de dispersióntablas 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 Indización basada en un arbolarbol
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 árbolesIndización basada en árboles
¿Predicado?
¿Primer argumento?
Ejemplo: En el caso de una base de datos de conocimientos, como la Oficina de Censos de Estados Unidos en donde se utilizan los números de afiliación al seguro social para representar a las personas. Se desea conocer la consulta:
Hermano (012-34-5678,x).
Hermano
012-34-5678
X.III Sistemas deX.III Sistemas deprogramación lógicosprogramación lógicosLa 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 + CONTROLALGORITMO = LOGICA + CONTROLLos lenguajes de programación permiten
escribir algoritmos al complementar las oraciones lógicas con información para control del procedimiento de inferencia
El Lenguaje PROLOGEl Lenguaje PROLOG
PROLOGPROLOG es un lenguaje de programación lógica que más se a
utilizado.
Aplicaciones:Aplicaciones:Para elaborar prototiposEn tareas donde hay que manejar
signosEn sistemas expertos en las áreas
legales, medicina, financiera y otras
PROLOG - ImplantaciónPROLOG - 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 - VentajasPROLOG - 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 eficientesprogramas eficientes
PROLOG – MejorasPROLOG – MejorasPunto de elecciónPunto 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ónpunto 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:Ventajas:
Permite ahorrar tiempo y espacio Más sencilla la depuración puesto que
trabaja con una sola ruta de solución
PROLOG – MejorasPROLOG – MejorasPistaPista
El Encadenamiento-hacia-atrás implica el consumo de mucho tiempo para
sustituciones. PROLOG implementa variables lógicasvariables 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 pilauna pila que se conoce con el nombre de pista
PROLOG –PROLOG –Recurso avanzados de controlRecurso avanzados de control
MetarrazonamientoMetarrazonamiento: Permite al programador escribir metarreglas donde se afirme que la meta que implica menos variables se resuelva primero
Salto regresivoSalto 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 X.V Sistemas de producción por encadenamiento hacia por encadenamiento hacia
adelanteadelante
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ísticasCaracterí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 cotejoFase de resolución de conflictosFase de actuación
Fase de cotejo – red reteFase de cotejo – red reteMemoria de reglasMemoria 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 C
D
E
A=B
A=D añadir E
añadir D
borrar A
A(1),A(2) B(2),B(3),B(4) A(2)
B(2)
C(5) D(2)
Memoria de trabajoMemoria de trabajo
{A(1),A(2),B(1),B(2),B(3)}
VentajasVentajas 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 conflictosFase de solución de conflictos
Esta fase es de control y determina cuales de las reglas de la fase de cotejo se ejecutarán.
CriteriosCriterios 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ónFase de actuación
Los sistemas de producción sistemas de producción son sistemas expertos que aplican
inteligencia artificial.
UtilidadUtilidadPara la resolución de conflictosPara guardar los resultados de los
razonamientos para ser utilizados en el futuro
Sistemas de Marco ySistemas de Marco yRedes SemánticasRedes Semánticas
Las redes semánticasredes 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ísticasCaracterí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 Sintaxis y semántica de las redes semánticasredes semánticas
En las redes semánticas hablamos de: Categorías de objetos Relaciones
Notación GráficaNotación Gráfica (redes semánticas)Gatos subconjunto Mamíferos
Notación NormalizadaNotación Normalizada x Gato(x) => Mamífero(x)
Herencia múltipleHerencia 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 deImplantación deredes semánticasredes 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ónLó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 retraccionesManejo 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.
SuposicionesSuposiciones
Ofrecer explicaciones de las preposiciones puede no siempre ser
posible.
De ahí basarse en suposiciones para dar una acertada explicación
ConclusiónConclusiónExisten 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