470 likes | 754 Views
Fundación Universitaria San Martín. Trae tus sueños... juntos los realizaremos. Facultad de Ingeniería. AGENDA Grupo de Interés Proyectos de Grado 20091. Facultad de Ingeniería. LINEA DE INVESTIGACIÓN: Construcción de Software GRUPOS DE INTERÉS
E N D
Fundación Universitaria San Martín Trae tus sueños... juntos los realizaremos.
Facultad de Ingeniería AGENDA • Grupo de Interés • Proyectos de Grado 20091
Facultad de Ingeniería LINEA DE INVESTIGACIÓN: Construcción de Software GRUPOS DE INTERÉS • Computación Gráfica e Inteligencia Artificial • Proyectos en Curso: • RADPLA: Yana Saint-Priest • Ambiente de formulación y ejecución de modelos matemáticos de optimización (Fabián Giraldo) • Áreas Temáticas • Reconocimiento de Patrones: Yana Saint-Priest • Procesamiento Distribuido: Ricardo Castaño – Fabián Giraldo • Herramientas para Modelado Matemático: Fabián Giraldo • Generadores de Código para propósito específicos: Andrés Solarte – Fabián Giraldo • Generación de Herramientas CASE: Andrés Solarte – Fabián Giraldo • Software Educativo para Enseñanza de Modelos Matemáticos: Leonardo Santos – Claudine Ruiz
Ambiente de formulación y ejecución de Modelos matemáticos de Optimización. • PROYECTO DE INVESTIGACIÓN • Andrés Solarte, Kitson Castaño, Yana Saint-Priest, Claudine Ruiz, Leonardo Santos
Modelos matemáticos de Optimización • Diseñar un software educativo de enseñanza que permita mejorar la formulación de modelos matemáticos como herramienta de apoyo al docente de investigación de operaciones. • Sistema de modelamiento matemático que facilite las tareas de formulación e implementación de problemas de optimización, específicamente modelos de programación lineal.
Software Educativo para el Aprendizaje de Formulación de Modelos Matemáticos Objetivo General: • Construir un Asistente (Wizard) para la solución de problemas de optimización usando programación lineal, dirigido a personas con o sin conocimientos y experiencia en el tema, en el sector académico y empresarial. Objetivos Específicos: • Definir los modelos determinísticos de investigación de operaciones a incluir en el Asistente, el proceso genérico de formulación de cada modelo asociado a un problema y el flujo de acción recomendado por expertos en el tema. • Diseñar un módulo Asistente específico para cada tipo de problema, con secciones para: Formulación del modelo, Asesoría del Experto, Validación del modelo, Ejecución, Análisis de resultados, y Retroalimentación. • Implementar para cada tipo de problema, la sección que corresponde a asistir al usuario en la formulación del modelo.
Software Educativo para el Aprendizaje de Formulación de Modelos Matemáticos • Implementar para cada tipo de problema, la sección que alimenta el metamodelo y permite el uso (invocación) de servicios de Validación del modelo, y traducción. • Implementar para cada tipo de problema, la sección que corresponde a Asesoría del Experto, donde el experto en investigación de operaciones pueda hacer la revisión de la estructura del modelo definido, y hacer correcciones y observaciones a sus estudiantes. • Implementar para cada tipo de problema, la sección que corresponde a Ejecución del modelo, con la opción de selección de diferentes métodos y/o algoritmos para hallar la solución. • Implementar para cada tipo de problema, la sección que corresponde a Análisis de la solución, presentando y organizando los resultados y sugerencias, de acuerdo al Modelo. • Implementar para cada tipo de problema, la sección que corresponde a Retroalimentación, donde el usuario pueda consultar la evolución de su modelo y los efectos producto de sus cambios.
Ambiente de Formulación de Modelos en C/C++ OBJETIVO GENERAL • Diseñar e implementar un ambiente de formulación y generación automática en C, C++ de modelos matemáticos de programación lineal, enlazado con solver de optimización LINGO, CPLEX, GLPK, LPSOLVE, COIN-MP con la capacidad de migrar a equipos remotos utilizando las plataformas de sistemas distribuidos Zeus. OBJETIVOS ESPECÍFICOS • Identificar conceptos comunes entre los solver de optimización CPLEX, XPRESS, GLPK, LINGO, LPSOLVE, COIN-MP en lenguaje de programación C++, elaborando un cuadro comparativo de sus diferentes elementos sintácticos. • Elaborar plantillas Velocity para CPLEX, XPRESS , GLPK, LINGO, LPSOLVE, COIN-MP que permitan generar automáticamente modelos matemáticos de programación lineal en C y C++. • Diseñar e implementar un plugin usando RCP de Eclipse, que permita a los usuarios especificar los componentes básicos de los modelos matemáticos de programación lineal, mediante la utilización de formularios, y que alimente el metamodelo matemático y que permita visualizar los resultados obtenidos luego de realizar la ejecución de un modelo matemático de optimización. • Elaborar plantillas Velocity que permitan generar agentes, con la capacidad de migrar a equipos remotos utilizando la plataforma de sistemas distribuidos Zeus.
Velocity METAMODELO TRANSFORMACIÓN ZEUS
Zeus • HERRAMIENTA PARA EL DESARROLLO DE SISTEMAS MULTIAGENTES. • METODOLOGIA DESARROLLO GAIA PARA LA CONSTRUCCIÓN DE SISTEMAS MULTIAGENTES
Justificación • La plataforma de modelos matemáticos de programación lineal, en ambiente de programación distribuida, permitirá ayudar a mejorar la fase de formulación de modelos matemáticos, la estructuración de los diferentes componentes que posee un modelo (Metamodelo), facilitará la construcción de herramientas de generación automática de código para la implementación de modelos matemáticos de programación lineal.
Traductor Xpress MP > Gams/Opl/Ampl OBJETIVO GENERAL • Diseñar e implementar una herramienta que permita realizar la traducción de un modelo matemático de programación lineal, especificado en el lenguaje algebraico XPRESS MP, a los lenguajes algebraico GAMS, OPL, AMPL. OBJETIVOS ESPECÍFICOS • Identificar conceptos comunes entre los lenguajes de modelamiento algebraicos XPRESS – GAMS, XPRESS - OPL, XPRESS - AMPL elaborando un cuadro comparativo de sus diferentes elementos sintácticos. • Desarrollar un compilador (analizador léxico, sintáctico y semántico) que reconozca modelos matemáticos expresados en el lenguaje algebraico XPRESS y extraiga los componente propios del lenguaje (índices, parámetros, conjuntos, restricciones, valores, y demás), almacenándolos en el metamodelo. • Generar automáticamente modelos matemáticos de programación lineal en los lenguajes algebraicos GAMS, OPL, AMPL; por medio de plantillas velocity que accesan la información del metamodelo. • Desarrollar un plugin usando RCP de Eclipse para el ambiente de traducción de modelos matemáticos de programación lineal. (Cargar archivo GMS, modificar archivo GMS, crear archivo GMS, guardar archivo GMS, modulo de gestión de errores y de ayuda al usuario)
Velocity METAMODELO TRANSFORMACIÓN OPTIMIZADORES,
Justificación La diversidad de lenguajes de modelamiento hace que un usuario tenga que estar preparado para el desarrollo de modelos matemáticos en diferentes lenguajes. De acuerdo con lo anterior la idea básica de crear el ambiente de traducción es permitir que el usuario modele un problema de programación lineal en un lenguaje algebraico de modelado de su preferencia y este se pueda traducir de forma rápida al lenguaje que se desee.
Herramienta CASE para el Ambiente de Formulación de Modelos Matemáticos OBJETIVO GENERAL • Diseñar e implementar una herramienta CASE que de soporte a la formulación e implementación de modelos matemáticos de programación lineal. OBJETIVOS ESPECÍFICOS • Diseñar e implementar un metamodelo usando EMF de eclipse, que modelo los componentes principales de los modelos matemáticos y las relaciones existentes entre ellos. • Definir e implementar reglas semánticas sobre el metamodelo expresado en EMF utilizando el Object Constraint Language OCL. • Diseñar e implementar un editor gráfico que permita crear instancias del metamodelo EMF utilizando Graphical Editing Framework (GEF). • Diseñar e implementar un motor de transformación M2T a partir de las instancias del Metamodelo utilizando reglas MOFSCript que generen código en el lenguaje de propósito general JAVA enlazado con solver de optimización GLPK. • Desarrollar un plugin usando RCP de Eclipse para herramienta CASE desarrollada.
Metamodelos • Un metamodelo es un modelo que especifica el lenguaje para expresar un modelo. • Un metamodelo debe ser escrito en un lenguaje bien definido, para esto se utiliza EMF(Eclipse Modelling Framework) que se basa en el estandar MOF(Meta-Object Facility).
+pKeys 1..n 1..n +pKeyOf 1 1 Column +owner +cols Table +owner name : String name : String 1 1 1 1 0..n 0..n type : String +references 1..n 1..n +cols 1 1 0..n +partOfFkey +referencedBy Fkey 0..n 0..n +fKeys 0..n 0..n Metamodelos
OCL(Object Constraint Language) Incluye las reglas que determinan qué es un modelo bien formado de un lenguaje derivable del metamodelo. (sintácticamente válido). Ejemplo: “Dos tablas de un mismo esquema relacional deben tener distinto nombre”.
GEF(Graphical Editing Framework) • Es un plugin de eclipse que permite un fácil desarrollo de editores gráficos para expresar instancias del metamodelo.
MOFSCRIPT • ¿Cómo dar el salto desde modelos a texto plano? MOFScript es la respuesta a nuestras dudas. • Lenguaje de transformación modelo-a-texto (M2T).
ALCANCE • Construcción de herramientas de programación visual que soporte la generación de código, específicamente el diseño de una herramienta de programación gráfica que soporte el proceso de formulación e implementación de modelos.
Avances ESTUDIANTE: JEISSON CORDOBA. • CRECIÓN DE GRUPO GOOGLE Generación Automática de Modelos Matemáticos. • CONTRUCCIÓN METAMODELO EMF Y EDITOR GRÁFICO USANDO GEF. • FASE INICIAL PROCESO DE TRANSFORMACIÓN M2T CON MOFSCRIPT.
Coordinación de Modelos Matemáticos OBJETIVO GENERAL • Modelar, diseñar e implementar un sistema de coordinación de modelos matemáticos basado en agentes y técnicas de workflow.. OBJETIVOS ESPECÍFICOS • Elaborar plantillas Velocity para LSOLVE y GLPK que permitan generar modelos matemáticos de programación lineal en Java, con capacidad de ser implantados sobre la plataforma de sistemas multiagentes JADE. • Definir procesos y mecanismos de coordinación y comunicación de los agentes para la ejecución cooperativa de modelos complejos. • Diseñar e implementar un mecanismo de administración que permita configurar un grupo de agentes para que ejecuten cooperativamente modelos mediante la utilización el motor de workflow WADE. • Crear un escenario de prueba para coordinar cuatro agentes que ejecuten modelos matemáticos generados automáticamente por la plataforma. • Diseñar e implementar una aplicación para dispositivos móviles utilizando la librería JADE LEAP que permita configurar los agentes para que ejecuten tareas complejas
Velocity METAMODELO TRANSFORMACIÓN JADE
JADE (Java Agents Development Environment) • HERRAMIENTA PARA EL DESARROLLO DE SISTEMAS MULTIAGENTES, BASADA EN EL ESTÁNDAR FIPA. • METODOLOGIA DESARROLLO MAS-COMMONDKADS PARA LA CONSTRUCCIÓN DE SISTEMAS MULTIAGENTE
WADE (Workflow and Agent Development Environment) • Definir sistemas lógicos dentro de un workflow. WADE provee la administración avanzada, mecanismos de tolerancia a fallos y habilitando a un grupo de agentes, ejecutar cooperativamente complejas tareas definidas en el workflow.
Avances • ESTUDIANTE: RAMÓN RIVERA. • DESARROLLO DE AGENTES EN JADE INVOLUCRANDO PROTOCOLOS DE COMUNICACIÓN FIPA. • ESTUDIO DEL MOTOR DE PLANTILLAS VELOCITY PARA LA GENERACIÓN AUTOMÁTICA DE CÓDIGO.
Business CASE Tool for Mathematical Models Objetivo General • Desarrollar una herramienta CASE para apoyar la formulación de modelos matemáticos orientada a la personalización de conceptos del negocio y la programación orientada a flujos. Objetivos Específicos • Diseñar un metamodelo apoyado en MDA (CWM, MOF, OCL, ODM., XMI) que permita definir las transformaciones necesarias hasta obtener una representación en lenguaje algebraico. • Construir un plugin para eclipse apoyado en RCP y GMF que permita crear nuevos elementos basados en los conceptos del negocio y la integración entre éstos. • Definir reglas, y condiciones para estructurar un lenguaje orientado a flujos que permita ofrecer una interface muy intuitiva al usuario. • Construir un modulo que permita reconstruir la ejecución del modelo a partir de del seguimiento de los datos generados por el motor de ejecución, que ofrezca una visión de ejecución paso a paso. • Hacer uso del análisis de trazas para determinar el estado de la ejecución del modelo, como herramienta para identificar las transformaciones necesarias entre los diferentes niveles de los modelos, apoyado en M2M (model to model transformation) • Crear automáticamente aplicaciones basadas en la definición del modelo creado, que permitan ingresar la información requerida de cada elemento del modelo.
Model Driven Architecture • Model-Driven Architecture (MDA) es un enfoque para todo el ciclo de integración empresarial • Los sistemas compuestos por software, hardware, humanos, y prácticas del negocio. Provee un marco de trabajo sistemático para entender, diseñar, operar y evolucionar todos los aspectos de la empresa. • Los sistemas usan métodos y herramientas. MDA esta basado en modelar diferentes aspectos y niveles de abstracción de un sistema, y aprovechar las interrelaciones entre estos modelos.
OCR para Lenguajes de Modelamiento Matemático • OCR? Optical Character Recognition Reconocimiento óptico de caracteres. Técnica que busca y reconoce caracteres dentro de una imagen de un documento digitalizado. i.e. Formularios
Texto Impreso • Ubicar Área • Extraer • Separar • Reconocer
Objetivos para Texto Impreso Objetivo Principal: • Diseñar y desarrollar un programa que dada una imagen digital de un texto impreso que contiene un modelo matemático; lo encuentre e identifique los símbolos que lo compone. Objetivos Generales: • Diseñar y construir un módulo que preprocese la imagen capturada para eliminar ruido y realzar los símbolos • Diseñar y construir un módulo que identifique dentro de la página digital, que sectores contienen texto plano y cuales el modelo para su posterior extracción • Diseñar y construir un módulo que cree una imagen digital más pequeña que contenga únicamente el segmento con el modelo • Diseñar y construir un módulo que separe cada uno los símbolos del modelo • Diseñar y construir un módulo que reconozca cada símbolo ubicado dentro del paso anterior
Texto Manuscrito • Tipo de Hoja • Tipo de Letra • Vectorizar • Reconocer
Objetivos Texto Manuscrito Objetivo Principal: • Diseñar y desarrollar un programa que dada una imagen digital de un texto escrito a mano, que contiene un modelo matemático; identifique cada uno de los símbolos que lo compone. Objetivos Generales: • Diseñar y construir un módulo que identifique el tipo de hoja en que fue escrito el modelo: cuadriculada, rayada o blanca • Diseñar y construir un módulo que separe el fondo del texto escrito, construyendo como resultado una nueva imagen fondo blanco • Diseñar y construir un módulo que identifique el tipo de letra: manuscrita (caligrafía) y letra separada, en caso de tratarse de la primera indicar que el análisis es imposible (por ahora!) • Diseñar y construir un módulo que convierta la imagen digital matricial en una imagen vectorial, teniendo en cuenta únicamente la letra separada • Diseñar y construir un módulo que reconozca cada símbolo que conforman el modelo vectorizado en el paso anterior
Objetivos para Traducir Objetivo General: • Diseñar y construir un programa que interprete como entrada un modelo matemático lineal y lo transforme en un lenguaje de modelamiento matemático específico de herramientas de computador, inicialmente GAMS. Objetivos Específicos: • Investigar y construir la estructura léxica, gramatical y semántica del lenguaje origen y del lenguaje destino (modelos matemáticos lineales a GANS) • Construir un módulo que “compile” la expresión del modelo matemático para validar si se encuentra correctamente bien escrita (esto lo hago yo o Fabián?? O asumo que está bien???) • Diseñar y construir un traductor que una vez validado el modelo entregue como salida la correspondiente equivalencia en el lenguaje destino • Diseñar e implementar una arquitectura que permita a futuro ingresar nuevos lenguajes destinos, simplemente introduciendo las equivalencias léxicas, sintácticas
Coordinacion WebServices para la Ejecución de Modelos Distribuidos Objetivo general • Análisis, diseño e implementación de un sistema de coordinación de servicios Web creados con AXIS y WSIG. Objetivos específicos. • Estudio y definición de los patrones o características de los problemas matemáticos que requieran sean solucionados por medio de coordinación de servicios Web. • Diseño e implementación del componente que permita la creación de los servicios Web que representan modelos matemáticos utilizando las librerías Axis y WSIG • Estudiar y seleccionar el motor de coordinación utilizado en el sistema de coordinación • Diseño e implementación del componente de software que permita la coordinación basados en el motor seleccionado de los servicios web previamente generados mediante AXIS y WSIG. • Diseño e implementación de las plantillas Velocity que permitan crear dinámicamente los elementos necesarios para la implementar un modelo matemático en el componente anteriormente desarrollado.
Security Appliance for JADE Objetivo general • Diseño e implementación de un modelo de seguridad para el componente de migración de modelos matemáticos en Jade utilizando el módulo “security” para garantizar la no-repudiación, integridad, autenticación y la no falsificación. Objetivo específicos • Estudiar y seleccionar los algoritmos y técnicas para garantizar la integridad, la no repudiación y autenticación y la no falsificación de los agentes móviles del componente de migración de modelos matemáticos durante su ciclo de vida. • Diseñar e implementar los componentes que permitan la no repudiación, integridad, autenticación y la no falsificación de los agentes del componente de migración de modelos matemáticos durante su ciclo de vida.
JADEUnit Objetivo General • Diseño e implementación de un componente que implemente de manera automática casos de pruebas para sistemas multiagentes en la plataforma Jade basados en el componente “Jade Test Suite” Objetivos específicos: • Estudiar y seleccionar los diferentes tipos de pruebas (pruebas de caja blanca, caja negra, desempeño, carga de trabajo, pruebas unitarias, etc) que sean mas importantes en el desarrollo de aplicaciones basados en la plataforma Jade. • Diseñar e implementar el módulo que permita ejecutar de manera automática los casos de prueba de los tipos de pruebas seleccionados. • Diseñar e implementar plantillas velocity que permitan generar los artefactos necesarios para ejecutar los casos de pruebas a un conjunto de clases Agentes de Jade como entrada.