JavierMarrero / jlibgraph

Comprehensive library for Graph theory and algorithms in Java
GNU Lesser General Public License v2.1
10 stars 9 forks source link

Bug report #73

Closed JoseCarlosGarcia closed 1 year ago

JoseCarlosGarcia commented 1 year ago

Al inicio de un algoritmo duplico el grafo para poder eliminar nodos y aristas y obtener el resultado deseado sin variar el grafo original. Durante la ejecución del algoritmo elimino un nodo del grafo clonado y luego al llamar a un nuevo iterardor para el grafo clonado, me encuentro que sí se eliminan los nodos pero cuando accedo a uno de los nodos aun presente en el grafo y veo sus aristas que llegan o salen encuentro algunas de las aristas que lo conectaban con los nodos que se eliminaron.

En la siguiente imagen se muestra un caso, en la variable conectionsToVertex se encuentra una arista 2-> 4 sin embargo, el nodo 2 fue eliminado anteriormente.

image

En la imagen que se encuentra a continuación encontré lo siguiente: Al eliminar un nodo del grafo clonado encontró que tenía tres aristas hacia él, entró al for de eliminar estas aristas 3 veces pero dos de ellas no las eliminó y se quedan a pesar de haber eliminado el vértice después.

image

Tener en cuenta también:

JavierMarrero commented 1 year ago

Evidentemente el error está en la clonación del grafo. Quizás las aristas no se incorporan bien a los HashSet que deben contenerlas, o se incorporan dobles, aunque los sets no deben tener tener duplicados (lo cual puede ser indicador de que el método equals no está funcionando bien para las aristas).

JavierMarrero commented 1 year ago

Revisaré los métodos de clonación y trabajaré de nuevo el método equalsde las aristas. 👍🏼

JavierMarrero commented 1 year ago

Me gustaría llamar la atención de @cdrobaina01 al problema, en caso de que encuentre modo de solucionar el bug.

JavierMarrero commented 1 year ago

@JoseCarlosGarcia gracias por reportar el issue 😀 La información aportada es super valiosa.

JavierMarrero commented 1 year ago

Me gustaría llamar la atención sobre el resto de colaboradores: @SnowBlackQueen, @Amy-Mendez, que estén al tanto y cualquier otro bug que encuentren en el código sea reportado como issue en forma similar a como fue este, con vistas a la liberación de la versión 1.0.

JavierMarrero commented 1 year ago

Ya el bug fue cerrado con el commit #80