Pasar al contenido principal

Ingeniería del Conocimiento y Sistemas Distribuidos Inteligentes

Créditos
6
Tipos
Complementaria de especialidad (Ingeniería del Software)
Requisitos
Departamento
CS
El objetivo de esta asignatura es dar al alumno los conocimientos básicos sobre las últimas tendencias en el uso de técnicas de Intelogencia Artificial en sistemas distribuidos de forma que pueda entenderlas y utilizarlas en su práctica profesional. Se prevé que el contenido de la asignatura se vaya actualizando continuamente para incorporar las nuevas tendencias que vayan surgiendo. En este curso se presentan metodologías, técnicas y tecnologías de la Inteligencia Artificial que se están aplicando ya en la ingeniería de sistemas distribuidos para hacerlos más flexibles, adaptables y reconfigurables. Se verá, por un lado, un nuevo paradigma de metodologías de diseño del software basado en agentes, en donde el análisis y diseño de sistemas distribuidos utiliza conceptos de las sociedades y organizaciones humanas (actor, rol, responsabilidad, delegación de tareas) para modelar flexiblemente las posibles interacciones dentro del sistema y las formas de recuperarse de fallos. Por otra parte veremos cómo se están aplicando tecnologías inteligentes (razonadores lógicos, planificadores automáticos, mecanismos de negociación y argumentación) para extender las tecnologías de servicios web semánticos hacia su máximo potencial, y para hacerlos más flexibles y adaptativos

Profesorado

Responsable

  • Javier Béjar Alonso (bejar@cs.upc.edu)

Horas semanales

Teoría
2
Problemas
1
Laboratorio
1
Aprendizaje dirigido
0
Aprendizaje autónomo
6

Competencias

Competencias técnicas comunes

  • CT4 - Demostrar conocimiento y capacidad de aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y la complejidad de los algoritmos
    • CT4.3 - Demostrar conocimiento y capacidad de aplicación de los principios fundamentales y las técnicas básicas de los sistemas inteligentes y su aplicación práctica.
  • Especialidad ingeniería del software

  • CES1 - Desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario, que se comporten de forma fiable y eficiente, que tengan un desarrollo y mantenimiento asequible y que cumplan normas de calidad, aplicando las teorías, los principios, los métodos y las prácticas de Ingeniería del Software.
    • CES1.4 - Desarrollar, mantener y evaluar servicios y aplicaciones distribuidas con soporte de red.
  • Razonamiento

  • G9 [Avaluable] - Capacidad de razonamiento crítico, lógico y matemático. Capacidad para resolver problemas dentro de su área de estudio. Capacidad de abstracción: capacidad de crear y utilizar modelos que reflejen situaciones reales. Capacidad de diseñar y realizar experimentos sencillos, y analizar e interpretar sus resultados. Capacidad de análisis, síntesis y evaluación.
    • G9.3 - Capacidad crítica, capacidad de evaluación.
  • Objetivos

    1. Conocer los orígenes y las bases de la computación distribuida en Internet
      Competencias relacionadas: CT4.3,
    2. Entender los conceptos básicos: “Computación por Interacción”, Orientación a Servicios, Cloud Computing, Future Internet
      Competencias relacionadas: CT4.3,
    3. Conocer posibles aplicaciones de la Inteligencia Artificial para los sistemas distribuidos en Internet
      Competencias relacionadas: CT4.3,
    4. Entender los conceptos básicos de Orientación a Servicios
      Competencias relacionadas: CT4.3,
    5. Entender los conceptos básicos de Orientación a Agentes
      Competencias relacionadas: CT4.3,
    6. Analizar un problema de naturaleza distribuida e identificar los diferentes actores y sus funcionalidades
      Competencias relacionadas: G9.3, CES1.4,
    7. Diseñar sistemas distribuidos aplicando una metodologia orientada a agentes
      Competencias relacionadas: CES1.4, CT4.3,
    8. Analizar un diseño orientado a agentes e identificar los puntos a mejorar
      Competencias relacionadas: G9.3, CES1.4,
    9. Entender los conceptos básics sobre representación del contexto.
      Competencias relacionadas: CT4.3,
    10. Analizar un problema de naturaleza distribuida e identificar la información de contexto que es necesaria.
      Competencias relacionadas: G9.3, CES1.4,
    11. Extraer y representar el conocimiento necesario sobre el contexto para construir una aplicación distribuida en Internet que sea flexible y robusta.
      Competencias relacionadas: G9.3, CES1.4,
    12. Diseñar ontologias sobre un contexto aplicando adecuadamente una metodologia
      Competencias relacionadas: CES1.4, CT4.3,
    13. Entender los conceptos relacionados con la composición dinámica de servicios
      Competencias relacionadas: CT4.3,
    14. Describir servicios web de forma que puedan ser incorporados en un proceso de composición dinámica
      Competencias relacionadas: CES1.4, CT4.3,
    15. Extraer y representar las acciones necesarias para resolver la composición dinámica mediante un planificador
      Competencias relacionadas: CES1.4, CT4.3,
    16. Entender el concepto de aprendizaje y conocer algunos de sus tipos.
      Competencias relacionadas: CT4.3,
    17. Entender la relación entre adaptación y aprendizaje.
      Competencias relacionadas: CT4.3,
    18. Entender como se puede aplicar el aprendizaje automático a la adaptación al usuario.
      Competencias relacionadas: CT4.3,
    19. Entender como se puede aplicar el aprendizaje automático a la adaptación a fallos.
      Competencias relacionadas: CT4.3,

    Contenidos

    1. Introducción
      Evolución de la Computación Distribuida: de RPCs a SOA. Concepto de 'Computation as interaction'. Nuevas tendencias: Cloud Computing y Future Internet. El Papel de la IA en SOA y Future Internet.
    2. Diseño de aplicaciones distribuidas orientado a agentes
      Introducción a la Orientación a Servicios y el estandar W3C. Limitaciones del modelo. Introducción a la Orientación a Agentes y el estandar IEEE-FIPA. Conceptos básicos: Agente y Sistema Multiagente. Metodologías de diseño orientado a agentes. Ventajas.
    3. Modelando el contexto en sistemas distribuidos
      Modelando el contexto en SOA: lenguajes de descripción de servicios, orquestación y coreografia. Representación del contexto: dominio, modelo del dominio, conocimiento, representación del conocimiento. Ingeniería del conocimiento aplicada al desarrollo de sistemas distribuidos en la Web. Representaciones basadas en Ontologias. Web Semántica y Linked Data como modelo de representación.
    4. Composición dinámica de servicios
      Descripción semantica de servicios, Service Discovery y Service Matchmakers. Problemas de los modelos estáticos de orquestación y coreografia. Diferentes aproximaciones a la Composición dinámica: goal driven, state driven, utility driven. Planificación aplicada a la composición dinámica de servicios.
    5. Adaptación al usuario. Perfilado de usuarios
      Adaptación implica aprendizaje. Conceptos básicos de perfilado: perfil individual y perfil social. Aprendizaje Inductivo, Sistemas Recomendadores y Aprendizaje por refuerzo.
    6. Otras aplicaciones de IA a sistemas distribuidos
      Governanza mediante modelos sociales: reputación, normas. Modelos de estructuras sociales: equipos, alianzas, coaliciones, organizaciones. Ejemplos.

    Actividades

    Actividad Acto evaluativo


    Introducción a la computación distribuida

    El alumno conocerá los orígenes y las bases de la Computación Distribuida y las nuevas tendencias de futuro. Para reforzar el aprendizaje del alumno, deberá leer un artículo de la Comisión Europea sobre "Future Internet", disponible en la red.
    Objetivos: 1 2 3 4
    Contenidos:
    Teoría
    2h
    Problemas
    1h
    Laboratorio
    1h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Diseño de aplicaciones distribuidas orientadas a agentes

    El alumno no sólo deberá atender a las exposiciones del profesor, sino también hacer ejercicios prácticos sobre modelado orientado a agentes, y participar en las discusiones con el profesor y sus compañeros sobre cuál es la forma mejor de modelar problemas distribuidos. En el laboratorio el alumno deberá aplicar lo aprendido a un problema de dificultad media.
    Objetivos: 4 5 6 7 8
    Contenidos:
    Teoría
    6h
    Problemas
    4h
    Laboratorio
    4h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    17h

    Entrega de la práctica de modelado orientado a agentes

    Entrega del informe sobre la práctica de modelado orientado a agentes que los alumnos han realizado en las sesiones de laboratorio.
    Objetivos: 5 6 7 8
    Semana: 6 (Fuera de horario lectivo)
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Modelando el contexto en sistemas distribuidos

    El alumno no sólo deberá atender a las exposiciones del profesor, sino también hacer ejercicios prácticos sobre modelado del contexto, y participar en las discusiones con el profesor y sus compañeros sobre cuál es la forma mejor de modelar diferentes aspectos del contexto de un sistema distribuido. En el laboratorio el alumno deberá aplicar lo aprendido a un problema de dificultad media.
    Objetivos: 9 10 11 12
    Teoría
    7h
    Problemas
    4h
    Laboratorio
    3h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    21h

    Entrega de la práctica sobre modelado de ontologías

    Entrega del informe de la práctica sobre modelado de ontologías que los alumnos han desarrollado en el laboratorio.
    Objetivos: 9 10 11 12
    Semana: 8 (Fuera de horario lectivo)
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Parcial de ECSDI

    Parcial sobre modelado orientado a agentes y representación del contexto.
    Objetivos: 5 6 7 8 9 10 11 12
    Semana: 9
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Composición dinámica de servicios

    El alumno no sólo deberá atender a las exposiciones del profesor, sino también hacer ejercicios prácticos sobre descripción y composición de servicios, y participar en las discusiones con el profesor y sus compañeros sobre los problemas de la composición de servicios. En el laboratorio el alumno deberá aplicar lo aprendido a un problema de dificultad media.
    Objetivos: 13 14 15
    Contenidos:
    Teoría
    6h
    Problemas
    4h
    Laboratorio
    7h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    27h

    Adaptación al usuario. Perfilado de usuarios

    El alumno no sólo deberá atender a las exposiciones del profesor, sino también hacer ejercicios prácticos sobre el uso de los algoritmos básicos de Aprendizaje Automático para el aprendizaje de perfiles, y participar en las discusiones con el profesor y sus compañeros sobre cómo utilizar estos algoritmos.
    Objetivos: 16 17 18 19
    Contenidos:
    Teoría
    2h
    Problemas
    2h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Otras aplicaciones de IA en sistemas distribuidos

    El alumno no sólo deberá atender a las exposiciones del profesor, sino también participar en las discusiones con el profesor y sus compañeros sobre el impacto potencial que pueden tener las técnicas de Inteligencia Artificial sobre el futuro de Internet.
    Objetivos: 3
    Contenidos:
    Teoría
    3h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Entrega de la práctica sobre composición de servicios

    Entrega del informe de la práctica sobre composición de servicios que los alumnos han desarrollado en el laboratorio.
    Objetivos: 13 14 15
    Semana: 14 (Fuera de horario lectivo)
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Examen final de ECSDI

    Examen final de todos los contenidos del curso.
    Objetivos: 6 7 8 10 11 12 14 15 18 19
    Semana: 15 (Fuera de horario lectivo)
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Metodología docente

    Las clases están divididas en sesiones de teoría, problemas y laboratorio.

    En las sesiones de teoría se desarrollarán los conocimientos de la asignatura, intercalando la exposición de nuevo material teórico con ejemplos y la interacción con los alumnos para discutir los conceptos.

    Las clases de problemas permitirán profundizar en los conceptos, técnicas y metodologías explicados en las sesiones de teoría. Se estimulará la participación del alumno para comentar las alternativas posibles.

    En las clases de laboratorio se desarrollarán pequeñas prácticas utilizando herramientas y lenguajes propios de la Inteligencia Artificial que permitirán practicar y reforzar los conocimientos de las clases de teoría.

    Método de evaluación

    La evaluación constará de un examen parcial, un examen final y una nota de laboratorio.

    El examen parcial no es liberador de materia y se hará en horas de clase.

    La nota de laboratorio provendrá de los informes que se harán de las prácticas realizadas.

    El cálculo de la nota final se hará de la siguiente manera:

    NP = nota del parcial
    NF = nota del examen final
    NL = nota de laboratorio

    NOTA = max ((NP*0.25 + NF*0.25), (NP*0.15 +NF*0.35)) + NL*0.45 + Nota Competencia

    Evaluación de las competencias

    La evaluación de la competencia sobre razonamiento se basa en el trabajo realizado durante las prácticas de laboratorio. La nota ABCD y la nota de curso se calcula a partir de una rúbrica detallada que se dará a los alumnos al inicio del curso.

    Bibliografía

    Básico

    Complementario

    Web links

    Capacidades previas

    Capacidades previas sobre arquitecturas de servicios y diseño de servicios adquiridas en la asignatura Arquitectura del software (AS):
    - Conocimiento de las arquitecturas de servicios.
    - Conocimiento de los principios del diseño de servicios.
    - Conocimiento de los patrones de diseño de servicios.

    Capacidades previas sobre Lógica adquiridas en la asignatura Fundamentos Matemáticos (FM):
    - Conocimiento de los conceptos básicos de lógica de proposiciones y predicados
    - Capacidad de formular un problema en términos lógicos.
    - Conocimientos sobre Inferencia lógica y resolución. Entender las estrategias de resolución.