/matroids

SageMath code for lattices of cyclic flats of binary matroids

Primary LanguagePython

Configuration of lattices of cyclic flats of binary matroids

Code related to my BSc thesis on the topic of binary matroids. Specifically, the configurations of their lattices of cyclic flats and the hypothesized uniqueness of said configurations.

Although configuration uniqueness is currently just a conjecture, I am currently working on code to reconstruct the cyclic flats from height-3 and height-4 configurations (and assuming that succeeds, hopefully generalizing from there.)

A rough overview of what this repository contains:

  • binary_matroid.py: a subclass of Sage’s BinaryMatroid augmented with utility methods, most relating to cyclic flats and their lattice configurations
  • configuration.py: a Configuration class (building upon Sage’s LatticePoset) and work-in-progress algorithms for reconstructing cyclic flats
  • search.py: brute-force search for non-isomorphic matroids with identical configurations (one of the first things I did)
  • test scripts for whatever I’m current working on
  • a usage example which is (hopefully) self-evident

Benchmarks (exhaustive search for collisions through m×n binary matrices on an i7-9700K):

  • 4×4: 24 s
  • 4×5: 7 min 37 s
  • 4×6: 2 h 42 min
  • 5×4: 6 min 20 s
  • 5×5: 3 h 50 min