\( \def\<#1>{\left<#1\right>} \let\geq\geqslant \let\leq\leqslant % an undirected version of \rightarrow: \newcommand{\mathdash}{\relbar\mkern-9mu\relbar} \def\deg#1{\mathrm{deg}(#1)} \newcommand{\dg}[1]{d_{#1}} \newcommand{\Norm}{\mathrm{N}} \newcommand{\const}[1]{c_{#1}} \newcommand{\cconst}[1]{\alpha_{#1}} \newcommand{\Exp}[1]{E_{#1}} \newcommand*{\ppr}{\mathbin{\ensuremath{\otimes}}} \newcommand*{\su}{\mathbin{\ensuremath{\oplus}}} \newcommand{\nulis}{\vmathbb{0}} %{\mathbf{0}} \newcommand{\vienas}{\vmathbb{1}} \newcommand{\Up}[1]{#1^{\uparrow}} %{#1^{\vartriangle}} \newcommand{\Down}[1]{#1^{\downarrow}} %{#1^{\triangledown}} \newcommand{\lant}[1]{#1_{\mathrm{la}}} % lower antichain \newcommand{\uant}[1]{#1_{\mathrm{ua}}} % upper antichain \newcommand{\skal}[1]{\langle #1\rangle} \newcommand{\NN}{\mathbb{N}} % natural numbers \newcommand{\RR}{\mathbb{R}} \newcommand{\minTrop}{\mathbb{T}_{\mbox{\rm\footnotesize min}}} \newcommand{\maxTrop}{\mathbb{T}_{\mbox{\rm\footnotesize max}}} \newcommand{\FF}{\mathbb{F}} \newcommand{\pRR}{\mathbb{R}_{\mbox{\tiny $+$}}} \newcommand{\QQ}{\mathbb{Q}} \newcommand{\ZZ}{\mathbb{Z}} \newcommand{\gf}[1]{GF(#1)} \newcommand{\conv}[1]{\mathrm{Conv}(#1)} \newcommand{\vvec}[2]{\vec{#1}_{#2}} \newcommand{\f}{{\mathcal F}} \newcommand{\h}{{\mathcal H}} \newcommand{\A}{{\mathcal A}} \newcommand{\B}{{\mathcal B}} \newcommand{\C}{{\mathcal C}} \newcommand{\R}{{\mathcal R}} \newcommand{\MPS}[1]{f_{#1}} % matrix multiplication \newcommand{\ddeg}[2]{\#_{#2}(#1)} \newcommand{\length}[1]{|#1|} \DeclareMathOperator{\support}{sup} \newcommand{\supp}[1]{\support(#1)} \DeclareMathOperator{\Support}{sup} \newcommand{\spp}{\Support} \newcommand{\Supp}[1]{\mathrm{Sup}(#1)} %{\mathcal{S}_{#1}} \newcommand{\lenv}[1]{\lfloor #1\rfloor} \newcommand{\henv}[1]{\lceil#1\rceil} \newcommand{\homm}[2]{{#1}^{\langle #2\rangle}} \let\daug\odot \let\suma\oplus \newcommand{\compl}[1]{Y_{#1}} \newcommand{\pr}[1]{X_{#1}} \newcommand{\xcompl}[1]{Y'_{#1}} \newcommand{\xpr}[1]{X'_{#1}} \newcommand{\cont}[1]{A_{#1}} % content \def\fontas#1{\mathsf{#1}} %{\mathrm{#1}} %{\mathtt{#1}} % \newcommand{\arithm}[1]{\fontas{Arith}(#1)} \newcommand{\Bool}[1]{\fontas{Bool}(#1)} \newcommand{\linBool}[1]{\fontas{Bool}_{\mathrm{lin}}(#1)} \newcommand{\rBool}[2]{\fontas{Bool}_{#2}(#1)} \newcommand{\BBool}[2]{\fontas{Bool}_{#2}(#1)} \newcommand{\MMin}[1]{\fontas{Min}(#1)} \newcommand{\MMax}[1]{\fontas{Max}(#1)} \newcommand{\negMin}[1]{\fontas{Min}^{-}(#1)} \newcommand{\negMax}[1]{\fontas{Max}^{-}(#1)} \newcommand{\Min}[2]{\fontas{Min}_{#2}(#1)} \newcommand{\Max}[2]{\fontas{Max}_{#2}(#1)} \newcommand{\convUn}[1]{\fontas{L}_{\ast}(#1)} \newcommand{\Un}[1]{\fontas{L}(#1)} \newcommand{\kUn}[2]{\fontas{L}_{#2}(#1)} \newcommand{\Nor}{\mu} % norm without argument \newcommand{\nor}[1]{\Nor(#1)} \newcommand{\bool}[1]{\hat{#1}} % Boolean version of f \newcommand{\bphi}{\phi} % boolean circuit \newcommand{\xf}{\boldsymbol{\mathcal{F}}} \newcommand{\euler}{\mathrm{e}} \newcommand{\ee}{f} % other element \newcommand{\exchange}[3]{{#1}-{#2}+{#3}} \newcommand{\dist}[2]{{#2}[#1]} \newcommand{\Dist}[1]{\mathrm{dist}(#1)} \newcommand{\mdist}[2]{\dist{#1}{#2}} % min-max dist. \newcommand{\matching}{\mathcal{M}} \renewcommand{\E}{A} \newcommand{\F}{\mathcal{F}} \newcommand{\set}{W} \newcommand{\Deg}[1]{\mathrm{deg}(#1)} \newcommand{\mtree}{MST} \newcommand{\stree}{{\cal T}} \newcommand{\dstree}{\vec{\cal T}} \newcommand{\Rich}{U_0} \newcommand{\Prob}[1]{\ensuremath{\mathrm{Pr}\left\{{#1}\right\}}} \newcommand{\xI}{\boldsymbol{I}} \newcommand{\plus}{\mbox{\tiny $+$}} \newcommand{\sgn}[1]{\left[#1\right]} \newcommand{\ccompl}[1]{{#1}^*} \newcommand{\contr}[1]{[#1]} \newcommand{\harm}[2]{{#1}\,\#\,{#2}} %{{#1}\,\oplus\,{#2}} \newcommand{\hharm}{\#} %{\oplus} \newcommand{\rec}[1]{1/#1} \newcommand{\rrec}[1]{{#1}^{-1}} \DeclareRobustCommand{\bigO}{% \text{\usefont{OMS}{cmsy}{m}{n}O}} \newcommand{\dalyba}{/}%{\oslash} \newcommand{\mmax}{\mbox{\tiny $\max$}} \newcommand{\thr}[2]{\mathrm{Th}^{#1}_{#2}} \newcommand{\rectbound}{h} \newcommand{\pol}[3]{\sum_{#1\in #2}{#3}_{#1}\prod_{i=1}^n x_i^{#1_i}} \newcommand{\tpol}[2]{\min_{#1\in #2}\left\{\skal{#1,x}+\const{#1}\right\}} \newcommand{\comp}{\circ} % composition \newcommand{\0}{\vec{0}} \newcommand{\drops}[1]{\tau(#1)} \newcommand{\HY}[2]{F^{#2}_{#1}} \newcommand{\hy}[1]{f_{#1}} \newcommand{\hh}{h} \newcommand{\hymin}[1]{f_{#1}^{\mathrm{min}}} \newcommand{\hymax}[1]{f_{#1}^{\mathrm{max}}} \newcommand{\ebound}[2]{\partial_{#2}(#1)} \newcommand{\Lpure}{L_{\mathrm{pure}}} \newcommand{\Vpure}{V_{\mathrm{pure}}} \newcommand{\Lred}{L_1} %L_{\mathrm{red}}} \newcommand{\Lblue}{L_0} %{L_{\mathrm{blue}}} \newcommand{\epr}[1]{z_{#1}} \newcommand{\wCut}[1]{w(#1)} \newcommand{\cut}[2]{w_{#2}(#1)} \newcommand{\Length}[1]{l(#1)} \newcommand{\Sup}[1]{\mathrm{Sup}(#1)} \newcommand{\ddist}[1]{d_{#1}} \newcommand{\sym}[2]{S_{#1,#2}} \newcommand{\minsum}[2]{\mathrm{MinS}^{#1}_{#2}} \newcommand{\maxsum}[2]{\mathrm{MaxS}^{#1}_{#2}} % top k-of-n function \newcommand{\cirsel}[2]{\Phi^{#1}_{#2}} % its circuit \newcommand{\sel}[2]{\sym{#1}{#2}} % symmetric pol. \newcommand{\cf}[1]{{#1}^{o}} \newcommand{\Item}[1]{\item[\mbox{\rm (#1)}]} % item in roman \newcommand{\bbar}[1]{\underline{#1}} \newcommand{\Narrow}[1]{\mathrm{Narrow}(#1)} \newcommand{\Wide}[1]{\mathrm{Wide}(#1)} \newcommand{\eepsil}{\varepsilon} \newcommand{\amir}{\varphi} \newcommand{\mon}[1]{\mathrm{mon}(#1)} \newcommand{\mmon}{\alpha} \newcommand{\gmon}{\alpha} \newcommand{\hmon}{\beta} \newcommand{\nnor}[1]{\|#1\|} \newcommand{\inorm}[1]{\left\|#1\right\|_{\mbox{\tiny $\infty$}}} \newcommand{\mstbound}{\gamma} \newcommand{\coset}[1]{\textup{co-}{#1}} \newcommand{\spol}[1]{\mathrm{ST}_{#1}} \newcommand{\cayley}[1]{\mathrm{C}_{#1}} \newcommand{\SQUARE}[1]{\mathrm{SQ}_{#1}} \newcommand{\STCONN}[1]{\mathrm{STCON}_{#1}} \newcommand{\STPATH}[1]{\mathrm{PATH}_{#1}} \newcommand{\SSSP}[1]{\mathrm{SSSP}(#1)} \newcommand{\APSP}[1]{\mathrm{APSP}(#1)} \newcommand{\MP}[1]{\mathrm{MP}_{#1}} \newcommand{\CONN}[1]{\mathrm{CONN}_{#1}} \newcommand{\PERM}[1]{\mathrm{PER}_{#1}} \newcommand{\mst}[2]{\tau_{#1}(#2)} \newcommand{\MST}[1]{\mathrm{MST}_{#1}} \newcommand{\MIS}{\mathrm{MIS}} \newcommand{\dtree}{\mathrm{DST}} \newcommand{\DST}[1]{\dtree_{#1}} \newcommand{\CLIQUE}[2]{\mathrm{CL}_{#1,#2}} \newcommand{\ISOL}[1]{\mathrm{ISOL}_{#1}} \newcommand{\POL}[1]{\mathrm{POL}_{#1}} \newcommand{\ST}[1]{\ptree_{#1}} \newcommand{\Per}[1]{\mathrm{per}_{#1}} \newcommand{\PM}{\mathrm{PM}} \newcommand{\error}{\epsilon} \newcommand{\PI}[1]{A_{#1}} \newcommand{\Low}[1]{A_{#1}} \newcommand{\node}[1]{v_{#1}} \newcommand{\BF}[2]{W_{#2}[#1]} % Bellman-Ford \newcommand{\FW}[3]{W_{#1}[#2,#3]} % Floyd-Washall \newcommand{\HK}[1]{W[#1]} % Held-Karp \newcommand{\WW}[1]{W[#1]} \newcommand{\pWW}[1]{W^{+}[#1]} \newcommand{\nWW}[1]{W^-[#1]} \newcommand{\knap}[2]{W_{#2}[#1]} \newcommand{\Cut}[1]{w(#1)} \newcommand{\size}[1]{\mathrm{size}(#1)} \newcommand{\dual}[1]{{#1}^{\ast}} \def\gcd#1{\mathrm{gcd}(#1)} \newcommand{\econt}[1]{C_{#1}} \newcommand{\xecont}[1]{C_{#1}'} \newcommand{\effcond}[2]{\mathrm{Effcond}_{#2}[#1]} \)
[This is a supplementary material to Section 6.1 of Chapter 6]

An application of the Kirchhoff effective conductance formula

As shown in the book, unlike for non-monotone arithmetic $(+,\times,-)$ circuits (with subtraction), division $(/)$ gates (actually, only one division gate as the output gate, see Remark 6.3(1)) can even exponentially speed up monotone arithmetic $(+,\times)$ circuits. The polynomial showing such a gap is defined using spanning trees of graphs.

Associate with each edge $e$ of $K_n$ a (formal) variable $x_e$, interpreted as the weight of this edge. Let $G\subseteq K_n$ be a connected subgraph of the complete $n$ vertex graph $K_n$ on $[n]=\{1,\ldots,n\}$ (the graph $G$ being connected means that there is a path between any two its vertices). A spanning tree of $G$ is its connected subgraph which has no cycles (is a tree) and includes all $n$ vertices of the graph $G$. The Kirchhoff's polynomial (or the spanning tree polynomial) $\spol{G}$ of the graph $G$: \begin{equation}\label{eq:tpol} \spol{G}(x) = \sum_{T} \prod_{e\in T}x_e\,, \end{equation} where the sum is over all spanning trees of $G$. For definiteness, if $n=1$ (just a single vertex), then we set $\spol{G}(x)=1$. We already know that:

The upper bound $O(n^3)$ was proved by Fomin, Grigoriev, and Koshevoy in [2], where they first show that a slightly weaker upper bound $O(n^4)$ follows fairly easily from two classical results established by electrical engineers at least $100$ years ago: the Kirchhoff's effective conductance formula [1] and the machinery of star-mesh transformation. Here we will show how this happens.

For two vertices $a\neq b$ of a weighted $n$-vertex graph $G$, let $G(a,b)$ denote the $(n-1)$-vertex graph obtained from $G$ by gluing the vertex $a$ to vertex $b$ as follows: glue together the vertices $a$ and $b$ into one vertex, then remove the resulting loop (if any, i.e., if $\{a,b\}$ was an edge of $G$), and for every vertex $u\not\in\{a,b\}$ which was adjacent to both vertices $a$ and $b$, replace the old weight $x_{u,b}$ of the edge $\{u,b\}$ by the new weight $x_{u,a}+x_{u,b}$.

Gluing two vertices% Fig. 1: A weighted graph $G$, and the graph $G(a,b)$ obtained by gluing vertex $a = 1$ to vertex $b=2$.

Interpret the weighted graph $G$ as an electric network with the weight $x_e$ of each its edge $e$ interpreted as the electrical conductance (the inverse $x_e=1/r_e$ of the electrical resistance $r_e$) between the endpoints of $e$. The Kirchhoff effective conductance formula [3] (see also [4], Section 2) expresses the effective conductance $\effcond{a,b}{G}$ between any two vertices $a$ and $b$ of $G$ as the ratio of the Kirchhoff polynomial of the graph $G$ itself and of the graph $G(a,b)$ obtained from $G$ by gluing vertex $a$ to vertex $b$.

Lemma A (Kirchhoff's effective conductance formula): The effective conductance between vertices $a$ and $b$ of $G$ is given by \begin{equation}\label{eq:kirchhoff} \effcond{a,b}{G} =\frac{\spol{G}}{\spol{G(a,b)}}\,. \end{equation}
By Ohm's and Kirchhoff's laws, the conductance is additive for resistors in parallel, and the resistance is additive for resistors in series. That is, if we have two edges with conductances $x$ and $y$, then the effective conductance between bold nodes is:
Resistance, parallel-sequential%

For example, due to the series-parallel property of the particular graph $G$ in Fig 1, the effective conductance between its vertices $1$ and $2$ can be computed as: \[ \displaystyle \effcond{1,2}{G}=x_{12}+\displaystyle \frac{1}{\displaystyle \frac{1}{x_{14}}+\frac{1}{x_{24}+\displaystyle \frac{1}{x_{23}+x_{34}}}}\,. \] In general, not necessarily series-parallel graphs $G$, the effective conductances between any two vertices can be recursively computed using the well-known machinery of star-mesh transformation developed by electrical engineers at least $100$ years ago.

  1. Take any vertex $u$ of $G$, and let $N(u)$ be the set of all neighbors of $u$ in $G$.
  2. Let $X_u:=\sum_{v\in N(u)}x_{uv}$ be the sum of weights of all edges joining the vertex $u$ to its neighbors in $G$.
  3. Remove the vertex $u$ together with all its incident edges.
  4. For every $v\neq w\in N(u)$ draw and edge between $v$ and $w$ and give it weight \[ x'_{vw}=\frac{x_{uv}\cdot x_{uw}}{X_u}\,. \]
  5. Replace parallel edges with one edge of accumulated weight. Hence, if $\{v,w\}$ was an edge in $G$, then its new weight is \[ x'_{vw}=x_{vw}+\frac{x_{uv}\cdot x_{uw}}{X_u}\,. \]
An example of this transformation is depicted in Fig 2.

Star-mesh transformation% Fig. 2: A graph $G$, and the graph obtained by applying the star-mesh transformation to the vertex $u=4$ of $G$. New weights of the (old) edges $\{1,2\}$ and $\{2,3\}$ are: \[ \displaystyle x'_{12}=x_{12}+\frac{x_{14}x_{24}}{x_{14}+x_{24}+x_{34}}\ \ \mbox{ and }\ \ x'_{23}=x_{23}+\frac{x_{24}x_{34}}{x_{14}+x_{24}+x_{34}}\,. \]

It is long known (see, for example, [1, Corollary 4.21])) that the effective conductance between any two vertices in the new weighted graph $G'$ under the new weighting $x'$ is the same as the effective conductance between these vertices in the old weighted graph $G$ under the old weighting $x$.

Lemma B (Star-mesh transformation): If $G'$ is the weighted graph obtained from $G$ by applying the star-mesh transformation to a vertex $u$ of $G$, then for any two vertices $a$ and $b$ different from $u$, we have \[ \effcond{a,b}{G'}=\effcond{a,b}{G}\,. \]

Proof of the upper bound for (+,x,/) circuits

Take an arbitrary connected graph $G\subseteq K_n$. Our goal is to show that the polynomial $\spol{G}$ can be computed by a monotone arithmetic $(+,\times,/)$ circuit of size $O(n^4)$.

By treating the vertices $1,2,\ldots,n$ of $G$ one-by-one, we obtain a sequence $G_1,\ldots,G_n$ of graphs, where $G_1=G$ and $G_{i+1}$ is a weighted graph on $\{i+1,\ldots,n\}$ obtained from $G_i$ by gluing vertex $i$ to vertex $i+1$ in the graph $G_i$, that is, $G_{i+1}=G_i(i,i+1)$. For example, if $G$ is the graph in Fig 1, then $G_1=G$; $G_2$ is the graph shown in Fig 1 (right); $G_3$ is a two-vertex graph with a single edge of weight $x_{14}+x_{2 4}+x_{34}$; and $G_4$ (and more generally $G_n$) is a single-vertex graph with no edges (so $\spol{G_n}=1$). By Lemma A, we have \[ \effcond{i,i+1}{G_i}= \frac{\spol{G_i}}{\spol{G_{i+1}}}\ \ \mbox{ for all }\ \ i=1,\ldots,n\,. \] So, the following formula is immediate via telescoping: \begin{equation}\label{eq:effcon-spantree} \prod_{i=1}^{n-1}\effcond{i,i+1}{G_i}=\prod_{i=1}^{n-1} \frac{\spol{G_i}}{\spol{G_{i+1}}}=\spol{G_1}=\spol{G}\,. \end{equation} Using the star-mesh transformations and Lemma B, effective conductance $\effcond{i,i+1}{G}$ between the vertices $i$ and $i+1$ can be computed by an arithmetic $(+,\times,/)$ circuit of size $O(n^3)$: we have to recompute the weights for $O(n^2)$ pairs of vertices, and for each pair $O(n)$ arithmetic $(+,\times,/)$ operations suffice. So, the Kirchhoff polynomial $\spol{G}$ can be computed by a $(+,\times,/)$ circuit of size $O(n^4)$.    $\Box$


Footnotes:

(1)   Jump back ☝


References:

  1. W. K. Chen: Graph theory and its engineering applications, World Scientific, 1997.
  2. S. Fomin and D. Grigoriev and G. Koshevoy: Subtraction-free complexity, cluster transformations, and spanning trees, Found. Comput. Math. 15 (2016) 1-31.   local copy
  3. G. Kirchhoff: Über die Auflösung der Gleichungen, auf welche man bei der Untersuchungen der linearen Verteilung galvanischer Ströme geführt wird, Ann. Phys. Chem., 72 (1847) 497-508.   local copy
  4. D. G. Wagner: Matroid inequalities from electrical network theory, El. Journal of Combinatorics, 11:2 (2005).


⇦   Back to the comments page