PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

156
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

Transcript of PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Page 1: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 2: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 3: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Nota de aceptación:

_______________________________________

_______________________________________

_______________________________________

_______________________________________

TUTOR

_______________________________________

Ing. Roberto Emilio Salas

Presidente Jurado

_______________________________________

Ing. Jorge Rodríguez

_______________________________________

Ing. John Zabala

Bogotá D.C. Agosto 2015

Page 4: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 5: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 6: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 7: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 8: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 9: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 10: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 11: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 12: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 13: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 14: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 15: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS 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.

Page 16: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 17: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 18: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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>.

Page 19: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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>

Page 20: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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>

Page 21: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 22: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 23: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 24: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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>.

Page 25: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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>

Page 26: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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>

Page 27: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 28: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 29: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 30: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 31: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 32: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 33: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 34: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 35: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 36: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 37: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 38: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 39: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 40: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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”.

Page 41: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 42: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 43: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 44: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 45: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 46: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 47: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 48: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 49: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 50: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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”.

Page 51: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 52: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 53: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Figura 8. Modelo de secuencia almacenamiento datos

Fuente: Autores

Page 54: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 55: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 56: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 57: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 58: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 59: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 60: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 61: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 62: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 63: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 64: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Figura 17. Modelo de Interfaz

Fuente: Autores

Page 65: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 66: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 67: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 68: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 69: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 70: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Figura 20. Modelo de paquetes

Fuente: Autores

Page 71: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 72: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 73: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 74: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 75: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 76: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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>

Page 77: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 78: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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)

Page 79: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 80: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 81: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 82: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 83: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 84: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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:

Page 85: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

<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>

Page 86: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

ANEXOS

Page 87: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 88: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Anexo 2. Cronograma de actividades

Figura 1. Cronograma de actividades

Fuente: Autores

Page 89: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 90: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 91: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Figura 6. Modelo de Caso de uso Generar Reporte

Fuente: Autores

Figura 7. Modelo de Caso de uso Modificar Decisiones

Fuente: Autores

Page 92: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Anexo 4. Diagramas específicos secuencia

Figura 1. Modelo de Secuencia Crear Decisiones

Fuente: Autores

Page 93: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Figura 2. Modelo de Secuencia Cargar Decisiones

Fuente: Autores

Page 94: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Figura 3. Modelo de Secuencia Guardar Decisiones

Fuente: Autores

Page 95: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Figura 4. Modelo de Secuencia Configuración Recocido Simulado

Fuente: Autores

Page 96: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Figura 5. Modelo de Secuencia Buscar Política

Fuente: Autores

Page 97: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Figura 6. Modelo de Secuencia Generar Reporte

Fuente: Autores

Page 98: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Figura 7. Modelo de Secuencia Modificar Decisiones

Fuente: Autores

Page 99: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Anexo 5. Manual de Usuario

Page 100: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …
Page 101: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 102: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 103: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 104: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 105: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 106: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 107: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 108: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 109: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 110: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 111: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 112: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 113: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 114: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 115: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 116: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 117: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 118: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 119: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 120: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 121: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 122: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 123: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

3. Seleccionar cantidad de estados.

4. El sistema genera las matrices y permite al usuario modificar los datos de las

mismas.

Page 124: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 125: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 126: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 127: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …
Page 128: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 129: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 130: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 131: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

4. Puede cambiar la vista de las matrices a la decisión que desee.

5. Acceder a la opción configuración.

Page 132: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 133: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 134: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …
Page 135: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …
Page 136: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

Anexo 6. Manual de desarrollador

Page 137: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …
Page 138: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 139: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

LISTA DE TABLAS

Tabla 1. Definición de la estructura del componente LibreriaMatlab.jar .......................... 143

Tabla 2. Objetos utilizados del componente Apache Poi ................................................... 145

Page 140: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 141: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 142: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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 .

Page 143: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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 .

Page 144: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 145: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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..

Page 146: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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..

Page 147: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 148: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 149: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 150: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 151: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 152: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 153: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 154: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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

Page 155: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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.

Page 156: PROTOTIPO DE SOFTWARE PARA SOLUCIONAR PROCESOS DE …

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”.