Universidad de Zaragoza

 
Programa de la Asignatura INGENIERIA DE LOS SISTEMAS BASADOS EN EL CONOCIMIENTO 
Universidad de Zaragoza
 
Titulación: Ingeniería Informática. Optativa 2º ciclo
Horas anuales: Créditos: (4 Teóricos, 2 Prácticos) -Cuatrimestre Otoño
Profesores:   José Angel Banares 
 

Atención: La asignatura se imparte en el cuatrimestre de Otoño

Objetivos

Este curso cubre los fundamentos teóricos de los sistemas basados en el conocimiento (SBC) como una rama de la inteligencia artificial, así como los aspectos prácticos del desarrollo de SBC.  Se persiguen tres objetivos:
  1. Que el  estudiante comprenda  la naturaleza,  limitaciones, y aplicaciones viables de los sistemas basados en el conocimiento;
  2. que el estudiante utilice, de manera efectiva, entornos de desarrollo de sistemas basados en el conocimiento; y
  3.  que el estudiante sea capaz de  construir  sus propios sistemas de razonamiento, dando una visión más práctica y de  implementación de la Inteligencia Artificial y la  Ingeniería del Conocimiento .

Temas

    Parte I: Introducción a los Sistemas Basados en el Conocimiento

    1.- Sistemas basados en el conocimiento

    Introducción. Funcionalidad. Estructura. Sistemas Expertos. Desarrollo de sistemas basados en el Conocimiento: Niveles para describir sistemas basados en el conocimiento, Clasificación de tareas, Técnicas de resolución de problemas

    Parte II: Modelos Básicos de Representación del conocimiento

    2.- Introducción a los Sistemas Basados en Reglas

    Introducción. Sistemas de producción/lenguajes basados en reglas. Arquitectura  de los lenguajes basados en reglas. Memoria de trabajo y producción. Proceso de reconocimiento: Red de Inferencia, sistemas de reconocimiento de patrones. El proceso de razonamiento: Encadenamiento progresivo y regresivo. Estrategias de control. Ventajas y desventajas de los lenguajes basados en reglas.

    3.- Aspectos metodológicos en la programación de lenguajes basados en reglas

    Definición del problema, Análisis de requisitos. Identificación de objetos y atributos. Identificación de acciones.  Elección de la estrategia de resolución. Entradas y salidas. Diseño de las reglas.

    4.- Organización y control de programas basados en reglas

    ¿Cómo y dónde representar el conocimiento?. Desarrollo de sistemas de producción: Desarrollo por elaboración, refinamiento y generalización. Introducción al control en lenguajes tipo OPS5. Diseño modular y técnicas de control en CLIPS.

    5.- Eficiencia en sistemas de reconocimiento de patrones

    Proceso de reconocimiento de patrones. Algoritmo de RETE. Algoritmo de TREAT. Como escribir programas eficientes: El orden de los patrones en las premisas, multislots, test y funciones en las premisas, Técnicas de programación para mejorar la eficiencia

    6.- Ejemplos de resolución de problemas con sistemas de producción

    Árboles de decisión. Emulación de encadenamiento regresivo. Sistemas de Monitorización. Problemas de espacios de estados.

    7.- Representación estructurada del conocimiento con sistemas de objetos: CLOS

    Introducción. Elementos CLOS: Clases e instancias, funciones  genéricas y métodos.  Programación con métodos: Combinación de métodos, multi-métodos. Herencia:  Lista de precedencia de clases, herencia de slots y opciones de slots. Implementación de demonios. Control del selector de métodos: Técnicas imperativas y declarativas. Ejemplos de programación CLOS.

    8.- Integración de distintos esquemas de representación: CLIPS

    Selección del esquema de representación para representar el conocimiento. Acciones procedimentales y Funciones en CLIPS.  Programación orientada a objeto en CLIPS: Objetos CLIPS, Facets, Definición de métodos, Definición de funciones genéricas. Recuperación y acciónes sobre grupos de instancias. Ejemplos de
     programación en CLIPS.

    9.- Entorno de desarrollo de sistemas basados en el conocimiento: KEE

    Introducción. Representación basada en frames: UNITS. Tell and Ask. Sistemas de Reglas. Ejemplo de razonamiento en KEE.

    Parte III:  Modelos para representación del razonamiento complejo

    10.- Conocimientos estratégicos y de control.

    Representación de los conocimientos de control: Tipos de control. Control de alto nivel. Arquitectura de Pizarra:  Concepto de pizarras, organización de la información, análisis, diseño e implementación de una arquitectura  de pizarra. Arquitecturas Cooperativas: Objetivo y componentes de arquitecturas  multiagentes.

    11.- Razonamiento simbólico bajo incertidumbre. Sistemas de mantenimiento del razonamiento (TMS)

    Introducción al razonamiento no monótono. Ampliación del resolutor de problemas. TMS en justificaciones (JTMS). TMS basado en la lógica (LTMS). TMS basado en suposiciones (ATMS). Herramientas en CLIPS para establecer dependencias entre hechos. Los mundos de KEE.

    12.- Razonamiento bajo incertidumbre. Razonamiento estadístico

    Introducción. La probabilidad y el teorema de Bayes. Introducción a los sistemas expertos basados en la probabilidad: La base de conocimiento, el motor de inferencia, el control de la coherencia. Introducción de la incertidumbre en los sistemas basados en reglas: Factores de certeza (FC), MYCIN. Incorporación de FC en CLIPS.

    Parte IV:  Construcción de Sistemas de razonamiento

    13.- Implementación de sistemas de inferencia dirigidos por patrones

    Implementación de algoritmos de correspondencia de patrones y de unificiación. Implementación de un sistema de encadenamiento progresivo con variables. Implementación de un sistema de encadenamiento regresivo con variables. Implementación de un sistema con mecanismo de contextos para manejo de suposiciones.

    14.- Implementación de resolutores de problemas con TMS

    Diseño e Implementación de un TMS  basado en justificaciones (JTMS). Integración de un JTMS con un motor de inferencia. Ejemplo de aplicación: Búsqueda  dirigida por dependencias. Reconstrucción de SAINT (resolución de  integrales indefinidas).
     

NOVEDAD

Transparencias del curso y material de acceso restringido (Pulsa aquí, Pide el login y el password al profesor)

Programa de prácticas de laboratorio

BIBLIOGRAFIA BASICA:

  1. L. BROWSTON, F. FARRELL, E. KANT AND N. MARTIN: Programming Expert Systems in OPS5: An Introduction to Rule-Based Programming. Adisson-Wesley, 1985,
  2. K. D. FORBUS AND J. DE KLEER:  Building Problem Solvers. The MIT Press. 1993. El código de este libro está dispobible en http://www.qrg.ils.nwu.edu/BPS/readme.html
  3.  J. GIARRATANO AND G. RILEY: Expert Systems. Principles and Programming. Second Edition. PWS Publishing Company, 1994.
  4. A. GÓMEZ, N. JURISTO, C. MONTES Y  J. PAZOS: Ingeniería del Conocimiento. Editorial Centro de Estudios Ramón Areces, S.A., 1997,
  5. A.J.  GONZALEZ AND D.D.  DANKELL:  Engineering of knowledge-based systems. Prentice Hall, 1993.
  6. E. CASTILLO, J.M.GUTIÉRREZ Y A.S. HADI. Sistemas Expertos y Modelos de Redes Probabilísticas. Monografías de la Academia de Ingeniería, 1997.
  7.  S. E. KEENE: Object-Oriented Programming in Common Lisp. A Programmer's Guide to CLOS, Adisson-Wesley, 1989.
  8. P.H.WINSTON, B.K.H. HORN: Lisp, Tercera Edición. Addison Wesley. 1989,
Se facilitarán copias de las transparencias utilizadas para impartir la asignatura y artículos relacionados
 
 

SISTEMA DE EVALUACION:

 

Otras Asignaturas relacionadas:

Tutorias

Enlaces de Interés

Curiosidades

La nueva película de Steven Spielberg (AI, Artificial Intelligence)

 
 
Autor: José Angel Bañares [ banares@posta.unizar.es ] 
URL: http://diana.cps.unizar.es/IC/IC.html
Última actualización: 13/12/2000