#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: | d74341411288315f13da3d4383e515b884ba7440
Nathann Cohen | Stopgaps:
Report Upstream: N/A |
Branch: |
u/ncohen/15310 |
Dependencies: |
#15287, #15431 |
-------------------------+-------------------------------------------------
Comment (by vdelecroix):
Replying to [comment:25 ncohen]:
> > 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?
>
> I would say open a new ticket because this ticket does not only
implement Wilson's construction, it also adds some "availability" flags to
constructors and thus this ticket is a dependency for several others.
Hence if we implement it in another ticket the other ones can be reviewed
in the meantime.
Actually, the product construction is what you are doing in #16227. You
can see it as a particular case of Wilson construction.
> > 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
>
> How is that a result of TD calling OA ?
>
I would better say not calling OA appropriately. line 79
{{{
elif orthogonal_array(k,n, check = False, availability = True):
...
}}}
I still found that having half of the implementation in TD and half of the
implementation in OA is very confusing.
> Well. No problem if "if Unknown" is equivalent to "if False".
It is. You do not know your troolean algebra !?
> > And then, you might change the name `availability` to `existence`.
>
> Could we do that on top of #12267 ? I would prefer those patches to be
merged like that, and then we can update stuff. Otherwise it means fixing
many conflicts with the stuff above, but I agree that it is a good idea.
Make sense. I will open a ticket for that.
> > 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`.
>
> Well, I usually set `#long ` even for 2 seconds. Most tests are faster
than that, andyou can have many "2 seconds" tests. I don't mind
adding/removing flags like that, but you can also add a commit if you
like.
No do not worry about this.
> > 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.
>
> okayokay, good idea ! I will add a commit in a second.
and please, add also the references you got from Julian Abel. I guess that
they are pretty similar.
Vincent
--
Ticket URL: <http://trac.sagemath.org/ticket/15310#comment:27>
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.