Strict Preference Stable Matching
Construct and verify a stable one-to-one matching from complete two-sided rankings, with either side proposing.
Loading tool…
How to use Strict Preference Stable Matching
Use deferred acceptance under strict complete preferences, then scan every possible opposite-side pair for a blocking pair. The two proposer-side outcomes can be compared within the same declared model.
- Use the example as the schema; replace its labels and entered model assumptions.
- Use deferred acceptance under strict complete preferences, then scan every possible opposite-side pair for a blocking pair. The two proposer-side outcomes can be compared within the same declared model.
- Calculate, inspect the complete witnesses and limitations, then copy or download the JSON report.
Good to know
- 1–50 members per equally sized side. Preference rows follow the side label order and must each list every opposite member exactly once. At most n squared proposals per scenario; the trace retains the first 100.
- No tied or incomplete preferences, capacities, institutional rules, identity matching, fair random draw or welfare optimum. Proposer optimality is only among stable matchings in this narrow model.
- Local calculation with no upload, input persistence or outside lookup. Model JSON is limited to 30,000 characters and 10,000 values. Decimal quantities are strings with up to six places; count fields use plain JSON integers. Exact fractions are capped at 8,192 bits. The complete JSON output is limited to 1,000,000 characters; approximate numbers preserve their stored values. Unsupported states fail explicitly.
Common questions
Does stable mean the total preference score is the best possible?
No. Stable means there is no unmatched pair who both prefer each other to their assigned partners. It is a different objective from maximizing a total score.
Are my model inputs saved or sent to a server?
No. This model runs in the current browser tab and creates a local JSON download. It does not save your input or call an external data service.
Keep going with related tools
All education →Cost Assignment Workbench
Find an exact minimum-cost or maximum-value one-to-one assignment and export the matching witness.
EducationRound-Robin Fixture Generator
Create all-pairs rounds with explicit odd-participant byes and an optional mirrored second leg.
EducationRanked Ballot Method Comparison
Compare plurality, Borda, instant runoff and pairwise Condorcet results from your weighted complete preference ballots.
EducationSeeded Knockout Bracket Builder
Build a source-linked knockout bracket with transparent seed slots, byes and pending winner dependencies.