fedbox.optimization

This submodule defines the three optimization algorithms that can be used in the simulations. The structure of the code is the same for each algorithm, and we always have two main components.

  1. A Coordinator instance which represents the central server broadcasting the model at the beginning of every round and performing the aggregation of the received updates before the beginning of the next.
  2. A Agent instance which performs local optimization and evaluation on its data samples with a specific federated framework.

For each algorithmic framework, we extend from the base classes Coordinator and Agent and we specialize them accordingly to the specific procedure.

 1'''
 2This submodule defines the three optimization algorithms that can
 3be used in the simulations. The structure of the code is the same
 4for each algorithm, and we always have two main components.
 5<ol>
 6  <li>A <b>Coordinator</b> instance which represents the central server 
 7  broadcasting the model at the beginning of every round and performing the aggregation of
 8  the received updates before the beginning of the next.</li>
 9  <li>A <b>Agent</b> instance which performs local optimization and evaluation on its data samples 
10  with a specific federated framework.</li>
11</ol>
12For each algorithmic framework, we extend from the base classes <b>Coordinator</b> and <b>Agent</b> and
13we specialize them accordingly to the specific procedure.
14'''