Package com.bakdata.dedupe.matching
Class StronglyStableMarriage<T>
- java.lang.Object
-
- com.bakdata.dedupe.matching.AbstractStableMarriage<T>
-
- com.bakdata.dedupe.matching.StronglyStableMarriage<T>
-
- Type Parameters:
T- the type of the record.
- All Implemented Interfaces:
Assigner<T>,BipartiteMatcher<T>
public final class StronglyStableMarriage<T> extends AbstractStableMarriage<T>
Implements a strongly stable matching based on the stable marriage with indifference."A matching is strongly stable if there is no couple x, y such that x strictly prefers y to his/her partner, and y either strictly prefers x to his/her partner or is indifferent between them."[1]
The preference list may be incomplete if some pairs absolutely do not want to matched. However, in this case, there may be fewer matches than elements.
[1] Irving, Robert W. (1994-02-15). "Stable marriage and indifference". Discrete Applied Mathematics. 48 (3): 261–272. doi:10.1016/0166-218X(92)00179-P.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.bakdata.dedupe.matching.AbstractStableMarriage
AbstractStableMarriage.AbstractMatcher, AbstractStableMarriage.Matcher
-
-
Constructor Summary
Constructors Constructor Description StronglyStableMarriage()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancanEqual(java.lang.Object other)protected AbstractStableMarriage.MatchercreateMatcher(java.util.List<? extends java.util.Queue<java.util.List<java.lang.Integer>>> mensFavoriteWomen, java.util.List<? extends java.util.Queue<java.util.List<java.lang.Integer>>> womensFavoriteMen)booleanequals(java.lang.Object o)inthashCode()java.lang.StringtoString()-
Methods inherited from class com.bakdata.dedupe.matching.AbstractStableMarriage
match
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.bakdata.dedupe.matching.Assigner
assignMaterialized
-
Methods inherited from interface com.bakdata.dedupe.matching.BipartiteMatcher
assign, matchMaterialized
-
-
-
-
Method Detail
-
createMatcher
protected AbstractStableMarriage.Matcher createMatcher(java.util.List<? extends java.util.Queue<java.util.List<java.lang.Integer>>> mensFavoriteWomen, java.util.List<? extends java.util.Queue<java.util.List<java.lang.Integer>>> womensFavoriteMen)
- Specified by:
createMatcherin classAbstractStableMarriage<T>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
canEqual
protected boolean canEqual(java.lang.Object other)
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-