ElkSharp edge routing: boundary slots, gateway repairs, corridor spacing
Major edge routing improvements including corridor spacing, crossing reduction, focused gateway boundary repairs, setter families, and advanced restabilization. Adds workflow renderer tests for document-processing and artifact inspection. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -73,6 +73,37 @@ internal static partial class ElkEdgeRouterIterative
|
||||
|| candidate.ExcessiveDetourViolations > baseline.ExcessiveDetourViolations;
|
||||
}
|
||||
|
||||
private static bool HasBlockingSetterFamilyPromotionRegression(
|
||||
RoutingRetryState candidate,
|
||||
RoutingRetryState baseline,
|
||||
bool localImproved)
|
||||
{
|
||||
var allowTemporaryDetourTrade =
|
||||
localImproved
|
||||
&& candidate.RemainingShortHighways <= baseline.RemainingShortHighways
|
||||
&& candidate.UnderNodeViolations <= baseline.UnderNodeViolations
|
||||
&& candidate.ExcessiveDetourViolations <= baseline.ExcessiveDetourViolations + 1;
|
||||
var allowTemporaryBoundarySlotTrade =
|
||||
localImproved
|
||||
&& candidate.BoundarySlotViolations <= baseline.BoundarySlotViolations + 1;
|
||||
|
||||
return candidate.RemainingShortHighways > baseline.RemainingShortHighways
|
||||
|| candidate.RepeatCollectorCorridorViolations > baseline.RepeatCollectorCorridorViolations
|
||||
|| candidate.RepeatCollectorNodeClearanceViolations > baseline.RepeatCollectorNodeClearanceViolations
|
||||
|| candidate.BelowGraphViolations > baseline.BelowGraphViolations
|
||||
|| candidate.UnderNodeViolations > baseline.UnderNodeViolations
|
||||
|| candidate.LongDiagonalViolations > baseline.LongDiagonalViolations
|
||||
|| candidate.EntryAngleViolations > baseline.EntryAngleViolations
|
||||
|| candidate.GatewaySourceExitViolations > baseline.GatewaySourceExitViolations
|
||||
|| candidate.SharedLaneViolations > baseline.SharedLaneViolations
|
||||
|| (!allowTemporaryBoundarySlotTrade
|
||||
&& candidate.BoundarySlotViolations > baseline.BoundarySlotViolations)
|
||||
|| candidate.TargetApproachJoinViolations > baseline.TargetApproachJoinViolations
|
||||
|| candidate.TargetApproachBacktrackingViolations > baseline.TargetApproachBacktrackingViolations
|
||||
|| (!allowTemporaryDetourTrade
|
||||
&& candidate.ExcessiveDetourViolations > baseline.ExcessiveDetourViolations);
|
||||
}
|
||||
|
||||
private static int CompareRetryStates(RoutingRetryState left, RoutingRetryState right)
|
||||
{
|
||||
if (left.RemainingShortHighways != right.RemainingShortHighways)
|
||||
|
||||
Reference in New Issue
Block a user