Skip to content

v0.3.0 - punch list complete

Choose a tag to compare

@dataeducator dataeducator released this 08 May 18:53
· 46 commits to main since this release

@
This release closes every gap identified in the Overall Assessment that
the v0.3.0 punch list classified as P0 (paper-blocking) or P1
(strong credibility), plus two P2 items.

Whats new

P0 - Paper-blocking

  • P0-1: Parallel particle evaluation backends (57af925) — opt-in executor in {serial, threads, processes} with reproducible per-particle seeds. experiments/bench_parallel.py produces the empirical artifact for the HPC section of the paper.
  • P0-2: Analytical DP sensitivity (5a30ec1) — closed-form bound on DemographicFitness sensitivity derived from Audenaerts entropy continuity inequality. Theorem 4s privacy guarantee now rests on a proved bound rather than a 1.5x empirical heuristic.
  • P0-3: Continuous-relaxation acknowledgement (3b14603) — explicit discussion of the soft-gradient/hard-decode discontinuity and an empirical test that the rank margin gamma grows over iterations.
  • P0-4: Multi-round FL state coupling (4451cea) — DigitalTwin.simulate() now warm-starts each round from the previous gBest and accepts a model_update_fn hook. FairSwarm.seed_with_position() is the underlying primitive.

P1 - Strong credibility

  • P1-1: Real accuracy adapter (4a9795e) — make_accuracy_fn (framework-neutral) and make_flower_accuracy_fn for AccuracyFairnessFitness. End-to-end demo at experiments/end_to_end_accuracy.py shows real held-out accuracy with sklearn.
  • P1-2: Explicit zero-mass KL handling (53a0713) — three modes on kl_divergence: clipped (default, v0.2.x compatible), laplace (calibrated), strict (returns inf).
  • P1-3: Unified drift metric (dee8019) — DigitalTwin._compute_drift now uses KL by default so its threshold is in the same units as epsilon_fair. drift_metric="l2" reproduces v0.2.x behavior.
  • P1-4: Shipped benchmark module (14e91c8) — python -m fairswarm.benchmarks runs FairSwarm vs Random vs Oort vs StandardPSO on synthetic data. Ships in the wheel; PhysioNet-clean.

P2 - Polish

  • P2-1: ExponentialMechanism baseline (2f19645) — connects the previously orphaned mechanism to a private-coalition-selection comparison.
  • P2-3: Shapley ground-truth tests (227b693) — closed-form 3-player glove-game validation of all three Shapley implementations.

Test suite

693 passing, 1 skipped (Flower not installed in CI), zero failures.

Install

pip install fairswarm==0.3.0

Reference

T. Norwood, D. Das, P. Chatterjee, E. Bentley, and U. Ghosh, "FairSwarm: Trustworthy Coalition Selection for Fair and Secure Federated Intelligence," IEEE Trans. Consum. Electron., 2026 (Submitted).
@