Presentación sobre el Problema de la distribución de instalaciones en línea (SRFLP) en el MAEB 2016 dentro del CEDI 2016. Usamos un GRASP con Path Relinking que mejora los métodos del estado del arte
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?Micael Gallego
Charla del 12 de Marzo de 2014 en el MadridJUG, el grupo de usuarios de Java de Madrid. En ella se presentó JavaScript desde el punto de vista de un programador Java que se adentra en ese maravilloso mundo.
El mundo real en el aula, con la ayuda del profesorMicael Gallego
Presentación en las Jornadas de Innovación y TIC Educativas: JITICE 2016 de la Universidad Rey Juan Carlos.
Aplicación de Project Based Learning y Flipped Classroom en la asignatura de "Desarrollo Web" en el Grado de Ingeniería del Software
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 3: Despliegue de aplicaciones web" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
Slides de la charla en el MadridJUG sobre TypeScript y su parecido con Java. Se presentan los parecidos entre estos dos lenguajes y sus diferencias más notables.
La priorización de historias de usuario (versión reducida)Micael Gallego
Presentación del meetup de Madrid Ágil del 29 de Enero de 2014.
Tenéis una versión ampliada en: https://www.slideshare.net/micaelgallego/la-priorizacin-de-historias-de-usuario2
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?Micael Gallego
Charla del 12 de Marzo de 2014 en el MadridJUG, el grupo de usuarios de Java de Madrid. En ella se presentó JavaScript desde el punto de vista de un programador Java que se adentra en ese maravilloso mundo.
El mundo real en el aula, con la ayuda del profesorMicael Gallego
Presentación en las Jornadas de Innovación y TIC Educativas: JITICE 2016 de la Universidad Rey Juan Carlos.
Aplicación de Project Based Learning y Flipped Classroom en la asignatura de "Desarrollo Web" en el Grado de Ingeniería del Software
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 3: Despliegue de aplicaciones web" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
Slides de la charla en el MadridJUG sobre TypeScript y su parecido con Java. Se presentan los parecidos entre estos dos lenguajes y sus diferencias más notables.
La priorización de historias de usuario (versión reducida)Micael Gallego
Presentación del meetup de Madrid Ágil del 29 de Enero de 2014.
Tenéis una versión ampliada en: https://www.slideshare.net/micaelgallego/la-priorizacin-de-historias-de-usuario2
La priorización de historias de usuario (versión ampliada)Micael Gallego
Presentación del meetup de Madrid Ágil del 29 de Enero de 2014.
Tenéis una versión reducida en: http://www.slideshare.net/micaelgallego/la-priorizacin-de-historias-de-usuario-versin-reducida
Tema 1: ¿Qué es la web? (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 1: Introducción" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
Docker para Data Scientist - Master en Data Science URJCMicael Gallego
Presentación de Docker en el Master en Data Science de la URJC en la asignatura de Arquitecturas en la nube. En esta asignatura hablamos de AWS, Azure, Docker, Kubernetes, Mesos
En esta presentación se describe la tecnología WebRTC y el servidor de media Kurento. Se ilustran diferentes tipos de aplicaciones que pueden desarrollarse con esta tecnología, como un espejo mágico y un completo sistema de videoconferencia en grupo.
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casaMicael Gallego
Introducción a TypeScript desde el punto de vista de un desarrollador Java. TS en un lenguaje que transpila a JavaScript y se puede usar tanto para el desarrollo web front-end como para el backend con Node.js. Angular 2, el framework de moda, recomienda su uso.
Slides del taller de Angular 2 realizado en el Campus Madrid de Google el 26 de Septiembre de 2016. Actualizado con la versión final de Angular 2.
Grabación del taller: https://www.youtube.com/watch?v=YVVjXpquzBE
Repositorio de código: https://github.com/codeurjc/ng2-campusmadrid
Using Docker to build and test in your laptop and JenkinsMicael Gallego
Docker is changing the way we create and deploy software. This presentation is a hands-on introduction to how to use docker to build and test software, in your laptop and in your Jenkins CI server
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 2: Tecnologías de desarrollo web" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
Cómo incluir videoconferencia en tu web usando la tecnología WebRTC y servidores de media open source y comerciales. Se explora en más detalle OpenVidu, una plataforma de videoconferencias con ediciones open source y comerciales
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
Ciclo de vida del software, repositorios de código, análisis estático de código, pruebas software, integración continua, entrega continua, despliegue continuo, DevOps.
Curso de Angular 9 para desarrollo de aplicaciones SPA (Single Page Application).
● Tema 1: Introducción a Angular: TypeScript y herramientas
● Tema 2: Componentes
● Tema 3: REST y Servicios
● Tema 4: Aplicaciones multipágina: Router
● Tema 5: Librerías de componentes
● Tema 6: Publicación
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Micael Gallego
Una vista panorámica de la situación actual de la concurrencia y la asincronía. Comparando modelos de concurrencia y técnicas de programación asíncrona en lenguajes de programación como Java, C/C++ y JavaScript.
Dev Tools para Kubernetes - Codemotion 2019Micael Gallego
Charla impartida entre Pablo Chico y Micael Gallego en la que se muestran algunas herramientas para mejorar la experiencia de desarrollo de aplicaciones cloud native para Kubernetes. Concretamente, se presenta cómo okteto puede reducir el tiempo empleado en el ciclo de change, build, push, deploy de pods Java en Kubernetes usando la sincronización de ficheros.
Ejemplos de código en https://github.com/micaelgallego/k8s-dev-tools-codemo19
Testing cloud and kubernetes applications - ElasTestMicael Gallego
Kubernetes applications are complex distributed systems composed by several microservices. When some end to end test is failing in these kind of applications, root cause is difficult without good observability tools. In this presentation, several tools are presented to make easier root cause analysis of cloud and kubernetes applications. One of the most interesting ones is ElasTest, a platform that integrates several open source tools to provide observability to e2e testing of complex distributed systems.
Kubernetes es una plataforma cada vez más utilizada para poner en producción aplicaciones y servicios. Todos los grandes proveedores cloud la ofrecen y también puede instalarse on premises. En estas slides presentaremos los concetos básicos de la plataforma y aprenderemos a desplegar aplicaciones.
Las slides se han usado en un curso gratuito que ha sido grabado y publicado aquí: https://www.youtube.com/watch?v=5ovqsvqwtZM
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosMicael Gallego
Kubernetes se ha convertido en una de las plataformas preferidas para la puesta en producción de aplicaciones escalables y tolerantes a fallos. Estas características son muy interesantes, pero suponen un reto para los sistemas de integración continua. ¿Cómo se prueba de forma automática que una aplicación se comporta como se espera cuando existen fallos o cuando la carga crece de forma importante? Y si no lo hace, cuál es el motivo? El Caos testing nos ayuda a simular fallos (matar contenedores, cortar la red...) pero además necesitamos monitorizar la aplicación para conocer su comportamiento interno. En la presentación damos un repaso por las técnicas y herramientas más utilizadas en este ámbito.
OpenVidu es una plataforma para incorporar videoconferencia y video streaming en tus aplicaciones web. Es muy fácil de usar y tienes multitud de ejemplos con diferentes tecnologías. Además, es open source. Qué más se puede pedir?
La priorización de historias de usuario (versión ampliada)Micael Gallego
Presentación del meetup de Madrid Ágil del 29 de Enero de 2014.
Tenéis una versión reducida en: http://www.slideshare.net/micaelgallego/la-priorizacin-de-historias-de-usuario-versin-reducida
Tema 1: ¿Qué es la web? (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 1: Introducción" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
Docker para Data Scientist - Master en Data Science URJCMicael Gallego
Presentación de Docker en el Master en Data Science de la URJC en la asignatura de Arquitecturas en la nube. En esta asignatura hablamos de AWS, Azure, Docker, Kubernetes, Mesos
En esta presentación se describe la tecnología WebRTC y el servidor de media Kurento. Se ilustran diferentes tipos de aplicaciones que pueden desarrollarse con esta tecnología, como un espejo mágico y un completo sistema de videoconferencia en grupo.
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casaMicael Gallego
Introducción a TypeScript desde el punto de vista de un desarrollador Java. TS en un lenguaje que transpila a JavaScript y se puede usar tanto para el desarrollo web front-end como para el backend con Node.js. Angular 2, el framework de moda, recomienda su uso.
Slides del taller de Angular 2 realizado en el Campus Madrid de Google el 26 de Septiembre de 2016. Actualizado con la versión final de Angular 2.
Grabación del taller: https://www.youtube.com/watch?v=YVVjXpquzBE
Repositorio de código: https://github.com/codeurjc/ng2-campusmadrid
Using Docker to build and test in your laptop and JenkinsMicael Gallego
Docker is changing the way we create and deploy software. This presentation is a hands-on introduction to how to use docker to build and test software, in your laptop and in your Jenkins CI server
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 2: Tecnologías de desarrollo web" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
Cómo incluir videoconferencia en tu web usando la tecnología WebRTC y servidores de media open source y comerciales. Se explora en más detalle OpenVidu, una plataforma de videoconferencias con ediciones open source y comerciales
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
Ciclo de vida del software, repositorios de código, análisis estático de código, pruebas software, integración continua, entrega continua, despliegue continuo, DevOps.
Curso de Angular 9 para desarrollo de aplicaciones SPA (Single Page Application).
● Tema 1: Introducción a Angular: TypeScript y herramientas
● Tema 2: Componentes
● Tema 3: REST y Servicios
● Tema 4: Aplicaciones multipágina: Router
● Tema 5: Librerías de componentes
● Tema 6: Publicación
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Micael Gallego
Una vista panorámica de la situación actual de la concurrencia y la asincronía. Comparando modelos de concurrencia y técnicas de programación asíncrona en lenguajes de programación como Java, C/C++ y JavaScript.
Dev Tools para Kubernetes - Codemotion 2019Micael Gallego
Charla impartida entre Pablo Chico y Micael Gallego en la que se muestran algunas herramientas para mejorar la experiencia de desarrollo de aplicaciones cloud native para Kubernetes. Concretamente, se presenta cómo okteto puede reducir el tiempo empleado en el ciclo de change, build, push, deploy de pods Java en Kubernetes usando la sincronización de ficheros.
Ejemplos de código en https://github.com/micaelgallego/k8s-dev-tools-codemo19
Testing cloud and kubernetes applications - ElasTestMicael Gallego
Kubernetes applications are complex distributed systems composed by several microservices. When some end to end test is failing in these kind of applications, root cause is difficult without good observability tools. In this presentation, several tools are presented to make easier root cause analysis of cloud and kubernetes applications. One of the most interesting ones is ElasTest, a platform that integrates several open source tools to provide observability to e2e testing of complex distributed systems.
Kubernetes es una plataforma cada vez más utilizada para poner en producción aplicaciones y servicios. Todos los grandes proveedores cloud la ofrecen y también puede instalarse on premises. En estas slides presentaremos los concetos básicos de la plataforma y aprenderemos a desplegar aplicaciones.
Las slides se han usado en un curso gratuito que ha sido grabado y publicado aquí: https://www.youtube.com/watch?v=5ovqsvqwtZM
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosMicael Gallego
Kubernetes se ha convertido en una de las plataformas preferidas para la puesta en producción de aplicaciones escalables y tolerantes a fallos. Estas características son muy interesantes, pero suponen un reto para los sistemas de integración continua. ¿Cómo se prueba de forma automática que una aplicación se comporta como se espera cuando existen fallos o cuando la carga crece de forma importante? Y si no lo hace, cuál es el motivo? El Caos testing nos ayuda a simular fallos (matar contenedores, cortar la red...) pero además necesitamos monitorizar la aplicación para conocer su comportamiento interno. En la presentación damos un repaso por las técnicas y herramientas más utilizadas en este ámbito.
OpenVidu es una plataforma para incorporar videoconferencia y video streaming en tus aplicaciones web. Es muy fácil de usar y tienes multitud de ejemplos con diferentes tecnologías. Además, es open source. Qué más se puede pedir?
Estas slides son una presentación a las pruebas de software. Para qué sirven, qué tipos de pruebas existen, qué librerías, frameworks y herramientas se pueden utilizar para implemenar pruebas automatizadas, etc.
Node.js es una tecnología cada vez más popular para el desarrollo de servicios web. Grandes abanderados de Java como Netflix están usando cada vez más JavaScript para implementar parte de su backend. Pese a esta realidad, muchos javeros como yo no quieren tocar JavaScript ni con un palo, y cuando hay que hacerlo, sólo en el browser.
Si eres javero y no te gusta JavaScript, en esta presentación tendrás una visión general sobre cómo desarrollar servicios web con Node.js. Verás cómo con TypeScript, async/await y frameworks como Nest y TypeORM no echarás de menos a Spring y JPA. Pero lo mismo pasa al revés, verás cómo en Java también puedes implementar apps con los mismos principios reactivos y funcionales tan comunes en Node.js.
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
Docker es una tecnología que permite empaquetar el software de forma que se pueda ejecutar de forma sencilla y rápida, sin instalación y en cualquier sistema operativo. Es como tener cualquier programa instalado en su propia máquina virtual, pero arranca mucho más rápido y consume menos recursos. Docker está cambiando la forma en la que desplegamos software, pero también está afectando al propio proceso de desarrollo y particularmente al testing.
En este taller pondremos en práctica cómo usar Docker para facilitar la implementación de diferentes tipos de tests y su ejecución tanto en el portátil como en el entorno de integración continua. Aunque las técnicas que veremos se podrán aplicar en cualquier lenguaje de programación, los ejemplos estarán basados en Java y en JavaScript.
Como ser mas productivo en el desarrollo de aplicacionesMicael Gallego
Charla impartida en la Universidad Politécnica de Madrid presentando algunas técnicas y herramientas para ser más productivo en el desarrollo de aplicaciones
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...Micael Gallego
En este artículo se describe una metodología docente que pretende emular en el aula el trabajo que los alumnos realizarán cuando finalicen sus estudios. Esta metodología combina el Aprendizaje Basado en Proyectos y la Clase Invertida y está diseñada para la asignatura de Desarrollo Web del Grado en Ingeniería del Software de la URJC. La metodología propuesta se aplicará en el curso 2016/2017 y supone una evolución de una metodología previa, aplicada en el curso 2015/2016 en la misma asignatura. Se espera que los cambios introducidos en esta nueva metodología mejoren los resultados obtenidos en el curso pasado.
1. GRASP con Reencadenamiento
de Trayectorias para el
Single Row Facility
Layout Problem
Micael Gallego
Manuel Rubio-Sánchez
Francisco Gortázar
Abraham Duarte
MAEB 2016
14-16 Sep 2016
Salamanca (Spain)
2. 2
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP con PR para el SRFLP
Single Row Location Facility Problem
GRASP
Reencadenamiento de trayectorias
GRASP con PR
Experimentos
Conclusiones
3. 3
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Single Row Location Facility Problem
Disponer en una línea un conjunto de
instalaciones de diferente anchura
Objetivo: Minimizar la suma ponderada de
las distancias entre los centros de cada par
de instalaciones
Ejemplos: Habitaciones en un pasillo, libros
en estantes, máquinas en fábricas...
4. 4
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Single Row Location Facility Problem
5. 5
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Single Row Location Facility Problem
6. 6
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Single Row Location Facility Problem
• Estado del arte
• Algoritmos exactos
• Óptimo conocido hasta 42 instalaciones
• Algoritmos aproximados
• Kothari y Ghosh (2014)
• Memético (GENALGO)
• Búsqueda Dispersa (SS-2P)
7. 7
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP con PR para el SRFLP
Single Row Location Facility Problem
GRASP
Reencadenamiento de trayectorias
GRASP con PR
Experimentos
Conclusiones
8. 8
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP
• Constructivo
• Empieza con una solución vacía
• Por cada instalación disponible, se calcula el
coste de insertar esa instalación en todas las
posibles posiciones (CL)
• Se escoge un % de las instalaciones y posiciones
más favorables (minimizan el coste) (RCL)
• Se selecciona aleatoriamente de la RCL
9. 9
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP
• Búsqueda Local
• Movimientos de inserción (insert): Se elimina una
instalación de su posición y se coloca en otra posición
• First Improvement: Se evalúan los movimientos de
inserción y se aplica el primero que mejore la solución
• Best Improvement: Se evalúan todos los movimientos de
inserción y se aplica el mejor de todos ellos
• Híbrida (LS-HYBRID)*: Se selecciona una instalación al
azar (similar a First), se evalúan todos los movimientos de
esa instalación y se aplica el mejor (similar a Best)
10. 10
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP
• Algoritmo GRASP
• 1) Genera una solución con el constructivo
• 2) Se selecciona una instalación al azar
• 3) Se evalúan todos los movimientos de esa instalación
• 4) Si existe movimiento de mejora, se aplica y se vuelve
al paso 2
• 5) Si no existe movimiento de mejora y quedan
instalaciones por evaluar, se vuelve al paso 2
• 6) Si no se alcanza el tiempo máximo, se vuelve al paso 1
11. 11
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP
• Optimizaciones
• Calculamos de forma eficiente (en tiempo lineal) el
cambio del coste cuando una instalación se mueve
únicamente una posición
• Se evalúan todas las posiciones moviendo de una en una
14. 14
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP con PR para el SRFLP
Single Row Location Facility Problem
GRASP
Reencadenamiento de trayectorias
GRASP con PR
Experimentos
Conclusiones
15. 15
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Reencadenamiento de Trayectorias
• Método que genera nuevas soluciones
partiendo de dos soluciones
• Una solución (solución inicial) se modifica paso
a paso para convertirse en la otra solución
(solución guía)
• El proceso crea una trayectoria que conecta
ambas soluciones y en esa trayectoria se
encuentran nuevas soluciones de calidad
17. 17
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Reencadenamiento de Trayectorias
• Se ha implementado un algoritmo basado en
la distancia de Ulam entre dos permutaciones
• Esta distancia calcula el mínimo número de
cambios que hay que hacer para convertir
una permutación en otra
• Se basa en calcular la subsecuencia común
más larga entre las dos permutaciones
18. 18
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Reencadenamiento de Trayectorias
Solución
Inicial
Solución
Guía
Con 3 inserciones se puede convertir la
solución inicial en la solución guía
{ 1,2,3,4,5 }
{ 5,1,4,3,2 }
20. 20
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP con PR para el SRFLP
Single Row Location Facility Problem
GRASP
Reencadenamiento de trayectorias
GRASP con PR
Experimentos
Conclusiones
21. 21
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP con PR
Genera
Soluciones con
GRASP (Elite Set)
Genera una
nueva solución
con GRASP
Aplica PR desde la nueva
solución a todas las
del Elite Set
1 2 3
4 Actualiza el Elite Set si hay una nueva solución
con suficiente calidad y diversidad
Repite desde el paso 2 con este nuevo Elite Set
23. 23
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP con PR para el SRFLP
Single Row Location Facility Problem
GRASP
Reencadenamiento de trayectorias
GRASP con PR
Experimentos
Conclusiones
24. 24
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Experimentos
●
Métodos
• GENALGO: Memético del estado del arte
• SS-2P: Búsqueda dispersa del estado del arte
• GRASP_PR: Propuesta
●
Lenguaje de Programación: Todos los
métodos en C compilados con gcc
●
Entorno ejecución: Core TM i7-4712HQ 3.3
GHz y 16 GB de RAM
25. 25
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Experimentos
●
Instancias
●
Estado del arte
●
Anjos: 4x5 con n=60, 70, 75, 80
●
Sko: 4x5 con n=64, 72, 81, 100
●
Amaral: 3 con n=110
●
Nuevas instancias grandes
●
Anjos-large: 5x8 n=150, 200, 300, 350, 400, 450, 500
●
Sko-large: 5x8 n=150, 200, 300, 350, 400, 450, 500
26. 26
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Experimentos
●
Experimento 1: Comparativa con instancias del
estado del arte (pequeñas)
●
Resultado
●
GENALGO: Mejores soluciones en todas las instancias en
2723s
●
SS-2P: Mejores soluciones excepto en 3 instancias en 47s
●
GRASP_PR: Mejores soluciones en todas las instancias en 38s
(Ejecutado con tiempo n/2 segundos)
●
Conclusión
●
Las instancias son demasiado “fáciles” para discriminar la
calidad del los métodos
27. 27
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Experimentos
●
Experimento 2: Comparativa con 40
instancias grandes.
●
Tiempo: 1 hora por instancia
●
Resultado
●
GENALGO: Mejor solución en 1 de 40 instancias
●
SS-2P: Peores soluciones en todas las instancias
●
GRASP_PR: Mejores soluciones en 39 de 40
instancias
30. 30
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Experimentos
●
Experimento 2
●
Test Friedman: Ranking de cada método en
cada instancia
●
GENALGO: 2.5
●
SS-2P: 2.46
●
GRASP_PR: 1.04 (El más cercano a 1)
●
p-valor: 7 x 10-13
31. 31
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Experimentos
●
Experimento 2
●
Test del signo: Comparación de cada par de
métodos
●
GRASP_PR vs GENALGO: 39 con p-valor 3.7x10-11
●
GRASP_PR vs SS-2P: 39 con p-valor 1.8x10-12
32. 32
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
GRASP con PR para el SRFLP
Single Row Location Facility Problem
GRASP
Reencadenamiento de trayectorias
GRASP con PR
Experimentos
Conclusiones
33. 33
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Conclusiones
●
Método GRASP con PR para el SRFLP
●
Constructivo GRASP
●
Búsqueda Local híbrida eficiente
●
Reencadenamiento de trayectorias basado en la distancia
Ulam
●
Calidad
●
Misma calidad en menor tiempo para instancias pequeñas
●
Mejor calidad en el mismo tiempo para instancias grandes
34. 34
CAEPIA / MAEB 2016
14-16 Sep 2016 Salamanca (Spain)
Conclusiones
●
Versión más extensa de este
trabajo
• GRASP with path relinking for the
single row facility layout problem
• Manuel Rubio-Sánchez, Micael
Gallego, Francisco Gortázar,
Abraham Duarte
• Knowledge-Based Systems. Volume
106, 15 August 2016, Pages 1–13
• http://dx.doi.org/10.1016/j.knosys.2
016.05.030
35. GRASP con Reencadenamiento
de Trayectorias para el
Single Row Facility
Layout Problem
Micael Gallego
Manuel Rubio-Sánchez
Francisco Gortázar
Abraham Duarte
MAEB 2016
14-16 Sep 2016
Salamanca (Spain)