New Package: Matroids

I am pleased to announce the creation of a Matroids module for Julia.

Matroids provide an abstract notion of linear independence, and may be considered a generalization of matrices and graphs. Roughly speaking, they are the setting in which the greedy algorithm works. Much more information in the documentation. [Be sure to skip past the 0.0.x versions of the documentation.]

A few details:

  • Our implementation of matroids is based on rank functions as it is infeasible to store all the independent sets, or even just the bases, of modest size matroids.
  • This module provides many basic methods (deletion, contraction, dual, closure, etc.). More needs to be done.
  • Matroid ground sets are always of the form {1,2,...,m} and in that way are compatible with the Julia Graphs ecosystem.

I hope there are a few people who find this useful :slight_smile: .

16 Likes