Opened 6 years ago
Closed 6 years ago
#16503 closed enhancement (fixed)
qx construction of Orthogonal Arrays
Reported by:  ncohen  Owned by:  

Priority:  major  Milestone:  sage6.3 
Component:  combinatorial designs  Keywords:  
Cc:  vdelecroix  Merged in:  
Authors:  Nathann Cohen  Reviewers:  Vincent Delecroix 
Report Upstream:  N/A  Work issues:  
Branch:  8da2c73 (Commits)  Commit:  8da2c73aeb5a5ca2e1561131fb3218b3c451b33c 
Dependencies:  #16500  Stopgaps: 
Description
Another construction of orthogonal arrays. New OA for n=158, 329, 334, 355, 517, 574, 745, 979, 1926
.
Thanks to Julian R. Abel's pointers, as usual :)
Nathann
Change History (18)
comment:1 Changed 6 years ago by
 Branch set to u/ncohen/16503
 Dependencies set to #16500
 Status changed from new to needs_review
comment:2 Changed 6 years ago by
 Commit set to 9128badc12a22a2fed2b78f4e08e9bb349d1ecaa
comment:3 Changed 6 years ago by
 Commit changed from 9128badc12a22a2fed2b78f4e08e9bb349d1ecaa to 6087843eba8aac6bf74b4ef69ea72762ce47cacf
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
828ff22  trac #16437: cut the branches in W. dec. with two trunc. blocks

8ebd21b  trac #16347: use is_sum_of_squares_pyx instead of two_squares

0175134  trac #16347: doc + simplifications

9ff5062  trac #16423: Table of MOLS from the handbook and comparison with Sage

e64be98  trac #16423: tiny code improvement and alignment

e948cf6  trac #16423: Aligning the alignment

0a7d853  trac #16423: Broken doctests

b329351  trac #16499: Cheap speedup in the OA recursive constructions

a67c04f  trac #16500: New recursive constructions of Orthogonal Arrays

6087843  trac #16503: qx construction of Orthogonal Arrays

comment:4 Changed 6 years ago by
Updated on top of #16500 !
Nathann
comment:5 Changed 6 years ago by
 Commit changed from 6087843eba8aac6bf74b4ef69ea72762ce47cacf to 71dad5d46b3fe7b343962974a75a9c199e0904a6
comment:6 followup: ↓ 7 Changed 6 years ago by
Hi Nathann,
1) One lines 656659 you have an import followed by a commented check!!
from sage.combinat.designs.bibd import _check_pbd PBD = [[relabel[xx] for xx in B if not xx in points_to_delete] for B in TD] # _check_pbd(PBD,n,[q,qx1,qx+1,x+2])
why is that?
2) This is wrong (lines 730731)
# The next is always True, because q is a prime power # orthogonal_array(k+1,q,existence=True) and
if k+1 > q... instead we can start the loop at k+1 instead of 3.
3) I bounced into something bad: I wanted to change in find_recursive_construction
the
assert k >= 3
into a
assert k > 3, "you do not need recursion for k<4"
since it is trivial to build one latin square. But it appears that the recursive constructions is called with k=3 many times! so bad! This has to be corrected... but hopefully, not here. I guess that #16535 would be the good place.
Vincent
comment:7 in reply to: ↑ 6 Changed 6 years ago by
Hello !
1) One lines 656659 you have an import followed by a commented check!!
from sage.combinat.designs.bibd import _check_pbd PBD = [[relabel[xx] for xx in B if not xx in points_to_delete] for B in TD] # _check_pbd(PBD,n,[q,qx1,qx+1,x+2])why is that?
It is something I used while implementing the construction and as it said something about the PBD I left it. I updated that comment as that troubled you.
2) This is wrong (lines 730731)
# The next is always True, because q is a prime power # orthogonal_array(k+1,q,existence=True) and
The line before that one is
orthogonal_array(k+1,qx+1,existence=True) and
3) I bounced into something bad: I wanted to change in
find_recursive_construction
theassert k >= 3into a
assert k > 3, "you do not need recursion for k<4"since it is trivial to build one latin square. But it appears that the recursive constructions is called with k=3 many times! so bad! This has to be corrected... but hopefully, not here. I guess that #16535 would be the good place.
Why in #16535 ? What we need to do is add a case for k=3 in the orthogonal_array
constructor.
I fixed the things above, plus an apparently incorrect 1<x
.
Nathann
comment:8 Changed 6 years ago by
 Commit changed from 71dad5d46b3fe7b343962974a75a9c199e0904a6 to 91eb3d2d16fa8a4576d6b5d6e2686af6f8593def
Branch pushed to git repo; I updated commit sha1. New commits:
91eb3d2  trac #16503: Review

comment:9 Changed 6 years ago by
Hi Nathann,
You can actually cut the loop if x >= q
as x
is increasing along the loop. It is done at public/16503
(it does not matter too much right now, but it will if you want to compute a big MOLS table).
Beyond that, you can set to positive review.
Vincent
comment:10 Changed 6 years ago by
 Status changed from needs_review to needs_info
comment:11 followup: ↓ 12 Changed 6 years ago by
HMmmmm... I don't like much to differentiate over integer divisions.. Do you mind if we keep it like that ?
Nathann
comment:12 in reply to: ↑ 11 Changed 6 years ago by
 Reviewers set to Vincent Delecroix
 Status changed from needs_info to positive_review
Replying to ncohen:
HMmmmm... I don't like much to differentiate over integer divisions.. Do you mind if we keep it like that ?
Me neither, but the floor function is increasing... so it is fine (as the composition of increasing functions is increasing)! But we can keep it as it is, since we cut very little with that: (q^2n)/(q2) ~ q + cte
for large q
.
Vincent
comment:13 Changed 6 years ago by
 Status changed from positive_review to needs_work
As reported in #16524 there is a problem building the doc. Solution (line 622)
 REFERENCES:: + REFERENCES:
comment:14 Changed 6 years ago by
 Commit changed from 91eb3d2d16fa8a4576d6b5d6e2686af6f8593def to 8da2c73aeb5a5ca2e1561131fb3218b3c451b33c
Branch pushed to git repo; I updated commit sha1. New commits:
8da2c73  trac #16503: Broken doc

comment:15 Changed 6 years ago by
 Status changed from needs_work to needs_review
comment:16 Changed 6 years ago by
... building the doc...
comment:17 Changed 6 years ago by
 Status changed from needs_review to positive_review
comment:18 Changed 6 years ago by
 Branch changed from u/ncohen/16503 to 8da2c73aeb5a5ca2e1561131fb3218b3c451b33c
 Resolution set to fixed
 Status changed from positive_review to closed
Branch pushed to git repo; I updated commit sha1. New commits:
trac #16347: Wilson's construction with two truncated groups
trac #16347: Merged with 6.3.beta4
trac #16499: Cheap speedup in the OA recursive constructions
trac #16500: New recursive constructions of Orthogonal Arrays
trac #16503: qx construction of Orthogonal Arrays