This module gathers everything related to Group-Divisible Designs. The constructions defined here can be accessed through designs.<tab>:
sage: designs.group_divisible_design(14,{4},{2})
Group Divisible Design on 14 points of type 2^7
The main function implemented here is group_divisible_design() (which calls all others) and the main class is GroupDivisibleDesign. The following functions are available:
| group_divisible_design() | Return a -Group Divisible Design. |
| GDD_4_2() | Return a -GDD for a prime power with . |
Return a
-GDD for
a prime power with
.
This method implements Lemma VII.5.17 from [BJL99] (p.495).
INPUT:
q (integer)
existence (boolean) – instead of building the design, return:
- True – meaning that Sage knows how to build the design
- Unknown – meaning that Sage does not know how to build the design, but that the design may exist (see sage.misc.unknown).
- False – meaning that the design does not exist.
check – (boolean) Whether to check that output is correct before returning it. As this is expected to be useless (but we are cautious guys), you may want to disable it whenever you want speed. Set to True by default.
EXAMPLE:
sage: from sage.combinat.designs.group_divisible_designs import GDD_4_2
sage: GDD_4_2(7,existence=True)
True
sage: GDD_4_2(7)
Group Divisible Design on 14 points of type 2^7
sage: GDD_4_2(8,existence=True)
Unknown
sage: GDD_4_2(8)
Traceback (most recent call last):
...
NotImplementedError
Bases: sage.combinat.designs.incidence_structures.IncidenceStructure
Group Divisible Design (GDD)
Let
and
be sets of positive integers and let
be a positive
integer. A Group Divisible Design of index
and order
is a
triple
where:
is a set of cardinality 
is a partition of
into groups whose size belongs to 
is a family of subsets of
whose size belongs to
such
that any two points
from different groups appear
simultaneously in exactly
elements of
. Besides, a
group and a block intersect on at most one point.If
and
has exactly
groups of cardinality
then
is said to have type
.
INPUT:
, then
the set is considered to be
.
, set to
by default.
with the right parameters. Set to True by default.EXAMPLE:
sage: from sage.combinat.designs.group_divisible_designs import GroupDivisibleDesign
sage: TD = designs.transversal_design(4,10)
sage: groups = [range(i*10,(i+1)*10) for i in range(4)]
sage: GDD = GroupDivisibleDesign(40,groups,TD); GDD
Group Divisible Design on 40 points of type 10^4
Return the groups of the Group-Divisible Design.
EXAMPLE:
sage: from sage.combinat.designs.group_divisible_designs import GroupDivisibleDesign
sage: TD = designs.transversal_design(4,10)
sage: groups = [range(i*10,(i+1)*10) for i in range(4)]
sage: GDD = GroupDivisibleDesign(40,groups,TD); GDD
Group Divisible Design on 40 points of type 10^4
sage: GDD.groups()
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
[20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
[30, 31, 32, 33, 34, 35, 36, 37, 38, 39]]
TESTS:
Non-integer ground set:
sage: TD=designs.transversal_design(5,5)
sage: TD.relabel({i:chr(97+i) for i in range(25)})
sage: TD.groups()
[['a', 'b', 'c', 'd', 'e'],
['f', 'g', 'h', 'i', 'j'],
['k', 'l', 'm', 'n', 'o'],
['p', 'q', 'r', 's', 't'],
['u', 'v', 'w', 'x', 'y']]
Return a
-Group Divisible Design.
A
-GDD is a pair
where:
is a partition of
where 


is a
-PBDFor more information, see the documentation of GroupDivisibleDesign or PairwiseBalancedDesign.
INPUT:
v (integer)
K,G (sets of integers)
existence (boolean) – instead of building the design, return:
- True – meaning that Sage knows how to build the design
- Unknown – meaning that Sage does not know how to build the design, but that the design may exist (see sage.misc.unknown).
- False – meaning that the design does not exist.
check – (boolean) Whether to check that output is correct before returning it. As this is expected to be useless (but we are cautious guys), you may want to disable it whenever you want speed. Set to True by default.
Note
The GDD returned by this function are defined on range(v), and its groups are sets of consecutive integers.
EXAMPLES:
sage: designs.group_divisible_design(14,{4},{2})
Group Divisible Design on 14 points of type 2^7