From 9aaa606b69e0d984f923120ab40ec0d889cc1922 Mon Sep 17 00:00:00 2001 From: NotXia <35894453+NotXia@users.noreply.github.com> Date: Thu, 8 May 2025 15:29:03 +0200 Subject: [PATCH] Add DAS average consensus proof --- .../img/gershgorin.png | Bin 0 -> 37233 bytes .../img/gershgorin_unit.png | Bin 0 -> 38938 bytes .../sections/_averaging_systems.tex | 366 ++++++++++++++++-- 3 files changed, 343 insertions(+), 23 deletions(-) create mode 100644 src/year2/distributed-autonomous-systems/img/gershgorin.png create mode 100644 src/year2/distributed-autonomous-systems/img/gershgorin_unit.png diff --git a/src/year2/distributed-autonomous-systems/img/gershgorin.png b/src/year2/distributed-autonomous-systems/img/gershgorin.png new file mode 100644 index 0000000000000000000000000000000000000000..e521945ab9d82c984e0b0de89031c8b9f241d5b7 GIT binary patch literal 37233 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%0A~ex##Dd< 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 BD!Tvx literal 0 HcmV?d00001 diff --git a/src/year2/distributed-autonomous-systems/sections/_averaging_systems.tex b/src/year2/distributed-autonomous-systems/sections/_averaging_systems.tex index ccf5d20..8b41324 100644 --- a/src/year2/distributed-autonomous-systems/sections/_averaging_systems.tex +++ b/src/year2/distributed-autonomous-systems/sections/_averaging_systems.tex @@ -91,6 +91,171 @@ \subsection{Consensus} +% \begin{remark} +% The distributed consensus algorithm is a positive system (i.e., $\matr{A}$ is positive). +% \end{remark} + +\begin{description} + \item[Positive matrix characterization] + Given $\A \in \mathbb{R}^{N \times N}$, it can be: + \begin{description} + \item[Non-negative] \marginnote{Non-negative matrix} + $\A \geq 0$. + \item[Irreducible] \marginnote{Irreducible matrix} + $\sum_{h=0}^{N-1} \A^h > 0$. + \item[Primitive] \marginnote{Primitive matrix} + $\exists h \in \{ 1, \dots, N \}: A^h > 0$. + % \begin{remark} + % A graph with a primitive adjacency matrix is connected. + % \end{remark} + \item[Positive] \marginnote{Positive matrix} + $\A > 0$. + \end{description} +\end{description} + + +% Equilibrium: +% \[ +% \x^{k+1} = \matr{A}\x^k +% \] +% \[ +% \begin{split} +% \x_\text{eq} = \matr{A} \x_\text{eq} \\ +% \iff (\matr{I} - \matr{A}) \x_\text{eq} = 0 +% \end{split} +% \] +% We are interested in the null space of $(\matr{I} - \matr{A})$ (at least one eigenvector). + + + +\begin{theorem} \label{th:positive_matrix_digraph_connected} + Given a weighted digraph $G$ with $N \geq 2$ nodes and adjacency matrix $\A$, it holds that: + \begin{itemize} + \item $\A$ is irreducible $\iff$ $G$ is strongly connected. + \item $\A$ is primitive $\iff$ $G$ is strongly connected and aperiodic. + \end{itemize} +\end{theorem} + + + +\begin{theorem}[Gershgorin] \label{th:gershgorin} \marginnote{Gershgorin theorem} + For any square matrix $\A \in \mathbb{C}^{N \times N}$, it holds that the spectrum of $\A$ (i.e., set of eigenvalues) is contained in the Gershgorin disks: + \[ + \text{spec}(\A) \subset \bigcup_{i=1}^{N} \left\{ s \in \mathbb{C} \,\,\bigg|\,\, |s - a_{ii}| \leq \sum_{j=1, j \neq i}^{N} |a_{ij}| \right\} + \] + In other words, it is the union of the disks with center $a_{ii}$ and radius $\sum_{j=1, j \neq i}^{N} |a_{ij}|$. + + \indenttbox + \begin{remark} + This theorem provides an approximate location of the eigenvalues. + \end{remark} + + \indenttbox + \begin{example} + Consider the matrix: + \[ + \begin{bmatrix} + 10 & 1 & 0 & 1 \\ + 0.2 & 8 & 0.2 & 0.2 \\ + 1 & 1 & 2 & 1 \\ + -1 & -1 & -1 & -11 + \end{bmatrix} + \] + + Its eigenvalues are $\{ -10.870, 1.906, 7.918, 10.046 \}$. + + The Gershgorin disks are: + \begin{figure}[H] + \centering + \includegraphics[width=0.4\linewidth]{./img/gershgorin.png} + \end{figure} + \end{example} +\end{theorem} + +% \begin{lemma} +% If all the disks are within the unit disk, the eigenvalues are stable. +% \[ +% \begin{bmatrix} +% \frac{1}{2} & \frac{1}{2} & 0 \\ +% \frac{1}{3} & \frac{1}{3} & \frac{1}{3} \\ +% 0 & \frac{3}{4} & \frac{1}{4} +% \end{bmatrix} +% \] +% \end{lemma} + + +\begin{theorem}[Perron-Frobenius] \label{th:perron_frobenius} \marginnote{Perron-Frobenius theorem} + Let $\A \in \R^{N \times N}$ with $N \geq 2$ be a non-negative matrix. It holds that: + \begin{itemize} + \item There exists a real eigenvalue $\lambda \geq 0$ that is dominant for all the other eigenvalues $\mu \in \text{spec}(\A) \smallsetminus \{\lambda\}$ (i.e., $\lambda \geq |\mu|$), + \item The right eigenvector $\v \in \R^N$ and left eigenvector $\w \in \R^N$ associated to $\lambda$ can be chosen to be non-negative. + \end{itemize} + If $\A \in \R^{N \times N}$ is irreducible, then: + \begin{itemize} + \item The eigenvalue $\lambda$ is strictly positive ($\lambda > 0$) and simple. + \item The right and left eigenvalues $\v$ and $\w$ associated to $\lambda$ are unique and positive. + \end{itemize} + If $\A \in \R^{N \times N}$ is primitive, then: + \begin{itemize} + \item The eigenvalue $\lambda$ is strictly dominant for all $\mu \in \text{spec}(\A) \smallsetminus \{\lambda\}$ (i.e., $\lambda > |\mu|$). + \end{itemize} +\end{theorem} + +\begin{lemma} \label{th:row_stochastic_unit_disk} + Given a row stochastic matrix $\A$, it holds that: + \begin{itemize} + \item $\lambda=1$ is an eigenvalue, + \item By \hyperref[th:gershgorin]{Gershgorin Theorem}, $\text{spec}(\A)$ is a subset of the unit disk (i.e., all Gershgorin disks lie inside the unit disk). + \end{itemize} + + \begin{figure}[H] + \centering + \includegraphics[width=0.2\linewidth]{./img/gershgorin_unit.png} + \end{figure} + + \indenttbox + \begin{corollary} + The eigenvalue $\lambda=1 \geq |\mu|$ is dominant. + \end{corollary} +\end{lemma} + +\begin{lemma} + Given a row stochastic and primitive matrix $\A$, by \Cref{th:row_stochastic_unit_disk} and \hyperref[th:perron_frobenius]{Perron-Frobenius Theorem} it holds that $\lambda = 1$ is simple and strictly dominant. + + \indenttbox + \begin{corollary} + The consensus averaging system is marginally stable (i.e., converges but not necessarily to the origin) as the largest distinct eigenvalue is $\lambda = 1$. + \end{corollary} +\end{lemma} + + +% \begin{lemma} +% \[ +% \x_\text{eq} = ker(\matr{I} - \A) = \{ \vec{1}\beta \mid \beta \in \R \} +% \] + +% \[ +% \w^T \x^{k+1} = \w^T(\A \x^{k}) = \w^T \x^k +% \] +% i.e., $\w$ is left eigenvector of $\A$ with $\lambda = 1$. + +% Therefore, the above must be true for: +% \[ +% \begin{split} +% \w^T \x_\text{eq} \\ +% \w^T \x^{0} \\ +% \end{split} +% \] +% \[ +% \w^T \vec{1}\beta \Rightarrow \beta = \frac{\w^T\x^{0}}{\w^T\vec{1}} +% \] +% \end{lemma} + + + + + + \begin{theorem}[Discrete-time consensus] \marginnote{Discrete-time consensus} Consider a discrete-time averaging system with digraph $G$ and weighted adjacency matrix $\matr{A}$. Assume $G$ strongly connected and aperiodic, and $\matr{A}$ row stochastic. @@ -103,41 +268,157 @@ \] where $\tilde{w}_i = \frac{w_i}{\sum_{i=j}^N w_j}$ are all normalized and sum to 1 (i.e., they produce a convex combination). - Moreover, if $\matr{A}$ is doubly stochastic, then it holds that the consensus is the average: + Moreover, if $\matr{A}$ is doubly stochastic, then it holds that the consensus is the average as $\vec{w} = 1$: \[ \lim_{k \rightarrow \infty} \vec{x}^k = \vec{1} \frac{1}{N} \sum_{i=1}^N x_i^0 \] - \begin{proof}[Sketch of proof] - Let $\matr{T} = \begin{bmatrix} \vec{1} & \vec{v}^2 & \cdots & \vec{v}^N \end{bmatrix}$ be a change in coordinates that transforms an adjacency matrix into its Jordan form $\matr{J}$: - \[ \matr{J} = \matr{T}^{-1} \matr{A} \matr{T} \] - As $\lambda=1$ is a simple eigenvalue (\Cref{th:strongly_connected_eigenvalues}), it holds that: + % \begin{proof}[Sketch of proof] + % Let $\matr{T} = \begin{bmatrix} \vec{1} & \vec{v}^2 & \cdots & \vec{v}^N \end{bmatrix}$ be a change in coordinates that transforms an adjacency matrix into its Jordan form $\matr{J}$: + % \[ \matr{J} = \matr{T}^{-1} \matr{A} \matr{T} \] + % As $\lambda=1$ is a simple eigenvalue (\Cref{th:strongly_connected_eigenvalues}), it holds that: + % \[ + % \matr{J} = \begin{bmatrix} + % 1 & 0 & \cdots & 0 \\ + % 0 & & & \\ + % \vdots & & \matr{J}_2 & \\ + % 0 & & & \\ + % \end{bmatrix} + % \] + % where the eigenvalues of $\matr{J}_2 \in \mathbb{R}^{(N-1) \times (N-1)}$ lie inside the open unit disk. + + % Let $\vec{x}^k = \matr{T}\bar{\vec{x}}^k$, then we have that: + % \[ + % \begin{split} + % &\vec{x}^{k+1} = \matr{A} \vec{x}^{k} \\ + % &\iff \matr{T} \bar{\vec{x}}^{k+1} = \matr{A} (\matr{T} \bar{\vec{x}}^k) \\ + % &\iff \bar{\vec{x}}^{k+1} = \matr{T}^{-1} \matr{A} (\matr{T} \bar{\vec{x}}^k) = \matr{J}\bar{\vec{x}}^k + % \end{split} + % \] + % Therefore: + % \[ + % \begin{gathered} + % \lim_{k \rightarrow \infty} \bar{\vec{x}}^k = \bar{x}_1^0 \begin{bmatrix} 1 \\ 0 \\ \vdots \\ 0 \end{bmatrix} \\ + % \bar{x}_1^{k+1} = \bar{x}_1^k \quad \forall k \geq 0 \\ + % \lim_{k \rightarrow \infty} \bar{x}_i^{k} = 0 \quad \forall i = 2, \dots, N \\ + % \end{gathered} + % \] + % \end{proof} + + \begin{proof}[Proof (Jordan-form approach)] + As is $G$ strongly connected and aperiodic, and $\A$ is row stochastic, it holds that: + \begin{itemize} + \item By \Cref{th:positive_matrix_digraph_connected}, $\A$ is primitive. + \item By \hyperref[th:perron_frobenius]{Perron-Frobenius Theorem} and \Cref{th:row_stochastic_unit_disk}, the eigenvalue $\lambda=1$ is strictly dominant and it is associated to the right eigenvector $\vec{1}$ (row stochasticity) and left eigenvector $\w$. + \end{itemize} + + Consider the non-singular matrix $\matr{T} \in \R^{N \times N}$ defined as: \[ - \matr{J} = \begin{bmatrix} - 1 & 0 & \cdots & 0 \\ - 0 & & & \\ - \vdots & & \matr{J}_2 & \\ - 0 & & & \\ + \matr{T} = \begin{bmatrix} + \vert & \vert & & \vert \\ + \vec{1} & \v^2 & \dots & \v^N \\ + \vert & \vert & & \vert \\ + \end{bmatrix} = \begin{bmatrix} + \vec{1} & \matr{W}_R + \end{bmatrix} + \qquad + \matr{T}^{-1} = \begin{bmatrix} + - & (\w)^T & - \\ + - & (\w^2)^T & - \\ + - & \vdots & - \\ + - & (\w^N)^T & - \\ + \end{bmatrix} = \begin{bmatrix} + \w^T \\ \matr{W}_L \end{bmatrix} \] - where the eigenvalues of $\matr{J}_2 \in \mathbb{R}^{(N-1) \times (N-1)}$ lie inside the open unit disk. - - Let $\vec{x}^k = \matr{T}\bar{\vec{x}}^k$, then we have that: + + A change in coordinates defined as: + \[ + \x \mapsto \tilde{\x} = \matr{T}^{-1} \x + \] + allows to obtain the Jordan form $\matr{T}^{-1}\A\matr{T}$: + \[ + \matr{T}^{-1}\A\matr{T} = \begin{bmatrix} + 1 & 0 & \dots \\ + 0 & & \\ + \vdots & & \matr{J}_2 \\ + \end{bmatrix} + \] + with $\matr{J}_2 \in \mathbb{R}^{(N-1) \times (N-1)}$ Schur (i.e., $\text{spec}(\matr{J}_2)$ inside the open unit disk). + + The dynamics $\x^{k+1} = \A \x^k$ in the new coordinate system is: \[ \begin{split} - &\vec{x}^{k+1} = \matr{A} \vec{x}^{k} \\ - &\iff \matr{T} \bar{\vec{x}}^{k+1} = \matr{A} (\matr{T} \bar{\vec{x}}^k) \\ - &\iff \bar{\vec{x}}^{k+1} = \matr{T}^{-1} \matr{A} (\matr{T} \bar{\vec{x}}^k) = \matr{J}\bar{\vec{x}}^k + \tilde{\x}^{k+1} &= \matr{T}^{-1} \x^{k+1} = \matr{T}^{-1} \A \matr{T} \tilde{\x}^k \\ + &= \begin{bmatrix} + 1 & 0 & \dots \\ + 0 & & \\ + \vdots & & \matr{J}_2 \\ + \end{bmatrix} \tilde{\x}^k + = \begin{bmatrix} + 1 & 0 & \dots \\ + 0 & & \\ + \vdots & & \matr{J}_2 \\ + \end{bmatrix}^{k+1} \tilde{\x}^0 \end{split} \] - Therefore: + Let's denote: \[ - \begin{gathered} - \lim_{k \rightarrow \infty} \bar{\vec{x}}^k = \bar{x}_1^0 \begin{bmatrix} 1 \\ 0 \\ \vdots \\ 0 \end{bmatrix} \\ - \bar{x}_1^{k+1} = \bar{x}_1^k \quad \forall k \geq 0 \\ - \lim_{k \rightarrow \infty} \bar{x}_i^{k} = 0 \quad \forall i = 2, \dots, N \\ - \end{gathered} + \tilde{\x}^k = \matr{T}^{-1}\x^k = \begin{bmatrix} + \w^T\x^k \\ \matr{W}_L\x^k + \end{bmatrix} + = \begin{bmatrix} + \tilde{\x}^k_{m} \\ \tilde{\x}^k_{\bot} + \end{bmatrix} \] + We have that: + \[ + \begin{split} + \lim_{k \rightarrow \infty} \tilde{\x}^k + &= \lim_{k \rightarrow \infty} \begin{bmatrix} + 1 & 0 & \dots \\ + 0 & & \\ + \vdots & & \matr{J}_2 \\ + \end{bmatrix}^k \tilde{\x}^0 \\ + &= \lim_{k \rightarrow \infty} \begin{bmatrix} + 1 & 0 & \dots \\ + 0 & & \\ + \vdots & & (\matr{J}_2)^k \\ + \end{bmatrix} \begin{bmatrix} + \tilde{\x}^0_{m} \\ \tilde{\x}^0_{\bot} + \end{bmatrix} \\ + &= \begin{bmatrix} + 1 \cdot \tilde{\x}^0_{m} \\ + \lim_{k \rightarrow \infty} (\matr{J}_2)^k \tilde{\x}^0_{\bot} + \end{bmatrix} \\ + &= \begin{bmatrix} + \w^T \x^0 \\ + 0 + \end{bmatrix} \\ + \end{split} + \] + Note that $\lim_{k \rightarrow \infty} \matr{J}_2^k = 0$ as it is stable (i.e., all eigenvalues are in the open unit disk $|\mu| < 1$). + + In the original coordinate system, the limit is: + \[ + \begin{split} + \lim_{k \rightarrow \infty} \x^k + &= \lim_{k \rightarrow \infty} \matr{T} \tilde{\x}^k \\ + &= \matr{T} \lim_{k \rightarrow \infty} \tilde{\x}^k \\ + &= \begin{bmatrix} + \vec{1} & \matr{W}_R + \end{bmatrix} \begin{bmatrix} + \w^T \x^0 \\ + 0 + \end{bmatrix} + = \vec{1} (\w^T \x^0) + \end{split} + \] + + \indenttbox + \begin{remark} + It is assumed that $\Vert \w \Vert = 1$ (i.e., no normalization term). + \end{remark} \end{proof} \end{theorem} @@ -154,6 +435,45 @@ \end{example} +% \begin{proof}[Lyapunov approach] +% $\A - \vec{1}\w^T$ is rank-1. This is to change one specific eigenvalue (move 1 to 0). + +% Dissensus vector represents error: +% \[ +% \begin{split} +% delta^{k+1} +% = \x^{k+1} - \vec{1}\w^T \x^0 \\ +% = \x^{k+1} - \vec{1}\w^T \x^{k+1} \\ +% = (\matr{I} - \vec{1}\w^T) \x^{k+1} \\ +% = (\matr{I} - \vec{1}\w^T) \A\x^{k} \\ +% = (\A - \vec{1}\w^T) \x^{k} \\ +% = (\A - \vec{1}\w^T) \delta^{k} \\ +% \end{split} +% \] + +% Study: +% \[ +% \delta^{k+1} = (\A - \vec{1}\w^T) \delta{k} +% \] +% If $\delta^k \rightarrow 0$, then $\x^k \rightarrow\vec{1}\w^T\x^0$. +% Note $(\A - \vec{1}\w^T)$ is Schur. + +% Lyapunov equation for discrete time systems: +% \[ +% \bar{\A}^T \matr{P} \bar{\A} = - \matr{P} = - \matr{Q} +% \] +% where $\bar{\A}$ is the Jordan-form of $(\A - \vec{1}\w^T)$ + +% Select $Q_2$ to be block-diagonal and $p_1$ + + +% \[ +% V(\delta) = \delta^T (\matr{T}^{-1})^T \matr{P} \matr{T}^{-1} \delta +% \] +% \end{proof} + + + \section{Discrete-time averaging algorithm over time-varying graphs} @@ -228,7 +548,7 @@ with states $x_i \in \mathbb{R}$, inputs $u_i \in \mathbb{R}$, and communication following a digraph $G$. \item[Laplacian dynamics system] \marginnote{Laplacian dynamics system} - Consider a network of dynamic systems where $u_i$ is defined as a proportional controller (i.e., only communicating $(i, j)$ have a non-zero weight $a_{ij}$): + Consider a network of dynamic systems where $u_i$ is defined as a proportional controller (i.e., only communicating $(i, j)$ have a non-zero weight): \[ \begin{split} u_i(t)