feat: customizable distance calculators for drt constraints #2971
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes it easy to further experiment with the distance objective and range constraint that comes with
drt-extensions/insertion
. It is now possible to flexibly configure the distance calculator with a custom logic. Furthermore, the distance approximator can be defined. While the calculator is used in the distance objective, both of them are used in the range constraint: If an approximator is defined (but it is optional), the range constraint is first evaluated with the approximator, which should be pessimistic. Only if a violation of the constraint is detected using this pessmistic (i.e. overestimating) setting, the more exact calculator is used that will perform a direct network routing by default. Both elements can now be configured by:The values passed can either be an instance of
DistanceCalculator
andDistanceApproximator
, or they can be a class name, then a modal binding needs to be provided somewhere (see example in the unit tests).