A node separator of a graph is a subset S of the nodes such that removing S
and its incident edges divides the graph into two disconnected components of
about equal size. In this work, we introduce novel algorithms to find small
node separators in large graphs. With focus on solution quality, we introduce
novel flow-based local search algorithms which are integrated in a multilevel
framework. In addition, we transfer techniques successfully used in the graph
partitioning field. This includes the usage of edge ratings tailored to our
problem to guide the graph coarsening algorithm as well as highly localized
local search and iterated multilevel cycles to improve solution quality even
further. Experiments indicate that flow-based local search algorithms on its
own in a multilevel framework are already highly competitive in terms of
separator quality. Adding additional local search algorithms further improves
solution quality. Our strongest configuration almost always outperforms
competing systems while on average computing 10% and 62% smaller separators
than Metis and Scotch, respectively