[Up] [Previous] [Next] [Index]

# 3.2 How partial difference sets are represented

Let G be a group. We define an enumeration {g1,...,gn}=G and represent D ⊆ G as a list of integers (where ,of course, i represents gi for all 1 ≤ i ≤ n). So the automorphism group of G is represented as a permutation group of degree n. One of the operations performed most often by methods in RDS is the calculation of quotients in G. So we calculate a look-up table for this.

This pre-calculation is done by the operation `PermutationRepForDiffsetCalcuations`. So before you start generating difference set, call this function and work with the data structure returned by it.

For an exhaustive search, the ordering of G is very important. To avoid generating duplicate partial difference sets, we would like to represent partial difference sets by sets, i.e. ordered lists. But in fact, RDS does not assume that partial difference sets are sets. The operations `ExtendedStartSets` and `AllDiffsets` assume that the last element of partial difference set is its maximum. But they don't test it. So if you start from scratch, these methods generate difference sets which are really sets. Whereas the `NoSort` versions disregard the ordering of G and will produce duplicates.

The reason for this seemingly strange behaviour is the following: Assume that we have a normal subgroup U ≤ G and know that every difference set D ⊆ G contains exactly ni elements from the ith coset modulo U. Then it is natural to generate difference sets by first searching all partial difference sets of length n1 containing entirely of elements of the first coset modulo U and then proceed with the other cosets.

This method of difference set generation is normally not compatible with the ordering of G. This is why partial difference sets are not required to be sets. See chapter RDS:An Example Program for an example.

[Up] [Previous] [Next] [Index]