Replication package for Flows and Rounds: benchmark and retrieval scripts for distributed neurodynamic optimization and federated learning
Description
This package contains the code and generated data behind the quantitative results of the survey "Flows and Rounds: A Survey of Distributed Neurodynamic Optimization and Federated Learning", submitted to Neurocomputing. It reproduces every number, table, and figure in Sections 2.3 and 8 of the article. No third-party, proprietary, or personal data is involved: all data is synthetic and generated at run time from fixed random seeds, so the package is self-contained and deterministic. Two scripts are included. The first, toy_benchmark.py, runs a controlled experiment on a synthetic distributed optimization problem with five nodes, twenty dimensions, and a closed-form optimum, averaged over ten seeds. It measures two things. Experiment one measures consensus drift as a function of the number of local steps per communication round, holding total local work fixed, and tests the prediction that drift grows with the dwell interval and vanishes when the agents hold identical objectives. Drift is found to be identically zero without gradient dissimilarity and to grow as E^0.88 and E^0.84 at the two heterogeneity levels tested. Experiment two measures whether an integral-enhanced flow, of the kind used in the zeroing neural network literature to reject persistent disturbance, also attenuates the Gaussian noise that a differential privacy mechanism deliberately injects. Both flows are driven by an identical noise stream and the noise response is isolated by differencing each noisy run against its own noise-free run. The integral term is found to remove steady-state bias almost entirely while leaving injected-noise energy unchanged, a ratio of 1.007. This second result contradicted the authors' expectation when the experiment was designed, and it is reported as measured. The second script, search_protocol.py, records a structured literature retrieval executed on 31 August 2026 and computes the deduplication and overlap counts reported in Section 2.3 of the article. It also emits a screening sheet listing all eighty-five retrieved records with their query provenance. The package is intended for readers who wish to verify the article's numerical claims, and for anyone extending the benchmark to other flows, noise models, or heterogeneity regimes. It requires only Python, NumPy, and Matplotlib.
Files
Steps to reproduce
Environment. Python 3.10 or later with NumPy and Matplotlib, and no other dependencies. The results deposited here were produced with NumPy 2.4.4 and Matplotlib 3.10.8. Install with: pip install numpy matplotlib Step 1. Download and unpack the archive. All files sit in a single directory and no configuration or path editing is needed. Step 2. Reproduce the benchmark in Section 8 of the article by running: python3 toy_benchmark.py This writes benchmark_results.txt, fig_drift.pdf, and fig_noise.pdf into the working directory, and prints the same report to standard output. It completes in well under a minute on a laptop. The output should match the deposited benchmark_results.txt exactly, since all ten seeds are fixed in the script. The reported values feed Table 4, Table 5, Figure 2, and Figure 3 of the article. Note that the article redraws both figures natively in pgfplots so that the manuscript compiles without external image files, so the deposited PDFs are the same data rendered by Matplotlib rather than the exact images that appear in print. Step 3. Reproduce the retrieval counts in Section 2.3 by running: python3 search_protocol.py This writes counts.txt and screening.csv, and prints the report to standard output. It performs no network access: the retrieved records are recorded in the script as executed on 31 August 2026, and the script recomputes the deduplication, arm assignment, and overlap statistics from them. Output should match the deposited counts.txt exactly. Verification. Compare your generated benchmark_results.txt and counts.txt against the deposited copies. If the benchmark output differs, check the NumPy version first, because the default random generator stream is version dependent and a different NumPy major version can shift the sampled problem instances while leaving the qualitative conclusions unchanged. Scope. The benchmark uses one synthetic convex problem, one noise model, one integral gain, and a linear flow rather than a zeroing construction with a nonlinear activation. It is designed to test two specific structural claims, not to compare the performance of competing methods or to benchmark a deployed system. The retrieval is an exploratory measurement of how rarely two research vocabularies co-occur, capped at fifteen records per query, and it makes no claim of exhaustive coverage.
Institutions
- Heriot-Watt UniversityScotland, Edinburgh