3
$\begingroup$

Given a finite group $G < Sym(\Omega)$; $\Omega$ finite, and $X \subset \Omega$, I can define a by the function $H(g) = \{x^g \| x \in X\}$ for each $g \in G$. Of course, each $H$ has the same size as $X$. Two different elements of $G$, $g_1,g_2$ may generate the same set $H(g_1)=H(g_2)$. Taking the collection of all such sets, $\mathscr{H} = \bigcup_{g \in G} H(g)$

I need to find $\mathscr{H}$, so what is the fastest way to find $F \subset G$ such that $\mathscr{H}$ is the disjoint union over $F$?

(I'm more interested mathematically how to do so, but I also need to compute the result. I am using GAP currently, with the following script:

setToThe := function(set,g)     local x, l, i, s;     l := [];     i := 1;     for s in set do         x := s^g;         l[i] := x;         i := i + 1;     od;     return l;     end;  grp := ...; set := ...;  unique := []; unique[1] := set;  for g in grp do     allGood := true;     startUnique := Size(unique);      for j in [1..startUnique] do         newset := setToThe(set,g);         Sort(newset);         if newset = unique[j] then             allGood := false;             break;         fi;     od;      if allGood then         unique[Size(unique)+1] := newset;     fi; od; 
  • 3
    What makes you think you can find an $F$ such that the union defining $\mathcal{H}$ is a disjoint union? This seems hard to pull off if, for example, $X$ contains more than half of the elements of $\Omega$. Anyway, it seems like a more efficient way of calculating $\mathcal{H}$ is to union up the $G$-orbits of points in $X$.2011-07-14

1 Answers 1

0

It's simple, I feel silly:

Orbits(grp,set,OnSets);

So the trick is instead of thinking $Sym(\Omega)$, think $Sym(\alpha)$ where $\beta \subset \mathscr{P}(\Omega)$ such that for all $\alpha \in \beta$, $|\alpha| = |X|$

  • 1
    How does this answer the question you asked?2011-07-14