#16553: Clean IncidenceStructure
-------------------------------------------------+-------------------------
       Reporter:  vdelecroix                     |        Owner:
           Type:  enhancement                    |       Status:  new
       Priority:  major                          |    Milestone:  sage-6.3
      Component:  combinatorial designs          |   Resolution:
       Keywords:                                 |    Merged in:
        Authors:  Nathann Cohen, Vincent         |    Reviewers:
  Delecroix                                      |  Work issues:
Report Upstream:  N/A                            |       Commit:
         Branch:                                 |     Stopgaps:
   Dependencies:                                 |
-------------------------------------------------+-------------------------

Comment (by vdelecroix):

 Replying to [comment:2 ncohen]:
 > Yo !
 >
 > > - I think we also want another bijection `blocks <-> {0, ..., b-1}` to
 have well defined incidence matrices. It would also help to choose proper
 labels for the dual incidence structure.
 >
 > Well, the points of the dual incidence structure could be ... Sets ?..
 Or tuples. I mean, the labels of the points of a dual incidence structure
 could be the blocks of the original incidence structure.

 > ANd of course, the blocks would be .. Sets of points from the ground set
 ?

 This is confusing. Basically, we do not care too much about the data type
 of the blocks as soon as `__len__`, `__iter__` and `__contains__` are
 correctly implemented, right... But it does not work with dual.

 One option is to do like posets where the ordering is implemented in the
 Poset itself and not in the elements. We would implement the incidence
 structure at the level of IncidenceStructure and not at the level of
 points/blocks. In other words we would forbid `p in block`.

 >
 > > - A better name for `IncidenceStructure` would be `Design`...
 >
 > Or hypergraph ?... A friend of mine says "geometry" instead of
 "hypergraph". Truth it, an incidence structure is a pretty general thing :
 >
 > http://en.wikipedia.org/wiki/Incidence_structure
 >

 Yes, we need `Hypergraph.to_incidence_structure` and
 `IncidenceStructure.to_hypergraph`... or only one class?

 > > and we also need a class for `GroupDivisibleDesign` and for them we
 need an other bijection `groups <-> {0, ..., g-1}`.
 >
 > Well, we may need to have ".groups()" indeed. We would have GDD at the
 bottom, them PBD, BIBD, transversal designs...
 >
 > The main problem is that orthogonal arrays are not really designs in
 this sense.
 >
 > > - to fit with enumerated set the natural terminology for the bijection
 would be `rank/unrank`
 > >   {{{
 > >   class Design:
 > >       def rank_point(self, point):    # index of ``point``
 > >       def unrank_point(self, n):      # ``n``-th point
 > >       def rank_block(self, block):    # index of ``block``
 > >       def unrank_block(self, n):      # ``n``-th block
 > >   }}}
 >
 > Really ? Ewww.. Honestly I'd be glad to avoid things like that and keep
 the integer names internal. Users do not need to see that !

 All right.

 Vincent

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