New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Construction of BIBD with k=5 #16323
Comments
This comment has been minimized.
This comment has been minimized.
Last 10 new commits:
|
Commit: |
Branch: u/ncohen/16323 |
comment:3
If anybody wants to really test it :
Nathann |
Dependencies: #16279 |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:8
Hi Nathann, Perhaps not everything for that ticket but I would like to discuss several points.
And moreover, such function might be used to simplify the database.
Moreover, writing that way it avoids the conversion from tuple to elements of Vincent |
comment:9
Yooooooooo !!
Thanks for reading it, though !
Ahahahah... Yes, probably...
Well, the first one is correct, I am pretty sure I fixed the second somewhere but let's fix it again here, and the third one is really a mistake. I will write a ticket for the last two bugs in a second
Yes. But you know, it REALLY is because of
Oh... But Zmod is ugly too, because you have to change the way you think of the code.. We can use cartesian products now that we have them !
I know nothing about ways to build difference families and differences matrices. Nathann |
comment:10
Okay, I just loaded your branch and saw what you did. If you want to expose such a function you must really document it, a bit like the documentation of I don't know how to do that. That's why I left it as an inlined function. BTW, I think that the name should end with "difference_family", not DF. I will create the bugix ticket in a second. Nathann |
comment:11
Okay, actually it seems that the infinite recursion cannot happen when we avoid the stupid cases As I don't know what we will do with your branch and mine I don't write the commit but the fix is easy :
Nathann |
comment:12
Hi Nathann, I did the modif in my branch. I also put the case
For the I still have the Zmod in my branch and I do not know if you want to get rid of them. Vincent |
comment:13
Actually, I did a mistake: BIBD(1,k) always exists, just consider an empty set of blocks !! |
comment:14
Hello ! Did you push the changes ? The branch u/vdelecroix/16323 I just pulled contains the old version of your changes only : the function is still named BIBD_from_DF and contains almost no documentation. Nathann |
comment:15
Hi Nathann, My mistake, I did not commit the changes. Now everything is on trac. Vincent |
comment:16
Ahahahah very cool ! I did not even know how a difference family was defined. Quite straightforward Okay, I agree with your commits except for three things :
Nathann |
comment:17
Hi Nathann, I did the correction. Furthermore, there was a typo in the main BIBD (a Now that I read more carefully the code:
Vincent |
Changed branch from u/ncohen/16323 to u/vdelecroix/16323 |
comment:18
Hello !
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.
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.
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:
|
comment:19
Hello, Replying to @nathanncohen:
I bet that there are some PBD constructions in the Handbook... We should keep in mind to reuse this code at some point.
I do not care too much. But, when I opened the file the first time it was difficult to found the logic.
Indeed, this was my main question. (I had a look at various paper about difference families, and there are a lot about k=3,4,5, very few about k=6 and almost none about k>=7; excepted existence result for very large v). I found the work done in the branch is enough for the ticket so I set to positive review. Vincent |
Reviewer: Vincent Delecroix |
comment:20
Yo !! Thanks for the review !
Indeed, but my fear with PBD construction is that it may become harder to detect if we can build one. I mean.. If you have a
AHahah. ALl this is there for "historical reasons" I fear. Implemented one after the other. I expect that it will be cleaned several times in the future.
Indeed, but Julian R. Abel told me that some recursive construction may be by itself sufficient to generate all (v,6,1)-BIBD with v>1000. Looks like when you have a lot of recursive construction you can do almost everything, and that some base cases will be the only missing things afterwards. Ahahaah. The point is that it is all a lot of work, and all an interesting work too. And I would like to add it someday, but for the moment I would like to finish implementing all the OA/TD/MOLS related code. I have some new constructions to add but I did not write the branch yet for it would depend on other tickets, and I am pretty sure that the main functions I need will be rewritten and changed during the reviews, so I don't dare write this yet as it will mean a lot of rebase. But when the OA/TD/MOLS stuff will be done, both PBD and BIBD with larger blocks will be on the table.
Thaaaaaaaaaaaaaanks ! I will write to the author of the pdf file tomorrow Nathann |
Changed branch from u/vdelecroix/16323 to |
Heeeeeere it is ! At long last. We can build all BIBD with k=5 thanks to this construction :
http://www.argilo.net/files/bibd.pdf
As usual no design is returned without being checked first, so the code is extremely safe.
Nathann
Depends on #16279
CC: @videlec @KPanComputes @dimpase @brettpim
Component: combinatorial designs
Author: Nathann Cohen
Branch/Commit:
8eac6d0
Reviewer: Vincent Delecroix
Issue created by migration from https://trac.sagemath.org/ticket/16323
The text was updated successfully, but these errors were encountered: