  Contracting tensor networks is often computationally demanding. Well-designed
contraction sequences can dramatically reduce the contraction cost. We explore
the performance of simulated annealing and genetic algorithms, two common
discrete optimization techniques, to this ordering problem. We benchmark their
performance as well as that of the commonly-used greedy search on physically
relevant tensor networks. Where computationally feasible, we also compare them
with the optimal contraction sequence obtained by an exhaustive search. We find
that the algorithms we consider consistently outperform a greedy search given
equal computational resources, with an advantage that scales with tensor
network size. We compare the obtained contraction sequences and identify signs
of highly non-local optimization, with the more sophisticated algorithms
sacrificing run-time early in the contraction for better overall performance.
