#15310: Wilson's construction of Transversal Designs/Orthogonal Arrays/MOLS
-------------------------+-------------------------------------------------
       Reporter:         |        Owner:
  ncohen                 |       Status:  needs_review
           Type:         |    Milestone:  sage-6.2
  enhancement            |   Resolution:
       Priority:  major  |    Merged in:
      Component:         |    Reviewers:
  combinatorics          |  Work issues:
       Keywords:         |       Commit:
        Authors:         |  62f0158c281c55523a532d5ef21c666ba9c7dc3d
  Nathann Cohen          |     Stopgaps:
Report Upstream:  N/A    |
         Branch:         |
  u/ncohen/15310         |
   Dependencies:         |
  #15287, #15431         |
-------------------------+-------------------------------------------------

Comment (by vdelecroix):

 Hi Nathann,

 Brett Stevens is in sabatical in Bordeaux and explains me in full details
 the Wilson construction. Good news: I have enough background to starts
 seriously the review.

 1) There is a much simpler construction than the Wilson one, often called
 the Kronecker product, which from a TD(k,t) and a TD(k,n) builds a
 TD(k,nt) (this is basically the case u=0 in Wilson construction). We found
 that Wilson construction does not apply to a TD(3,6) but the Kronecker
 product does! Do you prefer opening a new ticket or including it in this
 one?

 2) The programming design with TD calling OA is very bad. In OA there is a
 nice `EmptySetError` which has an important mathematical meaning. But if
 you ask for a transversal design you get instead a `NotImplementedError`
 which is much less informative
 {{{
 sage: designs.orthogonal_array(6,3)   # this is great
 Traceback (most recent call last)
 ...
 EmptySetError: No Orthogonal Array exists when k>=n+t
 sage: designs.transversal_design(6,3)  # this is bad
 Traceback (most recent call last)
 ...
 NotImplementedError: I don't know how to build this Transversal Design!
 }}}
 In the ideal world, Sage would only return a design or raise an
 `EmptySetError` with a meaningful message mentionning a theorem. And I
 learned from Brett that there exist several situations where we know
 mathematically that a TD(k,n) does not exist. When `availability=True` it
 would be nice to get a troolean: True (means yes), False (means no),
 Unknown in `sage.misc.unknown` (means I do not know). And then, you might
 change the name `availability` to `existence`.

 3) The loop where you test the Wilson construction is 2.86 seconds on my
 (dual core) computer. I am not sure it deserves a `# long time`.

 4) Could you mention the following reference as a todo
 - AUTHOR = Colbourn, Charles J. and Dinitz, Jeffrey H.
 - TITLE = Making the MOLS table
 - BOOKTITLE = Computational and constructive design theory
 - SERIES = Math. Appl.
 - VOLUME = 368
 - PAGES = 67--134
 - PUBLISHER = Kluwer Acad. Publ., Dordrecht
 - YEAR = 1996
 They have a slightly improved Wilson construction for u=1, 2 that requires
 less material (ie not four full smaller TDs)... and hence gives more cases
 where the construction applies.

 Cheers,
 Vincent

--
Ticket URL: <http://trac.sagemath.org/ticket/15310#comment:24>
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