Finds the stable matching in the stable roommates problem with transferable utility. Uses the Partitioning Linear Programme formulated in Quint (1991).

plp(V = NULL, N = NULL)

Arguments

V

valuation matrix of dimension NxN that gives row-players valuation over column players (or vice versa).

N

integer (divisible by 2) that gives the number of players in the market.

Value

plp returns a list with the following items.

Valuation.matrix

input values of V.

Assignment.matrix

upper triangular matrix of dimension NxN with entries of 1 for equilibrium pairs and 0 otherwise.

Equilibrium.groups

matrix that gives the N/2 equilibrium pairs and equilibrium partners' mutual valuations.

References

Quint, T. (1991). Necessary and sufficient conditions for balancedness in partitioning games. Mathematical Social Sciences, 22(1):87--91.

Examples

## Roommate problem with 10 players, transferable utility and random preferences: plp(N=10)
#> $Valuation.matrix #> 1 2 3 4 5 6 #> 1 -1.400043517 -0.55369938 0.46815442 0.9353632 0.07003485 0.86208648 #> 2 0.255317055 0.62898204 0.36295126 0.1764886 -0.63912332 -0.24323674 #> 3 -2.437263611 2.06502490 -1.30454355 0.2436855 -0.04996490 -0.20608719 #> 4 -0.005571287 -1.63098940 0.73777632 1.6235489 -0.25148344 0.01917759 #> 5 0.621552721 0.51242695 1.88850493 0.1120381 0.44479712 0.02956075 #> 6 1.148411606 -1.86301149 -0.09744510 -0.1339970 2.75541758 0.54982754 #> 7 -1.821817661 -0.52201251 -0.93584735 -1.9100875 0.04653138 -2.27411486 #> 8 -0.247325302 -0.05260191 -0.01595031 -0.2792372 0.57770907 2.68255718 #> 9 -0.244199607 0.54299634 -0.82678895 -0.3134460 0.11819487 -0.36122126 #> 10 -0.282705449 -0.91407483 -1.51239965 1.0673079 -1.91172049 0.21335575 #> 7 8 9 10 #> 1 1.0743459 -1.47073631 1.9243433 0.42418757 #> 2 -0.6650882 0.28415034 1.2983928 1.06310200 #> 3 1.1139524 1.33732041 0.7487913 1.04871262 #> 4 -0.2458964 0.23669628 0.5562243 -0.03810289 #> 5 -1.1775633 1.31829338 -0.5482573 0.48614892 #> 6 -0.9758506 0.52390979 1.1105349 1.67288261 #> 7 1.0650573 0.60674805 -2.6123343 -0.35436116 #> 8 0.1316706 -0.10993567 -0.1556938 0.94634789 #> 9 0.4886288 0.17218172 0.4338898 1.31682636 #> 10 -1.6994506 -0.09032729 -0.3819511 -0.29664002 #> #> $Assignment.matrix #> 1 2 3 4 5 6 7 8 9 10 #> 1 NA 0 0 0 0 0 0 0 1 0 #> 2 NA NA 1 0 0 0 0 0 0 0 #> 3 NA NA NA 0 0 0 0 0 0 0 #> 4 NA NA NA NA 0 0 0 0 0 1 #> 5 NA NA NA NA NA 1 0 0 0 0 #> 6 NA NA NA NA NA NA 0 0 0 0 #> 7 NA NA NA NA NA NA NA 1 0 0 #> 8 NA NA NA NA NA NA NA NA 0 0 #> 9 NA NA NA NA NA NA NA NA NA 0 #> 10 NA NA NA NA NA NA NA NA NA NA #> #> $Equilibrium.groups #> player.A player.B mutual.valuation #> 1 2 3 2.4279762 #> 2 5 6 2.7849783 #> 3 7 8 0.7384187 #> 4 1 9 1.6801437 #> 5 4 10 1.0292050 #>
## Roommate problem with 10 players, transferable utility and given preferences: V <- matrix(rep(1:10, 10), 10, 10) plp(V=V)
#> $Valuation.matrix #> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] #> [1,] 1 1 1 1 1 1 1 1 1 1 #> [2,] 2 2 2 2 2 2 2 2 2 2 #> [3,] 3 3 3 3 3 3 3 3 3 3 #> [4,] 4 4 4 4 4 4 4 4 4 4 #> [5,] 5 5 5 5 5 5 5 5 5 5 #> [6,] 6 6 6 6 6 6 6 6 6 6 #> [7,] 7 7 7 7 7 7 7 7 7 7 #> [8,] 8 8 8 8 8 8 8 8 8 8 #> [9,] 9 9 9 9 9 9 9 9 9 9 #> [10,] 10 10 10 10 10 10 10 10 10 10 #> #> $Assignment.matrix #> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] #> [1,] NA 0 0 0 0 0 0 0 0 1 #> [2,] NA NA 0 0 0 0 1 0 0 0 #> [3,] NA NA NA 0 0 1 0 0 0 0 #> [4,] NA NA NA NA 1 0 0 0 0 0 #> [5,] NA NA NA NA NA 0 0 0 0 0 #> [6,] NA NA NA NA NA NA 0 0 0 0 #> [7,] NA NA NA NA NA NA NA 0 0 0 #> [8,] NA NA NA NA NA NA NA NA 1 0 #> [9,] NA NA NA NA NA NA NA NA NA 0 #> [10,] NA NA NA NA NA NA NA NA NA NA #> #> $Equilibrium.groups #> player.A player.B mutual.valuation #> 1 4 5 9 #> 2 3 6 9 #> 3 2 7 9 #> 4 8 9 17 #> 5 1 10 11 #>