galeShapley.validate function

Input validation of preferences

Input validation of preferences

This function parses and validates the arguments that are passed on to the Gale-Shapley Algorithm. In particular, it checks if user-defined preference orders are complete and returns an error otherwise. If user-defined orderings are given in terms of R indices (starting at 1), then these are transformed into C++ indices (starting at zero).

galeShapley.validate( proposerUtils = NULL, reviewerUtils = NULL, proposerPref = NULL, reviewerPref = NULL )

Arguments

  • proposerUtils: is a matrix with cardinal utilities of the proposing side of the market. If there are n proposers and m reviewers, then this matrix will be of dimension m by n. The i,jth element refers to the payoff that proposer j receives from being matched to reviewer i.
  • reviewerUtils: is a matrix with cardinal utilities of the courted side of the market. If there are n proposers and m reviewers, then this matrix will be of dimension n by m. The i,jth element refers to the payoff that reviewer j receives from being matched to proposer i.
  • proposerPref: is a matrix with the preference order of the proposing side of the market (only required when proposerUtils is not provided). If there are n proposers and m reviewers in the market, then this matrix will be of dimension m by n. The i,jth element refers to proposer j's ith most favorite reviewer. Preference orders can either be specified using R-indexing (starting at 1) or C++ indexing (starting at 0).
  • reviewerPref: is a matrix with the preference order of the courted side of the market (only required when reviewerUtils is not provided). If there are n proposers and m reviewers in the market, then this matrix will be of dimension n by m. The i,jth element refers to reviewer j's ith most favorite proposer. Preference orders can either be specified using R-indexing (starting at 1) or C++ indexing (starting at 0).

Returns

a list containing proposerUtils, reviewerUtils, proposerPref (reviewerPref are not required after they are translated into reviewerUtils).

Examples

# market size nmen <- 5 nwomen <- 4 # generate cardinal utilities uM <- matrix(runif(nmen * nwomen), nrow = nwomen, ncol = nmen) uW <- matrix(runif(nwomen * nmen), nrow = nmen, ncol = nwomen) # turn cardinal utilities into ordinal preferences prefM <- sortIndex(uM) prefW <- sortIndex(uW) # validate cardinal preferences preferences <- galeShapley.validate(uM, uW) preferences # validate ordinal preferences preferences <- galeShapley.validate(proposerPref = prefM, reviewerPref = prefW) preferences # validate ordinal preferences when these are in R style indexing # (instead of C++ style indexing) preferences <- galeShapley.validate(proposerPref = prefM + 1, reviewerPref = prefW + 1) preferences # validate preferences when proposer-side is cardinal and reviewer-side is ordinal preferences <- galeShapley.validate(proposerUtils = uM, reviewerPref = prefW) preferences
  • Maintainer: Jan Tilly
  • License: GPL (>= 2)
  • Last published: 2021-05-25