HyperNetX icon indicating copy to clipboard operation
HyperNetX copied to clipboard

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

Open Leo-Aus-Berlin opened this issue 2 years ago • 1 comments

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:

  • Ubuntu 20.04.6 LTS
  • wsl 2
  • Python 3.8.10
  • pip installation manager

Debian

  • SMP Debian 5.10.127-1
  • Python 3.9.2
  • pip installation manager

Windows

  • Windows 10 Home
  • Python 3.11.3
  • Anaconda virtual environment (+VSCode)

Leo-Aus-Berlin avatar Jul 20 '23 17:07 Leo-Aus-Berlin

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

brendapraggastis avatar Jul 23 '23 17:07 brendapraggastis

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

brendapraggastis avatar Aug 08 '24 05:08 brendapraggastis