#16323: Construction of BIBD with k=5
-------------------------------------+-------------------------------------
Reporter: ncohen | Owner:
Type: enhancement | Status: needs_info
Priority: major | Milestone: sage-6.3
Component: combinatorial | Resolution:
designs | Merged in:
Keywords: | Reviewers:
Authors: Nathann Cohen | Work issues:
Report Upstream: N/A | Commit:
Branch: | 8eac6d069e162aed9d4fc1ae3f654d0b446573da
u/vdelecroix/16323 | Stopgaps:
Dependencies: #16279 |
-------------------------------------+-------------------------------------
Changes (by ncohen):
* commit: 07a31304b9d48ef6e07f1dd96c1d3185b8fafc95 =>
8eac6d069e162aed9d4fc1ae3f654d0b446573da
* branch: u/ncohen/16323 => u/vdelecroix/16323
Comment:
Hello !
> Now that I read more carefully the code:
> - why the construction using PBD can not be used from the main BIBD
function?
You mean that if we had a constructor for PBD we could call it from the
BIBD constructor using BIBD_from_PBD ? It is true, but we have no PBD
constructor at the moment. Besides the two PBD constructors we already
have we could add a PBD_from_TD, stuff like that, indeed.
> In particular, considering organization, I would like to see the
functions `BIBD_from_PBD`, `_check_PBD`, `_relabel_BIBD`,
`PBD_4_5_8_9_12`, `_PBD_4_5_8_9_12_closure`, `PBD_from_TD` much higher in
the file, i.e. neither in the part "(v,4,1)-BIBD" nor in the part
"(v,5,1)-BIBD".
Move stuff around if you want. As far as I am concerned, it is totally
pointless. This being said, some of those functions are together in the
code because I implemented the, following the same reference, so if you
move them apart please leave them linked together somehow.
> - More generally, the functions `steiner_triple_system`, `v_4_1_BIBD`
and `v_5_1_BIBD` currently follow various proofs. But we only care about
constructing the BIBD and not checking the proofs, doesn't we? We
certainly "check" the proof in the doctests but wouldn't it be possible to
write in the main BIBD:
> {{{
> if database.BIBD[v,k]:
> ...
> elif construction1(v,k,existence=True):
> ...
> elif construction2(v,k,existence=True):
> ...
> }}}
Hmmmmm... You are right that it would be equivalent, you are right that we
have no automatic way to chec that the proof is right, but as it is
implemented you can deduce, from looking at the code, that this is the
intent and so that it is what the function does. Also, these functions
have a documentation and comments which are related to the papers I
followed to implement them, and this would be much harder to see if you
poured them all in the main constructors.
Another thing : sometimes the v_5_1_BIBD construction (for instance) needs
a smaller BIBD to produce a larger one, but it does not call the main BIBD
constructor because we know from the proof that this smaller bibd can be
obtained by some specific construction. So well, it it implemented
directly.
So well.... I rather like to have these functions which somehow claim that
"these cases are all dealt with", which would not be straightforward to
see if all constructors were included in the main function. And if
something which those constructions require is of more general use we can
of course expose it inside of the main constructor.
The original code for BIBD with k=5 was actually much larger... #16279 is
one of these parts.
Nathann
----
New commits:
||[http://git.sagemath.org/sage.git/commit/?id=0610c7d2fe143405b38b0ee6aa63373bdf193e5e
0610c7d]||{{{trac #16323: external BIBD_from_DF and use Zmod}}}||
||[http://git.sagemath.org/sage.git/commit/?id=daae63e125af9a05b9f3959ab4bca71655354083
daae63e]||{{{trac #16323: DF -> difference_family, change errors and more
doc}}}||
||[http://git.sagemath.org/sage.git/commit/?id=8eac6d069e162aed9d4fc1ae3f654d0b446573da
8eac6d0]||{{{trac #16323: several fix + doc}}}||
--
Ticket URL: <http://trac.sagemath.org/ticket/16323#comment:18>
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.