universidad politÉcnica de madrid · ha sido duro compaginar la elaboración del proyecto con el...
TRANSCRIPT
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
DIMENSIÓN MÉTRICA DE GRAFOS Diseño
Figura 40. Primer diagrama de casos de uso
- 56 - P. Javier Díaz Hernández
DIMENSIÓN MÉTRICA DE GRAFOS Diseño
Figura 41. Segundo diagrama de casos de uso
- 57 - P. Javier Díaz Hernández
DIMENSIÓN MÉTRICA DE GRAFOS Diseño
Figura 42. Tercer diagrama de casos de uso
- 58 - P. Javier Díaz Hernández
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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