1
0
Fork 0
This commit is contained in:
Joris van Rantwijk 2024-07-28 11:29:41 +02:00
parent 5af13809b3
commit d5d8a43a3b
1 changed files with 7 additions and 7 deletions

View File

@ -805,7 +805,6 @@ The modified slack is computed in the same way as true slack, except it uses
the modified vertex duals instead of true vertex duals.
Blossom duals are ignored since we will never compute the modified slack of an edge that
is contained inside a blossom.
Because modified vertex duals are invariant under delta steps, so is the modified edge slack.
As a result, the priorities of edges in the priority queue remain unchanged during a delta step.
@ -1218,14 +1217,15 @@ Floating point calculations are subject to rounding errors.
As a result, the algorithm may return a matching which has slightly lower weight than
the actual maximum weight.
I believe the matching algorithm is stable for floating point weights.
It seems to me that the algorithm will always return a matching that is close to optimal,
and could have been optimal if the edge weights were changed by very small amounts.
I must admit this is mostly based on intuition.
Unfortunately I don't know how to properly analyze the floating point accuracy of this algorithm.
The algorithm will allways return a valid matching, even if rounding errors occur.
Floating point comparisons affect which actions are taken during delta steps,
and thus eventually determine which edges are matched.
But the overall structure of the algorithm guarantees that it will eventually return
a valid (if possibly suboptimal) matching.
The most challenging cases are probably graphs where edge weights differ by many orders
The most challenging cases are probably graphs with edge weights that differ by many orders
of magnitude.
Unfortunately I don't know how to properly analyze the floating point accuracy of this algorithm.
### Finding a maximum weight matching out of all maximum cardinality matchings