Lower bounds bounds-smoothing now also implemented (using Dijkstra's shortest path algorithm and offsetting to avoid negative weights).