Skip to content

Use igraph instead of NetworkX#70

Merged
mdbrnowski merged 6 commits intomainfrom
igraph
Mar 31, 2026
Merged

Use igraph instead of NetworkX#70
mdbrnowski merged 6 commits intomainfrom
igraph

Conversation

@mdbrnowski
Copy link
Copy Markdown
Owner

@mdbrnowski mdbrnowski commented Mar 31, 2026

The igraph library does not support planarity checks, so we leave that to networkx for now. All other properties are checked with igraph.

Thanks to this change, creating the maximal database ($n \leq 9$) now takes 2 minutes (instead of 25 minutes).

Resolve #21.

@mdbrnowski mdbrnowski changed the title Replace natworkx with igraph Use igraph instead of NetworkX Mar 31, 2026
[skip ci]
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves database creation performance by switching most graph property computations from NetworkX to igraph, while keeping NetworkX only for planarity checking (since igraph doesn’t support it yet). It addresses Issue #21 by significantly reducing the time needed to generate the maximal database (up to n < 9).

Changes:

  • Replaced NetworkX-based Hamiltonian and degree utilities with igraph equivalents and added an igraph-based Eulerian check.
  • Updated database creation to convert graph6 → NetworkX → igraph, computing most properties with igraph and planarity with NetworkX.
  • Updated docs and dependencies to include igraph and reflect new runtime expectations.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
src/graphreveal/db_creator/util.py Migrates helper algorithms from NetworkX to igraph and adds is_eulerian.
src/graphreveal/db_creator/create.py Uses igraph for most properties during DB creation, retaining NetworkX only for planarity.
README.md Updates expected database creation timings and wording.
pyproject.toml Adds igraph as a project dependency.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/graphreveal/db_creator/util.py
@mdbrnowski mdbrnowski marked this pull request as ready for review March 31, 2026 18:39
@mdbrnowski mdbrnowski merged commit 2184e94 into main Mar 31, 2026
16 checks passed
@mdbrnowski mdbrnowski deleted the igraph branch March 31, 2026 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Use something faster than NetworkX

2 participants