Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 91213ddcfbe7f54821d42c2d9e091326 > files > 2526

gap-system-packages-4.4.12-5mdv2010.0.i586.rpm

<html><head><title>[RDS] 2 AllDiffsets and OneDiffset</title></head>
<body text="#000000" bgcolor="#ffffff">
[<a href = "chapters.htm">Up</a>] [<a href ="CHAP001.htm">Previous</a>] [<a href ="CHAP003.htm">Next</a>] [<a href = "theindex.htm">Index</a>]
<h1>2 AllDiffsets and OneDiffset</h1><p>
<p>
This chapter contains a number of examples as a very quick
introduction to a few brute-force methods which can be used to find
all (or just one) relative difference sets in a small group.  Full
documentation of these functions including all parameters can be found
in section <a href="../../rds/htm/CHAP004.htm#SECT004">RDS:Brute force methods</a>.
<p>
Do not expect too much from these methods alone! If
you want to find examples of relative difference sets in larger
groups, you should familiarize with the notion of coset signatures by
also reading the next chapter.
<p>
The functions <a href="CHAP004.htm#SSEC004.1">AllDiffsets</a> and <a href="CHAP004.htm#SSEC004.3">OneDiffset</a> present the
easiest way to calculate relative difference sets.
<p>
For a quick start, try this:
<pre>
gap&gt; LoadPackage("rds");;
gap&gt; G:=CyclicGroup(7);
&lt;pc group of size 7 with 1 generators&gt;
gap&gt; AllDiffsets(G);
[ [ f1, f1^3 ], [ f1, f1^5 ], [ f1^2, f1^3 ], [ f1^2, f1^6 ], [ f1^4, f1^5 ], 
  [ f1^4, f1^6 ] ]
gap&gt; OneDiffset(G);    
[ f1, f1^3 ]
</pre>
<p>
The first is the set of all ordinary difference sets of order <var>2</var> in
the cyclic group of order <var>7</var>. Ok, they look too small (recall that
the order of a difference set is the number <var>k</var> of elements it
contains minus the multiplicity <var>lambda</var>). Here is the reason:
<p>
Without loss of generality, every difference set contains the identity
element of the group it lives in. <font face="Gill Sans,Helvetica,Arial">RDS</font> knows this and
assumes it implicitly. So difference sets of length <var>n</var> are
represented by lists of length <var>n-1</var>. 
<p>
We can calculate all ordinary difference sets in <var>G</var> which contain the
last element using <a href="CHAP004.htm#SSEC004.2">AllDiffsetsNoSort</a>. Observe, that <a href="CHAP004.htm#SSEC004.1">AllDiffsets</a>
calculates partial difference sets by adding elements to the given
list which are lexicographically larger than the last one of this
list:
<p>
<pre>
gap&gt; AllDiffsetsNoSort([Set(G)[7]],G);
[ [ f1^6, f1^2 ], [ f1^6, f1^4 ] ]
gap&gt; AllDiffsets([Set(G)[7]],G);      
[  ]
</pre>
<p>
You can also generate relative difference sets. Here we must give a
partial difference set to start with (the empty list is ok) and a
forbidden set. Notice that a forbidden subgroup cannot be input as a
<strong>group</strong>. It has to be converted to a set.
<p>
<pre>
gap&gt; G:=ElementaryAbelianGroup(81);
&lt;pc group of size 81 with 4 generators&gt;
gap&gt; N:=Subgroup(G,GeneratorsOfGroup(G){[1,2]});
Group([ f1, f2 ])
gap&gt; OneDiffset([],Set(N),G);
[ f3, f4, f1*f3^2, f2*f3*f4, f1^2*f4^2, f2*f3^2*f4^2, f1*f2^2*f3^2*f4, 
  f1^2*f2^2*f3*f4^2 ]
</pre>
<p>
If the parameter <var>lambda</var> is not given, it is set to <var>1</var>.
Of course, we can also find difference sets with <var>lambda&gt;1</var>. Here is a <var>(12,2,12,6)</var> difference set in <var>SL(2,3)</var>:
<p>
<pre>
gap&gt; G:=SmallGroup(24,3);                      
&lt;pc group of size 24 with 4 generators&gt;
gap&gt; N:=First(NormalSubgroups(G),i-&gt;Size(i)=2);
Group([ f4 ])
gap&gt; OneDiffset([],Set(N),G,6); 
[ f1, f2, f3, f1^2, f1*f2, f1*f3, f2*f3, f1*f2*f3, f1^2*f2*f4, f1^2*f3*f4, 
  f1^2*f2*f3*f4 ]
</pre>
<p>
To test if a set is a relative difference set, <a href="CHAP004.htm#SSEC003.2">IsDiffset</a> can be used:
<p>
<pre>
gap&gt; a:=(1,2,3,4,5,6,7);
(1,2,3,4,5,6,7)
gap&gt; IsDiffset([a,a^3],Group(a));  #an ordinary difference set
true
gap&gt; IsDiffset([a,a^2,a^4],Group(a));  #no ordinary difference set
false
gap&gt; IsDiffset([a,a^2,a^4],Group(a),2);   #diffset with &lt;lambda&gt;=2
true
</pre>
<p>
In some cases, <a href="CHAP004.htm#SSEC004.1">AllDiffsets</a> and <a href="CHAP004.htm#SSEC004.3">OneDiffset</a> will refuse to work. A
solution for this is to calculate <code>IsomorphismPermGroup</code> for your
group and then work with the image under this isomorphism.
<p>
 See <a href="../../rds/htm/CHAP004.htm#SECT004">RDS:Brute force methods</a> for details.
<p>
[<a href = "chapters.htm">Up</a>] [<a href ="CHAP001.htm">Previous</a>] [<a href ="CHAP003.htm">Next</a>] [<a href = "theindex.htm">Index</a>]
<P>
<address>RDS manual<br>January 2008
</address></body></html>