Ingeniería del Conocimiento y Sistemas Distribuidos Inteligentes

Usted está aquí

Créditos
6
Tipos
Complementaria de especialidad (Ingeniería del Software)
Requisitos
  • Prerrequisito: AS
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 ( )

Horas semanales

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

Competencias

Competencias Técnicas

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.

Competencias Técnicas de cada especialidad

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.

Competencias Transversales

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)
Tipo: entrega
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)
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

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
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

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)
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1h

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)
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
9h

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ásica:

Complementaria:

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.