#15431: Transversal Design TD(6,12)
-------------------------+-------------------------------------------------
       Reporter:         |        Owner:
  ncohen                 |       Status:  needs_info
           Type:         |    Milestone:  sage-6.2
  enhancement            |   Resolution:
       Priority:  major  |    Merged in:
      Component:         |    Reviewers:
  combinatorics          |  Work issues:
       Keywords:         |       Commit:
        Authors:         |  a537755ebc4522efd30c12c9225abfcac1d36a90
  Nathann Cohen          |     Stopgaps:
Report Upstream:  N/A    |
         Branch:         |
  u/ncohen/15431         |
   Dependencies:         |
  #15287 #15368          |
-------------------------+-------------------------------------------------
Changes (by vdelecroix):

 * status:  needs_review => needs_info


Comment:

 Hi Nathann,

 1) Let me reformulate a more general definition of TD that contains the
 definition of an OA (but is equivalent up to relabeling):

 A TD is a subset `\mathcal{S}` of transversals in `V_1 \times V_2 \times
 \ldots \times V_k` such that for any given t-tuple `v = (v_{i_1}, \ldots,
 v_{i_t})` inside `V_{i_1} \times V_{i_2} \times \ldots \times V_{i_t}`
 there exists a unique `S` in `\mathcal{S}` such that `v` is in `S`.
 (note that necessarily `\mathcal{S}` has cardinality `n^t`).

 In your implemetation, you chose `V_1 = [n]`, `V_2 = [n,2n]` etc.
 Actually, with the generalized definition above, you can think of an OA as
 a TD where  `V_i = [n]`. The correspondence is just stupid and you already
 wrote it in your code:
 {{{
 OA2TD = lambda OA: [[i*n+c for i,c in enumerate(l)] for l in OA]
 TD2OA = lambda TD: [[(j-c)//i for j,c in enumerate(l)] for k in TD]
 }}}

 I propose to move '''all''' the code from TD into OA and have a stupid
 OA2TD which does the stuff if people prefer TD labelling. Even better, you
 can let the user specifies his/her preferred choice of sets V1, ..., Vk as
 parameters in the function OA. More precisely, you would write:
 {{{
 TD2OA = lambda OA,V: [[V[i][c] for i,c in enumerate(l)] for l in OA]
 }}}

 I am happy to do the change by myself if you agree.

 2) In the definition of TD and OA (on both Wolfram and Wikipedia) there is
 an extra parameter lambda. It is lost in your definition. Why?

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