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 boolean
canEqual(java.lang.Object other)
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)
boolean
equals(java.lang.Object o)
int
hashCode()
java.lang.String
toString()
-
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:
createMatcher
in classAbstractStableMarriage<T>
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
canEqual
protected boolean canEqual(java.lang.Object other)
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-