\documentclass[11pt]{article}

\usepackage{latexsym}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{hyperref}
\usepackage{algorithmic}
\usepackage{algorithm}

\newcommand{\handout}[5]{
  \noindent
  \begin{center}
    \framebox{
      \vbox{
        \hbox to 5.78in { {\bf Algebra and Computation } \hfill Course Instructor: #2 }
        \vspace{4mm}
        \hbox to 5.78in { {\Large \hfill #5  \hfill} }
        \vspace{2mm}
        \hbox to 5.78in { {\em #3 \hfill #4} }
      }
    }
  \end{center}
  \vspace*{4mm}
}

\newcommand{\lecture}[4]{\handout{#1}{#2}{Lecturer: #3}{Scribe: #4}{Lecture #1}}

\newtheorem{theorem}{Theorem}
\newtheorem{theorem*}{Theorem}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{observation}[theorem]{Observation}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{fact}[theorem]{Fact}
\newtheorem{subclaim}[theorem]{Subclaim}

% my custom commands
\newcommand{\inparen}[1]{\left(#1\right)}             %\inparen{x+y}  is (x+y)
\newcommand{\inbrace}[1]{\left\{#1\right\}}           %\inbrace{x+y}  is {x+y}
\newcommand{\insquar}[1]{\left[#1\right]}             %\insquar{x+y}  is [x+y]
\newcommand{\inangle}[1]{\left\langle#1\right\rangle} %\inangle{A}    is <A>
\newcommand{\abs}[1]{\left|#1\right|}                 %\abs{x}        is |x|
\newcommand{\norm}[1]{\left\Vert#1\right\Vert}        %\norm{x}       is ||x||
\newcommand{\union}{\cup}
\newcommand{\Union}{\bigcup}
\newcommand{\intersection}{\cap}
\newcommand{\super}[2]{#1^{\inparen{#2}}}             %\super{G}{i-1} is G^{(i-1)}
\newcommand{\setdef}[2]{\inbrace{{#1}\ : \ {#2}}}
\newcommand{\inv}[1]{#1^{-1}}

% Commands specific to this file
% TODO: Find the right way to typeset group index
\DeclareMathOperator{\Sym}{Sym}
\newcommand{\gpidx}[2]{\insquar{#1 : #2}}             %\gpidx{H}{K}   is [H : K]
\newcommand{\gpigs}[2]{\gpidx{\super{G}{#1}}{\super{G}{#2}}} %Group index of g super ...
\newcommand{\llhd}{\!\!\lhd\!\!\lhd}

% \newcommand{\ceil}[1]{\lceil #1 \rceil}
\newcommand{\floor}[1]{\lfloor #1 \rfloor}
% \newcommand{\f}{\mathbb{F}}
% \newcommand{\R}{\mathbb{R}}

%for algorithms
\renewcommand{\algorithmicrequire}{\textbf{Input:}}

\begin{document}

\lecture{8,9: General Bounded Degree {\sc graph-iso}}{V. Arvind}{V.
  Arvind}{Ramprasad Saptharishi}

\section{Recap}

In the last few classes, we saw that we could reduce trivalent graph
isomorphism to {\sc set-stab} for $2$-groups. The algorithm is
identical to a more general problem, which could be used to solve {\sc
  graph-iso} with degree of each vertex bounded by a constant $d$. 

The idea is more or less the same, we have two graphs with max degree
bounded by a constant $d$. We shall, in polynomial time, reduce this
problem to a restricted {\sc set-stab} problem that could be solved in
polynomial time. 

\section{Generalization to $(\leq d)$-degree graphs}

Given two graphs $X_1$ and $X_2$ with the additional promise that the
max degree in both of them is bounded by a constant $d$.

Just as in the trivalent case, add a new bridge between two edges of
the graph. Then problem the reduces to finding the automorphism group
of the graph that fixes this distinguished edge $e$. Let $X_i$ be the
subgraph consisting of edges that are reachable by paths of length
atmost $i$ through $e$. As before, any $e$-automorphism must preserve
these layers and hence we have a natural map $\pi_i:Aut_e(X_{i+1})
\longrightarrow Aut_e(X_i)$. Using these maps, we are going to find a
generating set for $Aut_e(X_n) = Aut_e(X).$ 

The claim is that the groups in discussion are special, all their
composition factors are $\leq d.$ We shall prove this by induction
just as in the trivalent case (where each of the factors were atmost
$2$, thus giving us a $2$-group). 

\subsection{$\ker{\pi_i}$ has small factors}

The kernel is the set of $e$-automorphisms of $X_{i+1}$ that fix
$X_i$. And since the degree is bounded by $d$, every vertex in $X_i$
can reach out to atmost $d$ vertices in $X_{i+1}$, and all
automorphisms in the kernel can only permute the vertices with common
parents. 

Let $A$ be the set of subsets of $V(X_i)$ of size atmost $d$. Then we
have the neighbourhood map $\Gamma:V(X_{i+1})\setminus
V(X_i)\longrightarrow A$ such that $\Gamma(u) = a$ if $a$ is the set
of neighbours of $u$. Note that $\inbrace{\Gamma^{-1}(a)}$ partitions
the vertices in $X_{i+1}\setminus X_i$ and $|\Gamma^{-1}(a)| \leq d$. 

Thus clearly, $\ker{\pi_i} = \bigotimes
\Sym\inparen{\Gamma^{-1}(a)}$ and thus has composition factors atmost
$d$.\\

This hence proves the claim that each of the automorphism has small
factors. The above argument also yields a generating set for the
kernel. Once we have a generating set for the image as well, we can
construct the automorphism group of $X_{i+1}$ from $X_i$. 

\subsection{Image of $\pi_i$ reduces to restricted {\sc set-stab}}

Similar to the trivalent case, the image is just the set of all
automorphisms that stabilize the following sets. \medskip

\noindent
Edges within $X_i$:
$$
A' = \inbrace{\text{$2$-subsets of $A$ that are new edges inside $X_i$}}
$$
Parent with same number of siblings:
$$
A_s = \setdef{a\in A}{|\Gamma^{-1}(a)| = s}\qquad 1\leq s\leq d
$$

\begin{claim}
The image is precisely the subgroup of automorphisms of $Aut_e(X_i)$
that stabilize each of the $A_s$ and $A'.$ 
\end{claim}

The proof is identical to the trivalent case, we shall hence skip it. 

\section{The restricted {\sc set-stab}}

Given a group $G = \inangle{A} \leq \Sym(\Omega)$ and $\Delta
\subseteq \Omega.$ We are interested in finding $G_\Delta =
\setdef{g\in G}{\Delta^g = \Delta}.$ 

We do not hope to solve the general problem in polynomial
time. However, a restricted version where $G$ is a group with small
compositional factors can be done efficiently. Divide-and-conquer is
the method adopted in the algorithm. 

\begin{definition}
  A finite group $G \in \mathcal{B}_d$ if every composition factor is
  isomorphic to a subgroup of $S_d.$ 
\end{definition}

From the earlier sections, we saw that $Aut_e(X)\in \mathcal{B}_d$ if
the degree of $X$ is bounded by $d.$ Hence, we need to solve the {\sc
  set-stab} problem for groups in $\mathcal{B}_d.$ 

Firstly, if $\Omega_1, \Omega_2, \cdots, \Omega_m$ are the $G$ orbits
then it is equivalent compute the stabilizer of $\Omega_i\cap \Delta$
for all $i$. Thus, we can assume that $G$ acts transitively on
$\Omega$. \medskip

How do we further divide? Consider the block structure! Recall that
blocks $(\Delta)$ are subsets of $\Omega$ such that they move as a
whole $(\Delta^g \cap \Delta \neq \phi \Rightarrow \Delta =
\Delta^g).$ A block system naturally induces a tree structure on
$\Omega$. We shall call this the structure forest of $G.$ And since
we've already broken down $\Omega$ into $G$-orbits, we infact have
just a structure tree. \bigskip

{\em picture might be useful}

\bigskip

Each node is labelled by a block, that is the union of its
children. The leaves are the trivial singleton blocks. 

Now consider the top-most level, the root is labelled by $\Omega$,
which is the union of its children say $\Gamma_1, \cdots, \Gamma_m.$
Now, considering each $\Gamma_i$ as a point, $G$'s action on them is
primitive (there are no non-trivial blocks). The kernel of this action
is the group $H = \setdef{g\in G}{\Gamma_i^g = \Gamma_i\quad \forall i}.$

Let $G = \bigcup_{i=1}^r H\tau_i$, then $G_\Delta = \bigcup
(H\tau_i)_\Delta$. But in order to talk about a stabilizer in a coset,
we need to generalize the stabilizer problem. 

\subsection{Generalized {\sc set-stab}}

One could think of $\Delta$ as a $2$-colouring of the set $\Omega.$
Thus a natural generalization would be the following. \medskip

Given a colouring $C$ of $\Omega$, we wish to find $$G_C = \setdef{g\in
  G}{a^g\text{ has the same colour as }a\quad \forall a\in \Omega}$$

Let us extend this a little further to capture the coset structure as
well. 

Given a coloured $\Omega$ , $G\leq \Sym(\Omega)$ , $\sigma\in
\Sym(\Omega)$ and $\Omega' \subseteq \Omega$ that is
$G$-stable\footnote{stable under action of $G$, union of orbits}, we
wish to find
$$
stab(\Omega', G\sigma) = \setdef{g\in G\sigma}{\omega^g\sim
  \omega\quad \forall \omega \in \Omega'}
$$

Then we have the following easy claim, the proof is left to the reader
(simple though)

\begin{claim}
  $stab(\Omega',G\sigma)$ is a right coset of $stab(\Omega',G).$
\end{claim}

We can hence ask the following question: Given $G = \inangle{A} \leq
\Sym(\Omega)$ that is coloured and a $\Omega'$ that is a $G$-stable
set and a $\sigma \in \Sym(\Omega)$. How do we compute $stab(\Omega',
G\sigma)$? 

With this generalization, we can do the divide and conquer. 

\section{The Divide and Conquer}

Given a group $G \in \mathcal{B}_d$, we want to solve the stabilizer
problem. The first step is to break $\Omega$ into orbits and work on
each of them separately. Once we do that, we look at the block
structure of $G$ and at the topmost level. 

We have a single tree, with $\Omega$ at the root with $\Gamma_1,
\Gamma_2, \cdots, \Gamma_m$ as the primitive blocks on which $G$
acts. The kernel of this action is $H = \setdef{g\in G}{\Gamma_i^g =
  \Gamma_i\quad \forall i}$. Let 
$$
G\sigma = \bigcup_{i=1}^r H\tau_i\sigma
$$
Now all that we need to do is compute $stab(\delta\cap
\Gamma_i,H\tau_j\sigma)$ for all $i$ and $j$ and we have a recursive
algorithm. \bigskip

The catch here is that we need to know how many recursive calls to
make. It would be completely useless if $r$ (the index of $H$ in $G$)
was exponential; we need a decent bound on $r$. Fortunately, we do
have such a bound. 

\begin{theorem}[Babai, Cameron, P\'{a}lfy]
If $G\leq S_n$ belongs to $\mathcal{B}_d$ and is primitive,
then $|G| \leq n^{cd}$ where $c$ is an absolute constant.
\end{theorem}

Thus, $r\leq m^{cd}$ and the algorithm would then go through. It can
be shown that we then have an $O(n^{d})$ algorithm for the restricted
{\sc set-stab}, and hence a $O(n^{d^2})$ algorithm for bounded degree
graph isomorphism. 


\end{document}
