PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE DECISIÓN
DE MARKOV IMPLEMENTANDO ALGORITMO RECOCIDO SIMULADO
XIMENA GALINDO RAMIREZ
20111078027
CRISTHIAN DAVID SANDOVAL PAZU
20111078105
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD TECNOLÓGICA
TECNOLOGÍA DE SISTEMATIZACIÓN DE DATOS
BOGOTA D.C
2015
PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE DECISIÓN
DE MARKOV IMPLEMENTANDO ALGORITMO RECOCIDO SIMULADO
XIMENA GALINDO RAMIREZ
20111078027
CRISTHIAN DAVID SANDOVAL PAZU
20111078105
Proyecto presentado como requisito para optar el título de
Tecnólogo En Sistematización De Datos
DIRECTOR:
ROBERTO EMILIO SALAS RUIZ
INGENIERO DE SISTEMAS
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD TECNOLÓGICA
TECNOLOGÍA DE SISTEMATIZACIÓN DE DATOS
BOGOTA D.C
2015
Nota de aceptación:
_______________________________________
_______________________________________
_______________________________________
_______________________________________
TUTOR
_______________________________________
Ing. Roberto Emilio Salas
Presidente Jurado
_______________________________________
Ing. Jorge Rodríguez
_______________________________________
Ing. John Zabala
Bogotá D.C. Agosto 2015
TABLA DE CONTENIDO
RESUMEN ......................................................................................................................... 1
ABSTRACT ........................................................................................................................ 2
INTRODUCCIÓN .............................................................................................................. 3
1. FASE DE DEFINICIÓN, PLANEACIÓN Y ORGANIZACIÓN .............................. 5
1.1 TÍTULO DEL TRABAJO ....................................................................................... 5
1.2 TEMA ...................................................................................................................... 5
1.3 PLANTEAMIENTO DEL PROBLEMA ................................................................ 5
1.3.1 DESCRIPCIÓN ................................................................................................ 5
1.3.2 FORMULACIÓN ............................................................................................. 6
1.4 JUSTIFICACIÓN .................................................................................................... 6
1.5 OBJETIVOS ............................................................................................................ 6
1.5.1 OBJETIVO GENERAL ................................................................................... 7
1.5.2 OBJETIVOS ESPECÍFICOS ........................................................................... 7
1.6 ALCANCES Y DELIMITACIONES ...................................................................... 7
1.6.1 ALCANCES ..................................................................................................... 8
1.6.2 DELIMITACIONES ........................................................................................ 8
1.7 MARCO DE REFERENCIA ................................................................................... 9
1.7.1 MARCO TEÓRICO ......................................................................................... 9
1.7.2 MARCO CONCEPTUAL ................................................................................ 9
1.8 METODOLOGÍA DE DESARROLLO ................................................................ 18
1.9 FACTIBILIDAD ................................................................................................... 19
1.9.1 FACTIBILIDAD ECONÓMICA ................................................................... 19
1.9.2 FACTIBILIDAD OPERATIVA .................................................................... 19
1.9.3 FACTIBILIDAD TÉCNICA .......................................................................... 20
1.9.4 FACTIBILIDAD LEGAL .............................................................................. 20
1.10 CRONOGRAMA DE ACTIVIDADES ................................................................ 20
2 MODELO DE NEGOCIO ............................................................................................ 20
2.1 MODELADO DEL NEGOCIO ............................................................................. 21
2.2 DIAGRAMAS DE PROCESO .............................................................................. 21
2.2.1 DIAGRAMA DE PROCESOS MÓDULO INGRESAR DATOS ................. 21
2.2.2 DIAGRAMA DE PROCESOS MÓDULO PDM .......................................... 22
2.2.3 DIAGRAMA DE PROCESOS MÓDULO ALMACENAMIENTO DE
DATOS 23
2.3 MODELO DEL DOMINIO ................................................................................... 24
2.3.1 DIAGRAMA DE DOMINIO ......................................................................... 25
2.4 GLOSARIO DE TERMINOS ............................................................................... 25
3 REQUERIMIENTOS .................................................................................................... 27
3.1 REQUERIMIENTOS FUNCIONALES ................................................................ 27
3.2 REQUERIMIENTOS NO FUNCIONALES ......................................................... 30
3.3 DEFINICIÓN DE ACTORES ............................................................................... 30
3.4 LISTA PRELIMINAR DE CASOS DE USO ....................................................... 31
3.5 MODELO DE CASOS DE USO ........................................................................... 31
3.5.1 DOCUMENTACIÓN DE CASOS DE USO ................................................. 32
4 ANÁLISIS ..................................................................................................................... 41
4.1 DIAGRAMAS DE SECUENCIA ......................................................................... 41
4.1.1 DIAGRAMA DE SECUENCIA MÓDULO INGRESO DE DATOS ........... 42
4.1.2 DIAGRAMA DE SECUENCIA MÓDULO PDM ........................................ 42
4.1.3 DIAGRAMA DE SECUENCIA MODULO ALMACENAMIENTO DATOS
43
4.2 DIAGRAMAS DE ACTIVIDAD .......................................................................... 45
4.2.1 DIAGRAMA DE ACTIVIDAD MODULO INGRESO DATOS ................. 46
4.2.2 DIAGRAMA DE ACTIVIDAD MÓDULO PDM ........................................ 47
4.2.3 DIAGRAMA DE ACTIVIDAD MODULO ALMACENAR DATOS ......... 48
5 DISEÑO ........................................................................................................................ 49
5.1 PROTOTIPACIÓN ................................................................................................ 49
5.1.1 INDEX ............................................................................................................ 49
5.1.2 CONFIGURACIÓN ....................................................................................... 50
5.1.3 OBTENER POLÍTICA .................................................................................. 51
5.2 LISTA INICIAL DE CLASES .............................................................................. 52
5.3 DIAGRAMA DE CLASES ................................................................................... 53
5.4 MODELO DE INTERFAZ .................................................................................... 54
6 IMPLEMENTACIÓN ................................................................................................... 56
6.1 DEFINICIÓN DE CLASES .................................................................................. 56
6.1.1 DEFINICIÓN DE CLASES CAPA MODELO ............................................. 56
6.1.2 DEFINICIÓN DE CLASES CAPA VISTA ................................................... 57
6.1.3 DEFINICIÓN DE CLASES CAPA CONTROL ........................................... 58
6.2 DIAGRAMA DE DESPLIEGUE .......................................................................... 58
6.3 DIAGRAMA DE COMPONENTES ..................................................................... 59
6.4 DIAGRAMA DE PAQUETES .............................................................................. 60
7 PRUEBAS ..................................................................................................................... 62
7.1 PRUEBAS UNITARIAS ....................................................................................... 62
7.1.1 PRUEBAS UNITARIAS MÓDULO INGRESO DATOS ............................ 62
7.1.2 PRUEBAS UNITARIAS MÓDULO PDM ................................................... 63
7.1.3 PRUEBAS UNITARIAS MODULO ALMACENAMIENTO DE DATOS . 65
7.2 PRUEBAS FUNCIONALES ................................................................................. 65
7.3 ANALISIS COMPLEJIDAD COMPUTACIONAL ............................................. 67
8 CONCLUSIONES ........................................................................................................ 73
9 RECOMENDACIONES ............................................................................................... 74
10 REFERENCIAS BIBLIOGRÁFICAS ...................................................................... 75
LISTA DE TABLAS
Tabla 1. Integrantes en el desarrollo del proyecto ................................................................ 19
Tabla 2. Herramientas para desarrollo del proyecto ............................................................. 20
Tabla 3. Glosario De Términos ............................................................................................ 26
Tabla 4. Requerimientos funcionales ................................................................................... 28
Tabla 5. Requerimientos no funcionales .............................................................................. 30
Tabla 6. Definición de Actores ............................................................................................. 31
Tabla 7. Lista preliminar casos de uso ................................................................................. 31
Tabla 8. Documentación caso de uso: Crear Decisiones ...................................................... 32
Tabla 9. Documentación caso de uso: Cargar Decisiones .................................................... 33
Tabla 10. Documentación caso de uso N°3: Guardar Decisiones ........................................ 35
Tabla 11. Documentación caso de uso: Configuración Recocido Simulado ........................ 36
Tabla 12. Documentación caso de uso: Buscar Política ....................................................... 37
Tabla 13. Documentación caso de uso: Generar Reporte ..................................................... 38
Tabla 14. Documentación caso de uso: Modificar Decisiones ............................................. 39
Tabla 15. Lista Inicial de clases............................................................................................ 52
Tabla 16. Definición de Clases Capa Modelo ...................................................................... 56
Tabla 17. Definición de Clases Capa Vista .......................................................................... 57
Tabla 18. Definición de Clases Capa Control ...................................................................... 58
Tabla 19. Pruebas Unitarias Módulo Ingreso Datos ............................................................. 62
Tabla 20. Pruebas Unitarias Módulo PDM .......................................................................... 63
Tabla 21. Pruebas Unitarias Modulo Almacenamiento de Datos ......................................... 65
Tabla 22. Pruebas Funcionales. ............................................................................................ 66
LISTA DE FIGURAS
Figura 1. Modelo de procesos Ingresar Datos ...................................................................... 22
Figura 2. Modelo de procesos PDM ..................................................................................... 23
Figura 3. Modelo de procesos Almacenamiento Datos ........................................................ 24
Figura 4. Modelo de Dominio .............................................................................................. 25
Figura 5. Modelo de Casos de uso general ........................................................................... 32
Figura 6. Modelo de secuencia ingreso datos ....................................................................... 42
Figura 7. Modelo de Secuencia PDM ................................................................................... 43
Figura 8. Modelo de secuencia almacenamiento datos ........................................................ 44
Figura 9. Modelo de actividad ingreso datos ........................................................................ 46
Figura 10. Modelo de actividad PDM .................................................................................. 47
Figura 11. Modelo de actividad almacenar datos ................................................................. 48
Figura 12. Pre-pantalla índex................................................................................................ 49
Figura 13. Pre-pantalla índex matrices ................................................................................. 50
Figura 14. Pre-pantalla configuración .................................................................................. 51
Figura 15. Pre-pantalla obtener política ............................................................................... 52
Figura 16. Modelo de clases ................................................................................................. 54
Figura 17. Modelo de Interfaz .............................................................................................. 55
Figura 18. Modelo de despliegue ......................................................................................... 59
Figura 19. Modelo de componentes ..................................................................................... 60
Figura 20. Modelo de paquetes............................................................................................. 61
1
LISTA DE ANEXOS
Anexo 1. Presupuesto y fuentes de financiación .................................................................. 78
Anexo 2. Cronograma de actividades ................................................................................... 79
Anexo 3. Diagramas específicos casos de uso ..................................................................... 80
Anexo 4. Diagramas específicos secuencia .......................................................................... 83
Anexo 5. Manual de Usuario ................................................................................................ 90
Anexo 6. Manual de desarrollador ..................................................................................... 127
RESUMEN
Este documento tiene como objetivo mostrar el proceso de diseño e implementación
que se hizo para la solución " PROTOTIPO DE SOFTWARE PARA SOLUCIONAR
PROCESOS DE DECISIÓN DE MARKOV IMPLEMENTANDO ALGORITMO
RECOCIDO SIMULADO".
Inicialmente se hizo un plan para identificar el problema general, se ha diseñado el
modelo de negocio para mostrar los procesos que forman parte de la aplicación, se ha
recopilado información sobre los requisitos que aclaran el alcance de la solución, se continua
con el análisis para llevar a cabo un diseño que incluye una vista previa de la aplicación y se
define como será la aplicación, el proceso culmina en una fase de prueba que permitió
encontrar errores que fueron evaluados y resueltos. Por último, las conclusiones y
recomendaciones resultantes del desarrollo del proyecto se documentan.
PALABRAS CLAVE: Procesos De Decisión De Markov, Recocido Simulado,
Decisión y Política.
ABSTRACT
This document aims to show the process of design and implementation that was made
for the solution "software prototype for making decision Markov chain using simulated
annealing".
Initially a plan was made to identify the general problem, it has designed the business
model to show the processes that are part of the application, it has compiled information on
the requirements that clarify the scope of the solution, continue with the analysis to carry out
a design that includes a preview of the application and be defined as will be the application,
and the process culminates in a test phase which allowed to find errors that were evaluated
and resolved. Finally, conclusions and recommendations resulting from the development of
the project are documented.
KEYWORDS: Markov Decision Process Simulated Annealing, Decisions And Policy.
INTRODUCCIÓN
La importancia que tienen los procesos de decisión de Markov (PDM) en varios
campos de la ciencia y la industria está ligada a la capacidad que tienen para predecir el
comportamiento de un sistema a través del tiempo y lograr tomar decisiones con criterio o
probabilidad. Los PDM están conformados por cadenas de Markov, estas no son más que
una serie de eventos, en la cual la probabilidad de que ocurra un evento depende del evento
inmediatamente anterior. En efecto, las cadenas de este tipo tienen memoria, recuerdan el
último evento y esto condiciona las posibilidades de los eventos futuros.
Este documento permite identificar elementos y conceptos importantes que están
relacionados con la temática, en la descripción del problema se exponen las limitaciones que
el campo de investigación de operaciones aún no logra alcanzar, principalmente encontrar
una solución óptima a problemas considerablemente grandes de forma eficiente. La
formulación de este trabajo abre paso a la profundización en dos campos científicos
diferentes pero estrechamente relacionados, que son, la inteligencia artificial que demuestra
con algoritmos metaheurísticos una solución alternativa a problemas de optimización
combinatoria, y la investigación de operaciones que permite modelar procesos estocásticos
para tomar decisiones con criterio y lograr optimizar procesos y situaciones en muchas áreas
de la industria, investigación entre otros. En los alcances y limitaciones se analiza y explica
los diferentes aspectos que influyen en la viabilidad de desarrollar este prototipo de software,
justifica las restricciones necesarias para garantizar la realización y el desarrollo del proyecto.
Los objetivos responden a la formulación establecida en el proyecto, plasman de forma
tangible la viabilidad de obtener políticas óptimas de un PDM implementando el algoritmo
de recocido simulado, dan las especificaciones técnicas del prototipo de software que se
desarrollará, establecen características esenciales que permitirán implementar un algoritmo
metaheurístico de forma coherente para generar políticas óptimas a PDM.
La investigación justifica la razón por la cual dos campos diferentes de la ciencia, como
lo son la inteligencia artificial y la investigación de operaciones están estrechamente
relacionados y su importancia en la optimización de operaciones. Se plasman también
características y técnicas relacionadas con el desarrollo y gestión del proyecto de software
como los son la metodología a utilizar, sus respectivas fases y sus flujos de trabajo, se evalúa
la factibilidad económica, operativa y técnica que permite establecer los requisitos externos
de la gestión del software y se establece un cronograma de trabajo de 6 meses que reúne todas
las actividades del proyecto.
1. FASE DE DEFINICIÓN, PLANEACIÓN Y ORGANIZACIÓN
1.1 TÍTULO DEL TRABAJO
PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE DECISIÓN
DE MARKOV IMPLEMENTANDO ALGORITMO RECOCIDO SIMULADO.
1.2 TEMA
Software para demostrar la optimización de problemas mediante el uso de esquemas y
técnicas de enfriamiento en el algoritmo recocido simulado.
1.3 PLANTEAMIENTO DEL PROBLEMA
Todo problema debe ser definido y limitado en el tiempo y en el espacio, debe implicar
la posibilidad de realizar una prueba empírica, es decir, que sea factible de observarse en la
realidad única y objetiva.
1.3.1 DESCRIPCIÓN
En la temática de procesos de decisión de Markov surgen problemas particulares que
son solucionados con implementaciones independientes, por tal motivo aún no hay un
planteamiento general para abordar y hallar la solución o política más adecuada en este tipo
de procesos estocásticos.
También por su naturaleza estos procesos son de complejidad exponencial con respecto
a la cantidad de estados que se pueden llegar a trabajar en una cadena de Markov, esto implica
que métodos rigurosos o tradicionales tengan alto costo computacional y en la mayoría de
los casos no puedan ser aplicables a problemas considerablemente grandes.
Las cadenas de Markov en su formulación permiten acoger temas diversos que van
desde planteamientos comunes y sencillos (matriz de transición con pocos estados) hasta
arduos y complejos (matriz de transición con cantidades considerables de estados), la
optimización de operaciones ha buscado adaptar dichas cadenas a métodos de búsqueda de
políticas sin que se halle, hasta ahora, un método general con la viabilidad apropiada para
ofrecer una solución a cualquier problema.
1.3.2 FORMULACIÓN
¿Cómo obtener la política más óptima en un sistema con estados y acciones diferentes,
propuesto por medio de un proceso de decisión de Markov implementando el algoritmo de
recocido simulado?
1.4 JUSTIFICACIÓN
Implementar algoritmos metaheurísticos para hallar la mejor política en los procesos
de decisión de Markov es una de las prácticas más utilizadas en el campo de la optimización
de operaciones y día a día va tomando más fuerza por sus favorables resultados en
comparación con métodos clásicos de optimización. El avance investigativo de estas áreas
constituye la creación de un desafío a la adaptación de dichos métodos para cada sistema de
estados y acciones propuesto, en general esta práctica se ha venido aplicando de forma
particular para solucionar problemas específicos de optimización, y esto ha provocado que
sea difícil o casi imposible aplicar una solución genérica para cualquier proceso de decisión
de Markov.
Teniendo en cuenta esta situación, surge la necesidad de realizar un estudio que evalúe
la viabilidad de implementar y parametrizar el algoritmo recocido simulado a procesos de
decisión de Markov de cantidades de estados diferentes.
1.5 OBJETIVOS
Definición del fin que se pretende alcanzar, se realiza una descripción muy concreta de
la meta y el desarrollo que se realizara para el funcionamiento.
1.5.1 OBJETIVO GENERAL
Desarrollar un prototipo de software para la toma de decisiones de cadenas de Markov
implementando recocido simulado.
1.5.2 OBJETIVOS ESPECÍFICOS
Implementar un prototipo de software que genere políticas óptimas para procesos
de decisión de Markov de diferentes cantidades de estados.
Desarrollar un módulo que permita ingresar la matriz de transición, matriz de
recompensa y la cantidad de acciones que representen el proceso de decisión de
Markov.
Desarrollar la interfaz que permite al usuario elegir parámetros inherentes al
algoritmo como el esquema de vecindad y las estrategias de reducción de
temperaturas.
Generar el reporte de la solución encontrada por la aplicación, identificando la mejor
política hallada.
Implementar gráficas ilustrativas del comportamiento del algoritmo recocido
simulado en cada uno de los ejercicios.
Comprobar el funcionamiento de la herramienta por medio de pruebas y ejercicios
propuestos o relacionados con la temática. Se referencia el problema del automóvil
1 propuesto por Howard para realizar esta prueba.
1.6 ALCANCES Y DELIMITACIONES
Se indica la definición y control de lo que está y no está incluido en el proyecto.
1.6.1 ALCANCES
Entre los alcances de la investigación es de prioridad llevar a cabo los objetivos
planteados en el proyecto con el fin de realizar un aporte al campo de la optimización de
operaciones y en general al estudio de este tipo de problemas estocásticos.
El prototipo de software que se desarrollará contribuirá a la exploración y análisis de
PDM, que en la actualidad se hace de forma arbitraria, de esta manera se brindará una nueva
herramienta a los usuarios finales principalmente la comunidad académica, científica e
investigativa que pueden estar interesados en profundizar en este campo de la ciencia.
También puede llegar a ser una herramienta de aprendizaje que brinde la oportunidad
a personas que no conozcan de la temática, aprender de manera práctica conceptos esenciales
de los PDM.
1.6.2 DELIMITACIONES
Es importante explicar que una cadena de Markov puede ser tan grande como el
problema lo requiere, cuando este caso se presenta el espacio de búsqueda de una solución
se incrementa de manera exponencial, esto lleva a un gasto computacional elevado y puede
convertirse en un problema intratable, impráctico o peor, no computacional. Por esta razón
la principal delimitación o restricción es que el prototipo de software trabajará con máximo
20 estados para representar una cadena de Markov. Esto garantiza que los problemas que se
modelen sean lo suficientemente grandes para demostrar los resultados de implementar el
algoritmo recocido simulado sin correr el riesgo de tratar con problemas inalcanzables y no
prácticos.
Por definición un proceso estocástico es un modelo probabilístico que evoluciona en
el tiempo, en otras palabras representa la probabilidad de pasar de un estado a otro, por tal
motivo el prototipo de software deberá poder representar cadenas de Markov con un mínimo
de dos estados, esto garantizará que hallan suficientes datos para poder trabajar.
1.7 MARCO DE REFERENCIA
Recopilación breve y concisa de conceptos, teorías y reglamentación que se relacionan
directamente con el desarrollo del tema y del problema de investigación.
1.7.1 MARCO TEÓRICO
Descripción detallada de cada uno de los elementos esenciales de la teoría, de tal
manera que la formulación del problema y su solución sean una deducción lógica de ella.
1.7.1.1 Estado del arte
La revisión de diferentes artículos y trabajos de investigación permiten dar un
panorama sobre el desarrollo que se ha tenido en el campo de investigación de operaciones,
y en particular de los avances en los que se han implementado algoritmos meta heurísticos
para solucionar procesos de decisión de Markov (PDM) que permitan obtener políticas
óptimas para mejorar el desempeño de un sistema en especial1.
El desarrollo de estas temáticas ha sido implementado desde los años cincuenta y su
evolución ha permitido integrar varias ramas de investigación como la economía, ingeniería
entre otros. Uno de los primeros trabajos es el artículo de Danny Barash2 “A Genetic Search
In Policy Space For Solving Markov Decision Processes”, publicado en 1999 en la
Universidad de California el cual presenta una nueva metodología para resolver PDMs,
basada en algoritmos genéticos. Para esto el autor utiliza el “Model Problem Presentation” y
lo define como un pequeño PDM para comparar el método clásico de interacción de políticas
1 Hillier F. S. y Lieberman G. J. Introducción a la investigación de operaciones, 6a ed.Bogotá, Colombia:
McGraw Hill, 1999. 2 Barash, D.(1999) A Genetic Search In Policy Space For Solving Markov Decision Processes [online],
Disponible en: http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=A96FEF213AE5512AE416C27
BA18D0D15?doi=10.1.1.30.9717&rep=rep1&type=pdf>.
con la propuesta de algoritmos genéticos. Como resultado encontró que el método clásico
tenía una mejor eficiencia en problemas pequeños pero que el algoritmo genético resultaba
apropiado para abordar cadenas de Markov grandes por su ventaja para encontrar soluciones
óptimas de forma aleatoria.
Luego en el 2005 el profesor Roberto Salas de la Universidad Distrital Francisco José
De Caldas publica el artículo “Simulated Annealing para la búsqueda de políticas óptimas en
procesos de decisión de Markov” 3. Este artículo se centra en un modelo para la toma de
decisiones secuénciales bajo incertidumbre, los llamados procesos de decisión de Markov
(PDM). Este modelo consta de un conjunto de estados, un conjunto de decisiones disponibles
(acciones) para cada estado, un costo o recompensa de acuerdo a la acción que se tome en
cada estado. Dependiendo del estado en que se encuentre el sistema y de la acción que se
tome en ese estado se transitará con cierta probabilidad a otro estado, esta probabilidad es
independiente de los estados y acciones pasadas en el sistema. La idea del tomador de
decisiones es encontrar una secuencia de acciones (política) a seguir en cada estado de tal
manera que el sistema, después de un número determinado de iteraciones o en ciertos casos
a largo plazo, produzca una recompensa o costo óptimas. Con el fin de encontrar la mejor
política se define e implementa el algoritmo Simulated Annealing y así poder abordar o
solucionar el problema de reemplazar un automóvil. En el problema de reemplazar un
automóvil se establecieron 40 estados que representan la cadena de Markov y se definieron
dos posibles acciones, la primera es mantener el carro y la segunda es reemplazarlo, si se
eleva la cantidad de acciones a la cantidad de estados da como resultado más de un billón de
3 Salas, E (2007) SIMULATED ANNEALING PARA LA BÚSQUEDA DE POLÍTICAS ÓPTIMAS
EN PROCESOS DE DECISIÓN DE MARKOV. Vínculos.vol 2(1), 113, 53-62. [online], Disponible en:
<http://revistas.udistrital.edu.co/ojs/index.php/vinculos/article/view/4086/5751>
políticas o soluciones diferentes para resolver el problema. Dentro de sus conclusiones más
destacadas se demostró que el simulated annealing, es una técnica válida para resolver
procesos de decisión de Markov con políticas estacionarias ya que logro obtener una política
óptima. También se concluyó que si bien, el algoritmo del simulated annealing se probó en
un problema relativamente pequeño, parece factible utilizar el mismo en problemas mucho
más grandes, donde son inaplicables técnicas como la rutina de mejoramiento de políticas
por lo costosa que es, o en problemas donde las probabilidades de transición no están
disponibles y por ende no se puede obtener la cadena de Markov.
Posteriormente en el año 2008, de nuevo el profesor Roberto Salas de la Universidad
Distrital Francisco José De Caldas publica el artículo “Algoritmos genéticos para la búsqueda
de políticas óptimas en procesos de decisión de Markov” 4. El objetivo principal de este
artículo es el uso de un algoritmo genético simple como una alternativa para encontrar buenas
políticas ("cercanas a las óptimas") en este tipo de modelo, el cual se aplicó al problema de
reemplazar un automóvil. Como resultado de este trabajo se evidencia que es factible
encontrar con algoritmos genéticos buenas políticas cercanas a óptimas en procesos de
decisión de Markov. En las pruebas experimentales que se plantearon, los algoritmos
genéticos produjeron resultados al menos tan buenos como los producidos por las estrategias
tradicionales disponibles (cálculo e iteración de políticas) para estos problemas.
Los algoritmos meta heurísticos han sido objeto de investigación en los últimos años y
aunque este documento trata sobre la aplicación de este tipo de algoritmos a los Procesos de
Decisión de Markov es necesario destacar otros trabajos que demuestran la efectividad y
versatilidad que tienen los algoritmos metaheurísticos en otros temas o áreas del
4 Salas, E (2007) Algoritmos genéticos para la búsqueda de políticas óptimas en procesos de decisión
de Markov [online], Disponible en: <http://www.redalyc.org/articulo.oa?id=257021008001>
conocimientos. Por ejemplo en el proyecto “Herramienta de Software para la implementación
de algoritmos basados en técnicas meta heurísticas, orientados a optimizar el establecimiento
de rutas para el flujo de información en comunicaciones de multidifusión” 5, realizado en el
año 2004 se trabajó con el algoritmo de Simulated Annealing y búsqueda tabú con el fin de
comprobar cuál de los dos ofrecía mejores resultados en la optimización de funciones como
conteo de saltos, ancho de banda consumido, retardo de propagación y costo económico en
una transmisión de tipo multidifusión, las pruebas que se realizaron en el proyecto se basaban
en los siguientes datos, 50 nodos , 70 enlaces de red y 4 casos de prueba, los algoritmos
ofrecieron respuestas satisfactorias con lo que se concluye que las meta heurísticas en los
procesos de optimización tienen gran importancia y más cuando se trata de un tamaño
considerable y un funcionamiento que no tiene solución general, debido a que se busca una
ruta óptima a seguir.
En el año 2004 se publica el artículo “Entrenamiento De Una Red Neuronal Artificial
Usando El Algoritmo Simulated Annealing”, realizado por los estudiantes de maestría
ingeniería eléctrica de la Universidad Tecnológica de Pereira German Alonso Gómez Rojas,
Juan Carlos Henao López y el profesor facultad de ingeniería Harold Salazar Isaza. El
artículo expone el problema de la modificación de los pesos y bias con un algoritmo de
entrenamiento de un perceptrón multicapa es un problema clásico de programación no lineal
irrestricto. El presente trabajo muestra el desempeño del “Simulated Annealing” como
algoritmo de entrenamiento de esta red neuronal resolviendo dos problemas clásicos en redes
neuronales, el problema de la “Codificación” y el problema de la “Doble Espiral”. Los
5 Benito, J y Rodríguez J, (2011). Herramienta de Software para la implementación de algoritmos
basados en técnicas meta heurísticas, orientados a optimizar el establecimiento de rutas para el flujo de
información en comunicaciones de multidifusión. Bogotá: Facultad tecnológica, universidad Distrital.
resultados de buena calidad son obtenidos cuando se compara esta propuesta frente a
algoritmos clásicos de entrenamiento, Aunque el tiempo de cómputo es más elevado en el
proceso SA, se llegan a soluciones de mejor calidad para la función objetivo con este
entrenamiento, mientras que algunos algoritmos BP quedan atrapados en determinadas
regiones del espacio de soluciones posible.
También se puede apreciar el trabajo realizado por Jhon Rodríguez y Gabriel Cruz
“Simulación Y Optimización Topológica Del Diseño De Una Red De Computadores A
Través De La Implementación De Un Algoritmo Meta Heurístico De Resolución
Multiobjetivo” 6, publicado en el año 2008, cuya propuesta fue desarrollar un software que
permitiera optimizar el diseño de una red implementando algoritmo de tabú y recocido
simulado, en general los resultados coincidieron en que los dos algoritmos permiten
optimizar redes que contengan hasta 50 nodos y esto permite corroborar la importancia de
los algoritmos me1ta heurísticos en procesos de optimización y en particular en sistemas de
redes donde el tamaño y la complejidad de las redes no permiten generar una solución
general.
En el artículo “Aplicación De Cadenas De Markov Continúas A Las Estadísticas Del
Secuestro En Colombia” 7, realizado en el 2008 por las estudiantes Yuleidy Jordan y
Fernanda Lerma en conjunto con la ingeniera Eliana Toro, realizaron el modelamiento, en
un proceso estocástico, de los datos hallados de la investigación respecto a la implicación
que tienen los grupos en el secuestro a nivel Colombia, el estudio realizado fue planteado en
6Rodríguez, J y Cruz, G (2011) Simulación y optimización topológica del diseño de una red de computadores
a través de la implementación de un algoritmo meta heurístico de resolución multi-objetivo. Bogotá: Facultad
tecnológica, universidad Distrital. 7 Jordan Y, Lerma L Y Toro E.(2008) Aplicación De Cadenas De Markov Continúas A Las Estadísticas Del Secuestro
En Colombia
procesos markovianos, técnica que se hace viable cuando se desea realizar operaciones de
datos con el fin de obtener estados estables a partir de la información.
También se puede apreciar el trabajo publicado en el año 2013 “Algoritmo De
Recocido Simulado Aplicado Al Problema De Secuencia miento Regular” 8, realizado por
Jhon Jairo Santa Chávez, César Augusto Peñuela Meneses y Mauricio Granada Echeverry de
la Universidad Tecnológica de Pereira. En este trabajo se realizó una descripción detallada
del algoritmo de Recocido Simulado como metodología de solución a problemas de
optimización combinatorial. Este se enfocó especialmente a la solución del problema de
secuenciamiento de tareas dentro de una planta de producción con recursos limitados. Se
presentan resultados de simulaciones realizadas sobre un problema de la literatura
especializada, mostrando la amplia versatilidad, eficiencia, y facilidad de implementación
del algoritmo propuesto. Como resultado se resolvió el problema de secuenciamiento de
tareas en línea (flow-shop) para un problema de 20 tareas y 5 máquinas. Las respuestas
obtenidas alcanzaron, en todas las veces, respuestas cercanas al óptimo deseado.
Uno de los últimos trabajos realizados con el algoritmo de recocido simulado fue
“Algoritmo de Recocido Simulado para Mejorar el Rendimiento de Codificación de los
Signos Wavelet” 9, publicado en el 2014, y realizado por Pedro Moreno-Bernal, Marco
Antonio Cruz –Chávez, Alina Martínez-Oropeza y Abelardo Rodríguez-León vinculados a
la universidad de Cuernavaca Mexico. En este artículo presentamos una aproximación de
codificación del signo utilizando un algoritmo de Recocido Simulado para predecir de
manera eficiente el signo de los coeficientes wavelet. Se compara la predicción obtenida con
8 Santa J, Peñuela C, Granada Mauricio (2013)Algoritmo De Recocido Simulado Aplicado Al Problema De
Secuenciamiento Regular 9Moreno P, Cruz M, Martínez A, Abelardo (2014) Algoritmo de Recocido Simulado para Mejorar el
Rendimiento de Codificación de los Signos Wavelet
el resultado de un algoritmo genético reportado en la literatura, el cual fue introducido en un
codificador aritmético con el objetivo de validar la calidad de la solución. Los resultados
preliminares muestran que las capacidades de incluir la predicción del signo en un
codificador aritmético, tiene una ganancia de compresión arriba de 17% mejorando el
rendimiento global del codificador también se comprueba de forma experimental que el
algoritmo RS es eficaz en la predicción de signos para maximizar la función objetivo
obteniendo buenos resultados al comparar estos con un algoritmo genético reportado en la
literatura.
1.7.2 MARCO CONCEPTUAL
Se desarrolla el grupo central de conceptos que fundamenta el proyecto con base al
planteamiento del problema.
1.7.2.1 Recocido Simulado
El recocido simulado o Simulated Annealing (SA) se basa en el concepto que cuando
una estructura se calienta, sus moléculas empiezan a moverse con altas velocidades debido a
la gran cantidad de energía, con el tiempo y por la pérdida de energía, dichas moléculas
adquieren un movimiento más lento y se acomodan permitiendo establecer estructuras
cristalinas simétricas10.
Desde un punto de vista algorítmico el principio de la operación en el que se basa el
recocido simulado se puede enunciar en los siguientes términos: El recocido simulado es un
algoritmo de búsqueda local capaz de escapar de los óptimos locales permitiendo que bajo
10 Barash, D.(1999) A Genetic Search In Policy Space For Solving Markov Decision Processes [online],
Disponible en:
http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=A96FEF213AE5512AE416C27BA18D0D15?doi=1
0.1.1.30.9717&rep=rep1&type=pdf>.
ciertas circunstancias se admiten movimientos que empeoren la mejor solución encontrada
hasta el momento en el proceso de búsqueda11.
1.7.2.2 Cadenas de Markov
Son un tipo especial de procesos estocásticos (modelos de probabilidad de procesos
que evolucionan en el tiempo de una manera probabilística)12, que responden a la propiedad
Markoviana, propiedad que se basa en la verificación de que la probabilidad de un estado
futuro, dado un estado presente y todos los estados pasados, depende solo del estado presente
sin tener en cuenta los anteriores y además si también es independiente del tiempo la cadena
de Markov tiene probabilidades de transición estacionarias u homogéneas.
1.7.2.3 Procesos de Decisión de Markov (PDM)
Un proceso de decisión de Markov es similar a una cadena de Markov con la diferencia
que la matriz de transición depende de la acción tomada por un agente en cada paso de
tiempo. El objetivo es hallar una función llamada política, la cual especifica que acción se va
tomar en cada estado, de modo que optimice alguna función de costo o de recompensa.
1.7.2.4 Política Es una regla que específica qué acción tomar en cada punto en el tiempo. Es un mapeo
de estados con unas acciones tomadas. Un sistema tiene como mínimo (m) ̂ n políticas, donde
n son la cantidad de estados y m la cantidad de acciones.
1.7.2.5 Matlab (“MATrix LABoratory”)
Es un potente lenguaje diseñado para la computación técnica, integra el cálculo, la
visualización y la programación en un ambiente fácil de utilizar donde los problemas y las
11 Salas, E (2007) Algoritmos genéticos para la búsqueda de políticas óptimas en procesos de decisión de
Markov [online], Disponible en: <http://www.redalyc.org/articulo.oa?id=257021008001> 12 Salas, E (2007) SIMULATED ANNEALING PARA LA BÚSQUEDA DE POLÍTICAS ÓPTIMAS EN
PROCESOS DE DECISIÓN DE MARKOV. Vínculos.vol 2(1), 113, 53-62. [online], Disponible en:
<http://revistas.udistrital.edu.co/ojs/index.php/vinculos/article/view/4086/5751>
soluciones se expresan en una notación matemática. Es un sistema interactivo cuyo elemento
básico de datos es el arreglo que no requiere de dimensionamiento previo. Esto permite
resolver muchos problemas computacionales, explorando y colaborando en todas las
disciplinas13.
1.7.2.6 Recompensa esperada de la política s.
El siguiente modelo se conoce como Costo promedio esperado (a largo plazo) por
unidad de tiempo. En la implementación de este trabajo es utilizado para encontrar la
recompensa de una política “a” y por eso se han redefinido algunos conceptos que a
continuación se pueden apreciar en la figura 114.
Figura 1. Recompensa esperada de la política s
𝐸𝑠 = Es la recompensa de la política s.
m = Cantidad de estados o lo que es igual a la longitud de la política.
𝑣𝑖𝑠 = Es la recompensa de tomar la decisión aj en el estado i.
𝜋𝑖𝑠= Es la probabilidad de estado estable de la matriz de transición (𝑃𝑠) asociado a la
política s.
Este modelo es la función objetivo que el algoritmo de recocido simulado siempre
intentara maximizar y así obtener la mejor política que tenga una recompensa óptima.
13Matlab [online], Disponible en: http://www.mathworks.com/products/matlab/ 14 Taha, H. Investigación de operaciones, 7a ed. México: PEARSON EDUCACIÓN, 2004. [online],
Disponible en: <https://vagosuatfis.files.wordpress.com/2012/07/thaja-investigacion-de-operaciones-by-
k9.pdf>
1.7.2.7 Integración MATLAB y JAVA
En el modelo “recompensa esperada de la política s” es necesario encontrar los 𝜋𝑖 o
probabilidades de estado estable de la matriz de transición asociada a una política, por esta
razón se utilizó librerías de Matlab que fueran capaz de resolver sistemas de ecuaciones y así
poder encontrar los 𝜋𝑖 solicitados.
La integración de MATLAB y JAVA que se utilizara está basada en crear un
componente en Matlab que reciba una matriz de transición, solucione y retorne un vector
columna con las probabilidades de estado estable. A continuación en la figura 2 se muestra
el diseño de cómo interactúan Matlab y java.
Figura 2. Interacción MATLAB y JAVA
1.8 METODOLOGÍA DE DESARROLLO
La metodología a utilizar en el desarrollo del proyecto es Rational Unified Process
(RUP), ya que permite estimar riesgos tempranamente y distribuye la carga a lo largo del
trabajo. Adicionalmente, permite realizar revisiones continuas para una mejora del proyecto
en cuanto a código, módulos, y librerías.
El desarrollo de esta metodología se realiza a través de 4 fases principales:
Fase de inicio: es una de las fases más importantes, ya que se entiende el negocio
para elaborar el software de manera organizada. Los flujos de trabajo son el
modelado del negocio y definición de requisitos. Los usuarios que interactúan con
el sistema y las clases que lo conforman son los aspectos más importantes para tener
en cuenta en la fase de inicio.
Fase de elaboración: en esta fase se continúa trabajando con los flujos de análisis y
diseño. Por otra parte, se proponen y analiza los riesgos y amenazas que pueden
afectar al proyecto a lo largo de su desarrollo.
Fase de construcción: es una fase independiente y transitoria, ya que el foco de
trabajo se encuentra en el desarrollo operativo del producto final, es decir, es el
momento de mayor intervención de los programadores.
Fase de transición: la interacción con el cliente es mayor en esta fase, puesto que
comienza el ciclo de pruebas y el posible levantamiento de nuevos requerimientos
según petición del cliente.
1.9 FACTIBILIDAD
Para desarrollar el proyecto en su totalidad, son necesarios los siguientes recursos:
1.9.1 FACTIBILIDAD ECONÓMICA
Revisar información contenida en el Anexo 1. Presupuesto y fuentes de financiación.
1.9.2 FACTIBILIDAD OPERATIVA
El recurso humano con el que se cuenta para el desarrollo del proyecto está conformado
por director y desarrolladores, ver Tabla 1.
Tabla 1. Integrantes en el desarrollo del proyecto
FACTIBILIDAD OPERATIVA
NOMBRE INTEGRANTE FUNCIÓN
Roberto Emilio Salas Director
Ximena Galindo Ramirez Desarrollador
Cristhian David Sandoval
Pazu Desarrollador
Fuente: Autores
1.9.3 FACTIBILIDAD TÉCNICA
Se planean las herramientas como base para el desarrollo del proyecto, ver Tabla
2Tabla 2. Herramientas para desarrollo del proyecto.
Tabla 2. Herramientas para desarrollo del proyecto
FACTIBILIDAD TÉCNICA
RECURSO HERRAMIENTA
Lenguaje de
programación java
Entorno de desarrollo Netbeans IDE7.4
Algoritmo metaheuristico
Recocido
Simulado
Lenguaje de
programación Matlab
Entorno de desarrollo Matlab R2011a
DELL Portátil
HP Portátil
Fuente: Autores
1.9.4 FACTIBILIDAD LEGAL
Al ser un proyecto de investigación con el fin de obtener el título académico de
tecnólogos y sin ánimo de lucro, no se presenta problema alguno por hacer uso de la
herramienta Matlab; en cuanto al entorno de desarrollo netbeans no se presenta limitación ya
que es trabajado sobre una licencia de software libre y código fuente abierta.
1.10 CRONOGRAMA DE ACTIVIDADES
Revisar información contenida en Anexo 2. Cronograma de actividades.
2 MODELO DE NEGOCIO
2.1 MODELADO DEL NEGOCIO
El modelado del negocio tendrá como finalidad describir cada proceso del negocio
especificando sus actores, datos, actividades y reglas del negocio para entender el entorno de
la aplicación a implementar.
2.2 DIAGRAMAS DE PROCESO
Permiten identificar las relaciones existentes entre acciones del usuario, del sistema y
visualización del flujo de los eventos.
2.2.1 DIAGRAMA DE PROCESOS MÓDULO INGRESAR DATOS
Forma gráfica de las actividades involucradas en el proceso ingresar datos, ver Figura
1.
Figura 1. Modelo de procesos Ingresar Datos
Fuente: Autores
2.2.2 DIAGRAMA DE PROCESOS MÓDULO PDM
Forma gráfica de las actividades involucradas en el proceso PDM, ver Figura 2.
Figura 2. Modelo de procesos PDM
Fuente: Autores
2.2.3 DIAGRAMA DE PROCESOS MÓDULO ALMACENAMIENTO DE DATOS
Forma gráfica de las actividades involucradas en el proceso almacenamiento de datos,
ver Figura 3.
Figura 3. Modelo de procesos Almacenamiento Datos
Fuente: Autores
2.3 MODELO DEL DOMINIO
Diagrama donde se proporciona una perspectiva conceptual entre las clases de mayor
relevancia, sus atributos y las asociaciones entre estas.
2.3.1 DIAGRAMA DE DOMINIO
Visualización y relación de las clases conceptuales utilizadas para el desarrollo de la
aplicación, ver Figura 4.
Figura 4. Modelo de Dominio
Fuente: Autores
2.4 GLOSARIO DE TERMINOS
Muestra la relación y definición de la lista de palabras y expresiones que conforman el
contexto de la aplicación, ver Tabla 3.
Tabla 3. Glosario De Términos
CONCEPTO DESCRIPCIÓN
Usuario Es el actor encargado de la manipulación de la aplicación.
Interfaz Es la forma en que los usuarios pueden comunicarse con la
plataforma, y comprende todos los puntos de contacto entre
el usuario y el sistema.
Estados Se emplea para describir una situación en la cual se halla
un objeto en relación con los cambios que influyen en su
condición.
Decisiones Determinación o resolución que se toma sobre una
determinada cosa. Por lo general la decisión supone un
comienzo o poner fin a una situación; es decir, impone un
cambio de estado.
Matriz de Transición Es una matriz cuadrada cuyos elementos son decimales
positivos y la suma de los elementos de cada fila es igual a
1. Cada elemento debe ser una probabilidad por eso sus
valores están contemplados en el rango de 0 a 1.
Matriz de Recompensa Es una matriz cuadrada cuyos elementos representa la
recompensa de un estado.
Nuevo Proyecto Es el botón que habilita las opciones para el ingreso de
datos de un nuevo problema a resolver.
Abrir proyecto Es la manera en la que el usuario puede traer datos de un
archivo xls previamente creado y almacenado, de una ruta
específica.
Guardar Proyecto Es la opción que se ofrece en la aplicación para almacenar
los datos de las matrices que han sido previamente
modificadas.
Obtener Política Especifica la acción que se debe tomar en cada estado, es
también un mapeo de estados con una decisión tomada.
Configuración Es el formulario en donde se puede elegir el método y la
cantidad de iteraciones internas y externas con las que se
desea adquirir la solución de cada problema.
Reporte Es el archivo con extensión pdf que se genera, si el usuario
lo desea, evidenciando toda la información del problema.
Temperatura Inicial Es el campo donde se permite especificar el valor que se va
a dar para iniciar la solución del problema.
Cantidad de iteraciones E Un esquema de descenso de temperatura, enfriamiento, que
garantiza la convergencia a óptimos globales => mínima
energía.
Cantidad de iteraciones I Un método que permite obtener nuevas configuraciones
(estados) a partir de la actual => esquema de exploración
del espacio de configuraciones.
Esquema de enfriamiento Son las técnicas de búsqueda aleatoria que se ofrecen en la
aplicación para obtener la solución al problema.
Templado de Cauchy Es una función que se puede elegir para el enfriamiento del
problema, donde se almacena una fórmula que permite la
reducción de temperatura.
Templado de Boltzmann Es una red neuronal recurrente estocástica que representa
la información a partir de una distribución de probabilidad,
el propósito de evaluar la función de energía con el
algoritmo Simulated Annealing es llevarla a una
distribución de equilibrio, no minimizarla.
Descenso Geométrico Es un mecanismo de enfriamiento
Lundy y Mees Es una función de enfriamiento que determina que se
ejecuta una sola iteración para cada temperatura, pero por
el contrario la temperatura se reduce a una velocidad muy
lenta.
Fuente: Autores
3 REQUERIMIENTOS
Fase en la que se establece todo lo relacionado en cuanto al funcionamiento que tendrá
la aplicación mediante la documentación de funcionalidad e identificación de los casos de
uso.
3.1 REQUERIMIENTOS FUNCIONALES
Declaración explicita de las acciones con las que el sistema debe cumplir, visualizar
Tabla 4.
Tabla 4. Requerimientos funcionales
Código del
requerimiento
Requerimiento Descripción
RF-1 Crear una Matriz de
Transición
El sistema debe permitir Crear una Matriz de
transición de mínimo 2 filas y 2 columnas y
máximo 20 filas y 20 columnas.
RF-2 Cargar una Matriz de
Transición
El sistema debe permitir Cargar una Matriz de
Transición de n filas por n columnas. (Mínimo 2
filas y 2 columnas. Máximo 20 filas y 20
columnas). El archivo que debe cargar el sistema
es un libro de Excel (.xls) donde se encuentran
registrados los datos de la matriz de transición.
RF-3 Guardar una Matriz
de Transición
El sistema debe permitir Guardar una Matriz de
Transición de n filas por n columnas. (Máximo
una matriz de 20X20) en un libro de Excel (.xls).
RF-4 Crear matriz de
recompensa
El sistema debe permitir crear una matriz de
recompensa. Esta matriz va te tener las mismas
dimensiones de la matriz de transición asociada.
RF-5 Cargar la matriz de
recompensa.
El sistema debe permitir cargar la matriz de
recompensa. El archivo que debe cargar es un
libro de Excel (.xls), donde se encuentran
registrados los datos de la matriz de recompensa.
RF-6 Guardar la matriz de
recompensa.
El sistema debe permitir guardar la matriz de
recompensa en un libro de Excel (.xls).
RF-7 Implementar el
algoritmo de recocido
simulado.
Implementar el algoritmo de recocido simulado
para buscar la política óptima y se pueda obtener
la recompensa más alta.
RF-8 Configuración del
algoritmo Recocido
simulado
El usuario puede escoger varias tipos de
esquemas de temperatura.
El usuario puede escoger la cantidad de
iteraciones externas. Esto está relacionado
con el criterio de parada.
El usuario puede escoger la cantidad de
iteraciones externas. Esto está relacionado
con el criterio de parada.
El usuario puede escoger la temperatura
inicial con la que iniciara el algoritmo.
RF-9 Buscar política
óptima
Esta acción debe tomar los datos ingresado al
sistema, validarlos y procesarlos para buscar la
política óptima que refleje la recompensa más alta
posible.
RF-10 Mostrar
comportamiento del
algoritmo recocido
simulado
Mostrar el comportamiento del algoritmo
recocido simulado por medio de gráficas
mostrando la recompensa obtenida en cada
iteración externa o en otras palabras la
recompensa obtenida en temperaturas diferentes.
RF-11 Generar Reporte Generar documento en el que se muestran los
resultados obtenidos. (Formato pdf). Este reporte
debe contener:
Las decisiones que fueron ingresadas.
La configuración con que se encontró la
política.
La política obtenida por el sistema.
La recompensa de aplicar la política
encontrada.
Gráfica que muestre en comportamiento
del algoritmo en cada iteración.
RF-12 Validación del
algoritmo Recocido
simulado
Si el algoritmo toma demasiado tiempo en obtener
una política debe tener la posibilidad de cancelar
o parar para que el usuario pueda cambiar la
configuración del algoritmo y de nuevo intentar
obtener la mejor política.
RF-13 Verificar condiciones El sistema debe verificar que se cumplan con las
condiciones mínimas para ser una matriz de
transición válida (La suma de todos los elementos
de una fila[i] deben ser igual 1). Y los valores de
esta matriz deberán ser decimales positivos. Si
esto no se cumple debe mostrar un mensaje al
usuario que indique que debe corregir o ajustar los
datos ingresados. Cuando los datos estén
correctamente ingresados se podrá continuar con
el proceso de buscar la mejor política.
RF-14 Ingresar decisiones El sistema debe permitir ingresar mínimo 2
decisiones o máximo 10 decisiones. Una decisión
es la asociación de una matriz de transición y una
matriz de recompensa.
RF-15 Mostrar decisiones El sistema debe mostrar de forma ordenada las
decisiones ingresadas. Una decisión es la
asociación de una matriz de transición y una
matriz de recompensa.
Fuente: Autores
3.2 REQUERIMIENTOS NO FUNCIONALES
Requerimientos que no se refieren directamente a las funciones específicas que
proporciona el sistema, sino a las propiedades emergentes del mismo, visualizar Tabla 5.
Tabla 5. Requerimientos no funcionales
Código del
requerimiento
Requerimiento Descripción
RNF-1 Usabilidad Debe ser fácil de usar, debe tener interfaz
intuitiva.
RNF-2 Condiciones El sistema deberá funcionar en sistemas
operativos Windows 7 en adelante puede
utilizar herramientas como Matlab, Microsoft
Office (libros de Excel) y formatos pdf.
RNF-3 Rendimiento La aplicación debe soportar gran cantidad de
datos durante su proceso.
RNF-4 Desempeño No debe presentar errores durante su manejo.
RNF-5 Requerimientos
externos
Se deberán realizar estudios, si posteriormente
a la implementación de este sistema los
usuarios están interesados en complementarlo
con otras funcionalidades que manejaría más
adelante, esto permitiría actualizar el software
y generar implementaciones para que este
pueda agilizar el proceso u ofrecer nuevas
funcionalidades.
RNF-6 Requerimientos
organizacionales
Ofrecer al usuario final una explicación del
funcionamiento y la finalidad del software en
cada módulo (manuales de uso y soporte).
Fuente: Autores
3.3 DEFINICIÓN DE ACTORES
Un actor es una agrupación uniforme de personas, sistemas o máquinas que interactúan
con el sistema, en este caso una aplicación de escritorio, se describe el actor relacionado que
hará uso del software, ver Tabla 6.
Tabla 6. Definición de Actores
ACTOR DESCRIPCIÓN
Es el actor que hace uso de las herramientas suministradas por la
aplicación, puede acceder a los módulos de Nuevo proyecto, Abrir
proyecto, Guardar proyecto, Obtener política, Configurar y Generar
Reporte.
Fuente: Autores
3.4 LISTA PRELIMINAR DE CASOS DE USO
Listado de los casos de uso principales que dan pauta al desarrollo del prototipo, ver
Tabla 7.
Tabla 7. Lista preliminar casos de uso
USUARIO
Crear Decisiones
Cargar Decisiones.
Guardar Decisiones.
Configuración Recocido Simulado.
Buscar Política.
Generar Reporte.
Modificar Decisiones.
Fuente: Autores
3.5 MODELO DE CASOS DE USO
Los diagramas de casos de uso detallan las relaciones y las dependencias entre un grupo
de casos de uso y el actor participante en el sistema.
Se muestra el diagrama de caso de uso general, visualizar Figura 5. Los demás se
encuentran en el Anexo 3. Diagramas específicos casos de uso, con fines de preservación de
acuerdo a la norma de medio ambiente del Ministerio TIC “Cero Papel”.
Figura 5. Modelo de Casos de uso general
Fuente: Autores
3.5.1 DOCUMENTACIÓN DE CASOS DE USO
Descripción detallada de las especificaciones y los pasos que sigue el actor para
interactuar con el sistema.
Tabla 8. Documentación caso de uso: Crear Decisiones
IDENTIFICACION CASO DE USO ACTORES
CU-1 Crear decisiones USUARIO
OBJETIVO
Permitir crear decisiones desde la aplicación. El usuario podrá ingresar los datos y definir
cuantas decisiones desea crear.
DESCRIPCIÓN
Una decisión está conformada por una matriz de transición y una matriz de recompensa. Esto
implica que el sistema debe permitir crear la cantidad de decisiones que el usuario solicite y
garantizar que el usuario puede modificar los valores de estas decisiones cuando sea
necesario.
Precondiciones
El Actor debe ingresar a la aplicación.
El Usuario debe ingresar a la sección nuevo proyecto.
El usuario debe ingresar la cantidad de decisiones. Un máximo
de 10 decisiones o mínimo de 2 decisiones.
El usuario debe ingresar la cantidad de estados de las
decisiones.
Pos condiciones
El sistema debe crear la cantidad de decisiones solicitadas por
el usuario.
El sistema debe mostrar la matriz de transición y la matriz de
recompensa de cada decisión creada.
Las dimensiones de las matrices de transición y de recompensa
dependen de la cantidad de estados solicitados por el usuario.
El sistema debe habilitar la sección Guardar decisiones.
El sistema debe habilitar la sección Buscar política.
El sistema debe habilitar la sección Modificar Decisiones.
Alternativas y
excepciones
El usuario puede cancelar la operación Crear decisiones.
Si la aplicación es cerrada se cancela la operación.
CURSO NORMAL DE LOS EVENTOS
ACCION DEL ACTOR RESPUESTA DEL SISTEMA
1. El usuario debe ingresar a la aplicación.
2. El usuario debe dar clic en la opción Crear
decisiones.
3. El usuario escoge la cantidad de
decisiones.
4. El usuario escoge la cantidad de estados.
5. El sistema crea la cantidad de decisiones
solicitadas.
6. El sistema crea las matrices de transición y
de recompensa de cada decisión. Las
dimensiones de las matrices de transición y de
recompensa dependen de la cantidad de estados
solicitados por el usuario.
7. El sistema habilita la sección Guardar
decisiones.
8. El sistema habilita la sección Buscar política.
9. El sistema habilita la sección Modificar
Decisiones.
PUNTOS DE INTERRUPCIÓN
El usuario puede cancelar la operación desde la acción dos.
Fuente: Autores
Tabla 9. Documentación caso de uso: Cargar Decisiones
IDENTIFICACION CASO DE USO ACTORES
CU-2 Cargar Decisiones USUARIO
OBJETIVO
El sistema debe permitir cargar masivamente las decisiones y datos necesarios y garantizar
que puedan ser modificados y procesados con el fin de ser utilizados por el sistema.
DESCRIPCIÓN
El caso de uso permite cargar la cantidad de decisiones que se encuentren en un archivo
Excel. Cada decisión debe tener una matriz de transición y una matriz de recompensa.
Precondiciones
El usuario debe ingresar a la aplicación.
El usuario debe ingresar a la sección Cargar Decisiones.
El usuario debe seleccionar el archivo Excel (.xls), en donde
se encuentran las decisiones a cargar.
Pos condiciones
El sistema debe validar que el archivo seleccionado sea (.xls).
El sistema debe validar que la cantidad de decisiones sea
mínimo 2 máximo 10.
El sistema debe validar que por cada decisión exista una matriz
de transición y una matriz de recompensa.
El sistema debe validar que la matriz de transición y la matriz
de recompensa tengas las mismas dimensiones.
Si no se cumplen las validaciones anteriores el sistema
mostrará un mensaje que le indique al usuario por que no se
pudo cargar las decisiones.
Si las validaciones anteriores se cumplen el sistema debe
cargar las decisiones y mostrarlas de forma ordena en la
pantalla principal de la aplicación.
Si las validaciones anteriores se cumplen el sistema debe
habilitar la sección Guardar decisiones.
Si las validaciones anteriores se cumplen el sistema debe
habilitar la sección Buscar política.
Si las validaciones anteriores se cumplen el sistema debe
habilitar la sección Modificar Decisiones.
Alternativas y
excepciones
El usuario cancela la operación.
Notificar mensaje de error si la matriz no cumple con los
requisitos necesarios.
Notificar mensaje de error si la aplicación no encuentra la ruta
en donde se almaceno las matrices.
Si la aplicación es cerrada se cancela la operación.
CURSO NORMAL DE LOS EVENTOS
ACCION DEL ACTOR RESPUESTA DEL SISTEMA
1. El usuario debe ingresar a la aplicación.
2. El usuario debe dar clic en la opción
cargar decisiones.
3. El usuario debe seleccionar el archivo
(.xls), donde se encuentra las decisiones a
cargar.
4. el sistema valida que el archivo cumpla con
los requisitos mínimos. Si no cumple muestra
un mensaje al usuario para que revise lo
ocurrido.
5. el sistema valida que el archivo cumpla con
los requisitos mínimos. Si cumple muestra las
decisiones cargadas en la pantalla principal.
6. Si las validaciones anteriores se cumplen el
sistema debe habilitar la sección Guardar
decisiones.
7. El sistema valida que el archivo cumpla con
los requisitos mínimos. Si cumple sistema debe
habilitar la sección Buscar política.
8. El sistema valida que el archivo cumpla con
los requisitos mínimos. Si cumple debe
habilitar la sección Modificar Decisiones.
PUNTOS DE INTERRUPCIÓN
El usuario puede cancelar la operación desde la acción dos.
Fuente: Autores
Tabla 10. Documentación caso de uso N°3: Guardar Decisiones
IDENTIFICACION CASO DE USO ACTORES
CU-3 Guardar Decisiones USUARIO
OBJETIVO
El sistema debe permitir guardar las decisiones cuando el usuario lo considere necesario.
Se deben guardar en un archivo Excel (.xls).
DESCRIPCIÓN
El caso de uso permite guardar en un archivo Excel (.xls) las decisiones creadas o cargadas
por el usuario para que puedan ser utilizadas en otra ocasión por el sistema.
Precondiciones
El usuario debe ingresar a la aplicación.
El usuario debe haber creado previamente las decisiones desde
la sección Crear decisiones.
El usuario debe haber cargado previamente las decisiones
desde la sección Cargar decisiones.
El usuario debe seleccionar la ruta donde se crea el archivo
Excel donde se guardaran las decisiones y asignar un nombre
al archivo.
Pos condiciones
El sistema deberá guardar las decisiones en la ruta escogida
por el usuario en formato xls (Libro de Excel).
El sistema deberá guardar las decisiones de forma ordenada y
con el fin de identificar que cada matriz de transición está
asociado con una matriz recompensa.
Alternativas y
excepciones
El usuario cancela la operación.
Notificar mensaje de error si el directorio donde se va a guarda
no existe.
Notificar sí las decisiones fueron guardadas o no.
Si el usuario no decide la ruta del archivo el sistema lo
guardará por defecto en la carpeta del proyecto PDM-RC.
Si la aplicación es cerrada eventualmente debe desplegar la
opción de guardar el archivo.
CURSO NORMAL DE LOS EVENTOS
ACCION DEL ACTOR RESPUESTA DEL SISTEMA
1. El usuario debe ingresar a la aplicación.
2. El usuario debe decidir entre dos
operaciones abrir proyecto o nuevo
proyecto.
3. El usuario podrá dar clic en la pestaña
guardar proyecto.
4. El actor elige la ruta donde quedará
guardado el archivo.
5. El sistema guarda las decisiones en el
archivo Excel.
6. Si la operación fue exitosa se abrirá
automáticamente el archivo Excel y se
mostrará al a usuario.
7. Si la operación no es exitosa el sistema
mostrará un mensaje "operación no exitosa".
PUNTOS DE INTERRUPCIÓN
El usuario puede cancelar la operación desde la acción número cuatro.
Fuente: Autores
Tabla 11. Documentación caso de uso: Configuración Recocido Simulado
IDENTIFICACION CASO DE USO ACTORES
CU-4 Configuración Recocido Simulado USUARIO
OBJETIVO
El usuario puede escoger los criterios de parada y los esquemas de enfriamiento que son
indispensables para que el algoritmo recocido simulado pueda encontrar una política óptima
con la recompensa más alta posible.
DESCRIPCIÓN
Precondiciones
El usuario debe ingresar a la aplicación
El usuario debe crear decisiones desde la opción Nuevo
Proyecto.
El usuario debe cargar decisiones desde la opción Abrir
Proyecto.
El usuario debe dar clic en el botón Configuración.
Pos condiciones
El sistema debe guardar la configuración que el usuario
definió.
El sistema debe guardar el valor de la temperatura.
El sistema debe guardar el valor de las iteraciones externas e
internas.
El sistema debe guardar el esquema de enfriamiento.
Alternativas y
excepciones
El usuario cancela la operación configuración.
El usuario cierra la aplicación.
CURSO NORMAL DE LOS EVENTOS
ACCION DEL ACTOR RESPUESTA DEL SISTEMA
1. Desplegar la aplicación.
2. El usuario crea o abre un proyecto.
3. El sistema carga las matrices de las
decisiones.
4. El usuario realiza las modificaciones que
considere pertinentes en cada decisión.
5. El usuario despliega la opción
Configuración.
7. El usuario ingresa la temperatura, la
cantidad de iteraciones y el esquema de
enfriamiento.
9. El usuario oprime el botón aceptar.
6. El sistema carga la interfaz Configuración
y habilita los campos que se pueden
modificar.
8. El sistema guarda internamente los valores
definidos.
10. El sistema cierra la ventana configuración
y retorna al menú principal.
PUNTOS DE INTERRUPCIÓN
El usuario puede cancelar la operación desde la acción número cinco.
Fuente: Autores
Tabla 12. Documentación caso de uso: Buscar Política
IDENTIFICACION CASO DE USO ACTORES
CU-5 Buscar Política USUARIO
OBJETIVO
Obtener la política óptima que refleje la recompensa más alta que da solución al problema en
cuestión realizando la validación del algoritmo recocido simulado y de los valores de las
matrices.
DESCRIPCIÓN
La finalidad del proyecto es dar una solución óptima al problema que fue planteado, el caso
de uso ofrece esa política óptima que refleja la recompensa más alta encontrada en el curso
de las iteraciones que realiza el algoritmo.
Precondiciones
El usuario debe ingresar a la aplicación.
El usuario debe crear decisiones desde la opción Nuevo
Proyecto.
El usuario debe cargar decisiones desde la opción Abrir
Proyecto.
El sistema debe verificar que se cumplan con las condiciones
mínimas para ser una matriz de transición válida (La suma de
todos los elementos de una fila[i] deben ser igual a 1). Y los
valores de esta matriz deberán ser decimales positivos. Si esto
no se cumple debe mostrar un mensaje al usuario que indique
que debe corregir o ajustar los datos ingresados. Cuando los
datos estén correctamente ingresados se podrá continuar con el
proceso de buscar la mejor política.
El usuario debe desplegar la ventana Obtener política.
Pos condiciones
El sistema debe obtener el valor específico de la recompensa
más alta.
El sistema debe habilitar la opción Reporte.
Alternativas y
excepciones
El usuario cancela la operación Obtener Política.
El usuario realiza una nueva configuración del algoritmo.
El usuario cierra la aplicación.
CURSO NORMAL DE LOS EVENTOS
ACCION DEL ACTOR RESPUESTA DEL SISTEMA
1. Desplegar la aplicación.
2. El usuario crea o abre un proyecto.
4. El usuario realiza las modificaciones que
considere pertinentes en cada decisión
5. El usuario despliega la opción
Configuración
7. El usuario ingresa la temperatura, la
cantidad de iteraciones y el esquema de
enfriamiento.
9. El usuario oprime el botón aceptar.
11. El usuario despliega la opción Obtener
política
3. El sistema carga las matrices de las
decisiones.
6. El sistema carga la interfaz Configuración y
habilita los campos que se pueden modificar.
8. El sistema guarda internamente los valores
definidos.
10. El sistema cierra la ventana configuración
y retorna al menú principal.
12. El sistema carga la interfaz obtener política,
mostrando los datos ingresados en la
configuración y el avance del algoritmo
mientras realiza las iteraciones para hallar el
resultado.
PUNTOS DE INTERRUPCIÓN
El usuario puede cancelar la operación desde la acción número once.
Fuente: Autores
Tabla 13. Documentación caso de uso: Generar Reporte
IDENTIFICACION CASO DE USO ACTORES
CU-6 Generar Reporte USUARIO
OBJETIVO
Mostrar en un archivo pdf el comportamiento del algoritmo recocido simulado, la
información de las matrices, la configuración realizada, la política encontrada y la
recompensa que se aplica.
DESCRIPCIÓN
El caso de uso permite almacenar en un archivo con extensión pdf la recopilación de la
información del proceso que se planteó, incluyendo los datos de las matrices, la configuración
elegida para hallar la solución, los resultados obtenidos y la gráfica que se genera de la
recompensa obtenida en temperaturas diferentes
Precondiciones
El usuario debe ingresar a la aplicación
El usuario debe crear o cargar decisiones desde la opción
Nuevo Proyecto o Abrir proyecto respectivamente.
El usuario debe elegir la configuración.
El sistema debe validar cada matriz con el fin de poder evaluar
los datos.
El sistema debe dar por finalizado el proceso de obtener
política.
Pos condiciones El sistema debe generar un documento con extensión pdf.
Alternativas y
excepciones
El usuario cancela la operación Reporte.
El usuario cierra la aplicación.
CURSO NORMAL DE LOS EVENTOS
ACCION DEL ACTOR RESPUESTA DEL SISTEMA
1. Desplegar la aplicación.
2. El usuario crea o abre un proyecto
4. El usuario realiza las modificaciones
que considere pertinentes en cada
decisión.
5. El usuario despliega la opción
Configuración.
7. El usuario ingresa la temperatura, la
cantidad de iteraciones y el esquema de
enfriamiento.
9. El usuario oprime el botón aceptar.
11. El usuario despliega la opción Obtener
política.
14. El usuario oprime el botón Reporte.
3. El sistema carga las matrices de las
decisiones.
6. El sistema carga la interfaz Configuración y
habilita los campos que se pueden modificar.
8. El sistema guarda internamente los valores
definidos.
10. El sistema cierra la ventana configuración
y retorna al menú principal.
12. El sistema carga la interfaz obtener política,
mostrando los datos ingresados en la
configuración y el avance del algoritmo
mientras realiza las iteraciones para hallar el
resultado.
13. El sistema encuentra la solución y habilita
la opción Reporte.
15. El sistema despliega un archivo pdf.
PUNTOS DE INTERRUPCIÓN
El usuario puede cancelar la operación desde la acción número once.
Fuente: Autores
Tabla 14. Documentación caso de uso: Modificar Decisiones
IDENTIFICACION CASO DE USO ACTORES
CU-7 Modificar Decisiones USUARIO
OBJETIVO
Realizar un mecanismo que permita al usuario visualizar las matrices de la decisión que elija.
DESCRIPCIÓN
El sistema debe Mostrar de forma ordenada las decisiones ingresadas. Una decisión es la
asociación de una matriz de transición y una matriz de recompensa.
Precondiciones El usuario debe ingresar a la aplicación.
El usuario debe crear o cargar decisiones desde la opción
Nuevo Proyecto o Abrir proyecto respectivamente.
Pos condiciones
El sistema debe mostrar las matrices respectivas a cada
decisión
Alternativas y
excepciones
El usuario cancela la operación.
El usuario cierra la aplicación.
CURSO NORMAL DE LOS EVENTOS
ACCION DEL ACTOR RESPUESTA DEL SISTEMA
1. Desplegar la aplicación.
2. El usuario crea o abre un proyecto.
4. El usuario despliega la lista de decisiones
que conforman el problema y elige la que
quiere visualizar en pantalla.
3. El sistema carga las matrices de la primera
decisión.
5. El sistema muestra las matrices que
corresponden al número de decisión que el
usuario seleccionó.
PUNTOS DE INTERRUPCIÓN
El usuario puede cancelar la operación desde la acción número dos.
Fuente: Autores
4 ANÁLISIS
En esta fase se desarrolla el diseño de la arquitectura del sistema, utilizando los
requerimientos obtenidos en el paso anterior. Se relacionan los componentes, los datos y los
procesos también se muestran las diferentes acciones que tienen los actores al realizar una
tarea.
4.1 DIAGRAMAS DE SECUENCIA
Los diagramas de secuencia permiten determinar el flujo de las acciones internas
después de una acción por parte del usuario.
A continuación se muestran los diagramas de secuencia principales, los demás se
encuentran en el Anexo 3. Diagramas específicos casos de uso, con fines de preservación de
acuerdo a la norma de medio ambiente del Ministerio TIC “Cero Papel”.
4.1.1 DIAGRAMA DE SECUENCIA MÓDULO INGRESO DE DATOS
Diagrama que muestra gráficamente la interacción entre los objetos que conforman el
ingreso de datos en la aplicación, ver Figura 6.
Figura 6. Modelo de secuencia ingreso datos
Fuente: Autores
4.1.2 DIAGRAMA DE SECUENCIA MÓDULO PDM
Diagrama que muestra gráficamente la interacción entre los objetos que conforman el
proceso que da solución a los problemas propuestos en el prototipo, visualizar Figura 7.
Figura 7. Modelo de Secuencia PDM
Fuente: Autores
4.1.3 DIAGRAMA DE SECUENCIA MODULO ALMACENAMIENTO DATOS
Diagrama que muestra gráficamente la interacción entre los objetos que conforman el
almacenamiento de datos en la aplicación, visualizar Figura 8.
Figura 8. Modelo de secuencia almacenamiento datos
Fuente: Autores
4.2 DIAGRAMAS DE ACTIVIDAD
Los diagramas de actividades muestran los procesos de la plataforma, donde se
representan los flujos de trabajo a través de una serie de interacciones entre la aplicación y
los usuarios.
4.2.1 DIAGRAMA DE ACTIVIDAD MODULO INGRESO DATOS
Diagrama que muestra el flujo del trabajo entre el usuario y el sistema para el
ingreso de datos del prototipo, ver Figura 9.
Figura 9. Modelo de actividad ingreso datos
Fuente: Autores
4.2.2 DIAGRAMA DE ACTIVIDAD MÓDULO PDM
El diagrama muestra el flujo del trabajo entre el usuario y el sistema para la solución
del problema planteado en el prototipo, ver Figura 10.
Figura 10. Modelo de actividad PDM
Fuente: Autores
4.2.3 DIAGRAMA DE ACTIVIDAD MODULO ALMACENAR DATOS
El diagrama muestra el flujo del trabajo entre el usuario y el sistema para el
almacenamiento de datos en el prototipo, ver Figura 11.
Figura 11. Modelo de actividad almacenar datos
Fuente: Autores
5 DISEÑO
Fase en la que se elaboran diagramas que permiten visualizar gráficamente la
comunicación entre los objetos y tener una pre visualización del aplicativo para cumplir con
los requerimientos.
5.1 PROTOTIPACIÓN
Es utilizada para que el usuario pueda tener una perspectiva de cómo se va a ver el
aplicativo.
5.1.1 INDEX
La imagen permite la visualización del panel de opciones del prototipo, ver Figura 12.
Figura 12. Pre-pantalla índex
Fuente: Autores
En la imagen se muestra la posible ubicación de las matrices que se modelaran para el
planteamiento del problema, ver Figura 13.
Figura 13. Pre-pantalla índex matrices
Fuente: Autores
5.1.2 CONFIGURACIÓN
La imagen permite la visualización de la posible manera de configuración de los datos
iniciales para evaluar el problema planteado en el prototipo, ver Figura 14.
Figura 14. Pre-pantalla configuración
Fuente: Autores
5.1.3 OBTENER POLÍTICA
La imagen permite la visualización de la posible manera en que se evidenciara el
proceso de la solución, ver Figura 15.
Figura 15. Pre-pantalla obtener política
Fuente: Autores
5.2 LISTA INICIAL DE CLASES
Se muestran las clases que conforman cada paquete que hace parte de la solución de la
aplicación, ver Tabla 15.
Tabla 15. Lista Inicial de clases
Modelo Vista Control
Archivo.java
EscribirExcel.java
EscribirPDF.java
LeerExcel.java
LineChart.java
Matriz.java
JFrameBuscarPolitica.java
JFrameConfiguracion.java
index.java
Control.java
MatrizCostos.java
MatrizTransicion.java
RecocidoSimulado.java
SolucionEcuaciones.java
Fuente: Autores
5.3 DIAGRAMA DE CLASES
El diagrama de clases es un tipo de diagrama estático que describe la estructura del
sistema mostrando sus clases, atributos y las relaciones entre ellos, la visualización específica
del prototipo tal como se muestra en la Figura 16.
Figura 16. Modelo de clases
Fuente: Autores
5.4 MODELO DE INTERFAZ
La arquitectura de la interfaz de usuario se define teniendo en cuenta diferentes
aspectos que introducen modelos para soportar el modelado de rol-usuario, el modelado de
contexto, el modelado de tareas, el modelado de dominio y los modelos de presentación. Las
especificaciones del prototipo se visualizan en la Figura 17.
Figura 17. Modelo de Interfaz
Fuente: Autores
6 IMPLEMENTACIÓN
6.1 DEFINICIÓN DE CLASES
Descripción detallada de las clases que hacen parte de la implementación que da la
solución del prototipo.
6.1.1 DEFINICIÓN DE CLASES CAPA MODELO
Se realiza la especificación de cada una de las clases y las que se asocian para el
funcionamiento del paquete modelo de la aplicación, ver Tabla 16.
Tabla 16. Definición de Clases Capa Modelo
Nombre Clase Descripción Colaboradores
Archivo
Esta clase contiene todos los objetos que
conforman el sistema o modelo. Fue necesaria
su creación para reunir todas las características
que conforman un proceso de decisión de
Markov y también las necesarias para garantizar
la manipulación y procesamiento de los datos
que el usuario puede crear.
EscribirExcel
EscribirPDF
LeerExcel
LineChart
MatrizMatriz
Recompensa
MatrizTransicion
RecocidoSimulado
SolucionEcuaciones
EscribirExcel
Esta clase permite que el sistemas pueda
generar archivos Excel y el usuario pueda
guardar las decisiones o el avance de las
decisiones que está diseñando.
Archivo
LineChart
EscribirPDF
Esta clase permite al sistema generar archivos
pdf con el fin de mostrar los resultados
obtenidos. Este reporte muestra una descripción
de la configuración, la recompensa obtenida en
cada interacción y la mejor política encontrada.
Archivo
LeerExcel
Esta clase permite al sistema leer archivos
Excel con el fin de cargar las decisiones que el
usuario quiera procesar.
Archivo
LineChart
Esta clase permite al sistema graficar los
avances obtenidos por el algoritmo recocido
simulado en cada iteración.
Matriz
Esta clase es la representación de una matriz
cuadrada y contiene las características
suficientes para heredar sus atributos y métodos
a clases hijas.
MatrizRecompensa
Esta clase hereda los atributos de la clase
Matriz y su propósito es representar la
recompensa de una decisión.
Matriz
MatrizTransicion
Esta clase hereda los atributos de la clase
Matriz y su propósito es representar las
probabilidades de pasar de un estado a otro o
cadenas de Markov.
Matriz
RecocidoSimulado
Esta clase permite utilizar el algoritmo recocido
simulado para obtener la mejor política. Esta
clase también permite configurar todas las
características del algoritmo y poder controlar
la cantidad de iteraciones y el esquema de
temperatura.
SolucionEcuaciones
SolucionEcuaciones
Esta clase permite la integración de librerías
Matlab y su propósito es utilizar todo el
potencial del lenguaje Matlab para resolver
sistemas de ecuaciones que son necesarias para
obtener las probabilidades de estado estable de
una cadena de Markov.
Fuente: Autores
6.1.2 DEFINICIÓN DE CLASES CAPA VISTA
Se realiza la especificación de cada una de las clases y las que se asocian para el
funcionamiento del paquete vista de la aplicación, ver Tabla 17.
Tabla 17. Definición de Clases Capa Vista
Nombre Clase Descripción Colaboradores
JFrameBuscarPolitica
Esta ventana permite mostrar el avance y los
resultados obtenidos por el algoritmo recocido
simulado en cada iteración y las condiciones con
que está configurado el algoritmo.
control
JFrameConfiguracion
Esta ventana permite modificar la configuración
del algoritmo de recocido simulado siempre que el
usuario lo solicite.
control
index
Esta ventana es la interfaz principal que expone
todas las operaciones que puede realizar el
usuario.
control
6.1.3 DEFINICIÓN DE CLASES CAPA CONTROL
Se realiza la especificación de cada una de las clases y las que se asocian para el
funcionamiento del paquete control de la aplicación, ver Tabla 18.
Tabla 18. Definición de Clases Capa Control
Nombre
Clase Descripción Colaboradores
Control
Esta clase contiene todas las operaciones que el usuario
puede realizar. Esta clase relaciona los datos ingresados
por el usuario y se los envía a los modelos para
procesarlos y retornar una respuesta.
Archivo
Index
JFrameBuscarPolitica
JFrameConfiguracion
Fuente: Autores
6.2 DIAGRAMA DE DESPLIEGUE
El diagrama de despliegue muestra la configuración en funcionamiento del sistema
incluyendo software y hardware, es decir las relaciones físicas de los distintos nodos que
componen un sistema y el reparto de los componentes sobre dichos nodos, los nodos y
componentes que dan solución al prototipo se visualizan en la Figura 18.
Figura 18. Modelo de despliegue
Fuente: Autores
6.3 DIAGRAMA DE COMPONENTES
El diagrama muestra las interacciones y relaciones de los componentes, es decir clases
o entidades de un modelo, permite visualizar la estructura de alto nivel del sistema y el
comportamiento del servicio que estos componentes proporcionan y usan a través de
interfaces, para el caso específico del prototipo se muestra la Figura 19.
Figura 19. Modelo de componentes
Fuente: Autores
6.4 DIAGRAMA DE PAQUETES
El diagrama de paquetes se usa para reflejar la organización de paquetes y sus
elementos, se muestran las clases que conforman cada paquete con los que se realizó el
desarrollo de la aplicación, ver Figura 20.
Figura 20. Modelo de paquetes
Fuente: Autores
7 PRUEBAS
7.1 PRUEBAS UNITARIAS
Tienen como objetivo fundamental asegurar el correcto funcionamiento de las
interfaces, o flujo de datos entre componentes.
7.1.1 PRUEBAS UNITARIAS MÓDULO INGRESO DATOS
Documentación de las pruebas realizadas del código que contiene el módulo de
Ingreso de datos, ver Tabla 19.
Tabla 19. Pruebas Unitarias Módulo Ingreso Datos
PRUEBA INGRESAR DATOS
Dirigida por: Asistente: Estado:
Cristhian Sandoval
Pazu
Ximena Galindo
Ramirez
Proceso Ok
Terminado Si
CONCEPTO
Revisar el funcionamiento de las secciones que componen el módulo
Ingresar Datos
PERFIL Usuario
ACCIÓN
ELEMENTO A
PRUEBA RESULTADO ESPERADO ESTADO
Nuevo Proyecto Botón Nuevo
Proyecto
El sistema debe desplegar la opción
para que el usuario elija la cantidad
de decisiones.
ok
Nuevo Proyecto Seleccionar
Decisiones
El sistema debe dejar desplegar la
lista de las posibles cantidades,
guardar el dato que seleccione el
usuario y retornar la opción para que
se elija la cantidad de estados.
ok
Nuevo Proyecto Seleccionar
Estados El sistema debe dejar desplegar la
lista de las posibles cantidades,
ok
guardar el dato que seleccione el
usuario.
Nuevo Proyecto Botón Aceptar
El usuario confirma el proceso, el
sistema debe mostrar en pantalla las
matrices de la primera decisión y
habilitar el campo para cambiar de
decisión.
ok
Nuevo Proyecto Botón Cancelar
El usuario cancela el proceso crear
decisiones y el sistema retorna al
menú principal.
ok
Abrir Proyecto Botón Abrir
Proyecto
El sistema debe desplegar una
ventana que permite al usuario
realizar la búsqueda del archivo con
extensión Excel que desea cargar.
ok
Abrir Proyecto Botón Abrir
El usuario confirma que es el
documento que desea abrir, el
sistema muestra las matrices
correspondientes a la primera
decisión y habilita el campo para
cambiar de decisión.
ok
Abrir Proyecto Botón Cancelar
El usuario cancela el proceso cargar
decisiones y el sistema retorna al
menú principal.
ok
Fuente: Autores
7.1.2 PRUEBAS UNITARIAS MÓDULO PDM
Documentación de las pruebas realizadas del código que contiene el módulo de PDM,
ver Tabla 20.
Tabla 20. Pruebas Unitarias Módulo PDM
PRUEBA PDM
Dirigida por : Asistente: Estado:
Proceso Ok
Cristhian Sandoval
Pazu
Ximena Galindo
Ramirez Terminado Si
CONCEPTO Revisar el funcionamiento de las secciones que componen el módulo
PDM
PERFIL Usuario
ACCIÓN
ELEMENTO A
PRUEBA RESULTADO ESPERADO ESTADO
Configuración Botón
Configuración
El sistema debe cargar la pantalla
respectiva a la configuración. ok
Configuración Temperatura
Inicial
El usuario debe poder ingresar o
elegir el valor que desea. ok
Configuración Iteraciones
Externas
El usuario debe poder ingresar o
elegir el valor que desea. ok
Configuración Iteraciones
Internas
El usuario debe poder ingresar o
elegir el valor que desea. ok
Configuración Esquema de
Enfriamiento
El sistema debe permitir desplegar
los posibles esquemas y permitir
que el usuario elija el que desee.
ok
Obtener Política Botón Obtener
Política
El sistema debe desplegar la
pantalla, mostrar los datos elegidos
en la configuración, el avance de
iteraciones y el tiempo estimado.
ok
Obtener Política Botón Continuar
El sistema debe culminar el proceso
de obtener política, cerrar la pantalla
y retornar al menú principal
habilitando el botón Reporte.
ok
Obtener Política Botón Cancelar El sistema cierra la pantalla y
retorna al menú principal. ok
Reporte Botón Reporte
El sistema debe generar un archivo
pdf, que contenga los datos
ingresados por el usuario, tanto en
las matrices como en la
configuración, también debe
generar una gráfica evidenciado el
comportamiento del algoritmo
Recocido Simulado, la política
encontrada y la recompensa que se
aplica.
ok
Fuente: Autores
7.1.3 PRUEBAS UNITARIAS MODULO ALMACENAMIENTO DE DATOS
Documentación de las pruebas realizadas del código que contiene el módulo de
Almacenamiento de datos, ver Tabla 21.
Tabla 21. Pruebas Unitarias Modulo Almacenamiento de Datos
PRUEBA ALMACENAMIENTO DE DATOS
Dirigida por : Asistente: Estado:
Cristhian Sandoval
Pazu
Ximena Galindo
Ramirez
Proceso Ok
Terminado Si
CONCEPTO Revisar el funcionamiento de las secciones que componen el módulo
Almacenamiento de Datos
PERFIL Usuario
ACCIÓN
ELEMENTO
A PRUEBA RESULTADO ESPERADO ESTADO
Guardar Proyecto Botón Guardar
Proyecto
El sistema debe desplegar la pantalla
en donde el usuario pueda
seleccionar la ruta en donde desee
almacenar el archivo Excel con los
datos de las matrices de cada
decisión.
ok
Guardar Proyecto Botón Guardar
El sistema debe abrir un archivo
Excel mostrando en hojas ordenadas
las matrices de transición y
recompensa de cada decisión
ok
Guardar Proyecto Botón Cancelar
El usuario cancela el proceso y el
sistema debe retornar al menú
principal
ok
Fuente: Autores
7.2 PRUEBAS FUNCIONALES
Tienen por objetivo probar y validar que el sistema desarrollado cumpla con la función
específica por la que fue creado.
Tabla 222. Pruebas Funcionales.
PRUEBA FUNCIONAL
Dirigida por : Asistente: Estado:
Cristhian Sandoval
Pazu
Ximena Galindo
Ramirez Proceso ok
Terminado si
CONCEPTO Revisar el funcionamiento de la aplicación validando las
especificaciones planteadas.
PERFIL Usuario
DESCRIPCIÓN RESULTADO ESPERADO RESULTADO FINAL
Complejidad de los
problemas
Crear y modelar un problema
con estados y decisiones con
cantidades que varían desde un
mínimo de 2 a un máximo de
20.
El usuario evidencio que se
generan las matrices con los
tamaños que especifico, modifico
los datos en cada caso y pudo
continuar con el proceso.
Complejidad de los
problemas
Cargar y editar los datos que
contengan las matrices del
documento sin importar el
tamaño de las mismas.
El usuario cargo desde una ruta de
almacenamiento un archivo con
formato Excel, el software
desplego las matrices
correspondientes sin importar el
tamaño de las mismas y permitió
que los datos fueran editados.
Espacio computacional
Validar el consumo del sistema
en la solución de los problemas,
resaltar los datos en el
problema considerado como el
peor de los casos
El programa aumenta el consumo
de memoria respecto a las veces
que se utilice, sin cerrarlo, para
obtener solución a los ejercicios.
Al desplegar el programa se
consumen 6.5MB; en el peor de
los casos el consumo se eleva a
9.5MB en un inicio, cada vez que
realiza un llamado a Matlab se
nota un consumo mayor.
Tiempo de respuesta
Notar el tiempo que ocupa el
prototipo al dar solución a los
problemas planteados.
En el peor de los casos el prototipo
se demora aproximadamente tres
(3) minutos en terminar de
procesar los datos y hallar la
solución.
Fuente: Autores
7.3 ANALISIS COMPLEJIDAD COMPUTACIONAL
La complejidad computacional estudia la eficiencia de los algoritmos estableciendo su
efectividad de acuerdo al tiempo de corrida y al espacio requerido en la computadora o
almacenamiento de datos, ayudando a evaluar la viabilidad de la implementación práctica en
tiempo y costo.
Por otra parte, provee herramientas para clasificar la dificultad inherente de un
problema, de esta manera se puede conocer previamente si la búsqueda de un algoritmo es
eficiente para la solución de dicho problema es posible o no15.
Evaluación del algoritmo propuesto en el prototipo16.
Tabla 23. Definición de costos.
Complejidad Computacional
Descripción Costo # Veces
for (int i = 1; i<= n1; i++) c1 n1+1
for (int j = 1; j< n2; j++) c2
int politica_nueva[]= buscarPoliticaVecina c3
double recompesa_nueva =
evaluarRecompensa(politica_nueva); c4
double delta = recompesa_nueva -
recompensa_actual; c5
if (delta > 0) { c6
System.arraycopy(politica_nueva, 0,
this.politica_actual, 0, politica_nueva.length);
this.recompensa_actual = recompesa_nueva; }
c7
15 Complejidad Computacional
http://www.ptolomeo.unam.mx:8080/xmlui/bitstream/handle/132.248.52.100/539/A5.pdf?sequence=5 16 Salas E, Rodríguez J (2005) Análisis de complejidad algorítmica [online], Disponible en: <
http://revistas.udistrital.edu.co/ojs/index.php/vinculos/article/view/4071>
else {
double alea = Math.random();
if (alea < Math.pow(Math.E, delta / T)) {
System.arraycopy(politica_nueva, 0,
this.politica_actual, 0,politica_nueva.length);
this.recompensa_actual = recompesa_nueva; }
Esto depende
del resultado
de la sentencia
if, es decir,
c6+c7.
n1
La tabla 23 define uno por uno los costos del algoritmo implementado a continuación
se simplifican todas las expresiones y se demuestra que la complejidad del algoritmo
dependen de n1 y n2.
𝑇𝑛 = 𝑇(𝑛1,𝑛2)=𝐶1(𝑛1 + 1) + 𝐶2 ∑(𝑛2 + 1)
𝑛1
𝑖=1
+ 𝐶3 ∑ 𝑛2
𝑛1
𝑖=1
+ 𝐶4 ∑ 𝑛2
𝑛1
𝑖=1
+ 𝐶5 ∑ 𝑛2
𝑛1
𝑖=1
+ 𝐶6 ∑ 𝑛2
𝑛1
𝑖=1
+ 𝐶7 ∑ 𝑛2
𝑛1
𝑖=1
+ 𝐶9𝑛1
𝑇(𝑛1,𝑛2)=𝐶1𝑛1 + 𝐶1 + 𝐶2(𝑛2 + 1)𝑛1 + (𝐶3 + 𝐶4 + 𝐶5 + 𝐶6 + 𝐶7)𝑛2𝑛1 + 𝐶9𝑛1
𝑇(𝑛1,𝑛2)=(𝐶2 + 𝐶3 + 𝐶4 + 𝐶5 + 𝐶6 + 𝐶7)𝑛2𝑛1 + (𝐶1 + 𝐶2 + 𝐶9)𝑛1 + 𝐶1
𝑇(𝑛1,𝑛2)=0(𝑛1 ∗ 𝑛2)
7.4 PROBLEMA DEL REEMPLAZO DEL AUTOMOVIL, RESULTADOS Y
EFECTIVIDAD DEL SOFTWARE PDM-RC
Una persona desea revisar cada año el estado y los costos que tienen su carro y así tomar una
decisión de mantener el actual carro o negociarlo por uno nuevo en ese momento.
El estado del sistema, i, es descrito por la edad del carro; i puede ir desde 0 hasta 19(o desde
el estado A hasta el estado T). A fin de mantener, el número de estados finitos, un carro de
edad 19 permanece como un carro de edad 19 por siempre (Es considerado que ya está
gastado). Las alternativas disponibles en cada estado son dos, mantener el carro actual o
negociarlo por uno nuevo. En el estado 0 como el carro es nuevo, no es factible tomar la
decisión de negociarlo. Así las cosas, tenemos 20 estados en los cuales se pueden tomar dos
decisiones posibles, de modo que hay 220 posibles políticas, lo que es más de un billón de
políticas.
7.4.1 DEFINICIÓN DE ESTADOS
Para este problema se definen 20 estados, la tabla 1 se puede ver la representación y
definición de cada uno.
Tabla 24. Estados
Estado Condición
A Año 0
B Año 1
C Año 2
D Año 3
E Año 4
F Año 5
G Año 6
H Año 7
I Año 8
J Año 9
K Año 10
L Año 11
M Año 12
N Año 13
O Año 14
P Año 15
Q Año 16
R Año 17
S Año 18
T Año 19
7.4.2 DEFINICIÓN DE DECISIONES
Para este problema se definen 2 decisiones, cada decisión está conformada por una matriz de
transición y una matriz de recompensa.
En la tabla 2 se representa la probabilidad de pasar de un estado i a un estado j si se toma la
decisión de mantener el carro en un momento dado.
Tabla 25. Mantener el Carro (Matriz de transición 1)
En la tabla 3 se representa la recompensa de pasar de un estado i a un estado j si se toma la
decisión de mantener el carro en un momento dado. Tabla 26.Recompensa de mantener el carro (Recompensa 1)
En la tabla 4 se representa la probabilidad de pasar de un estado i a un estado j si se toma la
decisión de negociar el carro en un momento dado.
Tabla 27. Negociar el Carro (Matriz de transición 2)
Estados A B C D E F G H I J K L M N O P Q R S T
A 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B 0 0,1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C 0 0 0,1 0,9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D 0 0 0 0,2 0,9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E 0 0 0 0 0,2 0,8 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F 0 0 0 0 0 0,3 0,8 0 0 0 0 0 0 0 0 0 0 0 0 0
G 0 0 0 0 0 0 0,3 0,7 0 0 0 0 0 0 0 0 0 0 0 0
H 0 0 0 0 0 0 0 0,4 0,7 0 0 0 0 0 0 0 0 0 0 0
I 0 0 0 0 0 0 0 0 0,4 0,6 0 0 0 0 0 0 0 0 0 0
J 0 0 0 0 0 0 0 0 0 0,5 0,6 0 0 0 0 0 0 0 0 0
K 0 0 0 0 0 0 0 0 0 0 0,5 0,5 0 0 0 0 0 0 0 0
L 0 0 0 0 0 0 0 0 0 0 0 0,6 0,5 0 0 0 0 0 0 0
M 0 0 0 0 0 0 0 0 0 0 0 0 0,6 0,4 0 0 0 0 0 0
N 0 0 0 0 0 0 0 0 0 0 0 0 0 0,7 0,4 0 0 0 0 0
O 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,7 0,3 0 0 0 0
P 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,8 0,3 0 0 0
Q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,8 0,2 0 0
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,9 0,2 0
S 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,9 0
T 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Estados A B C D E F G H I J K L M N O P Q R S T
A 0 800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B 0 800 -10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C 0 0 700 -15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D 0 0 0 600 -20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E 0 0 0 0 500 -25 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F 0 0 0 0 0 400 -30 0 0 0 0 0 0 0 0 0 0 0 0 0
G 0 0 0 0 0 0 300 -35 0 0 0 0 0 0 0 0 0 0 0 0
H 0 0 0 0 0 0 0 200 -40 0 0 0 0 0 0 0 0 0 0 0
I 0 0 0 0 0 0 0 0 100 -45 0 0 0 0 0 0 0 0 0 0
J 0 0 0 0 0 0 0 0 0 90 -50 0 0 0 0 0 0 0 0 0
K 0 0 0 0 0 0 0 0 0 0 80 -50 0 0 0 0 0 0 0 0
L 0 0 0 0 0 0 0 0 0 0 0 70 -50 0 0 0 0 0 0 0
M 0 0 0 0 0 0 0 0 0 0 0 0 60 -50 0 0 0 0 0 0
N 0 0 0 0 0 0 0 0 0 0 0 0 0 50 -50 0 0 0 0 0
O 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -200 0 0 0 0
P 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -400 -600 0 0 0
Q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -700 -760 0 0
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -770 -780 0
S 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -790 -795
T 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -800
Estados A B C D E F G H I J K L M N O P Q R S T
A 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
G 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
H 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
I 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
J 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
K 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
L 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
M 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
N 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
O 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
P 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Q 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
S 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
En la tabla 5 se representa la recompensa de pasar de un estado i a un estado j si se toma la
decisión de negociar el carro en un momento dado.
Tabla 28. Recompensa de Negociar el carro (Recompensa 2)
7.4.3 SOLUCIÓN UTILIZANDO EL PROTOTIPO DE SOFTWARE PDM-RC
Se comenzó con una temperatura inicial de 8000 unidades, para una misma temperatura se
realizaron 10 iteraciones, y se realizaron 25 iteraciones con temperaturas diferentes, es decir,
el algoritmo tuvo en total 250 iteraciones. Para la disminución de la temperatura se utilizó el
esquema Descenso geométrico.
La mejor política encontrada se ve en la figura 4 y su recompensa es de (470,5 unidades).
Estados A B C D E F G H I J K L M N O P Q R S T
A 140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C 142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E 144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
G 150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
H 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
I 250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
J 300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
K 350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
L 400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
M 450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
N 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
O 550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
P 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Q 650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R 700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
S 750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T 800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Figura 3. Mejor Política encontrada por PDM-RC
La evolución de la recompensa en el problema del reemplazo del automóvil en 250
iteraciones aplicando recocido simulado se muestra en la figura 5.
Figura 4.Grafica de resultados encontrados en cada iteración
7.4.4 RESULTADOS OBTENIDOS AL PROBLEMA DEL REEMPLAZO DEL
AUTOMÓVIL
El software PDM-RC demostró que puede solucionar problemas amplios gracias a su
facilidad de ingresar matrices de transición grandes.
La política encontrada es aceptable por tener recompensa alta además de haber sido
encontrada en tiempo relativamente corto.
Estados Decisión
A 1
B 2
C 1
D 2
E 2
F 2
G 2
H 2
I 1
J 2
K 1
L 1
M 2
N 2
O 2
P 2
Q 2
R 2
S 2
T 2
En problemas pequeños el prototipo siempre converge a la misma política, pero en problemas
grades como el tratado en este artículo el prototipo encuentra políticas diferentes pero muy
similares una de la otra esto se debe a que la cantidad de datos es más amplia y los resultados
muy versátiles pero con la suficientes valides para ser tomados como óptimos.
8 CONCLUSIONES
Del desarrollo del proyecto se concluye que fue exitosa la implementación del recocido
Simulado para la solución de procesos de decisión de Markov, prueba de ello es que el
prototipo creado permite modelar, evaluar y solucionar realizando la búsqueda de políticas
optimas de problemas definidos en el área de investigación de operaciones.
La implementación de librerías Matlab son una potente herramienta para garantizar la
solución de sistemas de ecuaciones que en el caso de este proyecto son indispensables para
encontrar los estados estables de una cadena de Markov.
La investigación llego a concluir que la integración con Matlab se convirtió en una
indispensable solución pero como toda integración puede tener desventajas y una de las más
notorias es el tiempo de respuesta que tiene, pues en términos de tiempo es sutilmente
demorado básicamente porque Matlab no es lenguaje java y los datos que se le envían los
procesa rápido pero al retornarlos toman su respectivo tiempo o no tienen la misma capacidad
de respuesta que se obtendría si fuera lenguaje java.
9 RECOMENDACIONES
Una vez concluido este proyecto, se considera interesante seguir investigando en estas
áreas de la ciencia y se propone:
Implementar otros tipos de técnicas como algoritmos genéticos o algoritmos de
búsqueda tabú con el fin de seguir evaluando diferentes métodos de búsquedas que permitan
encontrar políticas óptimas. Esto permitiría ampliar la investigación y el conocimiento de
formas de optimización en áreas directamente relacionadas como investigación de
operaciones e inteligencia artificial.
Replicar esta solución en Matlab ya que este lenguaje está diseñado para brindar
soluciones matemáticas y cumple con el paradigma orientado a objetos que necesita la
implementación.
Apoyo por parte de la universidad para impulsar proyectos de investigación derivados
de este con el fin de permitir a más estudiantes continuar con esta investigación que está
abierta a más descubrimientos he implementaciones.
10 REFERENCIAS BIBLIOGRÁFICAS
Hillier F. S. y Lieberman G. J. Introducción a la investigación de operaciones, 6a
ed.Bogotá, Colombia: McGraw Hill, 1999.
Barash, D.(1999) A Genetic Search In Policy Space For Solving Markov Decision
Processes [online], Disponible en:
<http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=A96FEF213AE5512AE416C27
BA18D0D15?doi=10.1.1.30.9717&rep=rep1&type=pdf>.
Salas, E (2007) Algoritmos genéticos para la búsqueda de políticas óptimas en
procesos de decisión de Markov [online], Disponible en:
<http://www.redalyc.org/articulo.oa?id=257021008001>
Salas, E (2007) SIMULATED ANNEALING PARA LA BÚSQUEDA DE
POLÍTICAS ÓPTIMAS EN PROCESOS DE DECISIÓN DE MARKOV. Vínculos.vol
2(1), 113, 53-62. [online], Disponible en:
<http://revistas.udistrital.edu.co/ojs/index.php/vinculos/article/view/4086/5751>
Rodríguez, J y Cruz, G (2011) Simulación y optimización topológica del diseño de una
red de computadores a través de la implementación de un algoritmo meta heurístico de
resolución multi-objetivo. Bogotá: Facultad tecnológica, universidad Distrital.
Benito, J y Rodríguez J, (2011). Herramienta de Software para la implementación de
algoritmos basados en técnicas meta heurísticas, orientados a optimizar el establecimiento de
rutas para el flujo de información en comunicaciones de multidifusión. Bogotá: Facultad
tecnológica, universidad Distrital.
Willey, J y Sons, I. MATLAB: An introduction with applications, 2a ed.Hoboken,
USA: REVERTÉ, 2005. [online], Disponible en:
<https://books.google.es/books?hl=es&lr=&id=dAvjPaUFdAMC&oi=fnd&pg=PR5&
dq=que+es+matlab&ots=DqeFn9ldC8&sig=ISjl--
t8Gbmm0V1p8nEYHFT5V2s#v=onepage&q=que%20es%20matlab&f=false>
Taha, H. Investigación de operaciones, 7a ed. México: PEARSON EDUCACIÓN,
2004. [online], Disponible en:
https://vagosuatfis.files.wordpress.com/2012/07/thaja-investigacion-de-operaciones-
by-k9.pdf
Salas E, Rodríguez J (2005) Análisis de complejidad algorítmica [online], Disponible
en: < http://revistas.udistrital.edu.co/ojs/index.php/vinculos/article/view/4071>
ANEXOS
Anexo 1. Presupuesto y fuentes de financiación
Tabla 1. Recursos y valores para el desarrollo del proyecto
PRESUPUESTO Y FUENTES DE FINANCIACION
FACTIBILIDAD ECONOMICA
RECURSOS HUMANOS
Actor Valor/Hora Horas trabajadas Total
Tutor 50.000 60 3.000.000
Estudiante 20.000 600 12.000.000
Total 70.000 660 15.000.000
Los gastos del tutor serán responsabilidad de la Universidad Distrital Francisco José de Caldas, los del estudiante corresponderán a cada uno de ellos.
EQUIPOS
Equipo Cantidad Valor unidad Total
Computadores 2 950.000 1.900.000
Total 2 950.000 1.900.000
La inversión en lo equipos será asumida por cada estudiante
SOFTWARE
Software Cantidad Valor unidad Total
Java(NetBeans) 2 0 0
Sistema Operativo 2 0 0
Matlab 2 0 0
El sistema operativo y el entorno de desarrollo corresponderá a las licencias que maneja la Universidad
TOTAL FACTIBILIDAD ECONOMICA 16.900.000
Fuente: Autores
Anexo 2. Cronograma de actividades
Figura 1. Cronograma de actividades
Fuente: Autores
Anexo 3. Diagramas específicos casos de uso
Figura 1. Modelo de Caso de uso Crear Decisiones
Fuente: Autores
Figura 2. Modelo de Caso de uso Cargar Decisiones
Fuente: Autores
Figura 3. Modelo de Caso de uso Guardar Decisiones
Fuente: Autores
Figura 4. Modelo de Caso de uso Configuración Recocido Simulado
Fuente: Autores
Figura 5. Modelo de Caso de uso Buscar Política
Fuente: Autores
Figura 6. Modelo de Caso de uso Generar Reporte
Fuente: Autores
Figura 7. Modelo de Caso de uso Modificar Decisiones
Fuente: Autores
Anexo 4. Diagramas específicos secuencia
Figura 1. Modelo de Secuencia Crear Decisiones
Fuente: Autores
Figura 2. Modelo de Secuencia Cargar Decisiones
Fuente: Autores
Figura 3. Modelo de Secuencia Guardar Decisiones
Fuente: Autores
Figura 4. Modelo de Secuencia Configuración Recocido Simulado
Fuente: Autores
Figura 5. Modelo de Secuencia Buscar Política
Fuente: Autores
Figura 6. Modelo de Secuencia Generar Reporte
Fuente: Autores
Figura 7. Modelo de Secuencia Modificar Decisiones
Fuente: Autores
Anexo 5. Manual de Usuario
TABLA DE CONTENIDO
INTRODUCCIÓN ............................................................................................................ 95
1 OBJETIVOS.................................................................................................................. 96
1.1 OBJETIVO GENERAL ......................................................................................... 96
1.2 OBJETIVOS ESPECÍFICOS ................................................................................ 96
2 ACCESO A LA APLICACIÓN .................................................................................... 97
3 FUNCIONALIDAD DE LA APLICACIÓN ................................................................ 98
4 GUIA DE USO.............................................................................................................. 98
INTERFAZ PRINCIPAL ................................................................................................. 98
4.1 NUEVO PROYECTO ........................................................................................... 99
4.2 ABRIR PROYECTO ........................................................................................... 102
4.3 CONFIGURACIÓN ............................................................................................ 104
4.4 GUARDAR PROYECTO .................................................................................... 106
4.5 OBTENER POLÍTICA ........................................................................................ 110
4.6 REPORTE ............................................................................................................ 111
5 EJEMPLO PRÁCTICO .............................................................................................. 113
LISTA DE TABLAS
Tabla 1. Descripción pantalla principal ................................................................................ 99
Tabla 2. Desripción ingresar decisiones ............................................................................. 100
Tabla 3. Descripción ingresar estados ................................................................................ 101
Tabla 4. Descripción botones obtener politica ................................................................... 111
LISTA DE FIGURAS
Figura 1. Funcionalidad general 97
Figura 2. Interfaz principal 98
Figura 3. Acceso nuevo proyecto 99
Figura 4. Definir decisiones 100
Figura 5. Definir estados 101
Figura 6. Acceso abrir proyecto 102
Figura 7. Pantalla abrir documento 103
Figura 8. Opciones internas abrir documento 103
Figura 9. Carga de datos 104
Figura 10. Acceso a configuración 105
Figura 11. Opciones a modificar 105
Figura 12. Acceso guardar proyecto 106
Figura 13. Pantalla asignar ruta de almacenamiento 107
Figura 14. Opciones internas guardar documento 107
Figura 15. Confirmar guardado 108
Figura 16. Archivo Excel 109
Figura 17. Cancelar guardado. 109
Figura 18. Acceso obtener política 110
Figura 19. Avance proceso 110
Figura 20. Acceso reporte 111
Figura 21. Pantalla almacenamiento reporte 112
Figura 22. Grafica evidencia de iteraciones 113
INTRODUCCIÓN
El presente documento está dirigido a entregar las pautas de funcionamiento del
aplicativo prototipo de software para solucionar procesos de decisión de Markov
implementando algoritmo recocido simulado. Este software permite obtener la política más
óptima en un sistema con estados y acciones diferentes, propuesto por medio de un proceso
de decisión de Markov implementado el algoritmo de recocido simulado.
1 OBJETIVOS
Definición del fin que se pretende alcanzar, se realiza una descripción muy concreta de
la meta del manual.
1.1 OBJETIVO GENERAL
Proporcionar al usuario la información clara y detallada del funcionamiento del prototipo
de software para solucionar procesos de decisión de Markov implementando algoritmo
recocido simulado
1.2 OBJETIVOS ESPECÍFICOS
Guiar al usuario para el ingreso a modificar los datos.
Definir las opciones de visualización de la información de cada problema planteado.
Aclarar los campos que el usuario puede alterar para realizar la búsqueda de las
políticas.
Se muestra la funcionalidad general del aplicativo, ver Figura 1.
Figura 1. Funcionalidad general
2 ACCESO A LA APLICACIÓN
Para el uso correcto de la aplicación es recomendable que sea ejecutada en un equipo
con sistema operativo Windows 7 en adelante y que contenga la configuración del Matlab.
El funcionamiento de la aplicación depende, en parte, de las características físicas del
equipo como procesador y memoria.
Al ser una aplicación de escritorio, solo se puede acceder desde el lugar en donde se
instale o se ejecute el archivo .jar.
3 FUNCIONALIDAD DE LA APLICACIÓN
El prototipo se divide en 6 actividades principales:
Nuevo Proyecto: Se iniciará el modelamiento de un nuevo problema.
Abrir Proyecto: Permite la búsqueda y apertura de un problema previamente
almacenado.
Guardar Proyecto: Opción que permite almacenar los datos de un problema que haya
sido modelado.
Configuración: Opción en la que se habilitan campos para modificar especificaciones
propias para la solución del problema.
Obtener Política: Acción que realiza el proceso para obtener la solución del problema.
Reporte: Genera un archivo con los datos del problema al que se halló la solución.
4 GUIA DE USO
INTERFAZ PRINCIPAL
La pantalla principal se divide en 3 secciones, ver Figura 2.
Figura 2. Interfaz principal
Pantalla Principal
Se realiza la especificación de las secciones que conforman la pantalla principal del
prototipo, ver Tabla 1.
Tabla 1. Descripción pantalla principal
Sección Nombre de la Sección Descripción
1 Panel De Opciones
Sección en la que se habilitan o deshabilitan
los botones a los que el usuario puede
acceder.
2 Matriz De Transición Lugar que almacena y muestra los datos o las
probabilidades de pasar de un estado a otro.
3 Matriz De Recompensa Espacio que muestra el valor que representa
pasar de un estado a otro
4.1 NUEVO PROYECTO
Esta opción permite al usuario modelar un nuevo proyecto. Este proceso está dividido
en tres secciones, la primera se visualiza en la Figura 3.
Figura 3. Acceso nuevo proyecto
1. Seleccionar Nuevo Proyecto
Al oprimir la opción “Nuevo proyecto”, el sistema desplegara automáticamente la
ventana que solicita la cantidad de decisiones, con las que el usuario inicia el planteamiento
del problema, ver Figura 4.
Figura 4. Definir decisiones
2. Ingresar Decisiones
Se explica las acciones que son posibles de realizar cuando el sistema solicita las
decisiones a modelar, ver Tabla 2.
Tabla 2. Descripción ingresar decisiones
Nombre del Campo Descripción
Cantidad de Decisiones Lista desplegable que permite la elección de la
cantidad de decisiones, tiene un rango de 2 a 10
Aceptar Botón que confirma la elección del usuario.
Cancelar Botón que cancela la operación que previamente
fue iniciada.
Si el usuario cancela la operación, se retorna a la pantalla anterior. Si el usuario elige
una cantidad valida y oprime el botón aceptar se despliega la pantalla donde se solicita la
cantidad de estados, ver Figura 5.
Figura 5. Definir estados
3. Ingresar Estados
Se explica las acciones que son posibles de realizar cuando el sistema solicita los estados
a modelar, ver Tabla 3.
Tabla 3. Descripción ingresar estados
Nombre del Campo Descripción
Cantidad de Estados Lista desplegable que permite al usuario elegir la
cantidad de estados en un rango de 2 a 20.
Aceptar Botón que confirma la elección del usuario.
Cancelar Botón que cancela la operación que previamente
fue iniciada.
Si el usuario ingreso correctamente la cantidad de estados y la cantidad de decisiones el
sistema muestra en pantalla los campos para modificar las decisiones además habilita las
opciones Guardar Proyecto y Buscar Política.
4.2 ABRIR PROYECTO
Permite realizar la exploración de los archivos almacenados previamente en formato xls
(Excel) y cargar la cantidad de decisiones que tengan definidas. Si el archivo no cumple con
las condiciones mínimas el sistema muestra un mensaje de error al usuario.
La imagen permite visualizar el botón que permite realizar las acciones de esta opción,
ver Figura 6.
Figura 21. Acceso abrir proyecto
Pantalla para realizar la búsqueda del archivo, ver Figura 7.
Figura 7. Pantalla abrir documento
Se encuentran al interior de la ventana un menú, que da opciones de búsqueda y vista
del archivo, ver Figura 8.
Figura 22. Opciones internas abrir documento
Subir un nivel: Cuando se oprime, la busqueda regresa a la carpeta anterior.
Desktop: Al dar Clic en el botón el sistema muestra el escritorio del usuario en sesion.
Crear Nueva Carpeta: El Botón permite generar una nueva carpeta. Esta opción viene
definida por defecto en el componenete JFileChooser.
Lista: La opción da un listado de las carpetas contenidas en la ruta en la que se realiza
la busqueda.
Detalles: Al oprimir el botón se generan datos mas especificos de las carpetas y
archivos que se encuentran en la busqueda realizada.
Finalmente al oprimir el botón abrir trae a la aplicación los datos del documento que fue
elegido, para continuar con el proceso, ver Figura 9.
Figura 23. Carga de datos
Si el usuario da clic en el botón cancelar, se cierra el dialogo y se retorna al menú
principal.
4.3 CONFIGURACIÓN
Opción que habilita los campos para que el usuario modifique los datos con los que se
va evaluar el problema modelado previamente, el botón necesario para acceder a dicha
opción se visualiza en la Figura 10.
Figura 10. Acceso a configuración
La imagen muestra la pantalla permite configurar características propias del algoritmo
recocido simulado, ver Figura 11.
Figura 24. Opciones a modificar
Los campos de esta pantalla se explican a continuación:
Temperatura Inicial: Este campo solo permite números enteros positivos y define la
temperatura inicial con que el algoritmo recocido simulado comenzara a evaluar políticas.
Cantidad de iteraciones E: Este campo solo permite números naturales y define la
cantidad de decrementos que tendrá la temperatura.
Cantidad de iteraciones I: Este campo solo permite números naturales y define la
cantidad de veces que se evaluaran políticas con la misma temperatura.
Esquema de enfriamiento: Este campo es una lista despegable que permite al usuario
escoger un tipo de esquema de enfriamiento.
Constante de decremento: Este campo solo se habilita para los esquemas de
enfriamiento que lo soliciten y solo permite valores decimales entre 0.1 y 0.999. Esta
constante es la encargada del decremento porcentual que tendrá la temperatura en cada
iteración.
NOTA: El usuario debe oprimir el botón Aceptar para retornar al menú principal.
4.4 GUARDAR PROYECTO
Opción que permite al usuario guardar los datos que ha ingresado a las matrices que
conforman las decisiones del problema; el sistema genera un archivo Excel, que de forma
ordenada muestra la información, el botón que da paso a dicha opción se visualiza en la
Figura 12.
Figura 12. Acceso guardar proyecto
Se despliega la ventana que solicita la ruta y el nombre del archivo, ver Figura 13.
Figura 25. Pantalla asignar ruta de almacenamiento
En la ventana Guardar Proyecto el usuario se encuentra con varias opciones con el fin
de agilizar u ordenar la búsqueda, ver Figura 14.
Figura 14. Opciones internas guardar documento
Subir un nivel: Cuando se oprime, la busqueda regresa a la carpeta anterior.
Desktop: Al dar Clic en el botón el sistema muestra el escritorio del usuario en sesion.
Crear Nueva Carpeta: El Botón permite generar una nueva carpeta. Esta opción viene
definida por defecto en el componenete JFileChooser.
Lista: La opción da un listado de las carpetas contenidas en la ruta en la que se realiza
la busqueda.
Detalles: Al oprimir el botón se generan datos mas especificos de las carpetas y
archivos que se encuentran en la busqueda realizada.
Para confirmar el almacenamiento del problema modelado, se debe oprimir el botón
Guardar, ver Figura 15.
Figura 15. Confirmar guardado
El sistema automáticamente abre el Excel donde se almacenan los datos, ver Figura 16.
Figura 16. Archivo Excel
Para regresar a la aplicación sin guardar los datos, dar clic en el botón Cancelar, ver
Figura 17.
Figura 26. Cancelar guardado.
4.5 OBTENER POLÍTICA
Modulo en el que se realizan las operaciones para la obtención de políticas óptimas. El
botón que da paso a dicha opción se visualiza en la Figura 18.
Figura 27. Acceso obtener política
La visualización del avance del proceso para la solución del problema se puede notar en
la Figura 19.
Figura 28. Avance proceso
Se explica las acciones que son posibles de realizar cuando el sistema despliega la
pantalla de obtener política, ver Tabla 4.
Tabla 4. Descripción botones obtener política
Nombre del Campo Descripción
Continuar
Botón que debe culminar el proceso de obtener
política, cerrar la pantalla y retornar al menú
principal habilitando el botón Reporte.
Cancelar Botón que cierra y termina la operación.
4.6 REPORTE
Es la opción que permite al usuario visualizar en un archivo con extensión pdf la gráfica
que modela el comportamiento del algoritmo Simulated Annealing para la solución del
problema, los datos que fueron ingresados en cada estado y decisión, el botón que da acceso
a dicha opción se visualiza en la Figura 20.
Figura 20. Acceso reporte
El usuario debe dar nombre y ruta de almacenamiento del archivo.
Nota: El sistema valida el tipo de archivo, no es necesario escribir en el nombre .pdf, si
se realiza esta acción se visualiza en el título del documento, ver Figura 21.
Figura 21. Pantalla almacenamiento reporte
La gráfica que se generó de las iteraciones realizadas en la búsqueda de la política óptima
se muestra en la Figura 22.
Figura 29. Grafica evidencia de iteraciones
5 EJEMPLO PRÁCTICO
Iniciando un nuevo proyecto:
1. Oprimir botón nuevo proyecto.
2. Seleccionar cantidad de decisiones.
3. Seleccionar cantidad de estados.
4. El sistema genera las matrices y permite al usuario modificar los datos de las
mismas.
5. El usuario debe desplegar la opción que permite seleccionar la decisión que desea
visualizar y/o modificar.
6. El usuario debe acceder a la opción configuración.
7. Seleccionar los datos con los que desea dar solución al problema planteado.
8. El usuario retorna al menú principal y debe oprimir el botón obtener política.
9. El sistema inicia el proceso y muestra en pantalla el avance que lleva.
Al culminar el sistema habilita el botón continuar, que retornara al usuario a la
pantalla principal.
10. El usuario si desea visualizar los datos obtenidos, debe oprimir el botón reporte.
11. Se despliega una ventana donde solicita el nombre del archivo a generar y la ruta de
almacenamiento.
12. El sistema despliega automáticamente un archivo pdf, que contiene la gráfica, los
resultados obtenidos y los datos ingresados.
Si el usuario desea guardar el problema que ha iniciado o abierto previamente
1. Debe oprimir la opción guardar.
2. El sistema despliega la ventana correspondiente, el usuario debe ingresar el nombre
del archivo con extensión xls y seleccionar la ruta de almacenamiento.
3. Al oprimir el botón guardar, el sistema desplegara el archivo Excel con los datos que
el usuario ha guardado, el archivo contiene en hojas diferentes las matrices de
decisiones y su recompensa respectivamente.
Si el usuario desea cargar al sistema un proyecto previamente almacenado:
1. Debe seleccionar la opción abrir proyecto de la pantalla principal.
2. Realizar la búsqueda del documento Excel que contiene los datos.
3. Visualizar y/o modificar los datos de las decisiones si así lo desea.
4. Puede cambiar la vista de las matrices a la decisión que desee.
5. Acceder a la opción configuración.
6. Modificar los datos según el criterio para dar solución al problema.
7. Acceder al botón obtener política.
8. El sistema procesa los datos y habilita el botón continuar, retornando al menú
principal.
9. Si desea visualizar el resultado y la gráfica obtenida debe oprimir el botón reporte.
10. Al dar un nombre de archivo y una ruta de almacenamiento, se genera y se
despliega un archivo pdf con los datos del problema.
Anexo 6. Manual de desarrollador
TABLA DE CONTENIDO
INTRODUCCIÓN .............................................................................................................. 132
1. OBJETIVOS................................................................................................................ 133
2. LENGUAJES DE PROGRAMACIÓN UTILIZADOS .............................................. 133
1.1 Lenguaje Java ...................................................................................................... 133
1.2 Lenguaje Matlab .................................................................................................. 134
2 INSTALACIÓN DE ENTORNOS DE DESARROLLO ........................................... 135
2.1 ¿Cómo Instalar Netbeans IDE 8.0.2? ................................................................... 135
2.1.1 Descargar el ejecutable ................................................................................. 135
2.1.2 Instalación y Configuración.......................................................................... 136
2.2 Instalación Matlab R2015a .................................................................................. 136
2.2.1 Registrarse en MatlabWorks.com................................................................. 136
2.2.2 Ingresar a la plataforma MatlabWorks.com ................................................. 137
2.2.3 Ingresar a la sección My Licenses ................................................................ 137
2.2.4 Seleccionar Get packaged trial ..................................................................... 138
2.2.5 Instalar Matlab .............................................................................................. 139
3 LIBRERÍAS Y COMPONENTES UTILIZADOS ..................................................... 142
3.1 LibreriaMatlab.jar ................................................................................................ 142
3.2 javabuilder.jar ...................................................................................................... 144
3.3 org.apache.poi 3.9.jar ........................................................................................... 144
3.4 itextpdf.jar ............................................................................................................ 145
3.5 jfreechart-1.0.1 ..................................................................................................... 146
3.6 jcommon-1.0.0 ..................................................................................................... 146
3.7 UpperEssentialLookAndFeel ............................................................................... 147
LISTA DE TABLAS
Tabla 1. Definición de la estructura del componente LibreriaMatlab.jar .......................... 143
Tabla 2. Objetos utilizados del componente Apache Poi ................................................... 145
LISTA DE FIGURAS
Figura 1 Descargar el ejecutable ........................................................................................ 135
Figura 2. Instalación y Configuración ................................................................................ 136
Figura 3. Registrarse en MatlabWorks.com ....................................................................... 136
Figura 4.Ingresar a la plataforma MatlabWorks.com ......................................................... 137
Figura 5.Ingresar a la sección My Licenses ....................................................................... 138
Figura 6. Seleccionar Get packaged trial ............................................................................ 138
Figura 7. Método de instalación Log in .............................................................................. 139
Figura 8. License Agreement.............................................................................................. 139
Figura 9.Log in ................................................................................................................... 140
Figura 10.Select a license ................................................................................................... 141
Figura 11. Select products to install ................................................................................... 142
Figura 12. LibreriaMatlab.jar ............................................................................................. 143
Figura 13. Estructura del componente LibreriaMatlab.jar ................................................. 143
Figura 14. javabuilder.jar.................................................................................................... 144
Figura 15.Poi-3.9-20121203.jar.......................................................................................... 144
Figura 16. itextpdf.jar ......................................................................................................... 145
Figura 17.jfreechart-1.0.1 ................................................................................................... 146
Figura 18. jcommon-1.0.0 .................................................................................................. 146
Figura 19.UpperEssentialLookAndFeel.jar ........................................................................ 147
INTRODUCCIÓN
Esta manual muestra destalles de las tecnologías, integraciones y arquitectura que fueron
necesarios para la implementación la solución PROTOTIPO DE SOFTWARE PARA
SOLUCIONAR PROCESOS DE DECISIÓN DE MARKOV IMPLEMENTANDO
ALGORITMO RECOCIDO SIMULADO.
También se explican los requisitos y configuraciones de instalación necesarias para que
la solución pueda ser puesta en marcha y su utilización sea correcta.
1. OBJETIVOS
Este manual tiene los siguientes objetivos:
Brindar al desarrollador información de las tecnologías utilizadas y su respectiva
versión.
Dar información de cómo se obtuvieron las tecnologías de software que se utilizaron
para el desarrollo del proyecto.
Explicar configuraciones de los componentes necesarios para la integración de las
tecnologías.
2. LENGUAJES DE PROGRAMACIÓN UTILIZADOS
Se explica los lenguajes de programación utilizados y sus respectivos entornos de
desarrollo con los que se desarrolló la solución.
1.1 Lenguaje Java
Con este lenguaje de programación se diseñó la arquitectura de la solución, también por
su característica orientada a objetos permitió la reutilización de código y a integración con
componentes desarrollados en lenguajes diferentes a java.
La versión de Java que se utilizo fue JDK 1.8 y el entorno de programación fue Netbeans
IDE 8.0.2.
La utilización de esta tecnología es libre y su licencia permite el desarrollo y distribución
de esta solución siempre y cuando cumpla con las condiciones definidas por Oracle.
Para más información sobre la licencia java ir a:
http://www.oracle.com/technetwork/java/javase/terms/license/index.html .
1.2 Lenguaje Matlab
Con este lenguaje de programación se desarrolló el componente LibreríaMatlab.jar que
más adelante se explicara su funcionalidad. La versión de Matlab con la que se desarrolló el
componente fue Matlab 7.12.0 y el entorno de programación fue Matlab R2011a.
La puesta en producción de la solución se realizó con licencias de prueba que ofrece
MatlabWorks para desarrollos de investigación y que no tienen intención de lucro. Esta
licencia está sujeta a condiciones y están disponibles durante máximo 30 días.
Para más información sobre la licencia Matlab ir a:
https://www.mathworks.com/licensecenter/trials .
2 INSTALACIÓN DE ENTORNOS DE DESARROLLO
A continuación se explicara como instalar los entornos de desarrollo que se utilizaron
para desarrollar la aplicación.
2.1 ¿Cómo Instalar Netbeans IDE 8.0.2?
Para la instalación del entorno de desarrollo Netbeans IDE 8.0.2 se deben seguir los
siguientes pasos:
2.1.1 Descargar el ejecutable
Ir a la página de Oracle “http://www.oracle.com/us/technologies/java/jdk-7-netbeans-
download-432126.html” y seleccionar sistema operativo Windows. Ver Figura 5 Descargar
el ejecutable.
Figura 5 Descargar el ejecutable
En la sección 1 de la figura 1 se muestra la página web en donde se puede descargar el
ejecutable del entorno de desarrollo.
En la sección 2 de la figura 1 se muestra las opciones de descargar dependiendo del
sistema operativo y la arquitectura del computador donde se va a instalar el entorno de
desarrollo.
2.1.2 Instalación y Configuración
Luego de la descarga se ejecuta el instalador y se procede a instalar el entorno. Este
instalador trae el jdk 1.8 y el Netbeans 8.0.2 y con dejar la configuración por defecto es
suficiente para empezar a trabajar en este entorno. Ver Figura 6. Instalación y Configuración
Figura 6. Instalación y Configuración
2.2 Instalación Matlab R2015a
Para la instalación del entorno de desarrollo Matlab R2015a se deben seguir los siguientes
pasos:
2.2.1 Registrarse en MatlabWorks.com
Los primero es registrar los datos personales para esto ir a la página
“https://www.mathworks.com/programs/trials/trial_request.html?eventid=69267”, y crear
una cuenta. Ver ¡Error! No se encuentra el origen de la referencia..
Figura 7. Registrarse en MatlabWorks.com
2.2.2 Ingresar a la plataforma MatlabWorks.com
Cuando ya esté registrado se debe ingresar a MatlabWorks.com ingresando el respectivo
usuario y contraseña. Ver ¡Error! No se encuentra el origen de la referencia..
Figura 8.Ingresar a la plataforma MatlabWorks.com
2.2.3 Ingresar a la sección My Licenses
Ir a la sección My Licenses y seleccionar la opción Try Now. Ver ¡Error! No se
ncuentra el origen de la referencia..
Figura 9.Ingresar a la sección My Licenses
2.2.4 Seleccionar Get packaged trial
Seleccionar Get packaged trial para obtener el ejecutable de instalación y lo más
importante la licencia de prueba que se asigna a la cuenta. Ver Figura 10. Seleccionar Get
packaged trial.
Figura 10. Seleccionar Get packaged trial
2.2.5 Instalar Matlab
Ejecutar el instalador que se descargó y seleccionar el método de instalación Log in. Ver
Figura 11. Método de instalación Log in
Figura 11. Método de instalación Log in
Luego se aceptan los términos y condiciones de uso y se escoge la opción Next. Ver
Figura 12. License Agreement.
Figura 12. License Agreement
Se ingresa con la cuenta que se registró en la plataforma matlabworks.com. Ver Figura
13.Log in.
Figura 13.Log in
Como se ingresó con la cuenta que ya está registrada y con la que se solicitó la versión
de prueba de Matlab a continuación muestra las licencias otorgadas por Matlab.com.
Seleccionar una licencia y presionar Next. Ver Figura 14.Select a licenseFigura 14.Select a
license.
Figura 14.Select a license
A continuación se muestra los componentes que se pueden. Seleccionar todos. Ver Figura
15. Select products to install.
Figura 15. Select products to install
Se espera a que se instalen los componentes y se da por terminada la instalación.
3 LIBRERÍAS Y COMPONENTES UTILIZADOS
Para la implementación de la solución fue necesario utilizar librerías y componentes que
integradas al proyecto se convirtieron en una eficaz forma de cumplir con los necesidades
del proyecto.
A continuación se explican una a una las librerías utilizadas y se dejan las paginas donde
están disponibles para su descarga. Cabe resaltar que no es necesario descargarlas por que la
solución realizada en java se entrega con todas las librerías y estas pueden ser utilizadas en
otros proyectos por cumplir con las condiciones de código libre.
3.1 LibreriaMatlab.jar
Figura 16. LibreriaMatlab.jar
LibreriaMatlab.jar
LibreríaMatlab.jar es un componente creado por los desarrolladores del presente
proyecto, y su función es solucionar sistemas de ecuaciones utilizando el lenguaje y motor
de Matlab. Ver Figura 16. LibreriaMatlab.jar.
Matlab permite encapsular sus desarrollos en archivos .jar y esto permite que java pueda
utilizar el componente como una librería java. A continuación se muestra la estructura del
componente. Ver Figura 17. Estructura del componente LibreriaMatlab.jar.
Figura 17. Estructura del componente LibreriaMatlab.jar
Tabla 1. Definición de la estructura del componente LibreriaMatlab.jar
Nombre Descripción
Soluciones Esta es una de las clases del componente
LibreriaMatlab.jar y contiene los métodos
que cualquier instancia de esta clase puede
utilizar en cualquier proyecto java.
Soluciones() Este es el constructor de la clase
Soluciones
SoluciónLineal() Este método permite solucionar sistemas
de ecuaciones. Sus parámetros son dos
arreglos matriciales y retorna un arreglo
con el resultado encontrado.
A[][] Es el primer parámetro del método
SoluciónLineal() y es la matriz de
coeficientes del sistema de ecuaciones a
solucionar.
B[][] Es el primer parámetro del método
SoluciónLineal() y es la matriz de términos
independientes del sistema de ecuaciones a
solucionar.
object[][] Es el retorno del método SoluciónLineal()
y es la matriz de incógnitas o resultado que
se encontró Matlab..
3.2 javabuilder.jar
Figura 18. javabuilder.jar
javabuilder.jar
Este componente es el driver que permite la conexión entre java y Matlab. Ver Figura 18.
javabuilder.jar.
Es necesario agregar este componente al proyecto javo y como ya se instaló Matlab se
puede encontrar en “directorio_raiz_de_matlab\toolbox\javabuilder\jar”.
3.3 org.apache.poi 3.9.jar
Figura 19.Poi-3.9-20121203.jar
poi-3.9-20121203.jar
Apache Poi es un componente creado por Apache Software Foundation y proporciona
librerías desarrolladas en java para la lectura y escritura en los formatos de Microsoft Office,
como Word, PowerPoint y Excel. Ver Figura 19.Poi-3.9-20121203.jar.
Para descargar este componente dirigirse ir a la página:
“https://poi.apache.org/download.html”.
De este componente se utilizaron los siguientes objetos. Ver Tabla 2. Objetos utilizados
del componente Apache Poi.
Tabla 2. Objetos utilizados del componente Apache Poi
Nombre del objeto Descripción
HSSFWorkbook La representación de alto nivel de un libro
Excel. Este es el primer objeto construye si
están leyendo o escribiendo un libro Excel.
Es también el objeto de nivel superior para
la creación de nuevas hojas Excel.
Cell Este objeto representa una celda en una fila
de una hoja de cálculo.
Row Este objeto representa una fila de una hoja
de cálculo.
Sheet Este objeto representa una hoja de cálculo.
Workbook Este objeto representa un libro de trabajo.
Este componente se agregar al proyecto java como un jar y se utiliza para la creación,
lectura y modificación de archivos Excel.
3.4 itextpdf.jar
Figura 20. itextpdf.jar
itextpdf.jar
iText es una biblioteca de código abierto para la creación y manipulación de archivos
PDF en Java. Ver Figura 20. itextpdf.jar
Para descargar el componente ir a: “http://itextpdf.com/”. Este componente se agrega al
proyecto java como un jar y se utiliza para la creación de archivos pdf.
3.5 jfreechart-1.0.1
Figura 21.jfreechart-1.0.1
jfreechart-1.0.1.jar
JFreeChart es una librería de código abierto desarrollada en Java y permite crear graficas
de estadística de forma sencilla y manipulable para el fin que se necesite. Ver Figura
21.jfreechart-1.0.1.
Para descargar el componente ir a: “http://www.jfree.org/jfreechart/download.html”Este
componente se agrega al proyecto java como un jar y se utiliza para la creación gráficas que
permitan mostrar los resultados encontrados por el algoritmo recocido simulado.
3.6 jcommon-1.0.0
Figura 22. jcommon-1.0.0
jcommon-1.0.0.jar
J jcommon-1.0.0.jar es una librería de código abierto desarrollada en Java y es
indispensable para que funcione correctamente la librería JFreeChart.jar. Ver Figura 22.
jcommon-1.0.0.
Para descargar el componente ir a: “http://www.jfree.org/jfreechart/download.html”Este
componente se agrega al proyecto java como un jar y es necesaria para que la librería
JFreeChart.jar funcione.
3.7 UpperEssentialLookAndFeel
Figura 23.UpperEssentialLookAndFeel.jar
UpperEssentialLookAndFeel[Inale].jar
UpperEssentialLookAndFeel es un software para cambiar la apariencia de aplicaciones
java (con SWING). Ver Figura 23.UpperEssentialLookAndFeel.jar.
Para hacer uso de esta librería y modificar la aparecía del proyecto java basta con
descargar la librería UpperEssentialLookAndFeel[Inale].jar y agregarlo al proyecto java.
Para descargar esta librería ir a “http://www.warevalid.site90.net/upper_essential.html”.