fix
This commit is contained in:
parent
5af13809b3
commit
d5d8a43a3b
|
@ -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.
|
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
|
Blossom duals are ignored since we will never compute the modified slack of an edge that
|
||||||
is contained inside a blossom.
|
is contained inside a blossom.
|
||||||
|
|
||||||
Because modified vertex duals are invariant under delta steps, so is the modified edge slack.
|
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.
|
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
|
As a result, the algorithm may return a matching which has slightly lower weight than
|
||||||
the actual maximum weight.
|
the actual maximum weight.
|
||||||
|
|
||||||
I believe the matching algorithm is stable for floating point weights.
|
The algorithm will allways return a valid matching, even if rounding errors occur.
|
||||||
It seems to me that the algorithm will always return a matching that is close to optimal,
|
Floating point comparisons affect which actions are taken during delta steps,
|
||||||
and could have been optimal if the edge weights were changed by very small amounts.
|
and thus eventually determine which edges are matched.
|
||||||
I must admit this is mostly based on intuition.
|
But the overall structure of the algorithm guarantees that it will eventually return
|
||||||
Unfortunately I don't know how to properly analyze the floating point accuracy of this algorithm.
|
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.
|
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
|
### Finding a maximum weight matching out of all maximum cardinality matchings
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue