Opened 5 years ago

Closed 4 years ago

#16655 closed enhancement (fixed)

Resolvable TD/OA and IncidenceStructure.relabel()

Reported by: ncohen Owned by:
Priority: major Milestone: sage-6.4
Component: combinatorial designs Keywords:
Cc: vdelecroix, knsam, dimpase, brett Merged in:
Authors: Nathann Cohen Reviewers: Vincent Delecroix
Report Upstream: N/A Work issues:
Branch: 5245ef6 (Commits) Commit: 5245ef6b93e10c1971257007d5e9d7b4839ecef6
Dependencies: #16598 Stopgaps:

Description (last modified by ncohen)

A resolvable OA(k,n) is a OA(k,n+1), and the same holds for TD of course. This patch adds a "resolvable" boolean to the two constructors to get resolvable designs.

For OA, the classes are provided by sorting the blocks appropriately.

For TD, which are now IncidenceStructure, the same is not possible as incidence structure sort their blocks. Thuuuuuus I was forced to create a (useful) is_resolvable function (expect it to be slow on non-ridiculously-small input) which returns the classes.

This is what turned this a priori straightforward patch into ... my whole morning :-P

Nathann

Nathann

Change History (12)

comment:1 Changed 5 years ago by ncohen

  • Description modified (diff)
  • Status changed from new to needs_review

comment:2 Changed 5 years ago by ncohen

  • Branch set to u/ncohen/16655

comment:3 Changed 5 years ago by git

  • Commit set to 1f56a6abe29f08f0db055e9be9fe060a068d2592

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

3c0dd71trac #16553v3: change .points() -> .ground_set()
52b7177trac #16553: merge sage 6.3.beta5
0698433trac #16553: deprecated alias .points() + fix
cdaf1e2trac #16598: Useless new classes and a replacement for _check_pbd
3f8cebbtrac #16598: G and K as arguments of GDD
fa3c715trac #16598: Relabel, review, doc fix, ...
1a5a4b8trac #16598: The constructors implicitly assumed that the ground set was made of integers
f454c82trac #16598: reviewer
494d826trac #16598: Reviewer's comments
1f56a6atrac #16655: resolvable OA/TD

comment:4 Changed 4 years ago by ncohen

  • Summary changed from Resolvable TD/OA to Resolvable TD/OA and IncidenceStructure.relabel()

comment:5 Changed 4 years ago by git

  • Commit changed from 1f56a6abe29f08f0db055e9be9fe060a068d2592 to 32a3c749008315612b1eb56f645dd811db4eb2c1

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:

ea8b144trac #16598: Code simplification
081aa8btrac #16598: merge with 6.3.rc1
49ae09dtrac #16766: Improve the doc of combinat/designs/
d626290trac #16766: we don t want designs.deprecated_function_alias
8f9ee77trac #16766: Broken doctests
47cebb3trac #16766: Broken doctest
6cda4b6trac #16766: Git 101: How to create a conflict with 10 others patches in needs_review
06e330btrac #16766: form -> from
1a9ae44trac #16598: merge #16766 (documentation update)
32a3c74trac #16655: resolvable OA/TD

comment:6 Changed 4 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:7 Changed 4 years ago by git

  • Commit changed from 32a3c749008315612b1eb56f645dd811db4eb2c1 to 0a900d4b28a1d4d76788e45a2a9249d803f4de2f

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

5f1fb98trac #16598: Merged with 6.3
0a900d4trac #16655: resolvable OA/TD

comment:8 Changed 4 years ago by git

  • Commit changed from 0a900d4b28a1d4d76788e45a2a9249d803f4de2f to b2f1c8f5487f2cc11a3098572a090e5a8b9bf4d5

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

b2f1c8ftrac #16655: resolvable OA/TD

comment:9 Changed 4 years ago by git

  • Commit changed from b2f1c8f5487f2cc11a3098572a090e5a8b9bf4d5 to cffb31d23d074009d799af9d209a84e3b9bf8e54

Branch pushed to git repo; I updated commit sha1. New commits:

9103ee9trac #16655: Merged with 6.4.beta1
cffb31dtrac #16722: A note about GLPK's "performances", new arguments to change the solver and the verbosity level

comment:10 follow-up: Changed 4 years ago by vdelecroix

  • Status changed from needs_review to needs_info

At u/vdelecroix/16655:

1) There was a check that the sum of degrees is a multiple of the size of the ground set... I changed it into a check that all degrees are the same.

2) The output was wrong (should be a pair if certificate=True and a boolean if certificate=False).

3) Now self._classes is a list of lists of blocks and not a list of lists of indices

3) Some more documentation

Tell me what you think.

Vincent

comment:11 in reply to: ↑ 10 Changed 4 years ago by ncohen

  • Branch changed from u/ncohen/16655 to u/vdelecroix/16655
  • Commit changed from cffb31d23d074009d799af9d209a84e3b9bf8e54 to 5245ef6b93e10c1971257007d5e9d7b4839ecef6
  • Reviewers set to Vincent Delecroix
  • Status changed from needs_info to positive_review

Yooooooooooo !

1) There was a check that the sum of degrees is a multiple of the size of the ground set... I changed it into a check that all degrees are the same.

Yes of course T_T

2) The output was wrong (should be a pair if certificate=True and a boolean if certificate=False).

Right right.

3) Now self._classes is a list of lists of blocks and not a list of lists of indices

That's muuuuuuch better this way ! And my ugly sorting is not needed anymore.

3) Some more documentation

Tell me what you think.

Thank you for that ! Let's get this in !

Nathann


New commits:

5245ef6trac #16655: review

comment:12 Changed 4 years ago by vbraun

  • Branch changed from u/vdelecroix/16655 to 5245ef6b93e10c1971257007d5e9d7b4839ecef6
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.