\subsection{\textcolor{cyan}{Parity Inversion}}\label{sec:inversion}

\Figure[tb](topskip=0pt, botskip=0pt, midskip=0pt){figures/tikz/build/main-figure6.pdf}{
    The node delays $\delta_N$ for nodes for 3 odd node-trees $\{\nset_1, \nset_2, \nset_3\}$ of 3 nodes that grow and join into a single node-tree. \emph{(a)} Node delays are calculated via \Cref{eq:nodedelay}. In step 1, the growth in each of the three node-trees' outer nodes is prioritized, since their delay are zero, and the node-trees merge with new edges. In step 2, the recalculation of the joined node-tree is performed. Parities within the subtree of $\nset_2$ are now inverted, and the maximum node delay in $\nset_2$ has doubled compared to before growth. \emph{(b)} Node delays are calculated with \Cref{eq:pmwdifnew} instead of \Cref{eq:pmwdif}. Now the increase in $\delta_N$ after parity inversion is halved.\label{fig:partialdfs}}

An unfortunate effect, which we dub \textbf{parity inversion}, causes a decrease in the algorithm's performance as the lattice size is increased. We will demonstrate this effect through the example in \Cref{fig:partialdfs}\emph{a}. Consider three instances of the node-tree of \Cref{fig0}; $\nset_a, \nset_b, \nset_c$, positioned near each other on the lattice. For each node-tree, if the middle node is suspended from growth for two iterations, all nodes have the same Potential Matching Weight. However, in the example, the node-trees $\nset_a, \nset_b, \nset_c$ merge after one iteration. The combined node-tree is odd. Thus, we recalculate the node parities and delays to find that the parities in the partition of the node-tree containing the nodes of $\nset_b$ have been inverted, and the node suspensions in this partition have doubled with respect to their value before the merger. If the next merging event occurs on the node with the doubled node suspension, the matching weight may be large, in contrast with the goal of decreasing the matching weight. Moreover, the effect of parity inversion accumulates if subsequent mergers occur before zero node suspension has been reached. %Nevertheless, as more inversions occur, the maximum node suspension in the node-tree increases, and it becomes more and more unlikely for a cluster to actually reach zero node suspension in all nodes. The number of inversions is directly related to the number of merging events, and thus to the size of the lattice. The performance to improve the heuristic for minimum weight matching thus decreases for larger lattices.

%Parity inversion defines a trade-off in the Partitioned-Growth data structure: `A node must wait as many iterations as it is suspended to reach equilibrium in Potential Matching Weight in the node-tree. However, after Parity Inversion, the node suspension for previously prioritized nodes increases linearly with the number of iterations waited by the suspended nodes pre-inversion.' As a compromise,
To compensate the effect of parity inversion, we redefine the node delay as \textbf{half} the number of growth iterations needed for all nodes in the node-tree to reach equal PMW. This changes \Cref{eq:nodedelay} to:
\begin{equation}\label{eq:pmwdifnew}
  \delta_N = \frac{1}{2}\left(\text{PWM}(N) - \min_{N\in\nset}{\text{PWM}(N) }\right)
\end{equation}


\documentclass{article}

\usepackage{amsmath}
\usepackage{numprint}

\author{Daniel Fernandes Martins (danielfmt)}
\title{Question \#10 Solution}

\begin{document}

\maketitle

\textbf{Disclaimer.} This is the reasoning I used to solve the problem; it
may be wrong though. This is intended just as food for thought.

\section{Parameters Of Neural Network}

Given a neural network with 10 input units (including the constant $x_0^{(0)}$
unit), one output unit, and 36 hidden units (including the necessary number of
constant units for a fully-connected network), this question asks what is the
maximum possible number of weights that such a network can have.

\subsection{Solution By Trial And Error}

I found the solution by trying different configurations until I got a number of
weights equal to the highest number given in the alternatives.

The configuration I found has $L=3$; $d^{(0)}=10$, $d^{(1)}=22$, $d^{(2)}=14$,
$d^{(3)}=1$. The number of weights in this network is given by:

\begin{equation*}
(21 \cdot 10) + (13 \cdot 22) + (14) = 510
\end{equation*}

\end{document}