pnnl / HyperNetX

Python package for hypergraph analysis and visualization.
https://hypernetx.readthedocs.io
Other
561 stars 92 forks source link

hmod.precompute_attributes removes or does not remove singletons based off of the OS (inconsistent behaviour) #118

Closed Leo-Aus-Berlin closed 3 months ago

Leo-Aus-Berlin commented 1 year ago

Depending on which OS is being used the following will print different results:

import hypernetx as hnx
import hypernetx.algorithms.hypergraph_modularity as hmod
formulaDict,stringTree = readFile("./CDL-FMINCE/toybox.dimacs") # code by me
H=formulaToHypergraph(formulaDict)
HDual = H.dual()
H=hmod.precompute_attributes(H)
HDual = hmod.precompute_attributes(HDual)

#this should diverge based off of OS

print(len(list(H.nodes())))
print(len(list(HDual.nodes())))

On the linux systems the results are 544 and 590, while on Windows I get 175 and 221. I suspect the singletons get removed by the attribute computation on windows, but not on the linux systems...

I was using ANTLR4 with python integration to parse a dimacs (SAT) file and interpret it as a hypergraph. The resulting graph has 544 nodes and 590 edges before the attributes are computed.

Compared Systems

Ubuntu system:

Debian

Windows

brendapraggastis commented 1 year ago

Thanks for the example. We are working on reproducing the error and hunting down the issue.

brendapraggastis commented 3 months ago

@Leo-Aus-Berlin Precompute attributes is no longer required in the modularity module.