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 .