34
Sistemas de Sistemas de Razonamiento Razonamiento Lógico Lógico Capítulo X

Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

Embed Size (px)

Citation preview

Page 1: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

Sistemas deSistemas deRazonamientoRazonamiento

LógicoLógico

Capítulo X

Page 2: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

¿Cómo construir programas eficientes que razonen de manera lógica?

Page 3: Sistemas de Razonamiento Ló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

Page 4: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 5: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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)

Page 6: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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)

Page 7: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 8: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 9: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 10: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 11: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 12: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 13: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 14: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 15: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 16: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 17: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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.

Page 18: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 19: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 20: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 21: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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.

Page 22: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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.

Page 23: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 24: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 25: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 26: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 27: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 28: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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)

Page 29: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 30: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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.

Page 31: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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

Page 32: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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.

Page 33: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

SuposicionesSuposiciones

Ofrecer explicaciones de las preposiciones puede no siempre ser

posible.

De ahí basarse en suposiciones para dar una acertada explicación

Page 34: Sistemas de Razonamiento Lógico Capítulo X. ¿Cómo construir programas eficientes que razonen de manera lógica?

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