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.000422808 seconds o10 = false |
i11 : value oo === false o11 = true |
The object quickIsomorphismTest is a method function.