Macaulay2 » Documentation
Packages » Matroids :: quickIsomorphismTest
next | previous | forward | backward | up | index | toc

quickIsomorphismTest -- quick checks for isomorphism between matroids

Synopsis

Description

This method performs relatively quick tests to determine whether or not two matroids are isomorphic. A result of "false" is definitive proof that the matroids are not isomorphic, a result of "true" is definitive proof that the matroids are isomorphic, and a result of "Could be isomorphic" is evidence that the matroids may be isomorphic (although there are nonisomorphic matroids which cannot be detected by this method).

If "true" or "false" is returned, use value to convert to a Boolean.

i1 : M0 = matroid(toList(a..z)/toString,{{"m","a","t","r","o","i","d"}})

o1 = a "matroid" of rank 7 on 26 elements

o1 : Matroid
i2 : M1 = matroid(toList(0..25), {{random(ZZ),23,15,12,19,20,11}})

o2 = a "matroid" of rank 7 on 26 elements

o2 : Matroid
i3 : quickIsomorphismTest(M0, M1)

o3 = true
i4 : quickIsomorphismTest(matroid random(ZZ^5,ZZ^8), uniformMatroid(5, 8))

o4 = true
i5 : quickIsomorphismTest(uniformMatroid(5, 9), uniformMatroid(4, 9))

o5 = false
i6 : M0 = matroid graph({{a,b},{b,c},{c,d},{d,e},{e,f},{f,g},{f,h},{c,h},{c,f},{a,g},{d,g}})

o6 = a "matroid" of rank 7 on 11 elements

o6 : Matroid
i7 : M1 = matroid graph({{a,b},{b,c},{c,d},{d,e},{e,f},{f,g},{f,h},{c,h},{c,f},{a,g},{a,h}})

o7 = a "matroid" of rank 7 on 11 elements

o7 : Matroid
i8 : R = ZZ[x,y]; tuttePolynomial(M0, R) == tuttePolynomial(M1, R)

o9 = true
i10 : time quickIsomorphismTest(M0, M1)
     -- used 0.00046487 seconds

o10 = false
i11 : value oo === false

o11 = true

See also

Ways to use quickIsomorphismTest :

For the programmer

The object quickIsomorphismTest is a method function.