next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Matroids :: fundamentalCircuit

fundamentalCircuit -- fundamental circuit of independent set

Synopsis

Description

If I is an independent set I, and e is an element such that $I \cup \{e\}$ is dependent (in particular e is not in I), then there is a unique circuit contained in $I \cup \{e\}$, called the fundamental circuit of e with respect to I, which moreover contains e. Every circuit is the fundamental circuit of some element with respect to some basis.

i1 : M = matroid({a,b,c,d},{{a,b},{a,c}})

o1 = a matroid of rank 2 on 4 elements

o1 : Matroid
i2 : circuits M

o2 = {set {1, 2}, set {3}}

o2 : List
i3 : fundamentalCircuit(M, {a,c}, b)

o3 = set {1, 2}

o3 : Set
i4 : fundamentalCircuit(M, set{0,2}, 1)

o4 = set {1, 2}

o4 : Set
i5 : fundamentalCircuit(M, set{0,2}, 3)

o5 = set {3}

o5 : Set

This method does not perform any checks (e.g. whether $I$ is independent, or if $e$ is not in $I$). If $I \cup \{e\}$ is independent, then (if debugLevel is greater than 0) a warning is printed, and null is returned. In the example below, the elements with indices 2 and 3 are parallel (indeed, both are equal to the column vector (1, 1)). Thus in general it is safer to refer to a subset by its indices, rather than its elements.

i6 : M = matroid matrix{{1,0,1,1},{0,1,1,1}}

o6 = a matroid of rank 2 on 4 elements

o6 : Matroid
i7 : circuits M

o7 = {set {0, 1, 2}, set {0, 1, 3}, set {2, 3}}

o7 : List
i8 : M_2

o8 = | 1 |
     | 1 |

              2        1
o8 : Matrix ZZ  <--- ZZ
i9 : M_2 == M_3

o9 = true
i10 : (try fundamentalCircuit (M, M_{1,2}, M_3)) === null

o10 = true
i11 : fundamentalCircuit (M, set{1,2}, 3)

o11 = set {2, 3}

o11 : Set

See also

Ways to use fundamentalCircuit :

For the programmer

The object fundamentalCircuit is a method function.