  Complementation of B\"uchi automata is an essential technique used in some
approaches for termination analysis of programs. The long search for an optimal
complementation construction climaxed with the work of Schewe, who proposed a
worst-case optimal rank-based procedure that generates complements of a size
matching the theoretical lower bound of $(0.76n)^n$, modulo a polynomial factor
of $O(n^2)$. Although worst-case optimal, the procedure in many cases produces
automata that are unnecessarily large. In this paper, we propose several ways
of how to use the direct and delayed simulation relations to reduce the size of
the automaton obtained in the rank-based complementation procedure. Our
techniques are based on either (i) ignoring macrostates that cannot be used for
accepting a word in the complement or (ii) saturating macrostates with
simulation-smaller states, in order to decrease their total number. We
experimentally showed that our techniques can indeed considerably decrease the
size of the output of the complementation.
