#18784: Tutte connectors for matroids
-------------------------------------+-------------------------------------
       Reporter:  Rudi               |        Owner:
           Type:  enhancement        |       Status:  new
       Priority:  major              |    Milestone:  sage-6.8
      Component:  matroid theory     |   Resolution:
       Keywords:                     |    Merged in:
        Authors:                     |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/Rudi/tutte_connectors_for_matroids|  
9acd9ebb43fbfe42eb22d5cd881056b80a50a020
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by Rudi):

 My implementation of link() uses matroid intersection just like in
 connectivity(), but now I've implemented that algorithm for class Matroid
 without the actual construction of the two minors, and I also wrote a
 bitpacked version in class BasisExchangeMatroid.

 I used this new function link() to speed up both connectivity() and
 _is_3connected_CE. Here's the effect on the latter function.

 Before:
 {{{
 sage: M = Matroid(MatrixSpace(GF(2), 100,200).random_element())
 sage: %time M._is_3connected_CE(True)
 CPU times: user 3min 10s, sys: 982 ms, total: 3min 11s
 Wall time: 3min 12s
 (True, None)
 }}}
 After:
 {{{
 sage: M = Matroid(MatrixSpace(GF(2), 100,200).random_element())
 sage: %time M._is_3connected_CE(True)
 CPU times: user 1.12 s, sys: 1.68 ms, total: 1.12 s
 Wall time: 1.13 s
 (True, None)
 }}}

 Of course, this is still horrible compared to Chao's BC implementation.
 {{{
 sage: %time M._is_3connected_BC()
 CPU times: user 46.5 ms, sys: 1.14 ms, total: 47.6 ms
 Wall time: 50.8 ms
 True
 }}}
 But connectivity(S,T) also got 180x faster.

 Will go on to tweak and test a bit. Meanwhile, if anyone has a strong
 opinion on the name `link()`, discuss. It's easy to change it at this
 stage.

--
Ticket URL: <http://trac.sagemath.org/ticket/18784#comment:3>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to