It is known that uniform (resp. paving) matroids correspond to MDS (resp. “almost MDS” codes). This post explains this connection.
An MDS code is an linear error correcting block code
which meets the Singleton bound,
. A uniform matroid is a matroid for which all circuits are of size
, where
is the rank of M. Recall, a circuit in a matroid M=(E,J) is a minimal dependent subset of E — that is, a dependent set whose proper subsets are all independent (i.e., all in J).
Consider a linear code whose check matrix is an
matrix
. The vector matroid M=M[H] is a matroid for which the smallest sized dependency relation among the columns of H is determined by the check relations
, where
is a codeword (in C which has minimum dimension d). Such a minimum dependency relation of H corresponds to a circuit of M=M[H].
I’m surprised SAGE doesn’t have any matroid routines. I tried yours, but after loading it and running
A = matrix(GF(2), [[1,0,0,1,1,0],[0,1,0,1,0,1],[0,0,1,0,1,1]])
M = vector_matroid(A)
print M
I get
Traceback (click to the left of this block for traceback)
…
TypeError: ‘list’ object is not callable
Or
M.rank()
Traceback (click to the left of this block for traceback)
…
TypeError: ‘list’ object is not callable
This on sage 4.4.3
I get
sage: attach “/Users/davidjoyner/sagefiles/matroid_class.sage”
sage: A = matrix(GF(2), [[1,0,0,1,1,0],[0,1,0,1,0,1],[0,0,1,0,1,1]])
sage: M = vector_matroid(A)
sage: print M
Matroid on base set [0, 1, 2, 3, 4, 5] of rank 3
sage: M.rank()
3
This is using 4.5.1 and the matroid code at
http://boxen.math.washington.edu/home/wdj/sagefiles/matroid_class.sage
Thank you, I’ll wait a coupl of days to be at home and tryit, meanwhile I’m stuck with 4.4.3 on sagenb.com