Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Proyectos / GraphADT: Clases para trabajar con grafos en java

GraphADT: Clases para trabajar con grafos en java

Autor jc mouse Viernes, Diciembre 30, 2016

GraphADT es una proyecto alojado en github escrito en java que te permite trabajar con grafos, a la fecha de escribir este post se encuentra en la versión 2.0 por tanto ya esta bastante trabajado.

¿Que es un grafo?

En matemáticas y ciencias de la computación, un grafo (del griego grafos: dibujo, imagen) es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre elementos de un conjunto.1 Son objeto de estudio de la teoría de grafos. [Santa Wikipedia]

Datos del proyecto

Proyecto: GraphADT

Licencia: MIT

Autor: Amir Bawab (Canada)

Código Fuente: <<Link en GitHub>>

A continuación mostraremos un ejemplo de su uso siguiendo los pasos dejados (en ingles) en la web del proyecto, el IDE que utilizamos es Netbeans, pero adaptarlo a Eclipse no es nada complicado.

Paso 1

Descarga desde GitHub el proyecto y descomprime en tu pc (1.76 MB)

graph

Dentro el *.rar encontraras lo siguiente:

  • documentation: se encuentra el DocJava
  • graph: Están las clases java que nos permiten trabajar con grafos
  • GraphDriver.java: Esta clase es un ejemplo de como usar el resto de las clases
  • Metro.txt y MIT.txt: Son archivos de texto de ejemplo de grafos, los usaremos más adelante.
  • LICENSE y README: licencia de uso y un pequeño tutorial (en ingles)

Paso 2

Crea un proyecto vació en Netbeans con el nombre de “TestGraph” y añade un paquete llamado “example

empty

Paso 3

Copia la carpeta “graph” dentro la carpeta “src” del proyecto netbeans, copie el archivo “GraphDriver.java” a la carpeta (paquete)example

proyecto grafos

Paso 4

Abra el archivo “GraphDriver.java“, en este archivo realizaremos dos modificaciones.

1) En la primera linea nos encontraremos con un error “Paquete defectuoso”, para solucionar esto damos Enter para crear nueva linea y escribimos: package example; (el paquete donde se encuentra el archivo java)

panic on

2) Buscamos la linea de código:

Graph<String,String> graph = Graph.inParser("MIT.txt", true);

y completamos la ruta del archivo MIT.txt

Graph<String,String> graph = Graph.inParser("D:\\carpeta\\donde\\descargaste\\GraphADT-master\\MIT.txt", true);

El archivo MIT.txt, es un archivo de texto que contiene la declaración de un grafo de la siguiente forma:

size=5
0 = A
1 = B
2 = C
3 = D
4 = E
;
(0,1,10)
(0,2,3)
(1,3,2)
(1,2,1)
(2,1,4)
(2,3,8)
(2,4,2)
(3,4,7)
(4,3,9)
;

En la primera linea declara el tamaño del grafo “5”. A continuación declara un ID y Nombre para cada vértice (o Nodo). Finalmente declara las aristas que unen cada vértice junto al peso, valor o ponderación (como prefiera llamarlo). graficando este grafo 🙂 con algún software (Yed por ejemplo), tenemos lo siguiente:

crear grafos

Paso 5

ejecuta el archivo “GraphDriver.java

Test Grafos Java

En la salida en pantalla podemos ver el grafo declarado en el archivo MIT.txt, la implementación de algunos métodos como BFS (Breadth First Search), DFS (Depth First Search), etc.

Sin duda un proyecto bastante fácil de comprende y usar, aun no lo probé a fondo pero parece que tiene muchas cosas interesante. Sera en otra ocasión.

enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Uso de Tile Map en LibGDX

Uso de Tile Map en LibGDX

En esta ocasión vemos un ejemplo sencillo de como usar Tile Map en nuestros juegos android con la librería LibGDX utiliz...

Minimizar aplicación al SystemTray/Bandeja del Sistema

Minimizar aplicación al SystemTray/Bandeja del Sistema

El SystemTray/Bandeja del Sistema o como también se le llama “Área de Notificación” es la sección de la barr...

Métodos Numéricos: Sustitución Directa

Métodos Numéricos: Sustitución Directa

El Método de Sustitución Directa básicamente consiste en asumir un valor, reemplazar el mismo en la función despejada y...

Primeros pasos con JavaFX

Primeros pasos con JavaFX

¿Qué es javaFX? JavaFX es una familia de productos y tecnologías de Sun Microsystems, adquirida por Oracle Corporation,...

Recortar partes de una imagen con el mouse

Recortar partes de una imagen con el mouse

En este oportunidad comparto una pequeña aplicación hecha en java para recortar partes de una imagen seleccionado con el...

Simulador de Urna Electrónica en java

Simulador de Urna Electrónica en java

Hola 🙂 en esta ocasión un amigo del Brasil nos envía un proyecto java de una Urna Electrónica o Voto Electronico, desarr...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Comparte lo que sabes

Categorias

Últimas entradas

“Material Design es una guía integral para el diseño visual, de movimientos y de interacción en distintas platafor...

Un TextView autocompletado nos facilita el ingreso de información en aplicaciones móviles ya que te muestra posibles opc...

Un Tabbed Activity te permite cambiar la vista entre  fragmentos desplazando el dedo  de izquierda a derecha o de derech...

Este 12 de Mayo de 2017 se produjo un ataque masivo mundial del ransomware WannaCry  el  que afecto a más de 200000 comp...

Android Bolivia

Bandera en Alto