We should allow for the user to not only add hard bounds (think: time window of 10am--11am, or a specific capacity) but also soft bounds which will add proportionally to the solution's cost if exceeded.
Use-case: think of a hard time window of 10am--1am. Maybe we want to be on time as often as possible. We could set a soft upper bound e.g. of 10:15am adding a penalty proportional to how late we are)
Implementation: see RoutingDimension type's Soft member functions adding penalties to the cost.
We should allow for the user to not only add hard bounds (think: time window of 10am--11am, or a specific capacity) but also soft bounds which will add proportionally to the solution's cost if exceeded.
Use-case: think of a hard time window of 10am--1am. Maybe we want to be on time as often as possible. We could set a soft upper bound e.g. of 10:15am adding a penalty proportional to how late we are)
Implementation: see
RoutingDimension
type'sSoft
member functions adding penalties to the cost.