Sistemas de Razonamiento Lógico

Slides:



Advertisements
Presentaciones similares
Números reales/El valor absoluto.
Advertisements

Resolución aproximada de ecuaciones Ejemplos
Límites de Funciones Definición de Límites Propiedades de Límites
INTELIGENCIA ARTIFICIAL
INSTITUTO TECNOLÓGICO DE MINATITLÁN
Inteligencia Artificial
Compiladores e intérpretes
LICENCIATURA EN SISTEMAS COMPUTACIONALES EN ADMINISTRACION
TECNICATURA UNIVERSITARIA EN INFORMATICA
Introducción a LAS Bases de Datos
Conocimiento Base de conocimientos:
PROGRAMACION DE ESTRUCTURAS DE DATOS
Metodología de la Programación
Programación 1 Introducción
Traducción dirigida por la Sintaxis
Algoritmos Aleatorizados
Teoría de lenguajes y compiladores
UNIDAD II Modelo de Datos.
Introducción al lenguaje de programación lógico Prolog
INTERFAZ DE ACCES DISEÑO DE BASE DE DATOS
CAPITULO 2 La Representación del Conocimiento
CLASE FUNCIONES Y GRÁFICAS MTRO
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
PROGRAMACIÓN LÓGICA.
UNIDAD I Conceptos Básicos.
TRADUCTOR DE UN PROGRAMA
Criterios de la Orientación a Objetos 1. Método y Lenguaje (proceso de pensamiento y notaciones para analizar y producir software). 2. Implementación y.
CARACTERÍSTICAS DE LOS PROGRAMAS
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Representación del conocimiento
UNIVERSIDAD AUTONOMA SAN FRANCISCO
Estructura de Datos y Algoritmos
Inteligencia artificial
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
Clase 10: Estructuras de datos y arreglos.
Métodos de búsqueda Unidad 6.
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Procesamiento Práctico del lenguaje Natural Capítulo XXIII.
SOFTWARE DE PROGRAMACIÓN
Resolución, la regla de inferencia y el cálculo Raúl Monroy.
CONFORMACIÓN DEL MANUAL DE PROCESOS Y PROCEDIMIENTOS
Campus Estado de México—Raúl Monroy Resolución, la regla de inferencia y el cálculo Raúl Monroy.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Programación de Sistemas
Introducción a la programación
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
ANÁLISIS DE LA INFORMACIÓN Descripción de los datos
Metodología para la construcción de programas
DEFINICIÓN DE OBJETO Un objeto es aquello que puede ser observado, estudiado y aprendido CARACTERÍSTICAS nos permiten conocerlos mediante la observación,
Metodología de la programación
Prof. Flor Narciso Departamento de Computación
ALGORITMO QUE ES ??.
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
Teoría de lenguajes y compiladores
Reglas Básicas del Álgebra de Boole
Sistemas Basados en Reglas
SISTEMA BASADO EN CONOCIMIENTO
árbol de problemas y objetivos
Lic. Carla Aguirre Montalvo
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
MIA - Grupo 5 Unidad 2.

Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 3 Programas.
Programación de Sistemas
INTELIGENCIA ARTIFICIAL
Desarrollo de Sistemas Expertos
Algoritmo Genético para la solución del problema SAT René Clemente Juárez Angel Felipe Lara Valladares Junio 2012.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

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 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 los números de afiliación al seguro social para representar a las personas. Se desea conocer la consulta: Hermano (012-34-5678,x). ¿Predicado? Hermano ¿Primer argumento? 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

PROLOG es un lenguaje de programación lógica que más se a utilizado. 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.

donde pi son literales y acti son acciones 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) Memoria de trabajo {A(1),A(2),B(1),B(2),B(3)} D A=D añadir E A B A=B C añadir D C(5) A(1),A(2) B(2),B(3),B(4) A(2) B(2) D(2) E borrar A Ventajas 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.

De ahí basarse en suposiciones para dar una acertada explicación 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