universidad politÉcnica de madrid · ha sido duro compaginar la elaboración del proyecto con el...

202
FACULTAD DE INFORMÁTICA UNIVERSIDAD POLITÉCNICA DE MADRID UNIVERSIDAD POLITÉCNICA DE MADRID FACULTAD DE INFORMÁTICA TRABAJO FIN DE CARRERA “DIMENSIÓN MÉTRICA DE GRAFOS” AUTOR: Pedro Javier Díaz Hernández TUTOR: Gregorio Hernández Peñalver

Upload: others

Post on 01-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

FACULTAD DE INFORMÁTICA UNIVERSIDAD POLITÉCNICA DE MADRID

UNIVERSIDAD POLITÉCNICA DE MADRID FACULTAD DE INFORMÁTICA

TRABAJO FIN DE CARRERA

“DIMENSIÓN MÉTRICA DE GRAFOS” AUTOR: Pedro Javier Díaz Hernández TUTOR: Gregorio Hernández Peñalver

Page 2: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias
Page 3: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Agradecimientos

AGRADECIMIENTOS

En primer lugar, quiero agradecer a Gregorio, mi tutor del proyecto, toda su ayuda

didáctica, además de su trato siempre amable hacia mí, a pesar de haberse dilatado en

demasía el desarrollo de este proyecto y, especialmente, en estos momentos tan delicados

para él.

También, me gustaría dar las gracias a mi familia (mi madre, mi padre y mi

hermana) por todo el apoyo que me han dado durante estos meses. Agradecer

especialmente a mi hermana Montse que me ayudó mucho con sus consejos de diseño y su

colaboración.

Finalmente agradecer a mi novia Sara que me ha animado siempre a terminar,

comprendiendo algunas ausencias en estos meses.

Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada

completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias a vuestros incansables

ánimos, por fin, lo he concluido satisfactoriamente.

Page 4: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias
Page 5: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Índice

ÍNDICE

1. INTRODUCCIÓN............................................................................................. 1

2. TEORÍA DE GRAFOS ..................................................................................... 4

2.1 NOCIONES PREVIAS .............................................................................................4 2.1.1. Grafos, Caminos y distancias .......................................................................................4 2.1.2. Algoritmo de Dijkstra..................................................................................................12 2.1.3. Tipos de grafos............................................................................................................13

2.2 DIMENSIÓN MÉTRICA .......................................................................................19 2.2.1. Definición....................................................................................................................20 2.2.2. Dimensión métrica para grafos de orden n.................................................................25 2.2.3. Grafos de orden n con dimensión métrica n – 2 .........................................................29 2.2.4. Acotación del orden ....................................................................................................30 2.2.5. Dimensión métrica en árboles ....................................................................................33 2.2.6. Dimensión métrica del producto H x K2 .....................................................................41

2.3 DIMENSIÓN MÉTRICA TOLERANTE ..............................................................43 2.3.1. Definición ...................................................................................................................43 2.3.2. Conjuntos resolutivos 1 – tolerantes para árboles .......................................................44 2.3.3. Relación entre β’ (G) y β (G) ......................................................................................48

2.4 RESULTADOS EXPERIMENTALES ..................................................................49

3. DISEÑO........................................................................................................... 51

3.1 INTRODUCCIÓN...................................................................................................51

3.2 DISEÑO DE ALTO NIVEL ...................................................................................53 3.2.1. Definición de los límites del sistema...........................................................................53 3.2.2. DIAGRAMAS DE CASOS DE USO .........................................................................55 3.2.3. DESCRIPCIÓN DE LOS ACTORES.........................................................................59 3.2.4. CASOS DE USO EN FORMATO DE ALTO NIVEL...............................................59 3.2.5. CASOS DE USO EN FORMATO EXTENDIDO......................................................78

- i - P. Javier Díaz Hernández

Page 6: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Índice

3.3 DISEÑO DE BAJO NIVEL................................................................................ 115 3.3.1. DIAGRAMAS DE COLABORACIÓN ................................................................... 115 3.3.2. DIAGRAMAS DE CLASES DE DISEÑO.............................................................. 143

4. MANUAL DE USUARIO ..............................................................................155

4.1 VISIÓN GENERAL DE LA APLICACIÓN ....................................................... 155

4.2 VISIÓN DETALLADA DE LA APLICACIÓN .................................................. 157 4.2.1. ARCHIVO ................................................................................................................. 159 4.2.2. EDITAR .................................................................................................................... 164 4.2.3. RESOLVER GRAFO................................................................................................. 165 4.2.4. DISTANCIA MÉTRICA ............................................................................................ 173 4.2.5. GEMELOS ADYACENTES....................................................................................... 174 4.2.6. GRAFOS ESPECIALES............................................................................................ 175 4.2.7. HERRAMIENTAS ..................................................................................................... 181 4.2.8. SELECCIÓN DE MODOS........................................................................................ 185 4.2.9. ZOOM....................................................................................................................... 187 4.2.10. CAMBIAR IDIOMA .................................................................................................. 188

5. CONCLUSIONES..........................................................................................189

6. REFERENCIAS BIBLIOGRÁFICAS..........................................................190

7. PÁGINAS WEB .............................................................................................192

- ii - P. Javier Díaz Hernández

Page 7: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Índice

ÍNDICE DE FIGURAS

Figura 1. Ejemplo de grafo .................................................................................................................................5 Figura 2. Ejemplo de subgrafo ...........................................................................................................................6 Figura 3. Grafo CONEXO Figura 4. Grafo INCONEXO .............................................................................7 Figura 5. Grafo bipartito ....................................................................................................................................8 Figura 6. Árbol ...................................................................................................................................................9 Figura 7. Matriz de distancias ..........................................................................................................................11 Figura 8. Grafo Completo.................................................................................................................................13 Figura 9. Grafo Ciclo .......................................................................................................................................14 Figura 10. Grafo Rueda....................................................................................................................................15 Figura 11. Árbol Estrella ..................................................................................................................................16 Figura 12. Grafo inicial H ................................................................................................................................16 Figura 13. Grafo producto H x K2 ....................................................................................................................17 Figura 14. Grafo de Petersen ...........................................................................................................................18 Figura 15. Grafo ejemplo dimensión métrica ...................................................................................................21 Figura 16. Grafo con W1 = { V1 ,V3 } ............................................................................................................21 Figura 17. Grafo con W2 = { V1 ,V2 ,V3 }........................................................................................................22 Figura 18. Conjuntos resolutivos con cardinalidad 3......................................................................................23 Figura 19. Grafo con W3 = { V1 ,V2 }...............................................................................................................23 Figura 20. Conjuntos resolutivos con cardinalidad 2.......................................................................................24 Figura 21. Árboles ejemplo...............................................................................................................................26 Figura 22. Grafos ejemplo ................................................................................................................................27 Figura 23 Grafo camino Pn...............................................................................................................................27 Figura 24 Dimensión métrica de un Pn ( P8 ) ....................................................................................................28 Figura 25 Dimensión métrica de Kn (K10).........................................................................................................29 Figura 26. Grafo G6,4. .......................................................................................................................................31 Figura 27 Tablas de valores .............................................................................................................................32 Figura 28 Acotación de la dimensión métrica en la aplicación........................................................................33 Figura 29. Ejemplo árbol para calcular su dimensión métrica ........................................................................34 Figura 30. Cálculo de vértices Major y Exterior Major del árbol de la figura 29 ...........................................35 Figura 31. Ejemplo vértice exterior major........................................................................................................35 Figura 32. Ejemplo vértice major .....................................................................................................................36

- iii - P. Javier Díaz Hernández

Page 8: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Índice

Figura 33 Dimensión métrica del árbol de la figura 28................................................................................... 39 Figura 34. H x K2 siendo H el grafo de la Figura 15 ...................................................................................... 42 Figura 35. β ( H x K2 ) = 3 y β ( H ) = 2......................................................................................................... 43 Figura 36. Ejemplo árbol para calcular la dimensión métrica 1 - tolerante ................................................... 45 Figura 37. La dimensión métrica del árbol ejemplo es β ( T ) = 4................................................................... 45 Figura 38. Conjuntos resolutivos 1-tolerantes del árbol ejemplo .................................................................... 47 Figura 39. La dimensión métrica 1-tolerante es β’ ( T ) = 7............................................................................ 47 Figura 40. Primer diagrama de casos de uso................................................................................................... 56 Figura 41. Segundo diagrama de casos de uso ................................................................................................ 57 Figura 42. Tercer diagrama de casos de uso ................................................................................................... 58 Figura 43. Diagrama colaboración Crear Grafo Manual ............................................................................. 116 Figura 44. Diagrama de colaboración Crear Grafo Aleatorio ..................................................................... 117 Figura 45. Diagrama de colaboración Crear Árbol Manual ........................................................................ 118 Figura 46.Diagrama de colaboración Crear Árbol Auto............................................................................... 119 Figura 47. Diagrama de colaboración Añadir Vértice ................................................................................. 120 Figura 48. Diagrama de colaboración Mover Vértice ................................................................................... 121 Figura 49. Diagrama de colaboración Arrastrar Vértice .............................................................................. 122 Figura 50. Diagrama de colaboración Borrar Vértice .................................................................................. 123 Figura 51. Diagrama de colaboración Añadir Arista .................................................................................... 124 Figura 52. Diagrama de colaboración Borrar Arista .................................................................................... 125 Figura 53. Diagrama de colaboración Crear Grafo Ciclo ............................................................................ 126 Figura 54. Diagrama de colaboración Crear Grafo Completo ..................................................................... 127 Figura 55. Diagrama de colaboración Crear Grafo Rueda........................................................................... 128 Figura 56. Diagrama de colaboración Crear Árbol Estrella......................................................................... 129 Figura 57. Diagrama de colaboración Crear Grafo Producto Cartesiano ................................................... 130 Figura 58. Diagrama de colaboración Crear Grafo Petersen ....................................................................... 131 Figura 59. Diagrama de colaboración Cargar Grafo Fichero ...................................................................... 132 Figura 60. Diagrama de colaboración Guardar Grafo Fichero.................................................................... 133 Figura 61. Diagrama de colaboración Salir Aplicación................................................................................ 134 Figura 62. Diagrama de colaboración Zoom Grafo ...................................................................................... 134 Figura 63. Diagrama de colaboración Cambio Idioma ................................................................................. 135 Figura 64. Diagrama de colaboración Dimensión Métrica Grafo................................................................. 136 Figura 65. Diagrama de colaboración Dimensión 1-Tolerante Grafo .......................................................... 138 Figura 66. Diagrama de colaboración Cambio Icono Vértice....................................................................... 139

- iv - P. Javier Díaz Hernández

Page 9: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Índice

Figura 67. Diagrama de colaboración Cambio Color Arista.........................................................................140 Figura 68. Diagrama de colaboración Cambio Modo Grafo .........................................................................141 Figura 69. Diagrama de colaboración Obtener Gemelos Adyacentes ...........................................................142 Figura 70. Pantalla inicial..............................................................................................................................155 Figura 71. Cuadro propiedades del grafo ......................................................................................................156 Figura 72. Cuadro posición del puntero.........................................................................................................156 Figura 73. Cuadro modos del grafo................................................................................................................156 Figura 74. Barra menú ...................................................................................................................................157 Figura 75. Barra de herramientas ..................................................................................................................157 Figura 76. Menú de ayuda ..............................................................................................................................157 Figura 77. Ventana de Índice de contenidos...................................................................................................158 Figura 78. Menú Archivo ................................................................................................................................159 Figura 79. Diálogo selección archivo a abrir.................................................................................................162 Figura 80. Diálogo de selección archivo a guardar.......................................................................................163 Figura 81. Menú Editar ..................................................................................................................................164 Figura 82. Cuadro diálogo Mover vértice ......................................................................................................164 Figura 83. Cuadro diálogo de confirmación Borrar ......................................................................................165 Figura 84. Menú Resolver Grafo ....................................................................................................................165 Figura 85. Cuadro Diálogo Resolver Grafo ...................................................................................................166 Figura 86. Cuadro diálogo Conjuntos resolutivos 1-tolerantes del grafo ......................................................167 Figura 87. Cuadro diálogo Resolver Árbol ....................................................................................................169 Figura 88. Cuadro diálogo Clasificación vértices exterior-major árbol........................................................170 Figura 89. Cuadro diálogo Clasificación vértices major árbol......................................................................171 Figura 90. Cuadro diálogo Conjuntos resolutivos 1-tolerantes .....................................................................172 Figura 91. Menú Distancia Métrica................................................................................................................173 Figura 92. Cuadro diálogo Matriz Distancias................................................................................................174 Figura 93. Cuadro diálogo de Gemelos adyacentes .......................................................................................175 Figura 94. Menú Grafos Especiales................................................................................................................176 Figura 95. Cuadro diálogo Grafo Cíclico ......................................................................................................176 Figura 96. Cuadro diálogo Grafo Completo ..................................................................................................177 Figura 97. Cuadro diálogo Grafo Rueda........................................................................................................178 Figura 98. Cuadro diálogo de Nuevo Árbol ...................................................................................................179 Figura 99. Cuadro diálogo Árbol Estrella......................................................................................................179 Figura 100. Cuadro diálogo Grafo Cartesiano ..............................................................................................180

- v - P. Javier Díaz Hernández

Page 10: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Índice

Figura 101. Cuadro diálogo Grafo Petersen ................................................................................................. 181 Figura 102. Menú Herramientas .................................................................................................................... 181 Figura 103. Cuadro diálogo Herramientas.................................................................................................... 183 Figura 104. Cuadro diálogo elegir icono vértice ........................................................................................... 184 Figura 105. Cuadro diálogo cambio de color aristas .................................................................................... 185 Figura 106. Selector de escalas de zoom........................................................................................................ 187

- vi - P. Javier Díaz Hernández

Page 11: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Introducción

1. INTRODUCCIÓN

El proyecto consiste en el desarrollo de una aplicación en Java que permite calcular la

dimensión métrica y los conjuntos resolutivos de un grafo. Además, puede calcular la

dimensión métrica 1–tolerante y sus respectivos conjuntos resolutivos 1-tolerantes entre

otras funcionalidades.

Asimismo, la aplicación permite al usuario guardar los resultados obtenidos (los

conjuntos resolutivos) en archivos Excel para facilitar su análisis.

Pese a ser un proyecto teórico, presentaremos algunas aplicaciones prácticas en que la

dimensión métrica puede ser útil.

Los conjuntos resolutivos y dimensión métrica de grafos son conceptos que han sido

ampliamente estudiados (ver bibliografías de [7] y [15]), y que tienen aplicación en áreas

tan diversas como robótica, verificación de redes, detección de monedas falsas mediante

pesadas, estudio del grafo hipercubo o estrategias para jugar a Mastermind (para más datos

sobre aplicaciones ver [1]).

- Una aplicación interesante de la dimensión métrica se daría en el campo de la

química:

La estructura de un componente químico es frecuentemente vista como un conjunto

de grupos funcionales ordenados en una subestructura. Desde la perspectiva de la teoría de

grafos, la estructura sería un grafo etiquetado donde las etiquetas de sus vértices y las

aristas especificarían el átomo y los tipos de enlaces, respectivamente; desde este punto de

vista, los grupos funcionales y la subestructura son sencillamente subgrafos de la

representación del grafo etiquetado. Mediante el cambio del conjunto de los grupos

funcionales y/o permutando sus posiciones, será definida una colección de componentes

que estarán caracterizados por una subestructura común a ellos.

- 1 - P. Javier Díaz Hernández

Page 12: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Introducción

Tradicionalmente, esas “posiciones” sólo reflejan unos determinados átomos

(vértices) de la subestructura (subgrafo común). Estas posiciones raramente forman un

mínimo conjunto, en el siguiente sentido:

Sea W un subconjunto ordenado, de cardinalidad k, de un conjunto de vértices V(G)

de un subgrafo común G, y sea v un vértice de V(G). Podemos asociar con v una k-tupla

ordenada que muestra las distancias desde v a cada uno de los vértices de W. Entonces, el

menor de tal conjunto W para cada dos vértices distintos que tengan distintas k-tuplas

ordenadas, forma una mínima representación dimensional de las posiciones definidas en el

subgrafo común. En este contexto, W es llamado como un conjunto resolutivo de V(G).

Bajo una vista tradicional, podemos determinar si 2 componentes de una colección

comparten el mismo grupo funcional en una posición particular. Esta declaración

comparativa, juega un papel crítico en el descubrimiento de fármacos, siempre que se

determine que las características de un componente son responsables de sus actividades

farmacológicas. Sin embargo, esta declaración, es aplicable sólo a los componentes que

compartan un subgrafo G común. Gracias a la redefinición de “posición” como el valor de

una k-tupla ordenada basado en un conjunto resolutivo, la declaración puede ser extendida

a amplias colecciones de componentes. Por ejemplo, supongamos que G es un subgrafo de

un grafo H, y W es además un conjunto resolutivo de V(H); aunque G y H definen 2

colecciones distintas con posiciones especificadas por la misma k-tupla, la declaración

comparativa sigue siendo válida si uno de los componentes viene desde la colección-G y la

otra viene desde la colección-H. Esta capacidad para extender el campo de tales

comparaciones motiva nuestro interés en los conjuntos resolutivos.

Un problema fundamental en el estudio de las estructuras químicas es determinar las

maneras de representar a un conjunto de componentes químicos, ya que los distintos

compuestos tienen distintas representaciones. Un modo de realizar esto, es asociar primero

un grafo con cada compuesto y dar un valor entero métrico a los conjuntos de los

correspondientes grafos, tales que la distancia entre algunos pares de grafos sea 1. Lo

- 2 - P. Javier Díaz Hernández

Page 13: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Introducción

siguiente, sería construir un metagrafo G, cuyos vértices son estos grafos, donde 2 vértices

son adyacentes en G si y sólo si la distancia entre sus correspondientes grafos es 1.

Después, las representaciones de los vértices de G son computados con respecto a algún

conjunto mínimo resolutivo de G, de ese modo, también se proporcionan representaciones

de componentes.

- Otra posible aplicación del concepto de dimensión métrica 1-tolerante está en el área

de desarrollo de instrumentación de navegación:

El loran (“Long Range Navigation”, navegación de largo alcance) es un sistema

electrónico de ayuda a la navegación que utiliza el intervalo transcurrido entre la recepción

de señales de radio transmitidas desde tres o más transmisores para determinar la posición

del receptor, y el sonar (“Sound Navigation And Ranging”, navegación y alcance por

sonido) es una técnica que usa principalmente la propagación del sonido bajo el agua para

navegar, comunicarse o detectar otros buques, funciona de forma similar al radar.

Tal como se describe en Slater [22], cada vértice de S se puede pensar como la

ubicación de una estación de tipo sonar o loran, y la ubicación de cada buque (vértice) se

determina de forma única por sus distancias a las estaciones de S.

En este contexto, cabe plantearse qué pasaría si una estación fallase. ¿Cuál es

entonces el mínimo número de estaciones que son necesarias para poder asegurar la

corrección de los datos? Lo mismo podría preguntarse en caso de que aceptásemos la

posibilidad de que fallasen más transmisores. En este trabajo, sólo consideramos el caso en

que se tolera un único fallo, o expresado en términos de conjunto resolutivos, sólo los que

toleran un único fallo, esto es, que si falla un único transmisor ubicado en un vértice v de S

nos sigue quedando un conjunto que todavía es resolutivo.

- 3 - P. Javier Díaz Hernández

Page 14: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2. TEORÍA DE GRAFOS

En este punto se explican conocimientos relativos a la Teoría de Grafos que son

necesarios para poder entender el cálculo de la dimensión métrica de un grafo.

2.1 NOCIONES PREVIAS

2.1.1. Grafos, Caminos y distancias

Primeramente, se explicará lo que es un grafo y luego sus propiedades.

- Un vértice es una de las unidades fundamentales de la que están formados los

grafos. Los vértices son tratados como un objeto indivisible y sin propiedades

- Un grafo es una pareja de conjuntos G = (V,A), donde V es el conjunto de vértices,

y A es el conjunto de aristas, este último es un conjunto de pares de la forma (u,v) tal que

u,v є V, tal que u ≠ v. Para simplificar, notaremos la arista (a,b) como a-b.

En la Figura 1 se distinguen 8 vértices ( 1, 2, 3, 4, 5, 6, 7 y 8 ) y 10 aristas ( 1-2, 1-3,

1-4, 1-5, 1-8, 2-7, 3-4, 3-6, 5-6 y 5-7 ).

En teoría de grafos, sólo queda lo esencial: la forma de las aristas no es relevante, sólo

importa a qué vértices están unidas. La posición de los vértices tampoco importa, y se

puede variar para obtener un dibujo más claro.

- 4 - P. Javier Díaz Hernández

Page 15: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Figura 1. Ejemplo de grafo

- La cardinalidad del conjunto de vértices V del grafo se denomina orden del grafo y

se denota como | V |. En la Figura 1, el orden del grafo es 8.

- La cardinalidad del conjunto de aristas A del grafo se denomina tamaño del grafo y

se denota como |A|. En el ejemplo de grafo de la Figura 1 el tamaño del grafo es 10.

Muchas redes de uso cotidiano pueden ser modeladas con un grafo: una red de

carreteras que conecta ciudades, una red eléctrica o la red de drenaje de una ciudad.

- En algunos casos, es necesario asignar un sentido a las aristas, por ejemplo, si se

quiere representar la red de las calles de una ciudad con sus direcciones únicas. El conjunto

de aristas será un subconjunto de todos los posibles pares ordenados de vértices, con (a, b)

≠ (b, a). Los grafos que contienen aristas dirigidas se denominan grafos orientados.

Las aristas no orientadas se consideran bidireccionales para efectos prácticos

(equivale a decir que existen dos aristas orientadas entre los vértices, cada una en un

sentido). En nuestra aplicación, las aristas serán no orientadas ( como se ve en la Figura 1),

ya que para calcular la dimensión métrica no es necesario.

- 5 - P. Javier Díaz Hernández

Page 16: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

- Un subgrafo de un grafo G es un grafo cuyos conjuntos de vértices y aristas son

subconjuntos de los de G. Se dice que un grafo G contiene a otro grafo H si algún subgrafo

de G es H o es isomorfo a H (dependiendo de las necesidades de la situación). Por ejemplo,

teniendo como G el grafo de la izquierda de la Figura 2 y H el grafo de la derecha de la

misma figura.

Figura 2. Ejemplo de subgrafo

- El subgrafo inducido de G es un subgrafo G' de G tal que contiene todas las aristas

adyacentes al subconjunto de vértices de G.

- Se considera la característica de grado (positivo o negativo) de un vértice v, como la

cantidad de aristas que llegan o salen de él; para el caso de grafos no orientados, el grado de

un vértice es simplemente la cantidad de aristas incidentes a este vértice, que es nuestro

caso. Por ejemplo, en la Figura 1 el grado del vértice ‘1’ es 5, mientras que el grado del

vértice ‘5’ es 3.

- 6 - P. Javier Díaz Hernández

Page 17: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

- Un camino es una secuencia de vértices en el que cada vértice es adyacente al

siguiente. En la Figura 1, un camino se podría describir como "partiendo de 8 podemos

llegar a 6 pasando por los vértices 8-1-3-6".

Los caminos nos permitirán obtener la distancia entre vértices.

- Un ciclo es la sucesión de aristas adyacentes donde no se recorre dos veces la misma

arista y se regresa al vértice inicial. Un ejemplo de ciclo en la Figura 1 sería el camino

‘1’–‘4’–‘3’–‘1’.

- Un ciclo hamiltoniano tiene, además, que recorrer todos los vértices exactamente

una vez (excepto el vértice del que parte y al cual llega). Se habla también de camino

hamiltoniano si no se impone regresar al punto de partida recorriendo todos los vértices.

- Un grafo es simple si a lo sumo sólo 1 arista une dos vértices cualesquiera. Esto es

equivalente a decir que una arista cualquiera es la única que une dos vértices específicos.

- Un grafo es conexo si cada par de vértices está conectado por un camino; es decir, si

para cualquier par de vértices (a, b) existe al menos un camino posible desde a hacia b. Con

las figuras queda más claro:

Figura 3. Grafo CONEXO Figura 4. Grafo INCONEXO

- 7 - P. Javier Díaz Hernández

Page 18: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

- Un grafo es fuertemente conexo si cada par de vértices está conectado por al menos

dos caminos disjuntos; es decir, el grafo es conexo y si eliminamos cualquiera de sus

vértices el grafo resultante sigue siendo conexo.

Es posible determinar si un grafo es conexo o no usando un algoritmo de Búsqueda en

anchura (BFS) o Búsqueda en profundidad (DFS). La aplicación distingue si el grafo es

conexo, ya que es una propiedad necesaria para calcular la dimensión métrica.

- Un grafo G es bipartito si puede expresarse como G = {V1UV2, A} (es decir, sus

vértices son la unión de dos grupos de vértices), cumpliéndose las siguientes condiciones:

1. V1 y V2 son disjuntos y no vacíos.

2. Cada arista de A une un vértice de V1 con uno de V2.

3. No existen aristas uniendo dos elementos de V1 entre sí, ocurriendo lo mismo

para V2.

Bajo estas condiciones, el grafo se considera bipartito, y puede describirse

informalmente como el grafo que une o relaciona dos conjuntos de elementos diferentes.

Figura 5. Grafo bipartito

- Un grafo que no tiene ciclos y es conexo, se llama árbol.

- 8 - P. Javier Díaz Hernández

Page 19: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

En un grafo con n vértices, los árboles tienen exactamente n - 1 aristas, y hay nn-2

árboles etiquetados distintos sobre un conjunto de n vértices. Su importancia radica en que

los árboles son grafos que conectan todos los vértices utilizando el menor número posible

de aristas.

Los árboles, también son estructuras muy utilizadas en el campo de la programación,

en especial, los árboles binarios, que son aquéllos cuyos vértices tienen un grado nodal no

superior a 3.

En la aplicación, distinguimos el cálculo de la dimensión métrica sobre grafos y

árboles, ya que los grafos que son árboles tienen propiedades especiales.

Figura 6. Árbol

- Cuando un grafo o multigrafo se puede dibujar en un plano sin que dos segmentos se

corten, se dice que es plano. Es decir, lo será si se puede dibujar sin cruces de aristas.

- Otra definición importante para entender la dimensión métrica es la distancia entre

dos vértices en un grafo, que es el menor número de aristas de un recorrido entre ellos.

- 9 - P. Javier Díaz Hernández

Page 20: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Las propiedades de la distancia, siempre que las aristas no reciban pesos negativos,

son:

1. d(x,y) ≥ 0 para todos los vértices de V(G)

2. d(x,y) = 0 si y sólo si x = y

3. d(x,y) = d(y,x) Propiedad de simetría

4. d(x,y) + d(y,z) ≥ d(x,z) Desigualdad triangular

El cálculo de la dimensión métrica se basa en las distancias entre vértices del grafo.

Más adelante se explicará con más detalle.

- El diámetro en un grafo es la máxima distancia entre dos vértices de la misma.

Un diámetro infinito puede significar que el grafo tiene una infinidad de vértices o

simplemente que no es conexo. También se puede considerar el diámetro promedio, como

el promedio de las distancias entre dos vértices.

Existen diversos algoritmos para determinar las distancias mínimas entre los vértices

de un grafo. Los más conocidos son el de Dijkstra, el de Bellman-Ford y el de Floyd. En la

aplicación, se ha utilizado el algoritmo de Dijkstra para calcular las distancias mínimas.

Para la representación de un grafo se suelen utilizar las estructuras matriciales. Las

más comunes son:

- La matriz de incidencia de un grafo que es una matriz n x m siendo m = |A|

(aristas) y n = |V| (vértices), donde M[vértice,arista] contiene la información de la

conexión del vértice y la arista (1 - conectado, 0 - no conectado)

- 10 - P. Javier Díaz Hernández

Page 21: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

- La matriz de adyacencia de un grafo que es una matriz cuadrada M de tamaño n x

n, donde n es el número de vértices |V|. Si hay una arista entre un vértice x y un vértice y,

entonces el elemento mx,y es 1, de lo contrario, es 0.

- Para representar todas las distancias de un grafo en la aplicación se ha utilizado una

matriz de distancias, que es una matriz cuadrada n x n siendo n = |V|, donde M[Vi ,Vj]

contiene la distancia mínima del Vi al Vj. En el ejemplo se ve la matriz de distancias y el

diámetro del grafo de la Figura 1:

Figura 7. Matriz de distancias

- 11 - P. Javier Díaz Hernández

Page 22: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2.1.2. Algoritmo de Dijkstra

También llamado algoritmo de caminos mínimos, es un algoritmo para la

determinación del camino más corto dado un vértice origen al resto de vértices en un grafo

dirigido y con pesos en cada arista. ( en nuestro caso los pesos van a ser siempre 1 y el

grafo no va a ser dirigido). Edsger Dijkstra lo describió por primera vez en 1959 de ahí el

nombre del algoritmo.

Se adjunta el pseudocódigo del algoritmo utilizando una cola de prioridad Q:

DIJKSTRA (Grafo G, vértice_fuente s)

// inicializamos todos los vértices del grafo. La distancia de cada vértice es infinita

// y los padres son NULL for u є V[G] do distancia[u] = INFINITO padre[u] = NULL distancia[s] = 0 //encolamos todos los vértices del grafo Encolar (cola, V[G]) mientras cola != 0 do

// OJO: Se extrae el vértice que tiene distancia mínima y se conserva la condición de Cola de prioridad

u = extraer_minimo(cola) for v є adyacencia[u] do if distancia[v] > distancia[u] + peso(u,v) do distancia[v] = distancia[u] + peso(u,v) padre[v] = u

En nuestro caso, para calcular la matriz de distancias para el cálculo de la dimensión

métrica de un grafo, se utiliza éste algoritmo.

Si analizamos la complejidad del algoritmo, vemos que la complejidad del algoritmo

es O(n2).

- 12 - P. Javier Díaz Hernández

Page 23: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2.1.3. Tipos de grafos

Como en la aplicación se pueden generar distintos tipos de grafos vamos a definir

algunos de ellos.

2.1.3.1. Grafo Completo

Es un grafo donde cada vértice está conectado con los demás vértices a través de una

arista. El grafo completo de n vértices tiene 2

)1( −nn aristas, y se denota con Kn.

Es un grafo regular con todos sus vértices de grado n − 1.

El diámetro de los grafos completos Kn es 1.

Figura 8. Grafo Completo

- 13 - P. Javier Díaz Hernández

Page 24: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2.1.3.2. Grafo Ciclo

Es un grafo que consiste en un camino cerrado en el que no se repite ningún vértice, a

excepción del primero, que aparece dos veces como principio y fin del camino. Un Grafo

ciclo de n vértices es llamado Cn.

El número de vértices en un grafo Cn es igual al número de aristas, y cada vértice

tiene grado 2, esto significa que cada vértice tiene dos aristas incidentes.

Figura 9. Grafo Ciclo

- 14 - P. Javier Díaz Hernández

Page 25: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2.1.3.3. Grafo Rueda

Es un grafo ciclo con un vértice central el cual está unido mediante una arista a todo

el resto de vértices que constituyen el ciclo. Un grafo rueda de n+1 vértices es llamado Wn.

Figura 10. Grafo Rueda

2.1.3.4. Árbol Estrella

Es un árbol que muestra un vértice central conectado mediante una arista a todos los

demás vértices que están dispuestos circularmente a su alrededor. Este tipo de árbol de n

vértices se denomina Sn ó n-estrella y tiene n-1 aristas.

El vértice central tiene n-1 y el resto tienen grado 1.

- 15 - P. Javier Díaz Hernández

Page 26: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Figura 11. Árbol Estrella

2.1.3.5. Producto cartesiano H x K2

Dado un grafo conexo inicial H, el producto de K2 de ese grafo es incluir un grafo

igual que el inicial y unir entre sí cada vértice duplicado con su arista original. El grafo

final tiene un efecto de 3 dimensiones y se transforma en un prisma.

Figura 12. Grafo inicial H

- 16 - P. Javier Díaz Hernández

Page 27: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Figura 13. Grafo producto H x K2

2.1.3.6. Grafo de Petersen Generalizado

Este grafo es denominado GP(n,k). Para y 3≥n ⎥⎦⎤

⎢⎣⎡ −

≤≤2

)1(1 nk es un grafo

formado por una estrella interior y un grafo ciclo Cn(n,k) exterior, conectados los vértices

del interior al exterior mediante aristas. GP(n,k) tiene 2n vértices y 3n aristas.

- 17 - P. Javier Díaz Hernández

Page 28: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

La disposición más famosa de éste grafo es el Grafo de Petersen:

Figura 14. Grafo de Petersen

- 18 - P. Javier Díaz Hernández

Page 29: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2.2 DIMENSIÓN MÉTRICA

La idea de conjuntos resolutivos y mínimos conjuntos resolutivos ha aparecido en la

literatura anteriormente. En [20] y más tarde en [21], Slater introdujo el concepto de los

conjuntos resolutivos para un grafo conexo G bajo el término locating set. Se refería a un

mínimo conjunto resolutivo como un reference set de G, y llamó location number de G a la

cardinalidad de un conjunto mínimo resolutivo (reference set). Slatter describió la utilidad

de estas ideas cuando trabajaba con estaciones sonar y loran. Independientemente, Harary y

Melter [13] descubrieron estos conceptos también pero usaron el término dimensión

métrica, en lugar de número localizador. En este proyecto adoptamos la terminología de

Harary y Melter. Por consiguiente, la dimensión métrica o, más simplemente, la dimensión

métrica dim(G) de un grafo conexo G es la cardinalidad de un conjunto mínimo resolutivo.

Debido a la terminología de algebra lineal, nosotros además nos referimos a un conjunto

mínimo resolutivo como una base de vértices. De ahí, los vértices de G tienen

representaciones distintas con respecto a la base de vértices.

En esta sección, se va a explicar en profundidad lo que nos ocupa de lleno en este

proyecto: la dimensión métrica y los conjuntos resolutivos de un grafo.

Se va a hacer distinción entre el cálculo de la dimensión métrica para grafos y árboles,

ya que para éstos últimos, por sus propiedades especiales, su cálculo se puede estimar de

forma exacta, mientras que para los grafos que no son árboles su acotación no lo es.

- 19 - P. Javier Díaz Hernández

Page 30: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2.2.1. Definición

Sea G = (V, E) un grafo conexo de orden |G| = |V| = n, y sean dos vértices x, y є V:

- La distancia entre x e y la notaremos como d(x,y), recordamos que es el número de

aristas de un camino corto entre x e y.

- El diámetro se denota como D de G y es el máximo valor de la distancia entre dos

vértices de G, D = max {d(x,y), x , y є V}.

- Un vértice x є V resuelve un par de vértices u, v є V si d(x,u) ≠ d(x,v). Un conjunto

S, S є V, resuelve G, si para todo par de vértices de G existe un vértice de S que los

resuelve.

- La dimensión métrica de G la llamaremos β y es el cardinal mínimo que tiene un

conjunto S que resuelve G, β = min {|S| , S resuelve G}. Diremos que un conjunto S, S є V,

es una base si S resuelve G y |S| = β.

Por otro lado, denominamos un conjunto de vértices ordenados a un conjunto W =

{w1,w2...wk} en el que el orden (w1,w2…wk) ha sido impuesto. Para un subconjunto

ordenado W = {w1,w2…wk} de V(G), nos referimos a un k-vector (k-tupla ordenada) como

la representación métrica de v con respecto a W.

r ( v | W ) = ( d ( v, w1 ) , d ( v, w2 ), … , d (v, wk ) )

- El conjunto W es llamado un conjunto resolutivo de G si r (u | W) = r (v | W), esto

implica que u = v para todo u, v є V(G). Además, si W es un conjunto resolutivo de

cardinalidad k para el grafo G de orden n, entonces el conjunto { r (v | W) | v є V(G) }

consta de n k-vectores distintos. Un conjunto resolutivo de cardinalidad mínima para un

grafo G es llamado mínimo conjunto resolutivo.

- 20 - P. Javier Díaz Hernández

Page 31: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Por ejemplo, considerando el grafo G de la Figura 15, siendo W = {v1, v2, v3, v4, v5}

entonces r (v1, W) = (0, 1, 1, 1, 2)

Figura 15. Grafo ejemplo dimensión métrica

Con objeto de aclarar mejor lo que es un conjunto resolutivo, se van a exponer a

continuación unos ejemplos partiendo del grafo de la Figura 15:

- Vamos a comprobar si el conjunto W1= {v1,v3} (Figura 16) es un conjunto

resolutivo para G. Calculamos los vectores de distancias desde todos los vértices de G a

W1:

r (v1 / W1) = ( 0, 1 ) r (v4 / W1) = ( 1, 1 )

r (v2 / W1) = ( 1, 1 ) r (v5 / W1) = ( 1, 2 )

r (v3 / W1) = ( 1, 0 )

Figura 16. Grafo con W1 = { V1 ,V3 }

- 21 - P. Javier Díaz Hernández

Page 32: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Se observa que r (v2 / W1) = (1, 1) = r (v4 / W1) por lo que no es un conjunto resolutivo ya

que no genera una base.

- En el caso de W2 = { v1 , v2 , v3 } (Figura 17) sí es un conjunto resolutivo, ya que sus

vectores de distancias sí generan una base al no repetirse ninguno de sus vectores de

distancias, como vemos a continuación:

r (v1 / W2) = ( 0, 1, 1 ) r (v4 / W2) = ( 1, 2, 1 )

r (v2 / W2) = ( 1, 0, 1 ) r (v5 / W2) = ( 2, 1, 1 )

r (v3 / W2) = ( 1, 1, 0 )

Figura 17. Grafo con W2 = { V1 ,V2 ,V3 }

- 22 - P. Javier Díaz Hernández

Page 33: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

En la siguiente figura, se visualiza la representación en la aplicación de todos los

conjuntos resolutivos de cardinalidad 3 del grafo de la Figura 15, así como los vectores de

distancias de los conjuntos resolutivos obtenidos, en este caso se observan las del conjunto

{v1,v2,v3}:

Figura 18. Conjuntos resolutivos con cardinalidad 3

Sin embargo, W2 no es un conjunto mínimo resolutivo, ya que hay conjuntos con

cardinalidad menor que resuelven el grafo también, como W3 = {v1,v2} (Figura 19).

Figura 19. Grafo con W3 = { V1 ,V2 }

- 23 - P. Javier Díaz Hernández

Page 34: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Queda demostrado en la Figura 20 que W3 es un conjunto resolutivo, ya que sus

vectores de distancias forman una base:

r (v1 / W3) = (0,1) r (v2 / W3) = (1,0) r (v3 / W3) = (1,1)

r (v4 / W3) = (1,2) r (v5 / W3) = (2,1)

Figura 20. Conjuntos resolutivos con cardinalidad 2

Además, se comprueba que W3 es conjunto mínimo, ya que no hay otro conjunto de

menos cardinalidad que resuelva el grafo G (Figura 15), por lo tanto, ya tenemos la

dimensión métrica de G, puesto que β = min { |S| , S resuelve G } = min{|W3|,W3 resuelve

G } , resultando que β = |W3| = 2.

Una vez que ya sabemos lo que es la dimensión métrica, seguidamente se expondrán

una serie de propiedades sobre ella que se cumplen en diferentes tipos grafos, apoyándonos

en una serie de teoremas y lemas (adjuntando la demostración de los más relevantes):

- 24 - P. Javier Díaz Hernández

Page 35: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2.2.2. Dimensión métrica para grafos de orden n

En ésta sección daremos unas claves para obtener o al menos acotar la dimensión

métrica en grafos de orden n.

- Teorema 1:

Definimos f (n,d) como el menor entero positivo k que cumple k + dk ≥ n.

Si G es un grafo conexo de orden n > 2 y diámetro d, entonces:

f(n,d) ≤dim(G) ≤ n - d

Demostración: Primero, establecemos la cota alta. Sean u y v vértices de G para los

que d(u,v) = d, y dado u = v0,v1,…,vd = v, siendo u-v camino de longitud d. Sea W = V(G)

– {v1,…,vd}. Como la d(u,vi) = i para 1 ≤ i ≤ d y u є W, esto significa que W es un

conjunto resolutivo de cardinalidad n – d de G. Por lo tanto, dim(G) ≤ n – d.

Lo siguiente que consideramos es la cota menor. Dada B una base para G de

dimensión k. Entonces cada representación de un vértice de V(G) - B es un k-vector, todas

las coordenadas son enteros positivos no excediendo d, y todas n-k representaciones son

distintas, esto significa que dk n – k. De ahí, f (n,d) ≥ ≤ k = dim(G).

La desigualdad dada en la acotación superior del teorema puede ser estricta. Por

ejemplo, el árbol T1 de la Figura 1 tiene orden n = 8 y diámetro d = 4, pero B1 = {v1,v8} es

una base de T1 y además dim(T1) = 2 y n-d = 4. Por otro lado, el árbol T2 de la Figura 21

muestra que la cota superior en el teorema puede ser alcanzada ya que T2 además tiene

orden n = 8 y diámetro = 4, mientras que B2 = {w1, w6, w7, w8} es una base y además tiene

dim(T2) = 4.

La cota mínima en el teorema puede ser alcanzada por grafos de diámetro 2 o 3. Por

ejemplo, el grafo G1 de la Figura 22 tiene orden 6, diámetro 2, y dimensión f (6,2) = 2.

- 25 - P. Javier Díaz Hernández

Page 36: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Además, el grafo G2 de la Figura 22 tiene orden 11, diámetro 3, y dimensión f (11,3) = 2.

Los vértices de ambos grafos en la Figura 22 están etiquetados con sus representaciones.

Por otro lado, si d = dim(G) > 4 y dim(G) > 2, entonces la menor cota dada en el teorema 1

no puede ser alcanzada. Para ver esto, supongamos el contrario, esto es que existe un grafo

G de orden n, diámetro d, y dim(G) = k y que k + dk = n. Dada W una base de G, entonces

todas las k-tuplas de enteros positivos que no excedan de d deben aparecer como una

representación de algún vértice de G con respecto a W. Sin embargo, ya que el k-vector

(1,1,…) aparece, esto significa que d(w1,w2) ≤ 2. Para algún vértice v de G, r (v | W) =

(1,4,…). Así, d(v,w1) = 1, pero d(v,w2) = 4 1 + 2 d(v,w≥ ≥ 1) lo cual es imposible, por lo

que no existe tal grafo.

Si G = Pn, entonces por el teorema, dim(G) = 1 y cualquier vértice terminal de G

constituye una base. De hecho, como mostraremos después, los caminos son el único grafo

de dimensión 1.

Figura 21. Árboles ejemplo

- 26 - P. Javier Díaz Hernández

Page 37: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Figura 22. Grafos ejemplo

- Teorema 2:

Un grafo conexo G de orden n tiene dimensión 1 si y sólo si G = Pn.

Como vemos en las siguientes figuras capturadas de la aplicación, calculamos la

dimensión de un camino, dándonos como resultado 2 conjuntos de cardinalidad 1. Este

resultado es coherente con el teorema descrito:

Figura 23 Grafo camino Pn

- 27 - P. Javier Díaz Hernández

Page 38: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Figura 24 Dimensión métrica de un Pn ( P8 )

Demostración:

Ya hemos observado que si G = Pn, entonces dim(G) = 1. Por el contrario, se asume

que G es un grafo conexo con dim(G) = 1 y base W = {w}. Para cada vértice v de G, r ( v |

W ) = d(v,w) es un entero no negativo menor que n. Ya que las representaciones de los

vértices de G con respecto a W son distintas, existe un vértice u de G tal que d(u,w) = n - 1.

En consecuencia, el diámetro de G es n – 1, lo que implica que G = Pn.

Por otro lado, se considera G = Kn, n ≥ 2, y sea W una base para G. Si u ∉ W,

entonces todas las coordenadas de r ( v | W ) son 1. Por lo que, todos los conjuntos

resolutivos de G deben contener todos excepto a un vértice de G, así dim(Kn) = n – 1. Por el

teorema 1, si G es un grafo conexo que no es completo, entonces dim(G) ≤ n – 2. De ahí,

resulta el siguiente teorema:

- Teorema 3:

Un grafo conexo G de orden n 2 tiene dimensión n - 1 si y sólo si G = K≥ n

- 28 - P. Javier Díaz Hernández

Page 39: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Para ilustrarlo en la aplicación, hemos realizado el cálculo de la dimensión métrica al

grafo de la Figura 8, que es un grafo completo de orden 10, resultando que su dimensión

métrica es igual a 9, como muestra la siguiente figura:

Figura 25 Dimensión métrica de Kn (K10)

2.2.3. Grafos de orden n con dimensión métrica n – 2

Con el Teorema 3, hemos caracterizado aquellos grafos de orden n que tienen

dimensión n – 1, siendo estos los grafos completos. Ahora vamos a intentar identificar

aquellos grafos con dimensión n – 2.

- Teorema 4:

Sea G un grafo conexo de orden n ≥ 4. Entonces la dim(G) = n - 2 si y sólo si

G = Ks, t (s, t 1); G = K≥ s + K t (s≥1, t≥2), ó G = Ks + (K1 KU t) (s, t 1). ≥

La demostración de este teorema está incluida en [4]

- 29 - P. Javier Díaz Hernández

Page 40: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2.2.4. Acotación del orden

En este apartado vamos a estudiar la relación entre el orden, el diámetro y la

dimensión métrica de un grafo G.

A continuación, se expone un teorema que relaciona dichas propiedades y que será

nuestra base para llegar a demostrar la serie de acotaciones superiores e inferiores que

existen.

- Teorema 5[5,18,23]. Sea G un grafo de orden n, diámetro D y dimensión métrica β.

Se cumple que:

(i) β ≤ n − D

(ii) n ≤ Dβ + β

Del resultado anterior, se obtiene que el orden de un grafo esta acotado de la siguiente

forma:

β + D ≤ n ≤ β + Dβ (1)

Veremos si estas cotas se alcanzan en los siguientes puntos.

Sea GD,β el conjunto de los grafos de diámetro D y dimensión métrica β. Usamos la

siguiente notación:

A(β,D) =min{|G|, G є GD,β} B(β,D) = max{|G|, G є GD,β}

Por (1), sabemos que: β + D ≤ A(β,D) ≤ n ≤ B(β,D) ≤ β + Dβ.

- Observación 1. β + D = β + Dβ si y solo si β = 1 o D = 1.

Se sabe que β = 1 si y solo si el grafo es un grafo camino, y que D = 1 si y solo si el

grafo es un grafo completo. En ambos casos se alcanzan las cotas dadas.

- 30 - P. Javier Díaz Hernández

Page 41: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

En las siguientes secciones, profundizaremos en las cotas inferiores y superiores que

pueden ser alcanzadas.

2.2.4.1. Cota inferior

Nos centraremos en demostrar que se cumple una cota inferior. Se obtiene el siguiente

resultado:

- Teorema 6. Para todo β ≥ 1, D ≥ 1, se verifica A(β,D) = β + D

Demostración. Basta considerar el grafo Gr,s que se obtiene del camino de longitud r,

Pr, al substituir uno de los extremos por s hojas (ver Figura 26).

Se comprueba fácilmente que cualquier conjunto de s hojas es una base de Gr,s. Así

pues la dimensión métrica de Gr,s es s, su diámetro es r y su orden es r + s.

Figura 26. Grafo G6,4.

2.2.4.2. Cota superior

En cuanto a la cota superior los resultados obtenidos son los siguientes.

- Teorema 7. B(β,D) = β + Dβ si y sólo si D ≤ 3 ó β = 1.

La demostración de este teorema aparece desarrollada en [14]

- 31 - P. Javier Díaz Hernández

Page 42: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

- Teorema 8. Sea G un grafo de orden n, diámetro D ≥ 4 y dimensión métrica β.

Entonces B(β,D) ≤ 2 β⎟⎠⎞

⎜⎝⎛ +

342D

Para algunos valores de β y D se han obtenido resultados más precisos. Algunos de

ellos se presentan en la figura siguiente:

Figura 27 Tablas de valores

En la aplicación, utilizamos el Teorema 5 para los grafos que no son árboles, con

objeto de dar más información sobre la acotación de la dimensión métrica del grafo en

- 32 - P. Javier Díaz Hernández

Page 43: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

cuestión, y así orientar al usuario sobre el rango de la cardinalidad del conjunto mínimo

resolutivo:

Figura 28 Acotación de la dimensión métrica en la aplicación

En este caso, hemos aplicado el cálculo de la dimensión métrica para el grafo de la

Figura 15, y vemos que la acotación está entre 1 y 3, siendo β = 2.

Para los árboles nos hemos basado en el Teorema 9 para obtener una acotación

exacta, como veremos a continuación.

2.2.5. Dimensión métrica en árboles

En el Teorema 2, se observa que la dimensión métrica de un camino Pn (n 2) es 1.

Según el Teorema 4, la dimensión de un grafo estrella K

1, n−1 (n 3) de orden n es n − 2. En

realidad, para todo árbol T de orden n 3, 1

≥ ≤ dim(T) ≤ n − 2.

- 33 - P. Javier Díaz Hernández

Page 44: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

En esta sección, presentamos una fórmula para la dimensión métrica de árboles que

no son caminos. La fórmula para los árboles ha sido también establecida por Slater [20] y

Harary y Melter [13]

Figura 29. Ejemplo árbol para calcular su dimensión métrica

Previamente, definiremos algunos conceptos sobre árboles para la obtención de dicha

fórmula a demostrar:

- Un vértice de al menos grado 3 en un grafo G será denominado vértice major de G.

- Cualquier vértice hoja u de G es un vértice terminal de un vértice major v de G si

d (u, v) < d (u, w) para todos los otros vértices major w de G.

- El grado terminal ter(v) de un vértice major es el número de vértices terminales de v.

- Un vértice major v de G es un vértice exterior major de G si su grado terminal es

positivo.

- Se denota σ (G) a la suma de los grados terminales de los vértices major de G, y se

denomina ex(G) al número de vértices exterior major de G.

- 34 - P. Javier Díaz Hernández

Page 45: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

En la Figura 30, se muestra el cálculo en la aplicación de los vértices exterior major y

vértices major del árbol ejemplo de la Figura 29.

Figura 30. Cálculo de vértices Major y Exterior Major del árbol de la figura 29

En la siguiente figura, observamos un ejemplo de vértice exterior major. El vértice 6

es un vértice major porque cumple todas las condiciones:

- Tiene grado 4 que es mayor que 3 y su grado terminal es positivo, en este caso

ter(V6) = 3, ya que V12,V13 y V14 son terminales de V6.

Figura 31. Ejemplo vértice exterior major

- 35 - P. Javier Díaz Hernández

Page 46: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

En la Figura 32, se muestra un ejemplo de vértice major. El vértice 2 tiene grado 3 y

su grado terminal no es positivo, ya que ter(V2) = 0, así que cumple las condiciones para ser

un vértice major.

Figura 32. Ejemplo vértice major

- El siguiente lema, que se cumple para grafos generales, puede ser usado como

demostración de los siguientes 2 teoremas.

Lema 1. Si G es un grafo, entonces

dim(G) ≥ σ (G) – ex (G)

Demostración:

Sea W un conjunto resolutivo y sea v un vértice exterior major de G. Sea k = ter(v) y

dados u1,u2,…,uk que son vértices terminales de v. Por lo que la rama de G en la que v

contiene ui (1 ≤ i ≤ k) es un v-ui camino llamado Qi. Afirmamos que W contiene al menos

un vértice de cada uno de los caminos Qi-v (1 ≤ i ≤ k) con al menos una excepción.

Supongamos lo contrario, que 2 de esos caminos no contienen vértices de W, digamos Q1-v

- 36 - P. Javier Díaz Hernández

Page 47: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

y Q2-v. Sea u’1 y u’2 vértices adyacentes a v en Q1 y Q2, respectivamente. Ya que ni Q1-v ni

Q2-v contienen un vértice de W, esto significa que r ( u’1 | W ) = r ( u’2 | W ), que

contradice el hecho de que W es un conjunto resolutivo . Por lo que, como hemos afirmado,

W contiene al menos un vértice de cada uno de los caminos Qi-v (1 i k) con al menos

una excepción. En consecuencia, dim(G) ex(G).

≤ ≤

A continuación, se desarrolla la obtención de la fórmula con la que se puede

determinar de forma exacta la dimensión métrica de un árbol:

- Teorema 9. Si T es un árbol que no es camino, entonces

dim (T) = σ (G) – ex (G)

Demostración:

Vamos a verificar ahora la desigualdad contraria. Construimos un conjunto W de

vértices de T cogiendo todos los vértices terminales, excepto uno, de cada vértice exterior

major de T en W. Afirmamos que W es un conjunto resolutivo de T. Para ver esto, tenemos

u un vértice arbitrario de T. Consideramos 2 casos:

Caso1: Suponemos que hay algún vértice exterior major w de T y un vértice terminal

x de w tal que u está en el camino w-x de T. Consideramos ahora 2 subcasos:

Subcaso 1.1: Se supone que x є W. Sea v un vértice de T diferente de u. Si v esta en el

camino u-x de T, entonces d(v, x) < d(u, x); de lo contrario, d(u, x) < d(v, x). En cualquier

caso, r ( u | W ) ≠ r ( v | W ).

Subcaso 1.2: Se supone que x ∉ W. Sea v un vértice de T diferente de u. Si hay algún

vértice y en W tal que cualquier v esté en el camino u-y de T o u esté en le camino v-y,

entonces d(v, y) < d(u, y) o d(v, y) < d(v, y), respectivamente. En cualquier caso, r ( u | W )

≠ r ( v | W ). Por lo tanto, podemos asumir que todos los caminos entre v y un vértice de W

no contienen a u y que todos los caminos entre u y un vértice de W no contienen a v.

- 37 - P. Javier Díaz Hernández

Page 48: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Necesariamente, entonces, existe un vértice exterior major w’ y un vértice terminal x’ de w’

tal que está en el camino w’- x’ de T y v ≠ w’. Además, x’∉W y u ≠ w. Notamos que w ≠

w’, de lo contrario cualquier x o x’ pertenece a W.

Ya que el grado de ambos w y w’ es al menos 3, existe una rama B en w que no

contiene ni a w’ ni a x y hay una rama B’ en w’ que no contiene ni a w ni x’.

Necesariamente, ambos B y B’ deben contener a un vértice de W. Sean z y z’ vértices de W

pertenecientes a B y B’, respectivamente. Si d(u, z’) ≠ d(v, z’), entonces r ( u | W ) ≠ r ( v |

W ); así que podemos asumir que d(u, z’) = d(v, z’). En este caso, d(u, z) < d(v, z), implica

que r ( u | W ) ≠ r ( v | W ).

Caso 2: Suponemos que para cada vértice exterior major w de T y todos los vértices

terminales x de w, que u no está en el camino w-x de T. Entonces hay al menos 2 ramas de

u, B y B’, que cada una de las cuales contienen algún vértice exterior major de grado

terminal al menos 2. Por consiguiente, cada una B y B’ contienen un vértice de W. Sea z y

z’ vértices de W en B y B’, respectivamente. Siendo v un vértice de T distinto de u. Si v

pertenece a B, entonces el camino v-z’ de T contiene a u; así que d(u, z’) < d(v, z’) y r ( u |

W ) ≠ r ( v | W ). Si v no pertenece a B, entonces el camino v-z de T contiene a u. Por esto,

d(u, z) < d(v, z) y de ahí r ( u | W ) ≠ r ( v | W ).

Por consiguiente W es un conjunto resolutivo de T y dim(T)≤ σ (G) – ex (T).

Esto es a menudo interesante para saber si el valor de un parámetro gráfico es

afectado cuando se hace un pequeño cambio en un grafo. En este contexto, respondemos la

cuestión en el caso de la dimensión cuando una arista simple es añadida a un árbol.

Mostraremos, de hecho, que la dimensión puede incrementar al menos en 1 o disminuir en

al menos 2 y que todos los valores en este rango son alcanzables. Ya que la demostración

de este resultado es similar a la del teorema 5, solo damos un detallado resumen de ésta

demostración.

- 38 - P. Javier Díaz Hernández

Page 49: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

En la siguiente figura de la aplicación, se observa como el árbol de la Figura 29 tiene

dimensión métrica 5, ya que cumple dim (T) = σ (G) – ex (G), siendo σ (G) = 9 y ex(G) =

4 como se observa en la Figura 30:

Figura 33 Dimensión métrica del árbol de la figura 28

En el caso de la adicción de una arista nueva en un árbol, se introduce una nueva

propiedad:

- Teorema 10. Si T es un árbol de al menos orden 3 y e es una arista de T entonces

dim(T) − 2 ≤ dim(T + e) ≤ dim(T) + 1.

Demostración: Ya que σ (T + e) ≥ σ (T) – 2 y ex(T + e) ≤ ex(T) – 2, esto significa

que σ (T + e) – ex(T + e) ≥ σ (T) – ex (T) – 2 = dim(T) – 2.

Por el Lema 1, dim(T + e) ≥ σ (T + e) – ex (T + e). De esto concluimos que dim (T +

e) dim (T) – 2 . ≥

Esto nos demuestra entonces que dim (T + e) ≤ dim(T) + 1. Dado W un conjunto de

vértices de T + e que contiene para cada vértice exterior major v de T + e, todos los

vértices terminales v con la excepción de uno. Dado C el único ciclo de T + e.

Consideramos 4 casos.

- 39 - P. Javier Díaz Hernández

Page 50: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Caso 1: C contiene al menos 3 vértices major, que cada uno tiene una rama que

contiene un vértice de W. En este caso W es un conjunto resolutivo de T + e y por eso

dim(T + e) |W| dim(T). ≤ ≤

Caso 2: C contiene exactamente 2 vértices major v y w, cada uno de ellos tiene una

rama que contiene un vértice de W. Dado u un vértice de C distinto de v y w. En este

caso, W {u} es un conjunto resolutivo de T + e, y de ahí dim(T + e) |W| + 1

dim(T) +1.

U ≤ ≤

Caso 3: C contiene exactamente un vértice major v que tiene una rama que contiene

un vértice de W. Dado H una rama de T + e que contiene C. Excepto posiblemente

para v, todos los vértices de H tienen al menos grado 3 en T + e. Ya que al menos un

vértice de H tiene un grado terminal en T mayor que el grado terminal en T + e, esto

significa que σ (T) – ex (T) = |W| + 1. Dado W’ un conjunto obtenido al añadir a W

2 vértices de C que son distintos de v. Entonces W’ es un conjunto resolutivo de T + e

y dim(T + e) |W’| = |W| + 2 σ (G) – ex (G) + 1 = dim(T) + 1

Caso 4: No hay un vértice major perteneciente a C que tiene una rama que contenga

un vértice de W. De este modo W = Ø. En este caso, T es una oruga con máximo

grado de más de 3. Si T no es un camino, entonces dim(T) = 2 y alguno de los 3

vértices de C constituyen un conjunto resolutivo de T + e. Por lo que dim(T + e)

dim(T) + 1. Por otro lado, si T es un camino, entonces dim(T) = 1. Dado W’ un

conjunto que consiste de 2 vértices hoja de T. Entonces W’ es un conjunto resolutivo

de T + e para todas las posibles elecciones de e y por lo que dim(T + e) ≤ dim(T) + 1.

Según el teorema 10, si T es un árbol de orden al menos 3 y e es una arista de T,

entonces dim(T + e) = dim(T) + k para algunos k є {-2,-1,0,1}. Mostramos que para

cada k, existe un árbol T y una arista e de T tal que dim(T + e) = dim(T) + k.

- 40 - P. Javier Díaz Hernández

Page 51: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

(1) k = -2. Sea T el árbol obtenido por subdivisión de la arista central de una doble

estrella con 2 vértices major u y v. Dado u1 un vértice hoja adyacente a u y v1 un

vértice hoja adyacente a v. Entonces dim(T + u1v1) = dim(T) – 2

(2) k = -1 Sea T el árbol definido en (1). Entonces dim(T + uv1) = dim(T) – 1

(3) k = 0 Sea T una estrella que contiene vértices hoja x e y. Entonces dim(T + xy) =

dim(T)

(4) k = 1. Sea T un camino que contiene vértices no adyacentes w y z. Entonces

dim(T + wz) = dim(T) + 1.

Cuando una arista es añadida a un árbol el resultado es, por supuesto, un grafo

unicíclico G (un grafo conexo que contiene exactamente un ciclo). Usando diferentes

parámetros y un enfoque diferente, Poisson y Zhang [19] establecieron cotas

superiores e inferiores para dim(G) y mostraron que un rango de cuatro valores es

posible, lo cual es coherente con el Teorema 10.

Con el uso de la aplicación, introducimos una serie de resultados experimentales

sobre el anterior teorema, intentando determinar un patrón del aumento o disminución

de la dimensión métrica al incluir una nueva arista en un árbol.

2.2.6. Dimensión métrica del producto H x K2

En este apartado se explica, para cada grafo conexo H, que la dimensión métrica del

producto cartesiano de H × K2 está entre la dim (H) y dim (H) + 1; donde el producto

cartesiano de 2 grafos G y H es definido como el grafo con el conjunto de vértices V(G) ×

V(H) y con el conjunto de aristas { (u , v)(x , y) | u = x ∧ vy є E(H) ó v = y ux є E(G) }.

- 41 - P. Javier Díaz Hernández

Page 52: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Para ello, utilizamos el siguiente teorema:

- Teorema 11: Para todo grafo conectado H, dim(H) ≤ dim(H × K2) ≤ dim(H) + 1

La extensa demostración del teorema 11 está incluida en [6].

En las siguientes figuras, mostramos la demostración práctica de este teorema en la

aplicación. Utilizamos como grafo inicial el de la Figura 34, que tiene como dimensión β =

2, y tras realizar el producto cartesiano se obtiene un grafo resultante con dimensión β = 3:

Figura 34. H x K2 siendo H el grafo de la Figura 15

- 42 - P. Javier Díaz Hernández

Page 53: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Figura 35. β ( H x K2 ) = 3 y β ( H ) = 2

2.3 DIMENSIÓN MÉTRICA TOLERANTE

2.3.1. Definición

Dado un conjunto resolutivo S de G se dice que tolera un fallo o que es 1-tolerante si,

para cada v de S, S \ {v} es también un conjunto resolutivo de G. Así, denominamos

dimensión métrica 1-tolerante de G al cardinal mínimo de estos conjuntos.

En los siguientes apartados, se demostrará que para cualquier grafo la dimensión

métrica 1-tolerante está acotada por una función de la dimensión métrica.

La denotación que utilizaremos para designar la dimensión métrica 1-tolerante de G

será ß'(G). Como ya ocurría con los conjuntos resolutivos que los designábamos como

bases, para un conjunto resolutivo 1-tolerante de orden ß'(G) lo llamaremos base métrica 1-

tolerante.

- 43 - P. Javier Díaz Hernández

Page 54: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

De forma similar a la dimensión métrica, la acotación de la dimensión métrica 1-

tolerante para árboles es exacta, pero en el caso de los grafos esta acotación es mucho

menos aproximada que para la dimensión métrica.

2.3.2. Conjuntos resolutivos 1 – tolerantes para árboles

Iniciamos esta sección con un ejemplo, mediante el que introduciremos algunos

conceptos que son utilizados en los teoremas que veremos posteriormente.

Consideramos el árbol T′ de la Figura 36. Es fácil comprobar que β(T′) = 4 y que S =

(5, 10, 12, 13) es una base métrica. Analizando las distancias de los vértices 12, 13 y 14 a

los diferentes vértices de S obtenemos:

r (13/S) = [5, 3, 2, 0]

r (14/ S) = [5, 3, 2, 2]

Observamos que r (13) y r (14) sólo difieren en la cuarta componente, esto es, que el

único vértice de S que resuelve 13 a 14 es el vértice 13.

- Llamaremos grado de un vértice v a deg(v). A los vértices con deg(v) = 1 los

llamaremos hojas.

- 44 - P. Javier Díaz Hernández

Page 55: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

Figura 36. Ejemplo árbol para calcular la dimensión métrica 1 - tolerante

Figura 37. La dimensión métrica del árbol ejemplo es β ( T ) = 4

- Una rama de un árbol T en un vértice v es el subgrafo inducido por v y una de las

componentes de T \ {v}. Se observa que cada v є V (T) tiene deg(v) ramas. Si deg(v) ≥ 3, a

toda rama B de T en v que es un camino la llamaremos rama-camino. El vértice v es el

tallo de la rama-camino B. El árbol T′ de la Figura 36 tiene 8 rama-caminos y cuatro

tallos. Denotamos L1 ... Lk a las componentes del subárbol inducido por el conjunto de

- 45 - P. Javier Díaz Hernández

Page 56: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

todas las rama-caminos. Así, k es el número de tallos, y cada Li se puede obtener por

subdivisión de las aristas a partir de una estrella. Para T′ se tiene k = 4 y subdivisiones: dos

K1,2 , una K1,1 y una K1,3.

Partiendo de estos conceptos previos, a continuación se exponen unos teoremas para

el cálculo de la dimensión métrica 1-tolerante para árboles:

- Teorema 12. Sea T un árbol de orden n ≥ 3. Un conjunto de vértices S es un

conjunto resolutivo si y sólo si para cada vértice u de T hay un vértice de S en por lo menos

deg(u) − 1 de las deg(u) componentes de T \ {u}.

- Teorema 13. Sea T un árbol y sea L su conjunto de hojas, con |L| ≥ 3. Sea L1, . . .

,Lk las componentes del subárbol inducido por el conjunto de todas las rama-caminos y,

para cada i, sea ei el número de rama-caminos de T que hay en Li. Entonces β(T) = |L| − k,

y S es una base métrica si y sólo si S consta de un vértice colocado en exactamente ei−1

rama-caminos de Li, para cada Li, 1 ≤ i ≤ k.

- Teorema 14. Sea T un árbol y sea L su conjunto de hojas, con |L| ≥ 3. Sea L1, . . .

,Lk las componentes del subárbol inducido por el conjunto de todos los rama-caminos, y sea

ei el número de rama-caminos de T que están en Li. Sea E1 el conjunto de hojas

correspondiente a los rama-caminos donde ei = 1. Entonces β′(T) = |L \ E1| y L \ E1 es una

base métrica 1-tolerante.

En particular, para el árbol T′ de la Figura 36, β′(T′) = 7, ya que L = 8 y E1 = 1

porque la rama-camino de los vértices 2, 8 y 9 es ei = 1.

En la siguiente figura, se muestra el cálculo de la dimensión métrica 1-tolerante

llevada a cabo en la aplicación. Basándonos en el Teorema 14, podemos mostrar el valor de

- 46 - P. Javier Díaz Hernández

Page 57: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

β′ (en el recuadro “Tamaño” de la figura), antes incluso de realizar el cálculo para mostrar

los conjuntos resolutivos 1-tolerantes.

Figura 38. Conjuntos resolutivos 1-tolerantes del árbol ejemplo

En la Figura 39, vemos un ejemplo de conjunto resolutivo 1-tolerante de los

obtenidos en la figura anterior.

Figura 39. La dimensión métrica 1-tolerante es β’ ( T ) = 7

- 47 - P. Javier Díaz Hernández

Page 58: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2.3.3. Relación entre β’ (G) y β (G)

La dimensión métrica está acotada por una función de la dimensión métrica

(independientemente del grafo). Denotamos por N(v) y N[v] el conjunto, abierto y cerrado

respectivamente, de vecinos del vértice v.

- Lema 2. Sea S un conjunto resolutivo de G. Para cada vértice v є S, sea

T(v) := { x є V (G) : N(v) N(x) }. Entonces, ⊆

S′ = Uv є S ( N[v] T(v) ) es un conjunto resolutivo 1-tolerante de G. U

- Lema 3. Sea S un conjunto resolutivo de un grafo G. Entonces para cada vértice v �

S, el número de vértices de G a distancia a lo sumo k de v es a lo sumo 1 + k(2k + 1)|S|−1.

- Teorema 15. La dimensión métrica 1-tolerante está acotada por una función de la

dimensión métrica (independientemente del grafo). En particular,

β′(G) ≤ β(G)(1 + 2 5• β(G)−1) para todo grafo G.

- 48 - P. Javier Díaz Hernández

Page 59: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

2.4 RESULTADOS EXPERIMENTALES

En esta sección se ha intentado, basándonos en el Teorema 10, encontrar algún patrón

en la variación de la dimensión métrica de un árbol al incluir una nueva arista. Se han

hecho numerosas pruebas con la aplicación, obteniendo lo siguiente:

CASO 1 (EM-H): Inclusión de una arista entre un vértice exterior major y un vértice

hoja.

CASO 2 (H-H): Inclusión de una arista entre dos vértices hoja.

CASO 3 (M-H): Inclusión de una arista entre un vértice major y un vértice hoja.

CASO 4 (EM-EM): Inclusión de una arista entre dos vértices exterior major.

CASO 5 (M-EM): Inclusión de una arista entre un vértice major y uno exterior major.

CASO 6 (M-M): Inclusión de una arista entre dos vértices major.

- En los casos 4 (EM-EM), 5 (M-EM) y 6(M-M) no hay cambio en la dimensión

métrica. El denominador común de todos estos casos es que ninguno de los extremos de la

arista añadida es un vértice hoja.

- La inclusión de una arista entre dos vértices hojas (caso 2) con el mismo padre no

afecta a la dimensión métrica.

- El caso 2 (H-H) con vértices con distinto padre, es el único caso en que se ha

producido un decremento de 2 en la dimensión métrica.

- En los casos 1 (EM-H), 2(H-H) y 3 (M-H) se han podido crear árboles ejemplos en

los que ha habido un decremento de 1 en la dimensión métrica. El denominador común de

todos estos casos, es que al menos uno de los vértices que unen la arista añadida, es un

vértice hoja.

- 49 - P. Javier Díaz Hernández

Page 60: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Teoría de grafos

- Aparte de las conclusiones anteriores, no se han encontrado patrones para

diferenciar cuándo incrementa o decrementa la dimensión métrica.

- Se ha experimentado con posibles simetrías en ramas, distintos tipos de vértices y

otras consideraciones morfológicas del grafo, pero en todas las pruebas siempre había algún

caso que invalidaba la teoría, por lo que no se ha podido extraer ninguna otra correlación.

- 50 - P. Javier Díaz Hernández

Page 61: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3. DISEÑO

3.1 INTRODUCCIÓN

Para el desarrollo de la aplicación se ha utilizado el lenguaje de programación Java.

Java es un lenguaje de programación orientado a objetos desarrollado por Sun

Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su

sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de

bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros

o memoria.

Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la

compilación en código máquina nativo también es posible. En el tiempo de ejecución, el

bytecode es normalmente interpretado o compilado a código nativo para la ejecución,

aunque la ejecución directa por hardware del bytecode por un procesador Java también es

posible.

La implementación original y de referencia del compilador, la máquina virtual y las

librerías de clases de Java fueron desarrollados por Sun Microsystems en 1995. Desde

entonces, Sun ha controlado las especificaciones, el desarrollo y evolución del lenguaje a

través del Java Community Process, si bien otros han desarrollado también

implementaciones alternativas de estas tecnologías de Sun, algunas incluso bajo licencias

de software libre.

Entre noviembre de 2006 y mayo de 2007, Sun Microsystems liberó la mayor parte de

sus tecnologías Java bajo la licencia GNU GPL, de acuerdo con las especificaciones del

Java Community Process, de tal forma que prácticamente todo el Java de Sun es ahora

software libre (aunque la biblioteca de clases de Sun que se requiere para ejecutar los

programas Java todavía no es software libre).

- 51 - P. Javier Díaz Hernández

Page 62: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Gracias a su rendimiento en aplicaciones de escritorio hoy en día existen multitud de

aplicaciones gráficas de usuario basadas en Java. El entorno de ejecución Java (JRE) se ha

convertido en un componente habitual en los PCs de usuario de los sistemas operativos más

usados en el mundo. Además, muchas aplicaciones Java lo incluyen dentro del propio

paquete de la aplicación de modo que se ejecuten en cualquier PC.

Son algunas razones por la elección de su utilización en la realización de la

aplicación. Más concretamente se ha utilizado el JDK 6.0. También se eligió este lenguaje

para el aprendizaje del mismo por el autor, ya que es una ventaja su conocimiento por su

gran extensión en la actualidad.

En las primeras versiones de la plataforma Java existían importantes limitaciones en

las APIs de desarrollo gráfico (AWT). Desde la aparición de la librería Swing la situación

mejoró substancialmente y posteriormente con la aparición de librerías como SWT hacen

que el desarrollo de aplicaciones de escritorio complejas y con gran dinamismo, usabilidad,

etc. sea relativamente sencillo. En la aplicación se ha utilizado SWING para realizar su

interfaz gráfica.

Para modelar el sistema vamos a utilizar el lenguaje de modelado UML, ya que es el

más utilizado actualmente para el desarrollo de software.

Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modeling

Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en

la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje

gráfico para visualizar, especificar, construir y documentar un sistema de software. UML

ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos

conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos

como expresiones de lenguajes de programación, esquemas de bases de datos y

componentes de software reutilizables.

- 52 - P. Javier Díaz Hernández

Page 63: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Es importante resaltar que UML es un "lenguaje" para especificar y no para describir

métodos o procesos. Se utiliza para definir un sistema de software, para detallar los

artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en

el que está descrito el modelo. Se puede aplicar en una gran variedad de formas para dar

soporte a una metodología de desarrollo de software (tal como el Proceso Unificado

Racional o RUP), pero no especifica en sí mismo qué metodología o proceso usar.

UML no puede compararse con la programación estructurada, pues UML significa

(Lengua de Modelación Unificada), no es programación, solo se diagrama la realidad de

una utilización en un requerimiento. Mientras que, programación estructurada, es una forma

de programar como lo es la orientación a objetos, sin embargo, la orientación a objetos

viene siendo un complemento perfecto de UML, pero no por eso se toma UML sólo para

lenguajes orientados a objetos

UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de

las entidades representadas.

3.2 DISEÑO DE ALTO NIVEL

3.2.1. Definición de los límites del sistema

En este apartado delimitaremos las funcionalidades que puede realizar la aplicación.

La aplicación está desarrollada en Java, como ya indicamos en el punto anterior.

Permite crear, editar grafos y árboles de distintos tipos, calcular su dimensión métrica,

calcular su dimensión métrica 1-tolerante y sus respectivos conjuntos resolutivos. .

El primer paso en la aplicación será la creación de un grafo y su posterior edición

mediante la generación automática (grafos predefinidos y aleatorios) o manual de grafos. Si

se elige la manual se tendrá que ir añadiendo vértices y aristas según el usuario lo crea

conveniente, si se elige la opción automática el usuario introducirá una serie de parámetros

- 53 - P. Javier Díaz Hernández

Page 64: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

y la aplicación introducirá los vértices y aristas necesarios para cumplir con esos criterios.

Ya que para el cálculo de la dimensión métrica no es necesario, los grafos no son dirigidos

y las aristas tienen como único peso la unidad. También se puede generar el grafo

cargándolo desde fichero, siendo éste, por supuesto, previamente grabado por la aplicación.

Una vez que el grafo haya sido creado se podrá proceder a realizar el cálculo de su matriz

de distancias, al cálculo de su dimensión métrica y sus conjuntos resolutivos, al cálculo de

su dimensión 1-tolerante y sus respectivos conjuntos resolutivos 1-tolerantes, al cálculo de

sus gemelos adyacentes, etc… Todas éstas posibilidades vendrán desglosadas en la sección

manual de usuario.

La aplicación permite la elección por el usuario del color de las aristas, los iconos que

representen los vértices y la posibilidad de almacenar en un archivo Excel los resultados del

cálculo de la dimensión métrica sobre el grafo elegido.

Otra opción que dispone la aplicación es la posibilidad de aumentar o disminuir el zoom,

para ver el grafo desde otras perspectivas.

La aplicación es multi-idioma, aunque en esta versión sólo estará disponible el idioma

español e inglés.

Todas estas funcionalidades podrán ser seleccionadas por el usuario mediante el menú de la

aplicación y la barra de herramientas. Además en la parte superior de la aplicación se

mostrará información sobre las características del grafo y en los modos que ha seleccionado

el usuario.

Por último hacer notar que hay una sección ayuda para que el usuario pueda consultar todas

las funcionalidades que ofrece la aplicación.

- 54 - P. Javier Díaz Hernández

Page 65: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.2.2. DIAGRAMAS DE CASOS DE USO

Los diagramas de casos de uso sirven para especificar la comunicación y el

comportamiento de un sistema mediante su interacción con los usuarios y/u otros sistemas.

O lo que es igual, un diagrama que muestra la relación entre los actores y los casos de uso

en un sistema. Una relación es una conexión entre los elementos del modelo, por ejemplo la

especialización y la generalización son relaciones. Los diagramas de casos de uso se

utilizan para ilustrar los requerimientos del sistema al mostrar como reacciona una

respuesta a eventos que se producen en el mismo.

Un diagrama de casos de uso es una especie de diagrama de comportamiento.

A continuación mostramos el diagrama de casos de uso de la aplicación. Lo hemos

dividido en 3 diagramas pues es necesario para una legibilidad óptima.

- 55 - P. Javier Díaz Hernández

Page 66: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Figura 40. Primer diagrama de casos de uso

- 56 - P. Javier Díaz Hernández

Page 67: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Figura 41. Segundo diagrama de casos de uso

- 57 - P. Javier Díaz Hernández

Page 68: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Figura 42. Tercer diagrama de casos de uso

- 58 - P. Javier Díaz Hernández

Page 69: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.2.3. DESCRIPCIÓN DE LOS ACTORES

En nuestro sistema sólo habrá un actor, que es el usuario de la aplicación, y éste será

el que pueda ejecutar todas las funcionalidades que proporciona la aplicación.

3.2.4. CASOS DE USO EN FORMATO DE ALTO NIVEL

En esta sección, se detallan los casos de uso en formato de alto nivel.

CASO DE USO Crear Grafo Manual

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear un nuevo grafo

manualmente. El sistema limpia la zona de edición

de grafos y crea un nuevo grafo vacío, esto es, sin

aristas ni vértices.

- 59 - P. Javier Díaz Hernández

Page 70: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Crear Grafo Aleatorio

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear un nuevo grafo

aleatorio de forma automática. El sistema pide al

usuario que introduzca el número de vértices y la

probabilidad de que exista arista entre cada uno de

los vértices. Se borra el grafo anterior existente y se

muestra el grafo aleatorio seleccionado.

CASO DE USO Crear Árbol Manual

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear un nuevo árbol

manualmente. El sistema limpia la zona de edición

de grafos y crea un nuevo árbol vacío, esto es, sin

aristas ni vértices.

- 60 - P. Javier Díaz Hernández

Page 71: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Crear Árbol Auto

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear un nuevo árbol

de forma automática. El sistema pide al usuario que

introduzca el número de vértices y la agrupación de

hijos por vértice. Se borra el grafo anterior existente

y se muestra el árbol seleccionado.

CASO DE USO Crear Grafo Aleatorio

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear un nuevo grafo

aleatorio de forma automática. El sistema pide al

usuario que introduzca el número de vértices y la

probabilidad de que exista arista entre cada uno de

los vértices. Se borra el grafo anterior existente y se

muestra el grafo aleatorio seleccionado.

- 61 - P. Javier Díaz Hernández

Page 72: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Cargar Grafo Fichero

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema cargar grafo desde

archivo. El sistema pide al usuario que introduzca la

ruta del fichero a cargar. El Sistema lee dicho

fichero e interpreta su contenido. Se borra el grafo

anterior existente y se muestra el grafo.

CASO DE USO Guardar Grafo Fichero

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema guardar un grafo en un

fichero. El sistema pide al usuario que introduzca

la ruta del fichero donde quiere guardar el grafo. El

Sistema guarda el grafo en un formato entendible

por la aplicación.

- 62 - P. Javier Díaz Hernández

Page 73: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Salir Aplicación

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN El usuario solicita al cerrar la aplicación. El sistema

cierra la aplicación.

CASO DE USO Añadir Vértice

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario añade un nuevo vértice al hacer doble-

click en el panel de edición. El sistema inserta el

vértice al grafo en edición y muestra el nuevo

vértice en el punto señalado por el doble-click

hecho por el usuario.

- 63 - P. Javier Díaz Hernández

Page 74: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Mover Vértice

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema mover un vértice a una

coordenada. El Sistema pide al usuario que

introduzca la coordenada del vértice. El Sistema

cambia las coordenadas de ese vértice en el grafo y

se muestra el vértice en su nueva posición.

CASO DE USO Arrastrar Vértice

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema mover un vértice

clikeando sobre él y arrastrándolo hasta la

ubicación deseada en el panel de edición. El

Sistema cambia las coordenadas de ese vértice en el

grafo y se muestra el vértice en su nueva posición.

- 64 - P. Javier Díaz Hernández

Page 75: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Añadir Arista

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema añadir una arista entre

2 vértices, haciendo click en el vértice origen y

seguidamente otro click en el vértice destino. El

Sistema añade la arista seleccionada por el usuario

al grafo. El Sistema cambia el icono del vértice

(vértice seleccionado) tras el primer click y muestra

la arista nueva tras el segundo click.

CASO DE USO Borrar Arista

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema borrar una arista

haciendo click con el botón derecho del ratón sobre

ella. El Sistema pide confirmación al usuario y tras

su reafirmación elimina la arista del grafo. Pinta el

grafo sin la arista seleccionada.

- 65 - P. Javier Díaz Hernández

Page 76: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Borrar Vértice

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema borrar un vértice

haciendo click con el botón derecho del ratón sobre

él. El Sistema pide confirmación al usuario y tras su

reafirmación elimina dicho vértice del grafo. Pinta

el grafo sin el vértice seleccionado..

CASO DE USO Dimensión Métrica Grafo

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita el cálculo de la dimensión

métrica del grafo del panel de edición. La

aplicación ejecuta el cálculo y muestra los

conjuntos resolutivos y sus vectores de distancias

respectivos.

- 66 - P. Javier Díaz Hernández

Page 77: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Dimensión 1-Tolerante Grafo

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita el cálculo de la dimensión

métrica 1-tolerante del grafo del panel de edición.

La aplicación ejecuta el cálculo y muestra los

conjuntos resolutivos 1-tolerantes y sus vectores de

distancias respectivos.

CASO DE USO Dimensión Métrica Árbol

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita el cálculo de la dimensión

métrica del árbol del panel de edición. La

aplicación ejecuta el cálculo y muestra los

conjuntos resolutivos y sus vectores de distancias

respectivos.

- 67 - P. Javier Díaz Hernández

Page 78: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Dimensión 1-Tolerante Árbol

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita el cálculo de la dimensión

métrica 1-tolerante del árbol del panel de edición.

La aplicación ejecuta el cálculo y muestra los

conjuntos resolutivos 1-tolerantes y sus vectores de

distancias respectivos.

CASO DE USO Matriz Distancias

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al la matriz de distancias del

grafo en el panel de edición. El Sistema calcula la

matriz de distancias y la muestra en un diálogo,

junto con el diámetro del grafo..

- 68 - P. Javier Díaz Hernández

Page 79: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Crear Grafo Completo

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear un grafo

completo. El sistema pide al usuario que introduzca

el número de vértices del grafo. Se borra el grafo

anterior existente y se muestra el grafo completo

seleccionado.

CASO DE USO Crear Grafo Ciclo

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear un grafo ciclo. El

sistema pide al usuario que introduzca el número de

vértices del grafo. Se borra el grafo anterior

existente y se muestra el grafo ciclo seleccionado.

- 69 - P. Javier Díaz Hernández

Page 80: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Crear Grafo Rueda

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear un grafo rueda.

El sistema pide al usuario que introduzca el número

de vértices del grafo. Se borra el grafo anterior

existente y se muestra el grafo rueda seleccionado.

CASO DE USO Crear Grafo Producto Cartesiano

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear el grafo

resultado del producto cartesiano H x K2 del grafo

H existente en el panel de edición. El sistema borra

el grafo anterior existente y se muestra el grafo

resultante del producto cartesiano del grafo anterior.

- 70 - P. Javier Díaz Hernández

Page 81: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Crear Grafo Petersen

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear un grafo de

Petersen. El sistema pide al usuario que introduzca

el número de vértices del grafo y el radio del ciclo

de Petersen. El radio del ciclo debe de ser menor o

igual el número de vértices menos uno dividido por

dos. Se borra el grafo anterior existente y se

muestra el grafo de Petersen seleccionado.

CASO DE USO Crear Árbol Estrella

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema crear un árbol estrella.

El sistema pide al usuario que introduzca el número

de vértices del árbol. Se borra el grafo anterior

existente y se muestra el árbol estrella seleccionado.

- 71 - P. Javier Díaz Hernández

Page 82: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Zoom Grafo

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema hacer zoom del grafo

seleccionando un aumento o disminución en el

combo selector indicado. El sistema aumenta o

disminuye la escala del panel de edición

dependiendo de la opción seleccionada por el

usuario.

CASO DE USO Cambio Idioma

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema hacer un cambio de

idioma de la aplicación clickeando en el idioma

deseado. El sistema traduce todos los literales de la

aplicación al idioma seleccionado.

- 72 - P. Javier Díaz Hernández

Page 83: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Ayuda Contenidos

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema el Índice de

contenidos de la aplicación de la sección Ayuda. El

sistema muestra en un diálogo todos los contenidos

de la ayuda.

CASO DE USO Cambio Icono Vértice

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema cambiar el icono que

representa un vértice del grafo. El sistema le pide la

ruta del icono que se quiere mostrar en lugar del

anterior. Guarda la ruta del nuevo icono y muestra

el grafo con el nuevo icono como vértice.

- 73 - P. Javier Díaz Hernández

Page 84: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Cambio Icono Vértice Selección

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema cambiar el icono que

representa un vértice seleccionado del grafo. El

sistema le pide la ruta del icono que se quiere

mostrar en lugar del anterior. Guarda la ruta del

nuevo icono y muestra el grafo con el nuevo icono

como vértice seleccionado.

CASO DE USO Cambio Icono Vértice Hoja

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema cambiar el icono que

representa un vértice hoja del grafo. El sistema le

pide la ruta del icono que se quiere mostrar en lugar

del anterior. Guarda la ruta del nuevo icono y

muestra el grafo con el nuevo icono como vértice

hoja.

- 74 - P. Javier Díaz Hernández

Page 85: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Cambio Icono Vértice Resolutivo

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema cambiar el icono que

representa un vértice resolutivo del grafo. El

sistema le pide la ruta del icono que se quiere

mostrar en lugar del anterior. Guarda la ruta del

nuevo icono y muestra el grafo con el nuevo icono

como vértice resolutivo.

CASO DE USO Cambio Color Arista

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema cambiar el color de las

aristas del grafo, haciendo click en una paleta de

colores en uno de ellos . El sistema guarda el nuevo

color de la arista y muestra el grafo con el nuevo

color de las aristas.

- 75 - P. Javier Díaz Hernández

Page 86: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Cambio Color Arista Selección

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema cambiar el color de la

arista seleccionada del grafo, haciendo click en una

paleta de colores en uno de ellos. El sistema guarda

el nuevo color de la arista seleccionada y muestra el

grafo con el nuevo color de la arista seleccionada.

CASO DE USO Grabar Excel Resultado

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema grabar el resultado de

los cálculos de la dimensión métrica de los grafos,

clickeando en el check habilitado para ello. El

sistema le pide la ruta donde el fichero Excel se

grabará. Se graba la ruta para que posteriormente

cuando se lance un cálculo de dimensión métrica

poder crear el fichero resultado en la ruta adecuada.

- 76 - P. Javier Díaz Hernández

Page 87: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Cambio Modo Grafo

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema cambiar de modo

Grafo a modo Árbol o viceversa. El sistema

comprueba si es viable el cambio si el de grafo a

árbol y si lo es graba el modo seleccionado.

CASO DE USO Cambio Modo Escritura

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema cambiar de modo

Normal a modo Sólo lectura o viceversa. El

sistema graba el modo seleccionado y si el modo

seleccionado es de sólo lectura, el panel de edición

queda deshabilitado para introducir grafos o si el

modo es normal, se vuelve a habilitar el panel para

poder introducir grafos.

- 77 - P. Javier Díaz Hernández

Page 88: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CASO DE USO Obtener Gemelos Adyacentes

ACTORES Usuario

TIPO Primario

DESCRIPCIÓN

El usuario solicita al sistema el cálculo de los

gemelos adyacentes del grafo en el panel de

edición. El sistema muestra los vértices gemelos

adyacentes y los no adyacentes.

3.2.5. CASOS DE USO EN FORMATO EXTENDIDO

En esta sección expondremos los casos de uso con un nivel de detalle mayor,

especificando cuáles son las interacciones habituales entre los actores de la aplicación

El formato que utilizaremos, emplea los siguientes campos:

o Caso de Uso: Nombre del caso de uso.

o Objetivo: Explicación del caso del objetivo del caso de uso

o Nivel: Primario o subsunción.

o Actor principal: En este caso el Usuario

o Precondiciones: Condiciones que deben cumplirse antes de comenzar el

escenario principal de éxito.

- 78 - P. Javier Díaz Hernández

Page 89: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

o Escenario principal de éxito: Pasos detallados de las interacciones

entre actores.

o Garantías de éxito: Qué debe cumplirse cuando el caso de uso se acaba

con éxito.

o Garantías de fracaso: Qué debe cumplirse cuando el caso de uso se

abandona.

o Puntos de extensión: Relaciones con otros casos de uso

o Prioridad: Qué importantita tiene el caso de uso

o Frecuencia: Ocurrencia del caso

CREAR GRAFO MANUAL:

- Caso de Uso: Crear Grafo Manual

- Objetivo: Crear un nuevo grafo manualmente.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de crear grafo nuevo.

2. El Sistema limpia el panel de edición y se pone en modo grafo.

3. El Sistema crea un grafo nuevo vacío.

- 79 - P. Javier Díaz Hernández

Page 90: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Garantías de éxito: Se habrá creado el nuevo grafo vacío, el panel de edición

estará en blanco y estará en modo grafo.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CREAR GRAFO ALEATORIO:

- Caso de Uso: Crear Grafo Aleatorio

- Objetivo: Crear un nuevo grafo aleatorio de forma automática.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de crear nuevo grafo aleatorio.

2. El Sistema pide el número de vértices que tendrá el grafo y la probabilidad de

que exista arista entre cada uno de los vértices.

3. El Usuario introduce el número de vértices y la probabilidad.

4. El Sistema limpia el panel de edición y se pone en modo grafo.

5. El Sistema crea un nuevo grafo con el número de vértices introducido y con

aristas que han sido insertadas con la probabilidad indicada por el Usuario

- 80 - P. Javier Díaz Hernández

Page 91: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

6. El Sistema muestra en el panel de edición el grafo creado.

- Garantías de éxito: Se habrá creado el nuevo grafo aleatorio, en el panel de

edición se mostrará el grafo y estará en modo grafo.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CREAR ÁRBOL MANUAL:

- Caso de Uso: Crear Árbol Manual

- Objetivo: Crear un nuevo árbol de forma manual.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de crear nuevo árbol manual.

2. El Sistema limpia el panel de edición.

3. El Sistema crea un nuevo árbol vacío y pone el panel en modo Árbol.

4. El Sistema muestra en el panel de edición el árbol vacío creado.

- Garantías de éxito: Se habrá creado el nuevo árbol vacío, en el panel de edición

se mostrará el árbol vacío y el modo árbol.

- 81 - P. Javier Díaz Hernández

Page 92: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CREAR ÁRBOL AUTOMATICAMENTE:

- Caso de Uso: Crear Grafo Auto

- Objetivo: Crear un nuevo árbol de forma automática.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de crear nuevo árbol automáticamente.

2. El Sistema pide el número de vértices que tendrá el árbol y la agrupación de

hijos por vértice (excepto la raíz y el último nivel del árbol ).

3. El Usuario introduce el número de vértices y la agrupación de hijos por

vértice.

4. El Sistema limpia el panel de edición y se pone en modo árbol.

5. El Sistema crea un árbol con los parámetros introducidos por el Usuario.

6. El Sistema muestra en el panel de edición el árbol creado.

- 82 - P. Javier Díaz Hernández

Page 93: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Garantías de éxito: Se habrá creado el nuevo árbol automáticamente, en el panel

de edición se mostrará el árbol y estará en modo árbol.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CARGAR GRAFO DESDE FICHERO:

- Caso de Uso: Cargar Grafo Fichero

- Objetivo: Crear un nuevo grafo cargado desde fichero.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Debe existir el fichero seleccionado y tiene que estar en un

formato entendible por la aplicación (que hay sido escrito por la aplicación con la

funcionalidad Grabar Grafo Fichero)

- Escenario principal de éxito:

1. El Usuario selecciona la opción de Cargar Grafo desde Fichero.

2. El Sistema pide la ruta del fichero al Usuario.

3. El Usuario indica en el diálogo la ruta donde está el fichero.

4. El Sistema verifica la existencia del fichero.

5. El Sistema limpia el panel de edición y se pone en modo grafo.

- 83 - P. Javier Díaz Hernández

Page 94: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

6. El Sistema crea un nuevo grafo leyendo el fichero introducido.

7. El Sistema muestra en el panel de edición el grafo creado.

- Garantías de éxito: Se habrá creado el nuevo grafo a partir del fichero

introducido, en el panel de edición se mostrará el grafo y estará en modo grafo o

árbol según corresponda.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

GUARDAR GRAFO EN FICHERO:

- Caso de Uso: Guardar Grafo Fichero

- Objetivo: Guardar el grafo del panel de edición en fichero.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Debe existir un grafo en el panel edición

- Escenario principal de éxito:

1. El Usuario selecciona la opción de Guardar Grafo en Fichero.

2. El Sistema pide la ruta del fichero donde se va a guardar al Usuario.

3. El Usuario indica en el diálogo la ruta donde está el fichero.

4. El Sistema verifica la existencia del fichero.

- 84 - P. Javier Díaz Hernández

Page 95: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

5. El Sistema crea un fichero grabando la información del grafo en un formato

propio de la aplicación.

- Garantías de éxito: Se habrá guardado el grafo del panel de edición en el fichero

introducido.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

SALIR DE LA APLICACIÓN:

- Caso de Uso: Salir Aplicación

- Objetivo: Salir de la aplicación.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de Salir de la Aplicación.

2. El Sistema cierra la Aplicación.

- Garantías de éxito: Se habrá cerrado la aplicación.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- 85 - P. Javier Díaz Hernández

Page 96: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Prioridad: Media

- Frecuencia: Media

AÑADIR VÉRTICE AL GRAFO:

- Caso de Uso: Añadir vértice

- Objetivo: Añadir un vértice al grafo del panel de edición.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Modo de escritura sea Escritura

- Escenario principal de éxito:

1. El Usuario hace doble-click en el panel de edición.

2. El Sistema añade el vértice con las coordenadas y demás datos al grafo del

panel de edición.

3. El Sistema muestra el nuevo grafo en el panel de edición.

- Garantías de éxito: Se habrá añadido un nuevo vértice al grafo del panel de

edición.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 86 - P. Javier Díaz Hernández

Page 97: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

MOVER VÉRTICE DEL GRAFO:

- Caso de Uso: Mover vértice

- Objetivo: Mover un vértice al grafo del panel de edición.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Existe un grafo en el panel de edición

- Escenario principal de éxito:

1. El Usuario hace click con el botón derecho del ratón en el vértice elegido en el

panel de edición.

2. El Sistema muestra un menu sobre el vértice con 2 opciones, borrar o mover.

3. El Usuario elige la opción mover.

4. El Sistema pide al Usuario las coordenadas nuevas donde quiere situar el

vértice.

5. El Usuario introduce la coordenada X y la coordenada Y.

6. El Sistema modifica las coordenadas del vértice elegido.

7. El Sistema muestra el grafo en el panel de edición.

- Garantías de éxito: Se habrá movido el vértice seleccionado del grafo a las

coordenadas elegidas por el Usuario.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- 87 - P. Javier Díaz Hernández

Page 98: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Prioridad: Media

- Frecuencia: Media

ARRASTRAR VÉRTICE DEL GRAFO:

- Caso de Uso: Arrastrar vértice

- Objetivo: Arrastrar un vértice al grafo del panel de edición.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Existe un grafo en el panel de edición

- Escenario principal de éxito:

1. El Usuario hace click con el botón izquierdo del ratón en el vértice elegido y

arrastra hasta la nueva situación en el panel de edición.

2. El Sistema modifica las coordenadas del vértice elegido.

3. El Sistema muestra el grafo en el panel de edición.

- Garantías de éxito: Se habrá movido el vértice arrastrado del grafo a las

coordenadas elegidas por el Usuario.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 88 - P. Javier Díaz Hernández

Page 99: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

BORRAR VÉRTICE DEL GRAFO:

- Caso de Uso: Borrar Vértice

- Objetivo: Borrar un vértice del grafo del panel de edición.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Modo de escritura sea Escritura y halla al menos 1 vértice en el

grafo del panel de edición.

- Escenario principal de éxito:

1. El Usuario hace click con el botón derecho del ratón en el vértice elegido en el

panel de edición.

2. El Sistema muestra un menu sobre el vértice con 2 opciones, borrar o mover.

3. El Usuario elige la opción borrar.

4. El Sistema borra el vértice elegido.

5. El Sistema muestra el grafo en el panel de edición.

- Garantías de éxito: Se habrá borrado un vértice del grafo del panel de edición.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 89 - P. Javier Díaz Hernández

Page 100: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

AÑADIR ARISTA AL GRAFO:

- Caso de Uso: Añadir Arista

- Objetivo: Añadir una arista al grafo del panel de edición.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Modo de escritura sea Escritura y halla al menos 2 vértices en el

grafo del panel de edición.

- Escenario principal de éxito:

1. El Usuario hace click en el vértice origen de la arista a introducir en el panel

de edición.

2. El Sistema cambia el icono del vértice clickeado para mostrarlo seleccionado.

3. El Usuario hace un segundo click en el vértice destino de la arista a introducir.

4. El Sistema introduce la arista entre los 2 vértices seleccionados y muestra el

nuevo grafo..

- Garantías de éxito: Se habrá añadido una nueva arista al grafo del panel de

edición.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 90 - P. Javier Díaz Hernández

Page 101: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

BORRAR ARISTA DEL GRAFO:

- Caso de Uso: Borrar Arista

- Objetivo: Borrar una arista del grafo del panel de edición.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Modo de escritura sea Escritura y halla al menos 1 arista en el

grafo del panel de edición.

- Escenario principal de éxito:

1. El Usuario hace click con el botón derecho del ratón en la arista elegida en el

panel de edición.

2. El Sistema muestra un menu sobre el vértice con la opción borrar.

3. El Usuario elige la opción borrar.

4. El Sistema borra la arista elegida.

5. El Sistema muestra el grafo en el panel de edición.

- Garantías de éxito: Se habrá borrado una arista del grafo del panel de edición.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 91 - P. Javier Díaz Hernández

Page 102: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

MATRIZ DE DISTANCIAS DEL GRAFO:

- Caso de Uso: Matriz Distancias

- Objetivo: Generar la matriz de distancias del grafo en el panel de edición..

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Exista un grafo en el panel de edición.

- Escenario principal de éxito:

1. El Usuario selecciona la opción para ver la matriz de distancias.

2. El Sistema genera la matriz de distancias.

3. El Sistema muestra en un diálogo la matriz de distancias y el diámetro del

grafo.

- Garantías de éxito: Se habrá mostrado la matriz de distancias del grafo del panel

de edición.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CREAR GRAFO CICLO:

- Caso de Uso: Crear Grafo Ciclo

- 92 - P. Javier Díaz Hernández

Page 103: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Objetivo: Crear un nuevo grafo ciclo con el número de vértices introducido por el

usuario.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de crear nuevo grafo ciclo.

2. El Sistema pide el número de vértices que tendrá el grafo.

3. El Usuario introduce el número de vértices.

4. El Sistema limpia el panel de edición y se pone en modo grafo.

5. El Sistema crea un nuevo grafo con el número de vértices introducido por el

Usuario

6. El Sistema muestra en el panel de edición el grafo creado.

- Garantías de éxito: Se habrá creado el nuevo grafo ciclo, en el panel de edición

se mostrará el grafo y estará en modo grafo.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 93 - P. Javier Díaz Hernández

Page 104: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CREAR GRAFO COMPLETO:

- Caso de Uso: Crear Grafo Completo

- Objetivo: Crear un nuevo grafo completo con el número de vértices introducido

por el usuario.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de crear nuevo grafo completo.

2. El Sistema pide el número de vértices que tendrá el grafo.

3. El Usuario introduce el número de vértices.

4. El Sistema limpia el panel de edición y se pone en modo grafo.

5. El Sistema crea un nuevo grafo completo con el número de vértices

introducido por el Usuario

6. El Sistema muestra en el panel de edición el grafo creado.

- Garantías de éxito: Se habrá creado el nuevo grafo completo, en el panel de

edición se mostrará el grafo y estará en modo grafo.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- 94 - P. Javier Díaz Hernández

Page 105: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Frecuencia: Media

CREAR GRAFO RUEDA:

- Caso de Uso: Crear Grafo Rueda

- Objetivo: Crear un nuevo grafo rueda con el número de vértices introducido por

el usuario.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de crear nuevo grafo rueda.

2. El Sistema pide el número de vértices que tendrá el grafo.

3. El Usuario introduce el número de vértices sin contar el vértice central.

4. El Sistema limpia el panel de edición y se pone en modo grafo.

5. El Sistema crea un nuevo grafo rueda con el número de vértices introducido

por el Usuario más el vértice central.

6. El Sistema muestra en el panel de edición el grafo creado.

- Garantías de éxito: Se habrá creado el nuevo rueda, en el panel de edición se

mostrará el grafo y estará en modo grafo.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- 95 - P. Javier Díaz Hernández

Page 106: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Prioridad: Media

- Frecuencia: Media

CREAR GRAFO PRODUCTO CARTESIANO H x K2:

- Caso de Uso: Crear Grafo Producto Cartesiano

- Objetivo: Crear un nuevo grafo resultado de hacer el producto K2 del grafo de el

panel de edición.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Exista un grafo en el panel de edición.

- Escenario principal de éxito:

1. El Usuario selecciona la opción de crear nuevo grafo producto K2 del grafo.

2. El Sistema pide la distancia vertical y horizontal que habrá entre el grafo

producto y el grafo original para un correcto visionado.

3. El Usuario introduce las distancias.

4. El Sistema limpia el panel de edición y se pone en modo grafo.

5. El Sistema crea un nuevo grafo resultado de hacer el producto K2 del grafo de

el panel de edición, cumpliendo las distancias introducidas por el Usuario.

6. El Sistema muestra en el panel de edición el grafo creado.

- Garantías de éxito: Se habrá creado un nuevo grafo resultado de hacer el

producto K2 del grafo de el panel de edición, cumpliendo las distancias

introducidas por el Usuario.

- 96 - P. Javier Díaz Hernández

Page 107: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CREAR GRAFO DE PETERSEN:

- Caso de Uso: Crear Grafo Petersen

- Objetivo: Crear un nuevo grafo de Petersen con el radio de ciclo y el número de

vértices introducido por el Usuario.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de crear nuevo grafo de Petersen.

2. El Sistema pide el radio del ciclo del grafo y el número de vértices.

3. El Usuario introduce el radio y el número de vértices.

4. El Sistema limpia el panel de edición y se pone en modo grafo.

5. El Sistema crea un nuevo grafo de Petersen, cumpliendo con el radio y el

número de vértices introducidas por el Usuario.

6. El Sistema muestra en el panel de edición el grafo creado.

- 97 - P. Javier Díaz Hernández

Page 108: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Garantías de éxito: Se habrá creado un nuevo grafo de Petersen cumpliendo con

el radio del ciclo y el número de vértices introducidas por el Usuario.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CREAR ÁRBOL ESTRELLA:

- Caso de Uso: Crear Árbol Estrella

- Objetivo: Crear un nuevo árbol estrella con el número de vértices introducido por

el Usuario.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de crear nuevo árbol estrella.

2. El Sistema pide el número de vértices.

3. El Usuario introduce el número de vértices.

4. El Sistema limpia el panel de edición y se pone en modo árbol.

5. El Sistema crea un nuevo árbol rueda cumpliendo con el número de vértices

introducido por el Usuario.

- 98 - P. Javier Díaz Hernández

Page 109: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

6. El Sistema muestra en el panel de edición el grafo creado.

- Garantías de éxito: Se habrá creado un nuevo árbol rueda cumpliendo con el

número de vértices introducido por el Usuario.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

HACER ZOOM GRAFO:

- Caso de Uso: Zoom Grafo

- Objetivo: Hacer zoom del grafo con diferentes escalas elegidas por el Usuario.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de hacer zoom con una escala en concreto.

2. El Sistema hace el zoom a la escala elegida del panel de edición y lo actualiza

en modo sólo lectura.

- Garantías de éxito: Se habrá hecho zoom a la escala elegida por el usuario.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- 99 - P. Javier Díaz Hernández

Page 110: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Prioridad: Media

- Frecuencia: Media

CAMBIAR IDIOMA:

- Caso de Uso: Cambio Idioma

- Objetivo: Cambiar el idioma de la aplicación.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de cambio de idioma a un idioma

predeterminado.

2. El Sistema traduce todos los literales de la aplicación al idioma elegido.

- Garantías de éxito: Se habrá cambiado el idioma de la aplicación.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

MOSTRAR AYUDA CONTENIDOS:

- Caso de Uso: Ayuda Contenidos

- Objetivo: Mostrar la ayuda sobre los contenidos de la aplicación.

- 100 - P. Javier Díaz Hernández

Page 111: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción Índice de contenidos.

2. El Sistema muestra un diálogo con los contenidos de la aplicación.

- Garantías de éxito: Se habrá mostrado la ayuda con los contenidos de la

aplicación .

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

MOSTRAR ACERCA APLICACIÓN:

- Caso de Uso: Acerca Aplicación

- Objetivo: Mostrar información y características de la aplicación.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción Acerca Aplicación.

- 101 - P. Javier Díaz Hernández

Page 112: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

2. El Sistema muestra un diálogo con información y detalle de la aplicación.

- Garantías de éxito: Se habrá mostrado la información y detalle de la aplicación .

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CAMBIAR ICONO VÉRTICE:

- Caso de Uso: Cambio Icono Vértice

- Objetivo: Cambiar el icono que representa un vértice del grafo.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de Cambio Icono Vértice.

2. El Sistema pide al Usuario la ruta y el archivo del nuevo icono.

3. El Usuario selecciona la ruta y el archivo..

4. El Sistema modifica la ruta del icono que representa un vértice y muestra el

grafo con el nuevo icono en el panel de edición.

- Garantías de éxito: Se habrá cambiado el icono que representa un vértice del

grafo en la aplicación.

- 102 - P. Javier Díaz Hernández

Page 113: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CAMBIAR ICONO VÉRTICE SELECCIONADO:

- Caso de Uso: Cambio Icono Vértice Selección

- Objetivo: Cambiar el icono que representa un vértice seleccionado del grafo.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de Cambio Icono Vértice Seleccionado.

2. El Sistema pide al Usuario la ruta y el archivo del nuevo icono.

3. El Usuario selecciona la ruta y el archivo.

4. El Sistema modifica la ruta del icono que representa un vértice seleccionado y

muestra el grafo con el nuevo icono en el panel de edición.

- Garantías de éxito: Se habrá cambiado el icono que representa un vértice

seleccionado del grafo en la aplicación.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- 103 - P. Javier Díaz Hernández

Page 114: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Prioridad: Media

- Frecuencia: Media

CAMBIAR ICONO VÉRTICE HOJA:

- Caso de Uso: Cambio Icono Vértice Hoja

- Objetivo: Cambiar el icono que representa un vértice hoja del grafo.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de Cambio Icono Vértice Hoja.

2. El Sistema pide al Usuario la ruta y el archivo del nuevo icono.

3. El Usuario selecciona la ruta y el archivo.

4. El Sistema modifica la ruta del icono que representa un vértice hoja y muestra

el grafo con el nuevo icono en el panel de edición.

- Garantías de éxito: Se habrá cambiado el icono que representa un vértice hoja

del grafo en la aplicación.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 104 - P. Javier Díaz Hernández

Page 115: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CAMBIAR COLOR ARISTA:

- Caso de Uso: Cambio Color Arista

- Objetivo: Cambiar el color de las aristas del grafo.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de Cambio Color Arista.

2. El Sistema pide al Usuario el nuevo color de las aristas.

3. El Usuario selecciona el color.

4. El Sistema modifica el color de las aristas y muestra el grafo con el nuevo

color de sus aristas en el panel de edición.

- Garantías de éxito: Se habrá cambiado el color de las aristas del grafo en la

aplicación.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 105 - P. Javier Díaz Hernández

Page 116: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CAMBIAR COLOR ARISTA SELECCIONADA:

- Caso de Uso: Cambio Color Arista Selecciona

- Objetivo: Cambiar el color de la arista seleccionada del grafo.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario selecciona la opción de Cambio Color Arista Seleccionada.

2. El Sistema pide al Usuario el nuevo color de arista seleccionada.

3. El Usuario selecciona el color.

4. El Sistema modifica el color de la arista seleccionada y muestra el grafo con el

nuevo color de arista seleccionada en el panel de edición.

- Garantías de éxito: Se habrá cambiado el color de la arista seleccionada del grafo

en la aplicación.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 106 - P. Javier Díaz Hernández

Page 117: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

GRABAR RESULTADOS EN EXCEL:

- Caso de Uso: Grabar Excel Resultados

- Objetivo: Grabar el resultado de los cálculos de la dimensión métrica de los

grafos en un archivo Excel.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario chequea la opción de Crear Excel Resultados.

2. El Sistema pide al Usuario la ruta donde se creará el archivo Excel cada vez

que se ejecute el cálculo de la dimensión métrica de un grafo.

3. El Usuario selecciona la ruta.

4. El Sistema modifica la ruta del archivo resultado Excel.

- Garantías de éxito: Se grabará el resultado de los cálculos de la dimensión

métrica de los grafos en un archivo Excel.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 107 - P. Javier Díaz Hernández

Page 118: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

CAMBIAR MODO GRAFO:

- Caso de Uso: Cambio Modo Grafo

- Objetivo: Cambiar de modo Grafo a modo Árbol o viceversa. El sistema

comprueba si es viable el cambio si es de grafo a árbol y si lo es graba el modo

seleccionado.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario elige la opción de Cambio de Modo de grafo.

2. El Sistema comprueba si es viable el cambio si es de grafo a árbol y si lo es

graba el modo seleccionado.

- Garantías de éxito: Se cambiará de modo Grafo a modo Árbol o viceversa

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CAMBIAR MODO ESCRITURA:

- Caso de Uso: Cambio Modo Escritura

- Objetivo: Cambiar de modo Normal a modo Sólo lectura o viceversa. Si el modo

es Sólo Lectura quedará deshabilitado el panel y no se podrá editar el grafo.

- 108 - P. Javier Díaz Hernández

Page 119: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Ninguna

- Escenario principal de éxito:

1. El Usuario elige la opción de Cambio de Modo de Escritura.

2. El Sistema graba el modo seleccionado y si es de Sólo lectura deshabilita el

panel de edición por lo que no se podrá editar el grafo.

- Garantías de éxito: Se cambiará de modo Normal a modo Sólo lectura o

viceversa

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

OBTENER VÉRTICES GEMELOS ADYACENTES:

- Caso de Uso: Obtener Gemelos Adyacentes

- Objetivo: Calcular los vértices gemelos adyacentes y no adyacentes del grafo en

el panel de edición.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: Existe un grafo en el panel de edición

- 109 - P. Javier Díaz Hernández

Page 120: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Escenario principal de éxito:

1. El Usuario elige la opción para Obtener Vértices Gemelos Adyacentes.

2. El Sistema calcula los vértices gemelos adyacentes y no adyacentes del grafo.

3. El Sistema muestra en un diálogo los vértices gemelos adyacentes y no

adyacentes del grafo en el panel de edición.

- Garantías de éxito: Se habrán calculado los vértices gemelos adyacentes y no

adyacentes del grafo en el panel de edición.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CALCULAR DIMENSIÓN MÉTRICA DE UN GRAFO:

- Caso de Uso: Dimensión Métrica Grafo

- Objetivo: Calcular la dimensión métrica del grafo en el panel de edición y sus

conjuntos resolutivos correspondientes. Además, se creará un archivo Excel con

dichos conjuntos si dicha opción está activada.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: El panel de edición está en modo Grafo

- Escenario principal de éxito:

1. El Usuario elige la opción para calcular la dimensión métrica.

- 110 - P. Javier Díaz Hernández

Page 121: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

2. El Sistema calcula la dimensión métrica y los conjuntos resolutivos del grafo

en el panel de edición.

3. El Sistema muestra en un diálogo la dimensión métrica, los conjuntos

resolutivos y las distancias que conforman base.

4. El Sistema crea un archivo Excel recogiendo los conjuntos resolutivos si la

opción correspondiente está activada

- Garantías de éxito: Se habrán calculado la dimensión métrica del grafo en el

panel de edición y sus conjuntos resolutivos correspondientes. Además, se habrá

creado un archivo Excel con dichos conjuntos si dicha opción estaba activada.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CALCULAR DIMENSIÓN MÉTRICA 1-TOLERANTE DE UN GRAFO:

- Caso de Uso: Dimensión 1-Tolerante Grafo

- Objetivo: Calcular la dimensión métrica 1-tolerante del grafo en el panel de

edición y sus conjuntos resolutivos correspondientes. Además, se creará un

archivo Excel con dichos conjuntos si dicha opción está activada.

- Nivel: Primario

- Actor principal: Usuario

- Precondiciones: El panel de edición está en modo Grafo

- Escenario principal de éxito:

- 111 - P. Javier Díaz Hernández

Page 122: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

1. El Usuario elige la opción para calcular la dimensión métrica 1-tolerante.

2. El Sistema calcula la dimensión métrica 1-tolerante y los conjuntos resolutivos

del grafo en el panel de edición.

3. El Sistema muestra en un diálogo la dimensión métrica 1-tolerante, los

conjuntos resolutivos y las distancias que conforman base.

4. El Sistema crea un archivo Excel recogiendo los conjuntos resolutivos si la

opción correspondiente está activada

- Garantías de éxito: Se habrán calculado la dimensión métrica 1-tolerante del

grafo en el panel de edición y sus conjuntos resolutivos correspondientes.

Además, se habrá creado un archivo Excel con dichos conjuntos si dicha opción

estaba activada.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CALCULAR DIMENSIÓN MÉTRICA DE UN ÁRBOL:

- Caso de Uso: Dimensión Métrica Árbol

- Objetivo: Calcular la dimensión métrica del árbol en el panel de edición y sus

conjuntos resolutivos correspondientes. Además, se creará un archivo Excel con

dichos conjuntos si dicha opción está activada.

- Nivel: Primario

- Actor principal: Usuario

- 112 - P. Javier Díaz Hernández

Page 123: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Precondiciones: El panel de edición está en modo Árbol

- Escenario principal de éxito:

1. El Usuario elige la opción para calcular la dimensión métrica.

2. El Sistema calcula la dimensión métrica y los conjuntos resolutivos del árbol

en el panel de edición.

3. El Sistema muestra en un diálogo la dimensión métrica, los conjuntos

resolutivos y las distancias que conforman base.

4. El Sistema crea un archivo Excel recogiendo los conjuntos resolutivos si la

opción correspondiente está activada

- Garantías de éxito: Se habrán calculado la dimensión métrica del árbol en el

panel de edición y sus conjuntos resolutivos correspondientes. Además, se habrá

creado un archivo Excel con dichos conjuntos si dicha opción estaba activada.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

CALCULAR DIMENSIÓN MÉTRICA 1-TOLERANTE DE UN ÁRBOL:

- Caso de Uso: Dimensión 1-Tolerante Árbol

- Objetivo: Calcular la dimensión métrica 1-tolerante del árbol en el panel de

edición y sus conjuntos resolutivos correspondientes. Además, se creará un

archivo Excel con dichos conjuntos si dicha opción está activada.

- Nivel: Primario

- 113 - P. Javier Díaz Hernández

Page 124: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

- Actor principal: Usuario

- Precondiciones: El panel de edición está en modo Árbol

- Escenario principal de éxito:

5. El Usuario elige la opción para calcular la dimensión métrica 1-tolerante.

6. El Sistema calcula la dimensión métrica 1-tolerante y los conjuntos resolutivos

del árbol en el panel de edición.

7. El Sistema muestra en un diálogo la dimensión métrica 1-tolerante, los

conjuntos resolutivos y las distancias que conforman base.

8. El Sistema crea un archivo Excel recogiendo los conjuntos resolutivos si la

opción correspondiente está activada

- Garantías de éxito: Se habrán calculado la dimensión métrica 1-tolerante del

árbol en el panel de edición y sus conjuntos resolutivos correspondientes.

Además, se habrá creado un archivo Excel con dichos conjuntos si dicha opción

estaba activada.

- Garantías de fracaso: El estado anterior en el que estaba el sistema al caso de

uso.

- Prioridad: Media

- Frecuencia: Media

- 114 - P. Javier Díaz Hernández

Page 125: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3 DISEÑO DE BAJO NIVEL

Para realizar el diseño de bajo nivel utilizaremos diagramas de colaboración que nos

permitirán ver cómo interactúan los diferentes objetos que instancian las clases necesarias

para desarrollar la aplicación.

3.3.1. DIAGRAMAS DE COLABORACIÓN

Son diagramas que muestran cómo las instancias específicas de las clases trabajan

juntas para conseguir un objetivo común, mediante el paso de mensajes de un objeto a otro.

Un diagrama de colaboración no muestra el tiempo como una dimensión aparte, por lo que

resulta necesario etiquetar con números de secuencia tanto la secuencia de mensajes como

los hilos concurrentes. Es una forma alternativa a los diagramas de secuencia para mostrar

un escenario.

Se han elegido diagramas de colaboración en vez de diagramas de secuencia porque

son mejores para ilustrar bifurcaciones complejas, son más flexibles y economizan mejor el

espacio.

Por claridad vamos obviar los algunos objetos de la interfaz gráfica ( menú, barra de

herramientas) ya que complicaría el diseño con detalles innecesarios. Estas relaciones se

verán mejor representadas en el diagrama de clases.

- 115 - P. Javier Díaz Hernández

Page 126: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.1. CREAR GRAFO MANUAL

A : Aplicacion

CrearGrafoManual()

grafo : Grafo

2.1: setGrafo(grafo)2.2: pintarGrafo(grafo)

panelCanvas: PanelCanvas

panelCoord:PanelCoordenadas

3.1: setPropiedadesGrafo(grafo)

2: panelCanvas:= getPanelCanvas()3: panelCoord:=getPanelCoordenadas()

Figura 43. Diagrama colaboración Crear Grafo Manual

En el diagrama se observa que le llega el mensaje de crear un grafo a la aplicación,

generando un nuevo grafo vacío.

La clase PanelCanvas es el panel donde se modifican las propiedades del grafo en

edición y sobre el que se dibujará (contiene el Grafo). El PanelCoordenadas es en el que se

muestran las propiedades del puntero y del grafo que se está editando.

Así, se creará un Grafo nuevo y una vez obtenido el Panel Canvas, se le asignará

llamando al método setGrafo del panelCanvas. Posteriormente se actualiza el panel

Coordenadas con el método setPropiedades, para refrescar las propiedades del nuevo Grafo

creado.

- 116 - P. Javier Díaz Hernández

Page 127: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.2. CREAR GRAFO ALEATORIO

A: Aplicacion

CrearGrafoAleatorio(numV,prob)

grafo:GrafoAutomatico

1: g

rafo

:=C

rear

(num

V,p

rob)

2.1: setGrafo(grafo)2.2: pintarGrafo(grafo)

panelCanvas: PanelCanvas

panelCoord:PanelCoordenadas

3.1: setPropiedadesGrafo(grafo)

2: panelCanvas:= getPanelCanvas()3: panelCoord:=getPanelCoordenadas()

Figura 44. Diagrama de colaboración Crear Grafo Aleatorio

El diagrama es análogo al de Crear Grafo Manual, exceptuando que el mensaje

iniciador recibe 2 parámetros, el número de vértices del nuevo grafo y la probabilidad de

existencia de arista entre cada 2 vértices.

Primeramente se creará el grafo, cuya clase es una extensión de la clase Grafo,

cumpliendo con los parámetros, y posteriormente se asignará al PanelCanvas. Finalmente

se actualizará el Panel de Coordenadas con los nuevos datos del nuevo grafo.

- 117 - P. Javier Díaz Hernández

Page 128: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.3. CREAR ÁRBOL MANUAL

A : Aplicacion

CrearArbolManual()

arbol : GrafoArbol

2.1: setGrafo(arbol)2.2: pintarGrafo(arbol)

panelCanvas: PanelCanvas

panelCoord:PanelCoordenadas

3.1: setPropiedadesGrafo(arbol)

2: panelCanvas:= getPanelCanvas()3: panelCoord:=getPanelCoordenadas()

Figura 45. Diagrama de colaboración Crear Árbol Manual

En el diagrama se observa que le llega el mensaje de crear un nuevo árbol a la

aplicación, generando un árbol vacío.

Los pasos son semejantes a los anteriores diagramas. Se creará un nuevo árbol, cuya

clase es una extensión de la clase Grafo, y una vez obtenido el Panel Canvas, se le asignará

llamando al método setGrafo del panelCanvas. Posteriormente se actualiza el panel

Coordenadas con el método setPropiedades, para refrescar las propiedades del nuevo Árbol

creado.

- 118 - P. Javier Díaz Hernández

Page 129: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.4. CREAR ÁRBOL AUTO

Figura 46.Diagrama de colaboración Crear Árbol Auto

El diagrama es análogo al de Crear Árbol Manual, exceptuando que el mensaje

iniciador recibe 2 parámetros, el número de vértices del nuevo árbol y la agrupación de los

vértices hijos.

Primeramente se creará el árbol, cuya clase es una extensión de la clase Grafo,

cumpliendo con los parámetros, y posteriormente se asignará al PanelCanvas. Finalmente

se actualizará el Panel de Coordenadas con los nuevos datos del nuevo grafo.

- 119 - P. Javier Díaz Hernández

Page 130: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.5. AÑADIR VÉRTICE

A: Aplicacion

AñadirVertice(vertice)

grafo : Grafo

1: panelCanvas:= getPanelCanvas()3: panelCoord:=getPanelCoordenadas()

panelCanvas: PanelCanvas

1.1: grafo:= getGrafo()4: pintarGrafo(grafo)

panelCoord:PanelCoordenadas

3.1: setPropiedadesGrafo(grafo)

Figura 47. Diagrama de colaboración Añadir Vértice

En la figura se puede observar el diagrama de colaboración de Añadir un vértice.

Cuando se recibe este mensaje, primero se debe recuperar el grafo que está en edición en el

Panel de Canvas.

Una vez recuperado el grafo, se llama al método del grafo “AñadirVértice” con el

parámetro “vértice” a insertar (añadiéndose el vértice)

Por último, las propiedades de este grafo modificado, se despliegan en el panel

Coordenadas.

- 120 - P. Javier Díaz Hernández

Page 131: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.6. MOVER VÉRTICE

A : Aplicacion

MoverVertice(vertice,x,y)

grafo : Grafo

2: nodo :=

editNodo(ve

rtice,x,

y)

1.1: grafo:= getGrafo(grafo)3: pintarGrafo(grafo)

panelCanvas: PanelCanvas

panelCoord:PanelCoordenadas

4.1: setPropiedadesGrafo(grafo)

1: panelCanvas:= getPanelCanvas()4: panelCoord:=getPanelCoordenadas()

Figura 48. Diagrama de colaboración Mover Vértice

Semejante al diagrama anterior, los pasos serán similares. Primeramente se recupera

el grafo del PanelCanvas. Seguidamente se llamará al método editVértice con los

parámetros introducidos por el usuario (la coordenada nueva y el vértice a mover).

Por último, las propiedades de este grafo modificado, se despliegan en el panel

Coordenadas.

- 121 - P. Javier Díaz Hernández

Page 132: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.7. ARRASTRAR VÉRTICE

Figura 49. Diagrama de colaboración Arrastrar Vértice

Totalmente análogo al diagrama anterior. Primeramente se recupera el grafo del

PanelCanvas. Seguidamente se llamará al método editVértice con los parámetros

introducidos por el usuario (la coordenada nueva y el vértice a mover).

Por último, las propiedades de este grafo modificado, se despliegan en el panel

Coordenadas.

- 122 - P. Javier Díaz Hernández

Page 133: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.8. BORRAR VÉRTICE

A : Aplicacion

BorrarVertice(vertice)

2: lsAristas := listaAristas(vertice)3.b: [listaAristas.isEmpty]: BorrarNodo(vertice)

1.1: grafo:= getGrafo(grafo)4: pintarGrafo(grafo)

panelCanvas: PanelCanvas

panelCoord:PanelCoordenadas

5.1: setPropiedadesGrafo(grafo)

1: panelCanvas:= getPanelCanvas()5: panelCoord:=getPanelCoordenadas()

grafo : Grafo

: Arista

3.a.

1.* :

[lsA

ri sta

s .is

Not

Em

pty ]

:ar is

ta =

lsA

rist a

s.ne

x t()

3.a .

1.* :

Bo r

rarA

r ista

(ar is

ta)

3 .a.

2*: B

orra

r Nod

o(v e

rt ice

)

Figura 50. Diagrama de colaboración Borrar Vértice

Para borrar un vértice, una vez obtenido el grafo del Panel de Canvas, se recuperan las

aristas asociadas al vértice.

Si el vértice está presente en una o más aristas, implica la necesidad de borrarlas una

por una del grafo (“BorrarArista”) y luego borrar el vértice (“BorrarVértice”).

Si el vértice no tiene aristas, es decir, es un vértice no conectado, basta con borrarlo

directamente.

Por último, se despliegan las propiedades del grafo modificado en el Panel

Coordenadas.

- 123 - P. Javier Díaz Hernández

Page 134: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.9. AÑADIR ARISTA

AñadirArista(arista)

arista : Arista

panelCanvas: PanelCanvas

1.1: grafo:= getGrafo()4: pintarGrafo(grafo)

panelCoord:PanelCoordenadas

3.1: setPropiedadesGrafo(grafo)

A: Aplicacion

1: panelCanvas:= getPanelCanvas()3: panelCoord:=getPanelCoordenadas()

Figura 51. Diagrama de colaboración Añadir Arista

Cuando se recibe el mensaje de AñadirArista con el parámetro de la arista a eliminar,

primero se debe recuperar el grafo que está en edición en el Panel Canvas.

Una vez recuperado el grafo, se llama al método del grafo “AñadirArista” con el

parámetro “arista” a insertar.

Por último, las propiedades de este grafo modificado, se despliegan en el panel

Coordenadas.

- 124 - P. Javier Díaz Hernández

Page 135: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.10. BORRAR ARISTA

Figura 52. Diagrama de colaboración Borrar Arista

En primer lugar se ha recuperado del Panel Canvas el grafo.

Una vez obtenido el grafo en edición, se emplea el mensaje “BorrarArista”, que

elimina la arista pasada como parámetro en dicho grafo.

Por último, se despliegan las propiedades del grafo resultante en el Panel

Coordenadas.

- 125 - P. Javier Díaz Hernández

Page 136: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.11. CREAR GRAFO CICLO

A : Aplicacion

CrearGrafoCiclo(numV)

grafo : GrafoCiclo1: grafo:=C

re ar(numV

)

2.1: setGrafo(grafo)2.2: pintarGrafo(grafo)

panelCanvas: PanelCanvas

panelCoord:PanelCoordenadas

3.1: setPropiedadesGrafo(grafo)

2: panelCanvas:= getPanelCanvas()3: panelCoord:=getPanelCoordenadas()

Figura 53. Diagrama de colaboración Crear Grafo Ciclo

El diagrama es análogo al de Crear Grafo Manual, exceptuando que el mensaje

iniciador recibe 1 parámetro, el número de vértices del nuevo grafo..

Primeramente se creará el grafo ciclo, cuya clase es una extensión de la clase Grafo,

cumpliendo con los parámetros, y posteriormente se asignará al PanelCanvas.

Finalmente se actualizará el Panel de Coordenadas con los nuevos datos del nuevo

grafo.

- 126 - P. Javier Díaz Hernández

Page 137: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.12. CREAR GRAFO COMPLETO

A : Aplicacion

CrearGrafoCompleto(numV)

grafo : GrafoCompleto

1: grafo:=Cre ar(num

V)

2.1: setGrafo(grafo)2.2: pintarGrafo(grafo)

panelCanvas: PanelCanvas

panelCoord:PanelCoordenadas

3.1: setPropiedadesGrafo(grafo)

2: panelCanvas:= getPanelCanvas()3: panelCoord:=getPanelCoordenadas()

Figura 54. Diagrama de colaboración Crear Grafo Completo

El diagrama es análogo al anterior.

Primeramente se creará el grafo completo, cuya clase es una extensión de la clase

Grafo, cumpliendo con los parámetros, y posteriormente se asignará al PanelCanvas.

Finalmente se actualizará el Panel de Coordenadas con los nuevos datos del nuevo

grafo.

- 127 - P. Javier Díaz Hernández

Page 138: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.13. CREAR GRAFO RUEDA

A : Aplicacion

CrearGrafoRueda(numV)

grafo : GrafoRueda1: grafo:=C

r ear(numV

)

2.1: setGrafo(grafo)2.2: pintarGrafo(grafo)

panelCanvas: PanelCanvas

panelCoord:PanelCoordenadas

3.1: setPropiedadesGrafo(grafo)

2: panelCanvas:= getPanelCanvas()3: panelCoord:=getPanelCoordenadas()

Figura 55. Diagrama de colaboración Crear Grafo Rueda

El diagrama es análogo al anterior.

Primeramente se creará el grafo rueda, cuya clase es una extensión de la clase Grafo,

cumpliendo con los parámetros, y posteriormente se asignará al PanelCanvas.

Finalmente se actualizará el Panel de Coordenadas con los nuevos datos del nuevo

grafo.

- 128 - P. Javier Díaz Hernández

Page 139: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.14. CREAR ÁRBOL ESTRELLA

A : Aplicacion

CrearArbolEstrella(numV)

arbol : ArbolEstrella

1: arbol:=Crea r(num

V)

2.1: setGrafo(arbol)2.2: pintarGrafo(arbol)

panelCanvas: PanelCanvas

panelCoord:PanelCoordenadas

3.1: setPropiedadesGrafo(arbol)

2: panelCanvas:= getPanelCanvas()3: panelCoord:=getPanelCoordenadas()

Figura 56. Diagrama de colaboración Crear Árbol Estrella

El diagrama es análogo al anterior.

Primeramente se creará el árbol estrella, cuya clase es una extensión de la clase Grafo,

cumpliendo con los parámetros, y posteriormente se asignará al PanelCanvas.

Finalmente se actualizará el Panel de Coordenadas con los nuevos datos del nuevo

grafo.

- 129 - P. Javier Díaz Hernández

Page 140: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.15. CREAR GRAFO PRODUCTO CARTESIANO

2: gra

fo:= p

roduc

toCart

esian

o(graf

o,pos

H,posV

)

Figura 57. Diagrama de colaboración Crear Grafo Producto Cartesiano

El diagrama es análogo al anterior. Exceptuando que recibe 2 parámetros la distancia

horizontal y la distancia vertical que se desplazará el nuevo grafo simulando un prisma

Primeramente se creará el grafo llamando al método productoCartesiano de la clase

Utilidades, que recibe un grafo y los parámetros de las distancias, devolviendo un nuevo

grafo cumpliendo con los parámetros, y posteriormente se asignará al PanelCanvas.

Finalmente se actualizará el Panel de Coordenadas con los nuevos datos del nuevo

grafo.

- 130 - P. Javier Díaz Hernández

Page 141: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.16. CREAR GRAFO PETERSEN

Figura 58. Diagrama de colaboración Crear Grafo Petersen

El diagrama es análogo al Crear Grafo Ciclo. Excepto que se recibe además del

número de vértices el ratio del grafo de Petersen.

Primeramente se creará el grafo de Petersen, cuya clase es una extensión de la clase

Grafo, cumpliendo con los parámetros, y posteriormente se asignará al PanelCanvas.

Finalmente se actualizará el Panel de Coordenadas con los nuevos datos del nuevo

grafo.

- 131 - P. Javier Díaz Hernández

Page 142: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.17. CARGAR GRAFO FICHERO

A : Aplicacion

CargarGrafoFichero(fichero)

2: g

rafo

:= L

eerF

iche

ro(fi

cher

o)1.

read

er:=

Cre

ar()

3.1: setGrafo(grafo)3.2: pintarGrafo(grafo)

panelCanvas: PanelCanvas

panelCoord:PanelCoordenadas

4.1: setPropiedadesGrafo(grafo)

3: panelCanvas:= getPanelCanvas()4: panelCoord:=getPanelCoordenadas()

reader: FicheroReader

grafo: Grafo

2.1: grafo:= Cr ear()

2.2: Co m

pletarGra fo(grafo)

Figura 59. Diagrama de colaboración Cargar Grafo Fichero

El mensaje “CargarGrafoFichero” tiene como parámetro la ruta del fichero donde se

desea leer el grafo.

- 132 - P. Javier Díaz Hernández

Page 143: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Primeramente se creará un objeto de “EntradaSalida”. A partir de este objeto

ejecutaremos el mensaje de “LeerFichero”, que crea un grafo en principio vacío, y luego lo

va rellenando con los atributos que lee de fichero. Posteriormente se asignará al

PanelCanvas el grafo creado.

Finalmente se actualizará el Panel de Coordenadas con los nuevos datos del nuevo

grafo.

3.3.1.18. GUARDAR GRAFO FICHERO

3: E

scrib

ir Fic

hero

Gr a

fo( g

rafo

)2.

writ

e r:=

Cre

a r(fi

che r

o)

Figura 60. Diagrama de colaboración Guardar Grafo Fichero

El mensaje “GuardarGrafoFichero” tiene como parámetro la ruta del fichero donde

desea guardar el grafo.

- 133 - P. Javier Díaz Hernández

Page 144: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Se obtiene el grafo que está en edición del Panel Canvas y, tras haber creado un

objeto de “EntradaSalida”, se ejecuta el mensaje de escribirFicheroGrafo con el “grafo” que

guardará dicho grafo en el fichero con la “ruta” dada en un formato legible por la

aplicación.

3.3.1.19. SALIR APLICACIÓN

Figura 61. Diagrama de colaboración Salir Aplicación

Al llegar el mensaje de SalirAplicación se cerrará la aplicación automáticamente.

3.3.1.20. ZOOM GRAFO

Figura 62. Diagrama de colaboración Zoom Grafo

- 134 - P. Javier Díaz Hernández

Page 145: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

El mensaje ZoomGrafo recibe como parámetro la escala a la que poner el panel de

edición.

Primeramente recuperamos el Panel Canvas y seguidamente el grafo en edición. Con

el método setEscala asignaremos la nueva escala y finalmente se repintará el panel Canvas

mostrando el grafo con la nueva escala.

3.3.1.21. CAMBIO IDIOMA

A : Aplicacion

CambioIdioma(idioma)

1:locale:= setLocale(idioma)2:setResourceBundleMessages(locale)

3: reiniciar()

Figura 63. Diagrama de colaboración Cambio Idioma

El mensaje Cambio Idioma recibe como el idioma al que cambiar todos los literales

de la aplicación.

Primeramente recuperamos el Locale de la aplicación y le asignaremos el nuevo

idioma recibido como parámetro. Seguidamente asignaremos el nuevo

ResourceBundleMessages (clase con la que se asignan los literales de la aplicación) con el

nuevo Locale y finalmente reiniciaremos la aplicación para que se repinten todos los

paneles y demás componentes con los nuevos literales asociados al nuevo idioma.

- 135 - P. Javier Díaz Hernández

Page 146: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.22. DIMENSIÓN MÉTRICA GRAFO

A : Aplicacion

DimensionMetricaGrafo()

panelCanvas: PanelCanvas

1: panelCanvas:= getPanelCanvas()

hilo: HiloGrafo:Utilidades

3.4.a: [listaPermutaciones.isEmpty]: esRes=esResolvedor(perm)3.2. listaPermutaciones := permutaciones(lsVertices)

grafo : Grafo

List:lsRes

3.3. Create()

3.4.b: [esR

es]: añadir(p

erm)

Figura 64. Diagrama de colaboración Dimensión Métrica Grafo

Este diagrama es más complejo que los anteriores, es la funcionalidad principal de la

aplicación.

Primeramente recuperamos el Panel Canvas y de éste el grafo en edición (la operación

de comprobar si es conexo, puesto que si no lo es no se puede calcular la dimensión

- 136 - P. Javier Díaz Hernández

Page 147: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

métrica, no aparece en este diagrama ya que esa validación se hace antes de poder lanzar el

cálculo de la dimensión).

Seguidamente se creará un hilo que será el encargado de calcular la dimensión del

grafo. Los siguientes pasos serán recuperar los vértices del grafo y calcular la lista de

conjuntos que serán las permutaciones sin repetición de los vértices del grafo, esta lista se

genera llamando al método de la clase Utilidades “permutaciones”. Una vez que tenemos

las permutaciones, se recorren los conjuntos comprobando si son revolvedores o no (con el

método de la clase Utilidades esResolvedor), si lo es se añadirá a una lista si no lo es se

pasará al siguiente conjunto.

Posteriormente una vez obtenidos los conjuntos revolvedores se pintarán los

conjuntos resolutivos y sus vectores de distancias llamando al método

pintarConjuntosResolvedores.

- 137 - P. Javier Díaz Hernández

Page 148: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.23. DIMENSIÓN 1-TOLERANTE GRAFO

A : Aplicacion

Dimension1ToleranteGrafo()

1.1: grafo:= getGrafo()

panelCanvas: PanelCanvas

1: panelCanvas:= getPanelCanvas()

hilo: HiloGrafo:Utilidades

2. h

ilo :=

Cre

ateH

ilo()

4. p

inta

rCon

junt

osR

esol

vedo

res(

lsR

es)

3. ls

Res

:= c

alcu

larC

onju

ntos

Res

olve

dore

s()

3.4.b.* [esRes]:esTolerante= esTolerante(perm)3.4.a.* [listaPermutaciones.isEmpty]: esRes=esResolvedor(perm)

3.2. listaPermutaciones := permutaciones(lsVertices)

grafo : Grafo

3.1. ls Ve rtic es := ge tV er tic es ()

List:lsRes

3.3. Create()

3.4.c: [esTolerante]: a

ñadir(perm

)

Figura 65. Diagrama de colaboración Dimensión 1-Tolerante Grafo

Este diagrama es análogo al anterior, hasta el paso de generar las permutaciones sin

repetición de los vértices del grafo. A continuación se recorren estos conjuntos y se

comprueba si son resolutivos, si es así se procederá a comprobar si además es 1-tolerante

para añadirlo a la lista de conjuntos resolutivos 1-tolerantes si cumple con la norma.

- 138 - P. Javier Díaz Hernández

Page 149: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Posteriormente como en el diagrama anterior se pintarán los conjuntos resolutivos 1-

tolerantes y sus vectores de distancias correspondientes.

3.3.1.24. CAMBIO ICONO VÉRTICE

Figura 66. Diagrama de colaboración Cambio Icono Vértice

El mensaje iniciador tiene como parámetro la ruta de la imagen que se quiere aplicar

como icono vértice.

Primeramente se recuperará el Panel Canvas y seguidamente se obtendrá el grafo en

edición. El siguiente paso es asignar la ruta nueva de la imagen del icono vértice del grafo,

esto se hace llamando al método setIconoVertice de la clase Grafo. Posteriormente se

repintará el grafo para que se apliquen los cambios y se muestre el nuevo icono como

vértice.

- 139 - P. Javier Díaz Hernández

Page 150: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

No se han incluído los diagramas de colaboración de cambioIconoVerticeSeleccion,

cambioIconoVerticeHoja y cambioIconoVerticeResolutivo porque son totalmente análogos

a ésta diagrama, con la única diferencia de la sustitución de la llamada al método

setIconoVertice por la llamada al método correspondiente en cada caso.

3.3.1.25. CAMBIO COLOR ARISTA

Figura 67. Diagrama de colaboración Cambio Color Arista

El mensaje iniciador tiene como parámetro el color que se quiere aplicar a cada arista

del grafo.

Primeramente se recuperará el Panel Canvas y seguidamente se obtendrá el grafo en

edición. El siguiente paso es asignar el nuevo color de arista del grafo, esto se hace

llamando al método setColorArista de la clase Grafo. Posteriormente se repintará el grafo

para que se apliquen los cambios y se muestre el nuevo color de las aristas.

- 140 - P. Javier Díaz Hernández

Page 151: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

No se ha incluído el diagrama de colaboración de cambioAristaSeleccion, porque es

totalmente análogo a ésta diagrama, con la única diferencia de la sustitución de la llamada

al método setColorArista por la llamada al método correspondiente.

3.3.1.26. CAMBIO MODO GRAFO

A : Aplicacion

CambioModoGrafo(modo)1.1: grafo:= getGrafo()

3.pintarGrafo(grafo)

panelCanvas: PanelCanvas

1: panelCanvas:= getPanelCanvas()

2. s

etM

odo(

mod

o)

grafo:Grafo

Figura 68. Diagrama de colaboración Cambio Modo Grafo

El mensaje iniciador tiene como parámetro el modo que se quiere aplicar.

Primeramente se recuperará el Panel Canvas y seguidamente se obtendrá el grafo en

edición. El siguiente paso es asignar el nuevo modo del grafo, esto se hace llamando al

método setModo de la clase Grafo. Posteriormente se repintará el grafo para que se

apliquen los cambios y se muestre el nuevo modo.

- 141 - P. Javier Díaz Hernández

Page 152: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.1.27. OBTENER GEMELOS ADYACENTES

.

Figura 69. Diagrama de colaboración Obtener Gemelos Adyacentes

Primeramente se recuperará el Panel Canvas y seguidamente se obtendrá el grafo en

edición. El siguiente paso será conseguir la lista de vértices del grafo y recorrer la lista

comprobando si tiene gemelos adyacentes cada vértice, esto se hace llamando al método

- 142 - P. Javier Díaz Hernández

Page 153: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

gemeloAdyacente. Los vértices gemelos se guardarán en una lista que posteriormente se

verán reflejados en el diálogo correspondiente por el método pintarGemelos.

3.3.2. DIAGRAMAS DE CLASES DE DISEÑO

Un diagrama de clases es un tipo de diagrama estático que describe la estructura de

un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de

clases son utilizados durante el proceso de análisis y diseño de los sistemas, donde se crea

el diseño conceptual de la información que se manejará en el sistema, y los componentes

que se encargaran del funcionamiento y la relación entre uno y otro. El diagrama de clases

se compone de:

- Propiedades también llamados atributos o características, son valores que

corresponden a un objeto, como color, material, cantidad, ubicación. Generalmente se

conoce como la información detallada del objeto. Suponiendo que el objeto es una puerta,

sus propiedades serían: la marca, tamaño, color y peso.

- Operaciones son aquellas actividades o verbos que se pueden realizar con/para este

objeto, como por ejemplo abrir, cerrar, buscar, cancelar, acreditar, cargar. De la misma

manera que el nombre de un atributo, el nombre de una operación se escribe con

minúsculas si consta de una sola palabra. Si el nombre contiene más de una palabra, cada

palabra será unida a la anterior y comenzará con una letra mayúscula, a excepción de la

primera palabra que comenzará en minúscula. Por ejemplo: abrirPuerta, cerrarPuerta,

buscarPuerta, etc.

- Interfaz es un conjunto de operaciones y/o propiedades que permiten a un objeto

comportarse de cierta manera, por lo que define los requerimientos mínimos del objeto.

- Herencia se define como la reutilización de un objeto padre ya definido para poder

extender la funcionalidad en un objeto hijo. Los objetos hijos heredan todas las operaciones

y/o propiedades de un objeto padre. Por ejemplo: Una persona puede subdividirse en

- 143 - P. Javier Díaz Hernández

Page 154: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Proveedores, Acreedores, Clientes, Accionistas, Empleados; todos comparten datos básicos

como una persona, pero además tendrá información adicional que depende del tipo de

persona, como saldo del cliente, total de inversión del accionista, salario del empleado, etc.

Al diseñar una clase se debe pensar en cómo se puede identificar un objeto real, como

una persona, un transporte, un documento o un paquete. Estos ejemplos de clases de objetos

reales, es sobre lo que un sistema se diseña. Durante el proceso del diseño de las clases se

toman las propiedades que identifican como único al objeto y otras propiedades adicionales

como datos que corresponden al objeto. Con los siguientes ejemplos se definen tres objetos

que se incluyen en un diagrama de clases:

A continuación se veremos los diagramas agrupados en varias figuras. En cada clase

se destacarán sólo los métodos y atributos que se consideren más importantes, por lo que

normalmente no se especificarán métodos de creación de objetos o de acceso a atributos,

así como los tipos que retornan métodos, si no son estrictamente necesarios. Con esta

separación y la inclusión de los sólo los métodos importantes se consigue mayor claridad y

comprensión del diseño.

- 144 - P. Javier Díaz Hernández

Page 155: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.2.1. PRINCIPAL

+main()+reiniciar(entrada idioma : String)

-PanelCanvas panelCanvas-PanelCoordenadas panelCoord-BarraHerramientas miBarraH-Menu menu-Locale currentLocale-ResourceBundle messages-String language-String country

Aplicacion

+paintComponent()

-Grafo grafo-PanelCoordenadas pCoord-Popup popup

PanelCanvas

+paintComponent()+initAllLabel()

-int numAristas-int aristaSel-int numVertices-int verticeSel-p : Point -int modeRead-int modeGraph

PanelCoordenadas

+BarraHerramientas()

BarraHerramientas

+Locale()

Locale

+anadirArista(entrada a : Arista)+anadirVertice(entrada v : Vertice)+borrarVertice(entrada v : Vertice)+borrarArista(entrada a : Arista)+PintarGrafo()+buscarVertice(entrada id : int)+buscarArista(entrada id : int)

-vertices [ ] : Vertice-aristas [ ] : Arista-numVertices : int-numAristas : int-verticeSelect : Vertice-aristaSelect : Arista-img_icon_nodo : ImageIcon -img_icon_nodo_sel : ImageIcon -img_icon_nodo_res : ImageIcon -img_icon_nodo_hoja : ImageIcon -color_arista : Color -color_arista_sel : Color -readOnly : Boolean-arbol : Boolean-zoom : double-ruta_log : String

Grafo

+pintarVertice()

-p : Point -id : int-select : Boolean-adyacentes [] : Vertice-resolvedor : Boolean-hoja : Boolean

Vertice

+pintarArista()

-origen : Vertice-fin : Vertice-select : Boolean-id : int-peso : int

Arista

+ResourceBundle()

ResourceBundle<<parámetro>>

+mousePressed()+mouseReleased()+mouseClicked()

MouseListener

+MouseMoved()+MouseDragged()

MouseMotionListener

+Menu()

Menu

- 145 - P. Javier Díaz Hernández

Page 156: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

La clase principal es la clase Aplicacion que contiene la función el método “main”.

Este objeto extiende de la clase JFrame de la librería Swing de Java, que define la ventana

de la aplicación.

La ventana principal (frame) contiene tres elementos diferenciados:

- Menú: la clase “Menu”, es una extensión de JMenuBar de la librería Swing, que

permite ejecutar las distintas funcionalidades de la aplicación.

- Barra de Herramientas: la clase “BarraHerramientas” es una extensión de

JToolBar de la librería Swing, es una barra de iconos que permite un acceso más rápido a

alguna de las funcionalidades más importantes.

- Panel Canvas, la clase “PanelCanvas” extiende de la clase Jpanel en él se editarán y

dibujaran de grafos. Tendrá como atributo más importante el grafo en edición y

sobrescribirá el método paintComponent de la librería Swing.JComponent para pintar el

grafo con todos sus vértices y aristas.

- Panel Coordenadas, la clase “PanelCoordenadas” extiende de la clase Jpanel y

englobará la información sobre el grafo (número de aristas y vértices, qué vértice o arista

está seleccionada, además de los modos de la aplicación) además de la posición del puntero

en el panel Canvas.

También aparecen 2 clases que capturan y manejan los eventos del ratón son

“MouseListener” y “MouseMotionListener” que son implementaciones de las clases de

Java. Se han sobreescrito los métodos “MouseClicked” (captura de evento de cliquear con

el ratón) para introducir vértices y aristas, “MouseReleased” (cuando se libera el botón

izquierdo, “MousePressed” (captura de evento de botón del ratón pulsado), “MouseMoved”

(captura el evento de movimiento del ratón) para actualizar la posición del puntero,

“MouseDragged” (captura de evento de arrastrar con el ratón) para arrastrar vértices.

- 146 - P. Javier Díaz Hernández

Page 157: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

También comentar las clases “Locale” y “ResourceBundle” que nos servirán para

cuando queramos cambiar el idioma de la aplicación.

Por último ver la clase “Grafo” que es la más importante de la aplicación, que

contiene los siguientes atributos principales:

- numVertices: que indica el número de vértices del grafo.

- numeroAristas: que indica el número de aristas del grafo.

- vértices: lista de vértices que constituyen el grafo.

- aristas: lista de aristas que constituyen el grafo.

- verticeSelect: indica el vértice seleccionado.

- aristaSelect: indica la arista seleccionada.

- readOnly: indica el modo de Sólo Lectura o escritura del grafo.

- arbol: indica el modo de Grafo o Árbol del grafo.

- zoom: indica la escala en la que está el grafo.

- ruta_log: indica la ruta donde se escribirán los resultados si se activa la opción

correspondiente.

- color_arista: indica el color de las aristas.

- color_arista_sel: indica el color de la arista seleccionada.

- rutas de las imágenes de los iconos img_icon_vértice, img_icon_vértice_sel,

img_icon_vértice_res y img_icon_vértice_hoja.

También se debe indicar si un grafo es o no “dirigido” y el identificador del siguiente

vértice o arista a crear (“vérticeSiguiente” y “aristaSiguiente”).

- 147 - P. Javier Díaz Hernández

Page 158: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Referente a los métodos de la clase se resaltan los de añadir, buscar y borrar vértices y

aristas, además de los propios de modificar y recuperar los atributos de la clase.

La clase “Vértice”, tiene como atributos:

- p: las coordenadas en el panel de dibujo.

- id: su identificador.

- select: si está seleccionado.

- adyacentes: vértices adyacentes.

- resolvedor: indica si es resolvedor

De sus métodos resaltar el “pintarVertice” que dibuja el vértice.

Por último, la clase “Arista”,

- origen: vértice origen de la arista

- fin: vértice destino de la arista.

- select: si está seleccionado.

- id: su identificador.

- peso: el peso de la arista ( por defecto 1)

De sus métodos destacar el “pintarArista” que dibuja la arista.

- 148 - P. Javier Díaz Hernández

Page 159: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.2.2. TIPOS DE GRAFOS

En la imagen podemos ver todos los tipos de grafos que se pueden crear en la

aplicación, todas estas clases extienden de la clase “Grafo”.

- 149 - P. Javier Díaz Hernández

Page 160: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.2.3. DIMENSIÓN MÉTRICA

+Menu()

Menu

+ResolverGrafos(entrada PanelCanvas : PanelCanvas, entrada PanelCoordenadas : PanelCoordenadas)

ResolverGrafos

+calcularMatriz(int[][] matriz, g Grafo)()+boolean esGrafoCiclico(g:Grafo)()+boolean esConexo(g:Grafo)()+int diametroMatriz(int [][] matrizMedidas)()+boolean productoCartesianoX2(Grafo g,int distH,int distV)()+int calcularMinConjResArbol (Grafo arbol,DialogResolverArbol dialog)()+int[] rVector (int v,ArrayList W,PanelCanvas p,int [][]laMatriz)()+boolean gemelosAdyacentes(Vertice n1,Vertice n2)()+boolean gemelosNoAdyacentes(Vertice n1,Vertice n2)()+void permutacionesSinRepeticion(ArrayList arreglo,int n,ArrayList conjunto)()+boolean comprobar(ArrayList distancias)()

Utilidades

+paintComponent()

-Grafo grafo-PanelCoordenadas pCoord-Popup popup

PanelCanvas

+anadirArista(entrada a : Arista)+anadirVertice(entrada v : Vertice)+borrarVertice(entrada v : Vertice)+borrarArista(entrada a : Arista)+PintarGrafo()+buscarVertice(entrada id : int)+buscarArista(entrada id : int)

-vertices [ ] : Vertice-aristas [ ] : Arista-numVertices : int-numAristas : int-verticeSelect : Vertice-aristaSelect : Arista-img_icon_nodo : ImageIcon -img_icon_nodo_sel : ImageIcon -img_icon_nodo_res : ImageIcon -img_icon_nodo_hoja : ImageIcon -color_arista : Color -color_arista_sel : Color -readOnly : Boolean-arbol : Boolean-zoom : double-ruta_log : String

Grafo

+pintarVertice()

-p : Point -id : int-select : Boolean-adyacentes [] : Vertice-dist : int-padre : int-isDead : int-resolvedor : Boolean-hoja : Boolean

Vertice

+pintarArista()

-origen : Vertice-fin : Vertice-select : Boolean-id : int-peso : int

Arista

<<parametro>>

+run()

MiHiloGrafo<<parametro>>

+DialogResolverGrafo(entrada PanelCanvas : PanelCanvas)

DialogResolverGrafo

<<parametro>>

- 150 - P. Javier Díaz Hernández

Page 161: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Una vez iniciada la opción del menú o de la barra de herramientas del cálculo de la

dimensión métrica se creará un objeto “ResolverGrafo”, que creará a su vez un objeto

diálogo “DialogResolverGrafo” para mostrar las opciones y recoger los datos que

introduzca el usuario. Estos 2 objetos tienen visibilidad de parámetro del “PanelCanvas” ya

que van a necesitar la estructura del grafo.

Una vez mostrado el diálogo se escogerá el cálculo de todos los conjuntos resolutivos

o sólo los de un tamaño. Al lanzar el usuario el cálculo se creará un hilo (“MiHiloGrafo”)

ya que el cálculo puede ser muy costoso y dejarnos sin el control de la aplicación, al crear

el hilo se consigue que se pueda cancelar la operación en cualquier momento al haber 2

hilos de ejecución y así no tener problemas si tardara demasiado, porque al tener sólo un

hilo de ejecución tendríamos que esperar la respuesta del cálculo para poder volver a tener

control sobre la aplicación.

La clase “MiHiloGrafo” se servirá de la ayuda de la clase “Utilidades” instanciándola.

En ésta clase se harán la mayoría de los cálculos, como conseguir las permutaciones de los

vértices del grafo y comprobar si cumplen una serie de condiciones. También posee

métodos para calcular la matriz de distancias del grafo utilizando el algoritmo de Dijkstra

que resultará útil en la funcionalidad correspondiente.

Una vez acabados los cálculos se mostrarán en el diálogo en varias cajas, uno con la

lista de conjuntos resolutivos y otra mostrando las distancias de cada conjunto.

El cálculo de la dimensión métrica 1-tolerante es semejante creando el objeto diálogo

y el hilo correspondiente.

.

- 151 - P. Javier Díaz Hernández

Page 162: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

3.3.2.4. OTRAS FUNCIONALIDADES

+Menu()

Menu

MatrizDistancias ModificarModo ModificarPreferencias AyudaAplicacion

+paintComponent()

-Grafo grafo-PanelCoordenadas pCoord-Popup popup

PanelCanvas

+anadirArista(entrada a : Arista)+anadirVertice(entrada v : Vertice)+borrarVertice(entrada v : Vertice)+borrarArista(entrada a : Arista)+PintarGrafo()+buscarVertice(entrada id : int)+buscarArista(entrada id : int)

-vertices [ ] : Vertice-aristas [ ] : Arista-numVertices : int-numAristas : int-verticeSelect : Vertice-aristaSelect : Arista-img_icon_nodo : ImageIcon -img_icon_nodo_sel : ImageIcon -img_icon_nodo_res : ImageIcon -img_icon_nodo_hoja : ImageIcon -color_arista : Color -color_arista_sel : Color -readOnly : Boolean-arbol : Boolean-zoom : double-ruta_log : String

Grafo

+pintarVertice()

-p : Point -id : int-select : Boolean-adyacentes [] : Vertice-dist : int-padre : int-isDead : int-resolvedor : Boolean-hoja : Boolean

Vertice

+pintarArista()

-origen : Vertice-fin : Vertice-select : Boolean-id : int-peso : int

Arista

DialogMatrizDistancias

DialogMatrizDistancias DialogModificarPreferencias

DialogAyuda

<<param>>

<<param>> <<param>>

<<param>>

<<param>>

<<param>>

<<param>>

<<param>>

+calcularMatriz(int[][] matriz, g Grafo)()+int diametroMatriz(int [][] matrizMedidas)()

Utilidades

- 152 - P. Javier Díaz Hernández

Page 163: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

+Menu()

Menu

AbrirGrafo GrafosEspecialesGrabarGrafo CambiarIdioma

<<parámetro>><<parámetro>> <<parametro>>

+paintComponent()

-Grafo grafo-PanelCoordenadas pCoord-Popup popup

PanelCanvas

DialogGrafoEspecial

<<parametro>>

<<parametro>>

+anadirArista(entrada a : Arista)+anadirVertice(entrada v : Vertice)+borrarVertice(entrada v : Vertice)+borrarArista(entrada a : Arista)+PintarGrafo()+buscarVertice(entrada id : int)+buscarArista(entrada id : int)

-vertices [ ] : Vertice-aristas [ ] : Arista-numVertices : int-numAristas : int-verticeSelect : Vertice-aristaSelect : Arista-img_icon_nodo : ImageIcon -img_icon_nodo_sel : ImageIcon -img_icon_nodo_res : ImageIcon -img_icon_nodo_hoja : ImageIcon -color_arista : Color -color_arista_sel : Color -readOnly : Boolean-arbol : Boolean-zoom : double-ruta_log : String

Grafo

+pintarVertice()

-p : Point -id : int-select : Boolean-adyacentes [] : Vertice-dist : int-padre : int-isDead : int-resolvedor : Boolean-hoja : Boolean

Vertice

+pintarArista()

-origen : Vertice-fin : Vertice-select : Boolean-id : int-peso : int

Arista

+main()+reiniciar(entrada idioma : String)

-PanelCanvas panelCanvas-PanelCoordenadas panelCoord-BarraHerramientas miBarraH-Menu menu-Locale currentLocale-ResourceBundle messages-String language-String country

Aplicacion

- 153 - P. Javier Díaz Hernández

Page 164: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Diseño

Como se observa en las imágenes las demás funcionalidades se lanzan desde la clase

menú en el que cada ítem tiene diferentes listeners que lanzarán en cada caso la creación de

los objetos diálogos (extienden de JDialog de la clase Swing de Java) o del objeto

correspondiente para recoger los datos introducidos por el usuario. Todos estos objetos

tienen como parámetro el PanelCanvas porque contiene todos las estructuras importantes

como el grafo en edición.

- 154 - P. Javier Díaz Hernández

Page 165: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

4. MANUAL DE USUARIO

En esta sección se expondrá el manual de usuario de la aplicación. Primeramente, se

dará una visión genérica de la misma y, a continuación, se profundizará más en detalle en

las funcionalidades existentes.

4.1 VISIÓN GENERAL DE LA APLICACIÓN

Al iniciar la aplicación se mostrará la ventana de la figura:

Figura 70. Pantalla inicial

- 155 - P. Javier Díaz Hernández

Page 166: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Como se observa en la Figura 70, la aplicación se divide en 4 partes:

o Un PANEL CANVAS, en el que editaremos los grafos. Nos permitirá

dibujar el grafo sobre el que se va a operar.

o Un PANEL INFO, que nos mostrará las propiedades del grafo, así

como:

El número de aristas y vértices, además de las selecciones hechas.

Figura 71. Cuadro propiedades del grafo

Las coordenadas del puntero.

Figura 72. Cuadro posición del puntero

Los modos en los que se encuentra el grafo: Grafo/Árbol y Sólo

Lectura/Normal.

Figura 73. Cuadro modos del grafo

- 156 - P. Javier Díaz Hernández

Page 167: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

o Un menú que permite ejecutar las opciones existentes.

Figura 74. Barra menú

o Una barra de herramientas, que permite acceder a las opciones

existentes de forma más rápida.

Figura 75. Barra de herramientas

4.2 VISIÓN DETALLADA DE LA APLICACIÓN

Esta sección de “Manual de usuario” la podemos encontrar, dentro de la aplicación,

en la opción de menú “Ayuda” y en el ítem “Índice de contenidos”.

Figura 76. Menú de ayuda

- 157 - P. Javier Díaz Hernández

Page 168: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

- Al iniciar esta opción, se nos abrirá una ventana en la que vienen reflejadas todas las funcionalidades de la aplicación.

Figura 77. Ventana de Índice de contenidos

- En el cuadro de la izquierda, hay un árbol desplegable que nos servirá de índice de los contenidos. La información aparecerá en el cuadro de la derecha, pulsando en la rama que se quiera consultar.

A continuación, detallaremos cada opción en el orden que muestra el índice de contenidos de la Figura 77.

- 158 - P. Javier Díaz Hernández

Page 169: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

4.2.1. ARCHIVO

Opción del menú en la que se recogen las siguientes acciones:

1. Crear un grafo o un árbol nuevo: NUEVO 2. Abrir un grafo o árbol de un fichero: ABRIR 3. Guardar un grafo o un árbol en un fichero: GUARDAR 4. Salir de la aplicación: SALIR

Figura 78. Menú Archivo

NUEVO

Submenú que recoge las siguientes acciones:

1. Crear nuevo grafo manualmente (Nuevo Manual)

Permite crear un grafo manualmente de la siguiente forma:

• Para insertar un nuevo vértice hay que hacer doble click en el panel. • Para seleccionar un vértice hacer un click sobre el vértice a seleccionar • Para añadir una arista entre 2 vértices seleccionar un vértice origen y

hacer otro click en el vértice destino • Para seleccionar una arista hacer un click sobre la arista a seleccionar • Para editar el grafo (mover y borrar) se explicará más profundamente en

la sección Editar.

Al pulsar en esta acción, el modo del tipo de grafo cambiará a "Modo Grafo". En la segunda caja de texto encima del panel de dibujo, se pueden consultar en qué modo estamos en cada momento, pues dependiendo del modo se podrán hacer unas acciones u otras.

- 159 - P. Javier Díaz Hernández

Page 170: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

A esta acción también se puede acceder por el icono de la barra de herramientas.

2. Crear un grafo de forma automática (Nuevo automático)

Permite crear un grafo aleatorio automáticamente a partir de los siguientes parámetros:

- El número de vértices del grafo.

- La probabilidad de existencia de arista entre cada uno de los vértices con los demás vértices (en porcentaje entre 0 y 100).

Estos parámetros serán introducidos por el usuario en el cuadro diálogo que aparecerá en pantalla.

A esta acción también se puede acceder por el icono de la barra de herramientas.

3. Crear un árbol manualmente (Nuevo árbol)

Permite crear un árbol manualmente de la siguiente forma:

• Para insertar un nuevo vértice hacer doble click en el panel

- 160 - P. Javier Díaz Hernández

Page 171: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

• Para seleccionar un vértice hacer un click sobre el vértice a seleccionar • Para añadir una arista entre 2 vértices seleccionar un vértice origen y

hacer otro click en el vértice destino. No permitirá añadir una arista entre 2 vértices si el árbol deja de cumplir las condiciones para ser árbol (ciclos,etc...)

• Para seleccionar una arista hacer un click sobre la arista a seleccionar • Para editar el árbol (mover y borrar) ir a la sección del índice Editar

Al pulsar en esta acción, el modo de tipo de grafo cambiará a "Modo Árbol". En la segunda caja de texto encima del panel de dibujo, se puede consultar en qué modo estamos en cada momento, pues dependiendo del modo se podrán hacer unas acciones u otras.

También se puede acceder a estas acciones mediante el icono de la barra de herramientas.

ABRIR

Permite cargar un grafo desde un fichero previamente guardado por el usuario con

formato legible por la aplicación.

Se abre un cuadro diálogo que permite elegir el fichero que se quiere abrir.

- 161 - P. Javier Díaz Hernández

Page 172: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Figura 79. Diálogo selección archivo a abrir

Una vez elegido, se cargará el grafo en el panel canvas (si es correcto el formato del

fichero).

También se puede acceder a esta acción por el icono de la barra de herramientas

GUARDAR

Permite guardar un grafo en un fichero.

Se abre un cuadro de diálogo que permite elegir donde se quiere guardar.

- 162 - P. Javier Díaz Hernández

Page 173: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Figura 80. Diálogo de selección archivo a guardar

A esta acción se puede acceder por el icono de la barra de herramientas.

SALIR

Permite salir de la aplicación.

A esta acción también se puede acceder cerrando la ventana principal.

- 163 - P. Javier Díaz Hernández

Page 174: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

4.2.2. EDITAR

Opción del menú en la que se recogen las siguientes acciones:

1. Mover un vértice seleccionado introduciendo unas coordenadas : MOVER 2. Eliminar un vértice o arista seleccionados : BORRAR

Figura 81. Menú Editar

MOVER

Permite mover un vértice del grafo o árbol que esté seleccionado.

Se abre un cuadro diálogo que permite introducir las coordenadas a las que queremos mover el vértice.

Figura 82. Cuadro diálogo Mover vértice

También se puede mover un vértice seleccionado con el ratón, sólo hay que hacer click en el vértice seleccionado y arrastrarlo hacia dónde queramos posicionarlo.

- 164 - P. Javier Díaz Hernández

Page 175: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

A esta acción también se puede acceder por:

1. Por el icono de la barra de herramientas. 2. Hacer click con el botón derecho del ratón sobre el vértice seleccionado y elegir

la opción “Mover”.

BORRAR

Permite borrar un vértice o una arista del grafo o árbol que estén seleccionados.

También se puede eliminar un vértice o una arista seleccionada con el ratón, sólo hay que hacer click con el botón derecho del ratón en el vértice o arista seleccionados y elegir la opción “Borrar”. Siempre pedirá confirmación antes de eliminar el vértice o la arista.

Figura 83. Cuadro diálogo de confirmación Borrar

Además, se puede acceder por el icono de la barra de herramientas.

4.2.3. RESOLVER GRAFO

Opción del menú en la que se recogen las siguientes acciones:

1. Resolver grafo. 2. Resolver árbol.

Figura 84. Menú Resolver Grafo

- 165 - P. Javier Díaz Hernández

Page 176: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Un conjunto S de vértices pertenecientes a un grafo G "resuelve" a G si todos los

vectores de distancias de cada uno de los vértices de S a G son únicos.

La dimensión métrica de G es el cardinal mínimo que tiene un conjunto S que

resuelve G.

RESOLVER GRAFO

Permite ver los conjuntos que resuelven el grafo que está en el panel.

Se abre un cuadro diálogo con 2 pestañas, y en la primera “Resolver Grafo” se divide en 3

partes:

Figura 85. Cuadro Diálogo Resolver Grafo

- 166 - P. Javier Díaz Hernández

Page 177: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

1. Bloque izquierdo: permite elegir el tamaño de los conjuntos que resuelven al grafo

(cuadro “Tamaño del conjunto”) o que los devuelva todos (cuadro “Todos los

conjuntos”). También, muestra una acotación previa del tamaño de la dimensión

métrica del grafo (cuadro “Mínimo conjunto resolutivo”) utilizando los teoremas

anteriormente vistos, además de calcular los mínimos conjuntos resolutivos.

2. Bloque central: contiene la lista de los conjuntos de vértices que resuelven el grafo

que es el resultado de los parámetros introducidos en el “Bloque izquierdo”.

3. Bloque derecho: contiene los vectores de distancias del conjunto seleccionado en la

lista mostrada en el “Bloque central”.

- El cálculo de los conjuntos resolutivos se puede interrumpir en cualquier momento

haciendo click en el botón con el icono al lado de la barra de proceso.

La segunda pestaña “Conjuntos resolutivos 1-tolerantes” es para el cálculo de la dimensión

métrica 1-tolerante y se divide en 2 partes:

Figura 86. Cuadro diálogo Conjuntos resolutivos 1-tolerantes del grafo

- 167 - P. Javier Díaz Hernández

Page 178: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

1. Bloque izquierdo: permite elegir el tamaño de los conjuntos resolutivos 1-tolerantes

del grafo a calcular

2. Bloque derecho: muestra una lista con los conjuntos resolutivos 1-tolerantes del

grafo

- El cálculo es más costoso cuantos más vértices contenga el grafo, ya que la complejidad

del cálculo crece exponencialmente, por lo que con un grafo de más de 12 vértices el

cálculo ya no es inmediato.

A esta acción también se puede acceder por el icono de la barra de herramientas.

- 168 - P. Javier Díaz Hernández

Page 179: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

RESOLVER ÁRBOL

Permite ver los conjuntos que resuelven el árbol que está en el panel.

Se abre un cuadro diálogo con 3 pestañas:

Figura 87. Cuadro diálogo Resolver Árbol

- La primera pestaña es para calcular la dimensión métrica del árbol y se divide en 3 partes:

1. Bloque izquierdo: permite elegir el tamaño de los conjuntos que resuelven el árbol

("Tamaño del conjunto") o que los devuelva todos ("Todos los conjuntos").

Además, muestra una predicción exacta del tamaño de la dimensión métrica del

árbol ("Mínimo conjunto resolutivo").

2. Bloque central: contiene la lista de los conjuntos de vértices que resuelven el árbol,

que es el resultado de los parámetros introducidos en el "bloque izquierdo".

3. Bloque derecho: contiene los vectores de distancias del conjunto seleccionado en la

lista mostrada en el "bloque central".

- 169 - P. Javier Díaz Hernández

Page 180: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

- La segunda pestaña muestra la clasificación de vértices del árbol y se divide en 2

partes:

Figura 88. Cuadro diálogo Clasificación vértices exterior-major árbol

- 170 - P. Javier Díaz Hernández

Page 181: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Figura 89. Cuadro diálogo Clasificación vértices major árbol

1. Bloque izquierdo: permite ver los vértices del árbol que son Major Vertex

2. Bloque derecho: permite ver los vértices del árbol que son Exterior Major Vertex.

La dimensión métrica la podemos calcular a través de los anteriores valores, ya que es igual

al sumatorio del número de terminales de los exterior major vertex menos el número de

major vertex.

- 171 - P. Javier Díaz Hernández

Page 182: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

- La tercera pestaña es para el cálculo de la dimensión métrica 1-tolerante y se

divide en 2 partes:

Figura 90. Cuadro diálogo Conjuntos resolutivos 1-tolerantes

1. Bloque izquierdo: permite ver el tamaño de los conjuntos resolutivos 1-tolerantes

del árbol.

2. Bloque derecho: muestra una lista con los conjuntos resolutivos 1-tolerantes del

árbol.

- La dimensión métrica 1-tolerante la podemos calcular a través de los anteriores valores,

ya que es igual al sumatorio del número de terminales de los exterior major vertex menos el

número de major vertex.

- 172 - P. Javier Díaz Hernández

Page 183: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

- El cálculo de los conjuntos resolutivos se puede interrumpir en cualquier momento

haciendo click en el botón con el icono al lado de la barra de proceso.

- El cálculo es más costoso cuantos más vértices contenga el árbol ya que la complejidad

del cálculo crece exponencialmente, por lo que con un árbol de más de 12 vértices el

cálculo ya no es inmediato.

- A esta acción se puede acceder también por el icono de la barra de herramientas

4.2.4. DISTANCIA MÉTRICA

Opción del menú en la que se permite calcular la matriz de distancias mínimas del

grafo o del árbol.

Figura 91. Menú Distancia Métrica

MATRIZ DISTANCIAS

Permite calcular la matriz de distancias mínimas del grafo o del árbol.

Se abre un cuadro de diálogo en el que se muestra la matriz junto con su diámetro y

número de vértices.

- 173 - P. Javier Díaz Hernández

Page 184: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Figura 92. Cuadro diálogo Matriz Distancias

- A esta acción se puede acceder por el icono de la barra de herramientas

4.2.5. GEMELOS ADYACENTES

Opción del menú en la que se permite clasificar los vértices gemelos adyacentes y los

gemelos no adyacentes del grafo o del árbol.

- 174 - P. Javier Díaz Hernández

Page 185: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Figura 93. Cuadro diálogo de Gemelos adyacentes

- A esta acción se puede acceder por el icono de la barra de herramientas.

4.2.6. GRAFOS ESPECIALES

Opción del menú en la que se recogen las siguientes acciones:

1. Crear un grafo cíclico: GRAFO CÍCLICO

2. Crear un grafo completo: GRAFO COMPLETO

3. Crear un grafo rueda: GRAFO RUEDA

4. Crear un árbol : ÁRBOL

5. Crear un árbol estrella : ÁRBOL ESTRELLA

6. Crear un grafo cartesiano : GRAFO CARTESIANO

- 175 - P. Javier Díaz Hernández

Page 186: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

7. Crear un grafo de Petersen : GRAFO PETERSEN

Figura 94. Menú Grafos Especiales

GRAFO CÍCLICO

Permite crear un grafo cíclico a partir de los siguientes parámetros:

• El número de vértices del grafo

Estos parámetros serán introducidos por el usuario en el cuadro diálogo que aparecerá

en pantalla.

Figura 95. Cuadro diálogo Grafo Cíclico

- 176 - P. Javier Díaz Hernández

Page 187: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

GRAFO COMPLETO

Permite crear un grafo completo a partir de los siguientes parámetros:

• El número de vértices del grafo

Estos parámetros serán introducidos por el usuario en el cuadro diálogo que aparecerá

en pantalla.

Figura 96. Cuadro diálogo Grafo Completo

GRAFO RUEDA

Permite crear un grafo rueda a partir de los siguientes parámetros:

• El número de vértices del grafo sin contar el vértice central.

El usuario introducirá estos parámetros en el cuadro diálogo que aparecerá en

pantalla.

- 177 - P. Javier Díaz Hernández

Page 188: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Figura 97. Cuadro diálogo Grafo Rueda

ÁRBOL

Permite crear un árbol automáticamente a partir de los siguientes parámetros:

1. El número de vértices del árbol

2. El grado de todos los vértices del árbol , excepto la raíz y el último nivel

Estos parámetros serán introducidos por el usuario en el cuadro diálogo que aparecerá

en pantalla.

- 178 - P. Javier Díaz Hernández

Page 189: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Figura 98. Cuadro diálogo de Nuevo Árbol

ÁRBOL ESTRELLA

Permite crear un árbol estrella a partir de los siguientes parámetros:

• El número de vértices del árbol sin contar el central

- El usuario introducirá estos parámetros en el cuadro diálogo que aparecerá en

pantalla.

Figura 99. Cuadro diálogo Árbol Estrella

- 179 - P. Javier Díaz Hernández

Page 190: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

GRAFO CARTESIANO

Permite crear el grafo cartesiano del grafo que esté en el panel a partir de los

siguientes parámetros:

1. Distancia vertical entre vértices, si es positiva el grafo reflejo estará por debajo de

los vértices originales y si es negativa por encima.

2. Distancia horizontal entre vértices, si es positiva el grafo reflejo estará a la derecha

de los vértices originales y si es negativa a la izquierda.

Estos parámetros serán introducidos por el usuario en el cuadro diálogo que aparecerá

en pantalla.

Figura 100. Cuadro diálogo Grafo Cartesiano

- 180 - P. Javier Díaz Hernández

Page 191: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

GRAFO PETERSEN

Permite crear el grafo de Petersen a partir de los siguientes parámetros:

1. El número de vértices del grafo

2. El ratio del grafo de Petersen.

Estos parámetros serán introducidos por el usuario en el cuadro diálogo que aparecerá

en pantalla.

Figura 101. Cuadro diálogo Grafo Petersen

4.2.7. HERRAMIENTAS

Opción del menú que permite seleccionar diferentes alternativas para cambiar la

estética de la aplicación.

Figura 102. Menú Herramientas

- 181 - P. Javier Díaz Hernández

Page 192: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Se abrirá un cuadro diálogo con 3 pestañas, las acciones son:

1. Cambiar las opciones del registro de resultados, como activarlo y editar la ruta

donde estará el fichero excel : REGISTRO DE RESULTADOS EN EXCEL

2. Cambiar los iconos de la pintura del grafo : CAMBIO DE ICONOS DE

VÉRTICES

3. Cambiar los colores de selección de aristas del grafo: CAMBIO DE COLOR DE

ARISTAS

A esta opción se puede acceder por el icono de la barra de herramientas

REGISTRO DE RESULTADOS EN EXCEL

Permite cambiar las opciones del registro de resultados del cálculo de la dimensión métrica

de la aplicación. Permite cambiar:

1. La activación de la escritura en un archivo excel.

2. La ruta del fichero que nos servirá de soporte.

- El cuadro diálogo que aparecerá tiene 3 pestañas, pero estas opciones se presentan en la

pestaña "Cambia Iconos" en la parte posterior, el panel “Configuración log tiempos de

cálculo”.

- 182 - P. Javier Díaz Hernández

Page 193: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

Figura 103. Cuadro diálogo Herramientas

CAMBIO DE ICONOS DE VÉRTICES

Permite cambiar los iconos de pintura del grafo. Permite cambiar los iconos de:

1. Los vértices del grafo

2. Los vértices seleccionados del grafo

3. Los vértices que pertenecen a un conjunto que resuelve al grafo (también los

vértices major y exterior major)

4. Los vértices que son hojas de un árbol

- 183 - P. Javier Díaz Hernández

Page 194: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

- Las rutas de los iconos las introducirá el usuario en el cuadro diálogo que

aparecerá en pantalla.

Figura 104. Cuadro diálogo elegir icono vértice

- El cuadro de la Figura 103 tiene 3 pestañas, pero estas opciones se presentan en la

pestaña "Cambia Iconos", en la sección central.

CAMBIO DE COLOR DE ARISTAS

Permite cambiar el color de las aristas del grafo, tanto las seleccionadas como las no

seleccionadas.

- 184 - P. Javier Díaz Hernández

Page 195: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

- El cuadro diálogo que aparecerá tiene 3 pestañas, pero estas opciones se presentan en la

pestaña "Color Arista" y otra similar “Color arista seleccionada”. El usuario podrá elegir el

color que desee aplicar.

Figura 105. Cuadro diálogo cambio de color aristas

4.2.8. SELECCIÓN DE MODOS

La aplicación tiene 2 modos de acción:

1. Modo lectura-escritura

2. Modo grafo-árbol

- 185 - P. Javier Díaz Hernández

Page 196: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

- Hay un panel situado encima del panel de dibujo del grafo que nos indica el estado

de los modos en cada momento. Son 2 cajas de texto, ya mostrados en la Figura 73:

1. La situada a la izquierda: muestra el "Modo lectura-escritura": MODO DE

LECTURA / ESCRITURA

2. La situada a la derecha: muestra el "Modo grafo-árbol" : MODO GRAFO /

ÁRBOL

MODO DE LECTURA / ESCRITURA

- Tiene 2 estados posibles:

1. Normal (Escritura). Se podrá editar el grafo

2. Sólo lectura (Lectura). No se podrá editar el grafo

- Por defecto estará en "Modo Normal". Sin embargo, se puede cambiar al modo que se

desee mediante el icono de la barra de herramientas.

- Si aumentamos o disminuimos el zoom se cambiará automáticamente al "Modo Sólo

Lectura", ya que con el zoom activado no se puede editar el grafo.

MODO GRAFO / ÁRBOL

- Tiene 2 estados posibles:

1. Modo Grafo. Permite editar grafos

2. Modo Árbol. Sólo permite editar árboles

- 186 - P. Javier Díaz Hernández

Page 197: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

- Por defecto estará en el "Modo Grafo". El modo cambiará dependiendo de la opción

elegida al crear nuevo grafo o árbol.

- En el "Modo Árbol" no se podrá introducir aristas entre vértices si no cumplen las

condiciones propias de un árbol (ser conexo y no tener ciclos), mostrándose un mensaje

error con información de lo ocurrido.

- Mediante el icono de la barra de herramientas se permite cambiar de un modo a otro

cuando sea posible, ya que si un grafo no es árbol mostrará un mensaje de error. El cambio

del modo árbol al modo grafo siempre será posible.

4.2.9. ZOOM

Opción que permite hacer zoom.

A esta acción se puede acceder por el icono de la barra de herramientas.

El usuario elegirá la escala a través de un selector de escalas:

Figura 106. Selector de escalas de zoom

Como se ha apuntado anteriormente al activar el zoom se cambiará automáticamente

al "Modo Sólo Lectura", ya que con el zoom activado no se puede editar el grafo.

- 187 - P. Javier Díaz Hernández

Page 198: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Manual de usuario

4.2.10. CAMBIAR IDIOMA

- La aplicación es multi-idioma, con esta acción cambiará el idioma de la aplicación.

Sólo está disponibles los idiomas castellano e inglés (pudiéndose ampliar en un

futuro).Dependiendo del icono pulsado cambiará al idioma correspondiente:

1. Si el icono es el cambio será al idioma castellano

2. Si el icono es el cambio será al idioma inglés

- 188 - P. Javier Díaz Hernández

Page 199: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Conclusiones

5. CONCLUSIONES

La realización de este proyecto de fin de carrera me ha aportado una experiencia muy

positiva a nivel personal y profesional.

A nivel personal, me ha supuesto llegar a un nivel de autoexigencia mayor en

esfuerzo, disciplina y en planificación del tiempo. Ha sido una tarea ardua y difícil, al estar

trabajando a jornada completa durante la elaboración del proyecto, haciendo la

simultaneidad de las dos tareas muy complicada.

A nivel profesional, ha contribuido a asentar conocimientos tanto de Ingeniería del

Software y de Teoría de Grafos como del mejor aprendizaje y manejo del lenguaje

orientado a objetos JAVA. Todo esto, me hace afrontar cualquier proyecto con más

optimismo y experiencia para sacarlo adelante.

Sobre las futuras líneas de continuación de este PFC puede ser interesante:

- La inclusión de más algoritmos relacionados con grafos, que sería una tarea más

sencilla, ya que la parte de edición está bastante completa y el software bastante

estructurado, y sólo habría que añadir las funcionalidades deseadas.

- La inserción de más idiomas, ya que sólo habría que traducir los literales de la

aplicación e incluirlos de manera sumamente fácil.

- 189 - P. Javier Díaz Hernández

Page 200: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Referencias bibliográficas

6. REFERENCIAS BIBLIOGRÁFICAS

[1] José Cáceres, Carmen Hernando, Mercé Mora, Ignacio M. Pelayo, M. Luz

Puertas, Carlos Seara y David R.Wood. “On the metric dimension of cartesian

products of graphs”. SIAM J. Discrete Math., Vol. 21(2): 423–441, 2007.

[2] Francisco Javier Ceballos, “JAVA 2. Interfaces gráficas y Aplicaciones”, RA-

MA, 2006.

[3] Francisco Javier Ceballos, “JAVA 2. Leguaje y Aplicaciones”, RA-MA,

2007.

[4] G. Chartrand, L. Eroh, M. A. Johnson, and O. R. Oellermann. “Resolvability

in graphs and the metric dimension of a graph”. Discrete Appl. Math., 105(1-3):

104–107, 2000.

[5] G. Chartrand, L. Eroh, M. A. Johnson, and O. R. Oellermann. “Resolvability

in graphs and the metric dimension of a graph”. Discrete Appl. Math., 105(1-3):

99–113, 2000.

[6] G. Chartrand, L. Eroh, M. A. Johnson, and O. R. Oellermann. “Resolvability

in graphs and the metric dimension of a graph”. Discrete Appl. Math., 105(1-3):

110–113, 2000.

[7] Gary Chartrand y Ping Zhang. “The theory and applications of resolvability in

graphs”. A survey. Proc. 34th Southeastern International Conf. on Combinatorics,

Graph Theory and Computing, vol. 160 of Congr. Numer.: 47–68, 2003.

[8] Gary Chartrand, Linda Eroh, Mark A. Johnson, Ortrud R. Oellermann.

“Resolvability in graphs and the metric dimension of a graph”. 2000

- 190 - P. Javier Díaz Hernández

Page 201: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Referencias bibliográficas

[9] G. Chartrand y Ping Zhang, “Introduction to Graph Theory”, Mc Graw-Hill,

2004.

[10] Bruce Eckel, “Thinking in Java, 4th Edition”, Prentice Hall, 2006.

[11] X. Ferré Grau , M.I. Sánchez Segura M.I., “Desarrollo Orientado a Objetos

con UML”, 2001.

[12] M.R. Garey, D.S. Johnson, Computers and Intractability: “A Guide to the

Theory of NP-Completeness”, Freeman, New York, 1979.

[13] F. Harary, R.A. Melter, “On the metric dimension of a graph”, Ars Combin.

2, 191-195. 1976

[14] Hernando C., Mora M., Pelayo I.M., Seara C. y Wood D.R. “Grafos de orden

máximo mínimo con diámetro y dimensión métrica fijados”. Universidad

Politécnica de Cataluña, (313 – 314). 2007

[15] Carmen Hernando, Mercé Mora, Ignacio M. Pelayo, Carlos Seara y David R.

Wood. “Extremal graph theory for metric dimension and diameter”. SIAM J.

Discrete Math., enviado. http://www.arxiv.org/math/0705.0938v1. 2007

[16] Hernando, C.; Mora, M.; Pelayo, I.M.;Seara,C.; Wood, D. R.. Universidad

Politécnica de Cataluña. “Grafos de orden máximo y mínimo con diámetro y

dimensión métrica fijados”. 2006

[17] C. Hernando, M. Mora, P.J. Slater y D. R. Wood. “Dimensión Métrica

Tolerante de un Grafo”. A: “VI Jornadas de Matemática Discreta y Algorítmica”.

Ediciones i Publicaciones de la UdL, 2008, p. 395-400. 2008

[18] S. Khuller, B. Raghavachari, and A. Rosenfeld. “Landmarks in graphs”.

Discrete Appl. Math., 70(3): 217–229, 1996.

- 191 - P. Javier Díaz Hernández

Page 202: UNIVERSIDAD POLITÉCNICA DE MADRID · Ha sido duro compaginar la elaboración del proyecto con el trabajo a jornada completa, que llegó a ser en ocasiones ardua y tediosa, pero gracias

DIMENSIÓN MÉTRICA DE GRAFOS Referencias bibliográficas

[19] C. Poisson, P. Zhang, “The dimension of unicyclic graphs”, J. Combin. Math.

Combin, Comput., accepted. 2002

[20] P. J. Slater, “Leaves of trees”, Congr. Numer. 14, 549-559. 1975

[21] P.J. Slater, “Dominating and reference sets in a graph”, J. Math. Phys. Sci. 22

445-455. 1988

[22] Peter J. Slater. “Leaves of trees”. Proc. 6th Southeastern Conf. on

Combinatorics, Graph Theory, and Computing, vol. 14 of Congressus

Numerantium: 549–559, 1975.

[23] S. V. Yushmanov. Estimates for the metric dimension of a graph in terms of

the diameters and the number of vertices. Vestnik Moskow. Univ. Ser. I Mat.

Mekh., 103: 68–70, 1987.

7. PÁGINAS WEB

http:// www.wikipedia.org

http://www.javareference.com/

http://revista-redes.rediris.es/

http://www.analytictech.com/networks

- 192 - P. Javier Díaz Hernández