-
-
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
Clean IncidenceStructure #16553
Comments
comment:1
Some more remarks:
|
comment:2
Yo !
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 ? That's what we want, isn't it ?
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
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.
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 ! Nathann |
comment:3
Replying to @nathanncohen:
This is confusing. Basically, we do not care too much about the data type of the blocks as soon as 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
Yes, we need
All right. Vincent |
comment:4
What is confusing ? That blocks are sets of points ?
Why doesn't it work with duals ?
............ Yeah, let's make it impossible to iterate on blocks. That will be better.
Forget about hypergraphs for the moment. Nobody but I knows it exists, and it can do nothing useful except displaying stuff, and once more I am the only one who knows that it does that Incidence Structure will be the most basic thing we have. Then we will have GDD, then all we need above that. Nathann |
comment:5
Replying to @nathanncohen:
No, that points are blocks of the dual!
Because the blocks of the duals are the point. And the dual of the dual is (canonically isomorphic) to the initial design.
All right, then we need a class Vincent |
comment:6
No. What I want is to stop trying to solve problems that already have an easy solution, especially when what you call "solving them" means sacrificing definitely useful stuff like being able to iterate on blocks. We can just make the Nathann |
comment:7
Replying to @videlec:
All right: what about intersection? do we want |
comment:8
Why we would need that ?... Nathann |
comment:9
Replying to @nathanncohen:
To compute the intersection numbers (see definition 1.5 of the Handbook). |
comment:10
That's not a reason to restrict the input. If we need to compute stuff like that we can copy the data in whatever structure we need to make it go faster, but that is not sufficient to change the input of the whole class. Nathann |
Branch: public/16553 |
New commits:
|
Commit: |
comment:12
I did not know what to do with Vincent |
comment:13
Vincent, it would be cool if you could say what you did in there, because you do a thousand things at once and it is difficult to list them all while reading the patch. You should have done several thematic commits. First, why do you rename Then, things like "return len(self.blocks())" is criminal as it requires to build the whole list only to compute its lengths. Given that you are writing methods of the very class you are allowed to use private variables, you know ? You also seem to add methods and this should go into a different patch. Really, it is very hard to understand what you do here from the diff file, so it is not the place to ad new stuff that will have to be discussed. You seem to remove classes without deprecation, like Nathann |
comment:14
Replying to @nathanncohen:
I can do that. But I am not sure you want to know the real history of my commits.
The definition of block design used in Sage is wrong. A block design is a synonym for incidence structure (as it can be checked on wikipedia or the Handbok of combinatorial designs). What was considered are t-designs for which you have well defined parameters
Right!
The only stuff I added is just to simplify the
Nope. It is now a complete synonym of Vincent |
comment:15
Yo !
Not "the real history". That's why we create several patches for several things, and that's why we can add several commits in the same ticket : so that we may present the changes in a way that makes them easy to review. You didn't want to see the real history of my design commits eithers
Well, right now tdesign returns an incidence structure too. Okay, one question : should we deprecate BlockDesign in favor of IncidenceStructure ? Also, it seems weird to have an upper case T in TDesign, given that this "t" is a variable.... What about tDesign ? What I don't like about this is that we do not need a tDesign class at all, so why would we create one ? We create classes for the wrong reason and we have nothing to put in them.
I have never heard of "t indices" anywhere. Where did you find this terminology ? It just seems to be the degree of a point, taken as a hypergraph ... Nathann |
comment:16
Replying to @nathanncohen:
I propose to remove tDesign and have
Handbook definition I.1.5. If it is not standard I can change it. To me, |
comment:17
Yo !
Works for me.
+1 to degree. However having a "degree" method is a bit of a lie given that the data structure of IncidenceStructure is not at all meant to compute the degree of points... Unless we cache it ? Nathann |
comment:18
There is right now the possibility of having repeated elements in the blocks. The Vincent |
comment:19
Yo !
Let's remove this. It does not appear in what is commonly accepted as an incidence structure. Those things are meant to be sets. Nathann |
comment:20
Another question: why steiner triple systems are incidence structure but quadruple ones are tuples of tuples? It is ugly in the doctest
|
comment:21
Yo !
Just because I hate classes. You can make them BlockDesign if you like, Dima will be happy too. By the way, Nathann |
comment:138
There is another .points that was introduced in #16535 |
comment:140
Needs review! Vincent |
comment:141
apparently it does not apply on the latest release, the branch name's in red. Instead of merging tickets you should go back to Nathann |
comment:144
For the tenth time ... |
comment:145
Replying to @nathanncohen:
and the last... (I hope) |
Changed branch from public/16553v3 to |
In #16552 we discovered that
IncidenceStructure
is not adapted to deal with projective spaces. The class should be able:GDD
or specialized one such asDesarguesianProjectivePlane
)see also: #16534
CC: @nathanncohen @brettpim
Component: combinatorial designs
Author: Nathann Cohen, Vincent Delecroix
Branch/Commit:
0698433
Reviewer: Nathann Cohen, Vincent Delecroix
Issue created by migration from https://trac.sagemath.org/ticket/16553
The text was updated successfully, but these errors were encountered: