lexcelScores {socialranking} | R Documentation |
Lexicographical Excellence
Description
Calculate the Lexicographical Excellence (or Lexcel) score.
lexcelRanking()
returns the corresponding ranking.
dualLexcelRanking()
uses the same score vectors but instead of rewarding
participation, it punishes mediocrity.
Usage
lexcelScores(powerRelation, elements = powerRelation$elements)
lexcelRanking(powerRelation)
dualLexcelRanking(powerRelation)
Arguments
powerRelation |
A |
elements |
Vector of elements of which to calculate their scores.
By default, the scores of all elements in |
Details
An equivalence class \sum_i
contains coalitions that are indifferent to one another.
In a given power relation created with PowerRelation()
or as.PowerRelation()
, the equivalence classes are saved in $eqs
.
As an example, consider the power relation
\succsim: 123 \succ (12 \sim 13 \sim 1 \sim \emptyset) \succ (23 \sim 1 \sim 2)
.
The corresponding equivalence classes are:
\sum_1 = \lbrace 123 \rbrace, \sum_2 = \lbrace 12, 13, 1, \emptyset \rbrace, \sum_3 = \lbrace 23, 1, 2 \rbrace.
The lexcel score of an element is a vector wherein each index indicates the number of times that element appears in the equivalence class. From our example, we would get
\textrm{lexcel}(1) = [ 1, 3, 1 ], \textrm{lexcel}(2) = [ 1, 1, 2 ], \textrm{lexcel}(3) = [ 1, 1, 1 ].
Value
Score function returns a list of type LexcelScores
and length of powerRelation$elements
(unless parameter elements
is specified).
Each index contains a vector of length powerRelation$eqs
, the number of
times the given element appears in each equivalence class.
Ranking function returns corresponding SocialRanking
object.
Lexcel Ranking
The most "excellent contribution" of an element determines its ranking against the other elements.
Given two Lexcel score vectors \textrm{Score}(i)
and \textrm{Score}(j)
, the first index x
where
\textrm{Score}(i)_x \neq \textrm{Score}(j)_x
determines which element should be ranked higher.
From the previous example this would be 1 > 2 > 3
, because:
\textrm{Score}(1)_2 = 3 > \textrm{Score}(2)_2 = \textrm{Score}(3)_2 = 1
,
\textrm{Score}(2)_3 = 2 > \textrm{Score}(3)_3 = 1
.
Dual Lexcel Ranking
The dual lexcel works in reverse order and, instead of rewarding high
scores, punishes mediocrity. In that case we get 3 > 1 > 2
because:
\textrm{Score}(3)_3 < \textrm{Score}(2)_3
and
\textrm{Score}(3)_2 < \textrm{Score}(1)_2
,
\textrm{Score}(1)_3 < \textrm{Score}(2)_3
.
References
Bernardi G, Lucchetti R, Moretti S (2019). “Ranking objects from a preference relation over their subsets.” Social Choice and Welfare, 52(4), 589–606.
Algaba E, Moretti S, Rémila E, Solal P (2021). “Lexicographic solutions for coalitional rankings.” Social Choice and Welfare, 57(4), 1–33.
Serramia M, López-Sánchez M, Moretti S, Rodríguez-Aguilar JA (2021). “On the dominant set selection problem and its application to value alignment.” Autonomous Agents and Multi-Agent Systems, 35(2), 1–38.
See Also
Other ranking solution functions:
L1Scores()
,
L2Scores()
,
LPSScores()
,
LPScores()
,
copelandScores()
,
cumulativeScores()
,
kramerSimpsonScores()
,
ordinalBanzhafScores()
Examples
# note that the coalition {1} appears twice
# 123 > 12 ~ 13 ~ 1 ~ {} > 23 ~ 1 ~ 2
# E = {123} > {12, 13, 1, {}} > {23, 1, 2}
pr <- suppressWarnings(as.PowerRelation(
"123 > (12 ~ 13 ~ 1 ~ {}) > (23 ~ 1 ~ 2)"
))
# lexcel scores for all elements
# `1` = c(1, 3, 1)
# `2` = c(1, 1, 2)
# `3` = c(1, 1, 1)
lexcelScores(pr)
# lexcel scores for a subset of all elements
lexcelScores(pr, c(1, 3))
lexcelScores(pr, 2)
# 1 > 2 > 3
lexcelRanking(pr)
# 3 > 1 > 2
dualLexcelRanking(pr)