Anda di halaman 1dari 4

MaGraDa: Una Herramienta para el Tratamiento de

Grafos en Matemtica Discreta

Caballero Palomino, Miguel ngel Migalln Gomis, Violeta


Penads Martnez, Jose
Dept. de Ciencia de la Computacin e Inteligencia Artificial
Universidad de Alicante
E-03071 Alicante
e-mail: MCP1267@red.cam.es, violeta@dccia.ua.es, jpenades@dccia.ua.es

Resumen 2. MaGraDa. Modo texto

Parte de los contenidos en la docencia de la El modo texto de MaGraDa permite trabajar con
Matemtica Discreta, dentro de las titulaciones de los grafos de forma analtica. Es decir, se trabaja
Informtica, consiste en el estudio de grafos. En en todo momento con los datos del grafo, pero sin
este trabajo se presenta una herramienta para la visualizarlo grficamente.
realizacin de las prcticas de la mencionada
asignatura dentro del contexto de los grafos. 2.1. Modo texto: Men Grafo

El men Grafo es la parte donde se pueden crear


1. Introduccin grafos nuevos o abrir grafos ya creados desde
fichero, modificarlos, borrarlos de memoria,
El paquete de software MaGraDa [2] (Grafos para seleccionarlos o guardarlos en un fichero para su
tratamiento posterior. La Figura 1 muestra el
Matemtica Discreta) es una aplicacin
informtica programada en lenguaje JAVA [4], formato de este men.
[7] y diseada especficamente para trabajar con
grafos. MaGraDa trabaja con grafos tanto
dirigidos como no dirigidos y ponderados como
no ponderados. Este paquete es sencillo y cmodo
de manejar, est basado en mens sobre pantalla y
consta de dos pantallas de visualizacin: Modo
texto y Modo grfico. Ambas pantallas de trabajo
son prcticamente equivalentes en funcionalidad.
Es decir, no hay ningn mtodo que est slo
implementado para una forma de trabajo
exclusivamente. Sin embargo, la forma de ofrecer
los resultados al usuario no es la misma en los dos Figura 1. Formato del men Grafo
modos. En cada uno de ellos se muestran los
resultados intentando maximizar la comprensin La parte ms interesante del men Grafo est
de los mismos por el usuario. Bsicamente, constituida por la creacin de un grafo nuevo, en
podemos agrupar las aplicaciones que nos ofrece el submen Nuevo. Es aqu, donde se introducen
MaGraDa en tres partes: Manejo de grafos los datos necesarios para la creacin de un grafo,
(Grafo), Clculos Bsicos y Algoritmos. En las tales como si es dirigido, ponderado, el nmero de
vrtices y su nombre si es que se les quiere dar
siguientes secciones veremos las posibilidades de
cada uno de estos mens. alguno. La forma de insertar arcos o aristas
(dependiendo si es dirigido o no, respectivamente)
se puede realizar bien directamente enumerando
Demos 479

los vrtices extremos de cada arco o arista, o bien Warshall, Kruskal y Prim (ver, por ejemplo, [1],
mediante la introduccin de su matriz de pesos o [3], [5] y [6]). Sin duda, una de las caractersticas
de adyacencia (dependiendo si es ponderado o ms importantes es que MaGraDa los aplica sobre
no). En la Figura 2 podemos observar la pantalla los grafos en curso, de manera que el usuario
principal que ofrece estas posibilidades. pueda ver los resultados intermedios para as
entender mejor el funcionamiento del
correspondiente algoritmo. Por ejemplo, la
aplicacin del algoritmo de Dijkstra, que calcula
los caminos ms cortos y sus pesos de un vrtice
al resto en un grafo dirigido y ponderado, sobre un
grafo con 6 vrtices previamente definido por el
usuario, producira la informacin reflejada en la
Figura 3 sobre las iteraciones del algoritmo.

Figura 2. Datos bsicos del grafo

2.2. Modo texto: Men Clculos Bsicos

Hay una serie de caractersticas o propiedades


bsicas de los grafos que se pueden averiguar Figura 3. Iteraciones del algoritmo de Dijkstra
fcilmente con la serie de mtodos incluidos
dentro del men Clculos Bsicos, tales como Si ahora quisiramos ver explcitamente
grado de un vrtice, matriz de adyacencia o pesos, cules son los caminos ms cortos y sus pesos,
o ver las aristas (o arcos) que tiene el grafo. MaGraDa los proporciona en la pestaa Ver
Tambin, en el caso de que el grafo sea dirigido, Caminos, que mostramos en la Figura 4.
MaGraDa ofrece la utilidad de obtener su
correspondiente grafo no dirigido asociado. Para
grafos no dirigidos permite obtener un rbol
generador de los muchos que pueda tener. Es
posible estudiar, tambin desde este men, si dos
grafos son isomorfos, ver qu vrtices alcanzan a
otros, as como qu vrtices son alcanzados por
otros. MaGraDa indica adems, de forma
razonada, si el grafo es simple, cclico, completo o
conexo. Otra aplicacin de gran inters es el
clculo de componentes conexas.

2.3. Modo texto: Men Algoritmos

La parte ms importante de la aplicacin, en Figura 4. Caminos ms cortos y sus pesos


cuanto a la aplicabilidad de los grafos se refiere, la
constituye el men Algoritmos. Dispone de Una de las ventajas que ofrece MaGraDa es
algoritmos muy conocidos en el mundo de los que puede tener en memoria varios grafos al
grafos, tales como Warshall, Fleury, Caminos ms mismo tiempo. De esta forma, el usuario puede
cortos en grafos acclicos, PERT, Dijkstra, Floyd- seleccionar aquel que ms le convenga en cada
480 Demos

momento, sin tener que preocuparse por guardarlo Vrtices: Se representan mediante crculos
en disco antes. La aplicacin los mantendr en negros con su nmero. Cuando se aplican
memoria y al acabar la sesin, el mismo programa determinados algoritmos, pueden cambiar de
ser quien recuerde al usuario si quiere guardar color para resaltarlos.
los grafos en archivo para un uso posterior. Aristas o arcos: Se representan mediante
lneas rojas en el caso de aristas y flechas
azules en el caso de arcos, pudiendo existir
3. MaGraDa. Modo grfico ms de una arista o arco entre el mismo par
de vrtices.
El modo grfico es la segunda forma de trabajo Pesos: Cuando el grafo sea ponderado se
que ofrece MaGraDa a sus usuarios. Las mostrar el peso de cada arista o arco sobre
posibilidades que nos da son las mismas que en cuadrados de color morado.
modo texto, aunque la forma de ver los resultados Rectngulo FIN: Cuando se activa cualquier
no siempre es la misma. Eso s, se ha buscado que algoritmo de forma que existe una
los resultados se ofrezcan siempre de una forma interactividad con el grafo, aparecer en la
que favorezca la mxima comprensin para el esquina superior derecha del lienzo un
usuario. Comentaremos posteriormente las rectngulo con la palabra FIN. Su funcin
posibilidades ms importantes de los tres mens consiste en informar a MaGraDa cundo
principales: Grafo, Clculos Bsicos y queremos abandonar el mtodo o algoritmo
Algoritmos. Previamente, y para ponernos en en cuestin.
situacin, vamos a ofrecer, en la Figura 5, una Vamos ahora a comentar las diferencias
pantalla que nos acerque lo antes posible a este principales de los tres mens con respecto a sus
modo de trabajo, en la que MaGraDa presenta un equivalentes en el modo texto.
grafo ponderado y dirigido con 6 vrtices,
concretamente el mismo que hemos utilizado en la 3.1. Modo grfico: Men Grafo
subseccin 2.3 para presentar un ejemplo del
algoritmo de Dijkstra. El submen Nuevo hace lo mismo que el que se ha
comentado para el modo texto, salvo que ahora es
el usuario quin decide en qu coordenadas
colocar los vrtices o si lo prefiere, disponerlos de
forma concntrica en el centro del lienzo. El
submen Modificar nos permite modificar el grafo
de una forma ms fcil y rpida sin ms que
pinchar en los vrtices sobre los que queremos
actuar. Las posibilidades que nos ofrece se pueden
ver en la Figura 6.

Figura 5. Presentacin del modo grfico

Podemos diferenciar la pantalla en tres zonas:


la barra de mens, para poder acceder a los
servicios que nos ofrece la aplicacin, el lienzo o
zona de dibujo donde aparecern los grafos, y la
barra de estado, mediante la cual, MaGraDa
intentar en todo momento informarnos y
ayudarnos en el trabajo con los grafos.
Sobre el lienzo se mostrarn los grafos de la Figura 6. Submen modificar del modo grfico
siguiente forma:
Demos 481

3.2. Modo grfico: Men Clculos Bsicos complementa con la informacin grfica
adicional. As por ejemplo, el algoritmo de
Las posibilidades que ofrece el men Clculos Dijkstra aplicado sobre el mismo ejemplo anterior
Bsicos del modo grfico son idnticas a la de su de la subseccin 2.3, adems de ofrecernos la
homnimo del modo texto. Como muestra misma informacin que en modo texto, referente a
presentamos diversas figuras que ilustran su las iteraciones del algoritmo y los caminos ms
funcionamiento y claridad grfica. La Figura 7 cortos, nos ofrece una pantalla adicional en donde
muestra los vrtices alcanzables desde el que se ha se muestra grficamente cules son esos caminos
elegido (en este caso el nmero 4, coloreado en y sus pesos. La Figura 9 ilustra esta situacin.
blanco), que se muestran resaltados en azul. La
Figura 8 muestra las componentes conexas
relacionadas con un vrtice cuando pinchamos
sobre l; todos los vrtices de la misma
componente conexa son resaltados en color rojo.

Figura 9. Resultado del alg. de Dijkstra: modo grfico

Este tipo de presentacin grfica est disponible


en cualquiera de los algoritmos de la aplicacin.

Referencias
Figura 7. Vrtices alcanzables desde el 4

[1] N. L. Biggs. Matemtica discreta. Vicens


Vives, 1994.
[2] M. A. Caballero, V. Migalln, y J. Penads.
MaGraDa~1.1. Disponible en
http://www.dccia.ua.es/dccia/inf/asignaturas/
MD/pracMaGraDa.html
[3] N. Christofides. Graph theory. An algorithmic
approach. Academic Press, 1975.
[4] A. Froufe. JAVA 2: Manual de usuario y
tutorial. Ra-Ma, Segunda edicin, 2000.
Disponible en http://usuarios.tripod.es/froufe
[5] R. P. Grimaldi. Matemticas discreta y
combinatoria. Addison-Wesley
Iberoamericana, 1989.
Figura 8. Clculo de componentes conexas. [6] J. Gross y J. Yellen. Graph theory and its
applications. CRC Press, 1999.
3.3. Modo grfico: Men Algoritmos [7] Sun Microsystems. The Java Tutorial. Tutorial
on line, disponible en
El men Algoritmos del modo grfico ofrece http://java.sun.com/docs/books/tutorial.
idnticas posibilidades al correspondiente men
en modo texto, en cuanto a disponibilidad de
algoritmos. La presentacin de los mismos se