  Federated Learning (FL) enables multiple clients to train machine learning
models collaboratively without sharing the raw training data. However, for a
given FL task, how to select a group of appropriate clients fairly becomes a
challenging problem due to budget restrictions and client heterogeneity. In
this paper, we propose a multi-criteria client selection and scheduling scheme
with a fairness guarantee, comprising two stages: 1) preliminary client pool
selection, and 2) per-round client scheduling. Specifically, we first define a
client selection metric informed by several criteria, such as client resources,
data quality, and client behaviors. Then, we formulate the initial client pool
selection problem into an optimization problem that aims to maximize the
overall scores of selected clients within a given budget and propose a greedy
algorithm to solve it. To guarantee fairness, we further formulate the
per-round client scheduling problem and propose a heuristic algorithm to divide
the client pool into several subsets such that every client is selected at
least once while guaranteeing that the `integrated' dataset in a subset is
close to an independent and identical distribution (iid). Our experimental
results show that our scheme can improve the model quality especially when data
are non-iid.
