-
-
Notifications
You must be signed in to change notification settings - Fork 508
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
New empty design classes for a better user interface and new is_group_divisible_design Cython function #16598
Comments
Branch: u/ncohen/16553 |
Commit: |
New commits:
|
Dependencies: #16553 |
Changed branch from u/ncohen/16553 to u/ncohen/16598 |
New commits:
|
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
comment:4
Hey Nathann, In group divisible design, there must be more parameters:
Anyway, GDD is just a strict generalization of PBD and it is very clear from Handbook IV.1.3. Actually, it would be nicer that
and then the new class would just need an extra Some methods are not well adapted to group divisible designs
Why do you use tuples where everywhere in Would you mind having a "stupid" Vincent |
comment:5
Note that a solution for computing the automorphism group is as follows:
I think that it is not that bad in terms of efficiency. Vincent |
comment:6
Yo !
Seems more than we need at the moment, but okay ...
lambda functions have no documentation. But yes, the code just takes one line.
Until we want GDD to be defined on something different than
Given that the GDD is a set of blocks, why not ? Plus you wanted two lines above that GDD be equal to an
Why ?
Then the implementation is correct.
Yes, I hate those methods. Write it if you want one. Nathann |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:9
i.e. an automorphism send a non-covered pair of vertices u,v on another non-covered pair of vertices u,v. So a group is sent on another group with the same cardinality. It corresponds to the notion of automorphism group you expect for BIBD ( Nathann |
comment:10
I got it for the automorphism group! Thanks. But your definition of gdd is wrong: any pair of points is either in a group or in lambda blocks but not both. And this is why the blocks completely determine the groups: two points are in the same group if they are not in a block! What do you think of having only one class (with blocks and groups) and methods:
Why do you not translate the groups over integers as it is the case for blocks? You really like to use tuple of tuples for groups and list of lists for blocks (see comment:4 above)? Vincent |
comment:11
Hello !
Ahahahahah. Well, that's what I intended, but... is the new version clearer ?
How would you call the class ? If you want to have these functions as methods of something, the only choice I see is
I just created GDD because it was the common generalization of
Hmmmm... I don't expect that GDD or anything that inherits from it will ever be mutable.
Well, it just does not consider them. To me those "groups" are a parameter of the design, nothing else... The dual of a dual of a GDD is a GDD, so everything is cool. The blocks are forgotten (they can be re-computed automatically anyway), but who cares ? I don't think that you would find any other definition of the dual of a GDD anywhere...
Oh. I thought that I would only define GDD for integer ground set, but indeed it also handles the non-integer case almost for free as we know that "._blocks" are already translated to integers. You are right. I will updated that in a second.
I don't understand.
Oh, I see ! You meant for internal storage ! Fixed in the new commit. Nathann P.S. : While writing the commit, I made IncidenceStructure mutable. But it's not reaaaaaaaaaaallly a problem, it preserves all the structure ! |
comment:40
Hmmmm.. Well, it woud mean that we have to build BIBD objects during the recursive constructions too... I'd prefer to keep it this way if you don't mind
Well, that Nathann |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:42
Replying to @nathanncohen:
There is still a subtle issue. When we ask for a relabeling we do not necessarily want to relabel the points. More precisely, if the ground set is {0,1,2,3} and I want to relabel {0:1, 1:3, 2:1, 3:0} I would like the ground set to be fixed and the blocks to be changed... what do you think?
Yes: SR is very slow and unreliable (though for sqrt of integers it should be ok). Vincent |
comment:43
updated version at u/vdelecroix/16598 (above 6.3.rc1 and #16766) Vincent |
comment:44
Yoooooooo !!
I don't understand. You are just relabeling with the same ground sets, what's the problem with that ? And how does that badly affect the blocks ? Some will change, some will not, what's the problem ?
"Bôf". If it does not work it's a bug report, and if Sage cannot compute square roots safely we should fork it quick Nathann |
New commits:
|
Changed branch from u/ncohen/16598 to u/vdelecroix/16598 |
comment:47
Replying to @nathanncohen:
the ground set has changed... Vincent |
comment:48
Yooooo !
Well, as a list it has, not as a set... I think that being smart here only raises new problems. Relabelling all blocks takes much more time and memory than relabelling the points only. We could hide that by returning a sorted list of points, but well... Nathann |
comment:49
Hello, All right, we will see in the future. Vincent |
comment:51
Reviewer name |
Reviewer: Vincent Delecroix |
Changed branch from u/vdelecroix/16598 to public/16598 |
New commits:
|
Changed branch from public/16598 to |
This branch defines:
GroupDivisibleDesign
PairwiseBalancedDesign
BalancedIncompleteBlockDesign
TransversalDesign
All these classes (which inherit from
IncidenceStructure
) make it easier to do things like compute theautomorphism_group
of a transversal design.The branch also adds a function
is_group_divisible_design
indesigns_pyx.pyx
, and an emptyis_pairwise_balanced_design
that call it. We can thus get rid of the ugly_check_pbd
.Nathann
Depends on #16553
Depends on #16766
CC: @videlec
Component: combinatorial designs
Author: Nathann Cohen
Branch/Commit:
5f1fb98
Reviewer: Vincent Delecroix
Issue created by migration from https://trac.sagemath.org/ticket/16598
The text was updated successfully, but these errors were encountered: