  Short and clear paper to understand important problems encountered when generating a random graph on a typical example: matching methods are often biased (when possible), switching methods are safer but not controlled in terms of mixing time. __Summary__ This article focuses on the uniform generation of simple graphs (no self-loops, no multiple edges) with a prescribed degree distribution. The graphs considered here are directed, but the generalization to the undirected case is straightforward. Uniform generation means that all graphs have the same probability to be generated. 3 methods are compared: - matching (= configuration model) - switching (= basic edge switching method) - go-with-the-winners (new, derived from matching) _switching method_ - draw two random arcs - switch their ends - iterate advantage: if we iterate a sufficient number of times, the graph obtained is uniformly random drawback: we don't know theoretically what is this sufficient number of times... _matching method_ - each node is given in-stubs and out-stubs corresponding to its in- and out-degree - in-stubs and out-stubs are paired randomly - (strong version) if a multi-edge is created the graph is discarded, and restart advantage: the graph obtained is uniformly random drawback: very high probability to restart with heavy-tailed dd weak version (the one used in practice): the graph is not discarded, but the edge is reconnected elsewhere. drawback: the generation is biased _go with the winners_ - starting from a population of graphs (with the right dd) - same principle as the matching algorithm - a graph is discarded if there is a loop or a multi-edge created during the process - but to compensate the drop in number in the population, surviving graphs are cloned and they are given a weight to compensate for their over-representation in the final sample _Experimental results_ On a set of toy-graphs for which all elements are known, they show that there is a sampling bias with the matching method When sampling real classic networks (yeast etc), the bias with the matching algorithm is not detected. In terms of computation speed matching > switching >> gwtw.

### Dynamic setting: One of the motivations for the suggested framework is related to the dynamic nature of the reachability graph. However, the suggested framework does not seem to be particularly effective in a dynamic setting (need to recompute the sets "S" from scratch if the reachability graph is modified). Recent work is dedicated to solving the k-center problem in a dynamic setting: "Fully Dynamic k-Center Clustering, Chan et al., WWW2018". The "asymmetric k-center problem" being a subproblem solved in the suggested framework, a more efficient algorithm in a dynamic setting seems possible. ### Effectiveness of greedy: Nice to see that the greedy heuristic leads to a very good approximation on real-world instances for the considered problem (the exact result is known solving an integer program). On the contrary, an algorithm (Ullman and Yannakakis) having good theoretical guarantees performs poorly on the same real-world instances. ### Typos: - "In Table 6.4, the column labeled...": should be "In Table 2, ..."