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
Conocer los orígenes y las bases de la computación distribuida en Internet
Competencias relacionadas:
CT4.3,
Entender los conceptos básicos: Computación por Interacción, Orientación a Servicios, Cloud Computing, Future Internet
Competencias relacionadas:
CT4.3,
Conocer posibles aplicaciones de la Inteligencia Artificial para los sistemas distribuidos en Internet
Competencias relacionadas:
CT4.3,
Entender los conceptos básicos de Orientación a Servicios
Competencias relacionadas:
CT4.3,
Entender los conceptos básicos de Orientación a Agentes
Competencias relacionadas:
CT4.3,
Analizar un problema de naturaleza distribuida e identificar los diferentes actores y sus funcionalidades
Competencias relacionadas:
G9.3,
CES1.4,
Diseñar sistemas distribuidos aplicando una metodologia orientada a agentes
Competencias relacionadas:
CES1.4,
CT4.3,
Analizar un diseño orientado a agentes e identificar los puntos a mejorar
Competencias relacionadas:
G9.3,
CES1.4,
Entender los conceptos básics sobre representación del contexto.
Competencias relacionadas:
CT4.3,
Analizar un problema de naturaleza distribuida e identificar la información de contexto que es necesaria.
Competencias relacionadas:
G9.3,
CES1.4,
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,
Diseñar ontologias sobre un contexto aplicando adecuadamente una metodologia
Competencias relacionadas:
CES1.4,
CT4.3,
Entender los conceptos relacionados con la composición dinámica de servicios
Competencias relacionadas:
CT4.3,
Describir servicios web de forma que puedan ser incorporados en un proceso de composición dinámica
Competencias relacionadas:
CES1.4,
CT4.3,
Extraer y representar las acciones necesarias para resolver la composición dinámica mediante un planificador
Competencias relacionadas:
CES1.4,
CT4.3,
Entender el concepto de aprendizaje y conocer algunos de sus tipos.
Competencias relacionadas:
CT4.3,
Entender la relación entre adaptación y aprendizaje.
Competencias relacionadas:
CT4.3,
Entender como se puede aplicar el aprendizaje automático a la adaptación al usuario.
Competencias relacionadas:
CT4.3,
Entender como se puede aplicar el aprendizaje automático a la adaptación a fallos.
Competencias relacionadas:
CT4.3,
Contenidos
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.
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.
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.
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.
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.
Otras aplicaciones de IA a sistemas distribuidos
Governanza mediante modelos sociales: reputación, normas. Modelos de estructuras sociales: equipos, alianzas, coaliciones, organizaciones. Ejemplos.
Actividades
ActividadActo 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:1234 Contenidos:
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:45678 Contenidos:
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:5678 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:9101112
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:9101112 Semana:
8 (Fuera de horario lectivo)
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:56789101112 Semana:
9
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:131415 Contenidos:
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:16171819 Contenidos:
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:
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:131415 Semana:
14 (Fuera de horario lectivo)
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:67810111214151819 Semana:
15 (Fuera de horario lectivo)
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.
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.