Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Proyectos / GraphADT: Clases para trabajar con grafos en java

GraphADT: Clases para trabajar con grafos en java

Por 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

Artículos similares

Detección de rostros con android

La API de Android ha ido evolucionado rápidamente y cada vez contiene más funcionalidades que hacen que desarrollar sist[...]

Conexión a base de datos Oracle con Laravel

En esta ocasión aprenderemos a conectaros con una base de datos Oracle desde Laravel. Es un tutorial sencillo y cortito,[...]

Facturación electrónica: El Código de Control

¿Que es la facturación electrónica? Una factura es un documento que sirve para describir el costo de los servicios y des[...]

Google Play elimina todas las Apps sobre Coronavirus

El gigante de la informática Google, ante la reciente pandemia mundial declarada por la OMS (Organización Mundial de la[...]

¿Qué es AngularJS?

Bienvenido a este artículo soy Jose Pedraza Desarrollador Web por más de 7 años, escribiré una serie de artículos para i[...]

Ecuación de segundo grado

Problema: Implemente el código necesario en Kotlin para resolver una ecuación de segundo grado de números reales: Soluci[...]