  In this paper we consider several problems concerning packet routing in
distributed systems. Each problem is formulated using terms from Graph Theory
and for each problem we present efficient, novel, algorithmic techniques for
computing optimal solutions. We address topics like: bottleneck paths (trees),
optimal paths with non-linear costs, optimal paths with multiple optimization
objectives, maintaining aggregate connectivity information under a sequence of
network link failures, and several others.
