Consensus protocol for a random graph of agents perturbed with Gaussian Orthogonal Ensemble (GOE) noise.
An Erdos–Renyi graph is used to make random undirected connections between network nodes. A connection is formed between nodes only if the probability threshold is satisfied. The basic graph is defined as follows,
A Bernoulli random matrix is then formed by selecting a matrix of ones conditional upon a connection probability
To ensure that the matrix is undirected, we first keep only the strict upper-triangular section of
Then, the final undirected (and symmetric) adjacency matrix
An adjacency matrix produced from an Erdos-Renyi graph will include undirected connections between nodes depending on a threshold probability. Some nodes will have more connections than others, so the graph Laplacian is used to model the difference in the communication of some nodes in relation to others. A graph Laplacian
The communication pressure modeled by the graph Laplacian will drive each node to the average state of its neighbors. So for some graph Laplacian
For tracking a setpoint, each agent is represent by a position
where
Communication noise between agents by adding a noise term to the graph Laplacian. The system matrix of the consensus dynamics then becomes,
where
Many types of noise can be applied to the consensus system. However, if we wish to conduct a tractable spectral analysis, an ensemble derived from Random Matrix Theory can provide a structured spectrum. The Gaussian Orthogonal Ensemble (GOE) has real and symmetric entries drawn from a Gaussian. Perturbing the graph Laplacian with a GOE ensures that the noisy Laplacian remains diagonalizable with real eigenvalues. The GOE matrix is constructed from an
The canonical GOE used in spectral analysis requires the diagonal elements to have a variance of 1 and the off-diagonal elements to have a variance of 2. The resulting matrix then obeys the Wigner Semicircle Law, that is,
The GOE noise can then be applied to the Laplacian producing the previously discussed perturbed system.
We can embed a structured outcome directly into the concensus protocol. A relative geometric arrangement can be encoded in the system by assigning each agent an offset vector
sniff uses uv, a fast Python package manager and environment builder.
You don’t need to manually activate virtual environments.
git clone git@github.com:iqsnider/sniff.git
cd sniffuv syncRun simulations directly with uv run. All CLI commands have default values.
uv run sniff protocol-1d
Figure 1: Consensus Protocol for noisy 1D agents.
uv run sniff protocol-2d --n 20 --p-track 0.0 0.0
Figure 2: Consensus Protocol for noisy 2D agents tracking a setpoint.
uv run sniff formation --n 20 --p-track 0.0 0.0
Figure 3: Consensus Protocol for noisy 2D agents forming a grid.
uv run sniff circle --n 20 --link 0.5 --alpha 0.1 --noise-strength 1
Figure 4: Consensus Protocol for noisy 2D agents tracking a circle.