ANALYSIS of ALGORITHMS, Bulletin Board

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A riedel computation. (V) Was re. Quickselect and inversions.




Greetings.

The induction proof is now complete.

Regards,

Marko Riedel

----------------------------------------------------------------------


\documentclass{article}

\usepackage{latexsym,amsfonts,amssymb,amsmath,amstext,amsthm}

\begin{document}

\newcommand{\half}{\frac{1}{2}}
\newcommand{\thrd}{\frac{1}{3}}
\newcommand{\qurt}{\frac{1}{4}}
\newcommand{\sxth}{\frac{1}{6}}
\newcommand{\octa}{\frac{1}{8}}
\newcommand{\dode}{\frac{1}{12}}

\newcommand{\PAR} [1]{\left(#1\right)}
\newcommand{\MAND}  {\quad \text{and   }  \quad}
\newcommand{\MWHERE}{\quad \text{where }  \quad}

\title{Quickselect and inversions}

\author{Marko Riedel}
\maketitle

\section{Recurrence relation}

Consider the following question. What amount of disorder is left in a
permutation after one of its elements has been selected with
quickselect?

This can be rephrased as follows. Compute the "grand average" for the
expected number of inversions left in a permutation after one of its
elements has been selected with quickselect.

Let $r_n(z)$ be the exponential generating function of the inversions
in a random permutation of size $n$, where $0, 1,\ldots n-1$ are the
elements being permuted. We have

\[ r_n(z) = 
  \frac{1}{n!}
  \prod_{k=0}^{n-1} \sum_{l=0}^k z^l =
  \frac{1}{n!}
  \prod_{k=0}^{n-1} \frac{z^{k+1}-1}{z-1}.\]

Let $q_{n, j}(z)$ be the exponential generating function of the number
of inversions after the element $j$, where $1 \le j \le n$ has been
selected from a random permutation of size $n$. The base cases are:
$n=1$ and $q_{1, 1}(z) = 1/1 = 1$ and $n=2$ and $q_{2, 1}(z) = q_{2,
2}(z) = 2/2 = 1.$ We let $r_0(z) = q_{0, j}(z) = 1.$ Let $p$ denote
the pivot, where $1 \le p \le n$. The recurrence for $q_{n, j}(z)$ is
as follows.
\begin{eqnarray*}
 q_{n, j}(z)  & = &
  \frac{1}{n} 
  \sum_{p=1}^{j-1} r_{p-1}(z) q_{n-p, j-p}(z) \\
   & + & \frac{1}{n} r_{j-1}(z) r_{n-j}(z)    \\
   & + & \frac{1}{n} \sum_{p=j+1}^n q_{p-1, j}(z) r_{n-p}(z).
\end{eqnarray*}

We are interested in the asymptotics of
\[ \frac{q_n'(1)}{n}
   \MWHERE
   q_n(z) = \sum_{j=1}^n q_{n, j}(z).\]

\newpage

{\bf Claim.} We have
\[ q_{n, j}'(1) = 
   \octa (n+1-j)(n-4-j) + \octa j(j-5)+
   \half H_{n+1-j} + \half H_j.\]

{\bf Proof.} Use induction. Indeed $q_{1, 1} = -4 \octa - 4 \octa +
\half H_1 + \half H_1 = -1 + 1 = 0$, $q_{2, 1} = -6 \octa - 4 \octa +
\half H_2 + \half H_1 = 0$ and $q_{2, 2} = -4 \octa - 6 \octa + \half
H_1 + \half H_2 = 0.$

Note that $r_n(1) = 1, r_n'(1) = \qurt n (n-1)$ and $q_{n, l}(1) = 1.$

Compute the recurrence relation for $q_{n, j}'(1).$
We have
\begin{eqnarray*}
 q_{n, j}'(z)  & = &
  \frac{1}{n} 
  \sum_{p=1}^{j-1} r_{p-1}'(z) q_{n-p, j-p}(z)
  + \frac{1}{n} 
  \sum_{p=1}^{j-1} r_{p-1}(z) q_{n-p, j-p}'(z) \\
   & + & \frac{1}{n} r_{j-1}'(z) r_{n-j}(z)
     +   \frac{1}{n} r_{j-1}(z) r_{n-j}'(z)    \\
   & + & \frac{1}{n} \sum_{p=j+1}^n q_{p-1, j}'(z) r_{n-p}(z)
     +  \frac{1}{n} \sum_{p=j+1}^n q_{p-1, j}(z) r_{n-p}'(z)
\end{eqnarray*}
and hence for $1 < j < n$
\begin{eqnarray*}
 q_{n, j}'(1)  & = &
  \frac{1}{n} 
  \sum_{p=1}^{j-1} \qurt (p-1)(p-2)
  + \frac{1}{n} 
  \sum_{p=1}^{j-1} q_{n-p, j-p}'(1)     \\       
   & + & \frac{1}{n} \qurt (j-1)(j-2)
     +   \frac{1}{n} \qurt (n-j)(n-j-1) \\
   & + & \frac{1}{n} \sum_{p=j+1}^n q_{p-1, j}'(1)
     +   \frac{1}{n} \sum_{p=j+1}^n \qurt (n-p)(n-p-1),
\end{eqnarray*}
for $j=1$
\[
 q_{n, 1}'(1) =
         \frac{1}{n} \qurt (n-1)(n-2)
     +   \frac{1}{n} \sum_{p=2}^n q_{p-1, 1}'(1)
     +   \frac{1}{n} \sum_{p=2}^n \qurt (n-p)(n-p-1),
\]
and for $j=n$
\[
 q_{n, n}'(1)  =
    \frac{1}{n} \sum_{p=1}^{n-1} \qurt (p-1)(p-2)
  + \frac{1}{n} \sum_{p=1}^{n-1} q_{n-p, n-p}'(1)
  + \frac{1}{n} \qurt (n-1)(n-2).
\]
Note that
\[ \sum_{p=2}^n (n-p)(n-p-1) =
   \sum_{p=1}^{n-1} (p-1)(p-2) = 
   \thrd n^3 - 2 n^2 + \frac{11}{3} n - 2
\]
and so the above becomes
\[
 q_{n, 1}'(1) =
         \sxth - \qurt n + \dode n^2     
     +   \frac{1}{n} \sum_{p=2}^n q_{p-1, 1}'(1),
\]
for $j=1$,
\[
 q_{n, n}'(1)  =
         \sxth - \qurt n + \dode n^2     
     +   \frac{1}{n} \sum_{p=1}^{n-1} q_{n-p, n-p}'(1)
\]
for $j=n$, and
\begin{eqnarray*}
 q_{n, j}'(1)  & = &
  \frac{1}{4n} 
  \PAR{\thrd j^3 - 2 j^2 
     + \frac{11}{3} j - 2}
  + \frac{1}{n} 
  \sum_{p=1}^{j-1} q_{n-p, j-p}'(1)     \\       
   & + & \frac{1}{4n} (j-1)(j-2)
     +   \frac{1}{4n} (n-j)(n-j-1) 
     +   \frac{1}{n} \sum_{p=j+1}^n q_{p-1, j}'(1) \\
   & + & 
  \frac{1}{4n}
  \PAR{\thrd (n-j+1)^3 - 2 (n-j+1)^2 
     + \frac{11}{3} (n-j+1) - 2}
\end{eqnarray*}
or
\begin{eqnarray*}
 q_{n, j}'(1)  & = &
    \frac{1}{n} \sum_{p=1}^{j-1} q_{n-p, j-p}'(1) 
  + \frac{1}{n} \sum_{p=j+1}^n q_{p-1, j}'(1) \\
  & + & 
  \frac{1}{4n}
  \PAR{\thrd n^3 - j n^2 + j^2 n - \thrd n + j - j^2}
\end{eqnarray*}
for $1 < j < n.$

{\bf Induction step when $j=1$ and $j=n.$} 
We need to show that
\begin{eqnarray*} 
   q_{n, 1}'(1) & = &
   \octa (n+1-1)(n-4-1) -4 \octa +
   \half H_{n+1-1} + \half \\ & = &
   \octa n(n-5) +
   \half H_n
\end{eqnarray*}
and
\[
   q_{n, n}'(1)  = 
   -4 \octa + \octa n(n-5)+
   \half + \half H_n =
   \octa n(n-5) +
   \half H_n.
\]
The cases $j=1$ and $j=n$ are completely symmetric. 
We verify the case $j=1.$
We need to show that
\[ 
  \octa n(n-5) + \half H_n =
  \sxth - \qurt n + \dode n^2 +
  \frac{1}{n} 
  \sum_{p=2}^n 
  \PAR{\octa (p-1)(p-6) + \half H_{p-1} }.\]
Note that
\[
  \sum_{p=2}^n (p-1)(p-6) = 
  \thrd n^3 - 3 n^2 + \frac{8}{3} n
  \MAND
  \sum_{p=1}^{n-1} H_p = n H_n - n
\]
and the claim follows by substitution.

{\bf Induction step when $1 < j < n.$} 
By induction
\begin{eqnarray*}
\sum_{p=1}^{j-1} q_{n-p, j-p}'(1) & = &
\sum_{p=1}^{j-1} 
\PAR{\octa (n+1-j)(n-4-j) + \octa (j-p)(j-p-5)} \\ & + &
\sum_{p=1}^{j-1} 
\PAR{\half H_{n+1-j} + \half H_{j-p}} \\ & = &
\octa (j-1)(n+1-j)(n-4-j) \\ & + &
\octa \PAR{ \thrd j^3 - 3 j^2 + \frac{8}{3} j} \\ & + &
\half (j-1) H_{n+1-j} +
\half (j H_j - j)
\end{eqnarray*}
and
\begin{eqnarray*}
\sum_{p=j+1}^n q_{p-1, j}'(1) & = &
\sum_{p=j+1}^n
\PAR{\octa (p-j)(p-5-j) + \octa j(j-5)} \\ & + &
\sum_{p=j+1}^n
\PAR{\half H_{p-j} + \half H_j} \\ & = &
\octa \PAR{ \thrd (n-j+1)^3 - 3 (n-j+1)^2 
          + \frac{8}{3} (n-j+1)} \\ & + &
\octa (n-j)j(j-5) \\ & + &
\half ((n-j+1) H_{n-j+1} - (n-j+1)) +
\half (n-j) H_j
\end{eqnarray*}
so that
\begin{eqnarray*}
\sum_{p=1}^{j-1} q_{n-p, j-p}'(1) & + &
\sum_{p=j+1}^n q_{p-1, j}'(1)  = 
\half - \qurt j n - \frac{3}{8} n^2 \\ & + & 
        \frac{1}{24} n^3
      - \qurt j   + \dode n + \qurt j^2 \\ & + &
\half (j-1) H_{n+1-j} +
\half (j H_j - j) \\ & + &
\half ((n-j+1) H_{n-j+1} - (n-j+1)) +
\half (n-j) H_j \\ & = &
      - \qurt j n - \frac{3}{8} n^2 +
        \frac{1}{24} n^3
      - \qurt j   - \frac{5}{12} n + \qurt j^2 \\ & + &
\half n H_{n+1-j} + \half n H_j.
\end{eqnarray*}
This implies that
\begin{eqnarray*}
 q_{n, j}'(1)  & = &
- \qurt j - \frac{3}{8} n + \frac{1}{24} n^2
- \qurt \frac{j}{n}   - \frac{5}{12} + \qurt \frac{j^2}{n} \\ & + &
\half H_{n+1-j} + \half H_j
+ \frac{1}{4n}
  \PAR{\thrd n^3 - j n^2 + j^2 n - \thrd n + j - j^2} \\ & = &
\octa n^2 + \qurt j^2 - \half 
- \qurt n j - \frac{3}{8} n - \qurt j
+ \half H_{n+1-j} + \half H_j \\ & = &
\octa (n+1-j)(n-4-j) + \octa j(j-5)+
   \half H_{n+1-j} + \half H_j
\end{eqnarray*}
as claimed.

\newpage

{\bf Trivariate generating function.}
We have
\begin{eqnarray*}
 n q_{n, j}(z) u^n v^j  & = &
   u \sum_{p=1}^{j-1} u^{p-1} v^{p-1} r_{p-1}(z) 
                      u^{n-p} v^{j-p} q_{n-p, j-p}(z)  \\
   & + & u v^j u^{j-1} r_{j-1}(z) u^{n-j} r_{n-j}(z)   \\
   & + & u \sum_{p=j+1}^n u^{p-1} v^j q_{p-1, j}(z) 
                          u^{n-p} r_{n-p}(z).
\end{eqnarray*}



References. Basic generating functions.

\end{document}

Date Prev | Date Next | Date Index | Thread Index