Calculate the Kramer-Simpson-like scores. Higher scores are better.

`kramerSimpsonRanking()`

returns the corresponding ranking.

## Usage

```
kramerSimpsonScores(powerRelation, elements = powerRelation$elements)
kramerSimpsonRanking(powerRelation)
```

## Arguments

- powerRelation
A

`PowerRelation`

object created by`PowerRelation()`

or`as.PowerRelation()`

- elements
Vector of elements of which to calculate their scores. By default, the scores of all elements in

`powerRelation$elements`

are considered.

## Value

Score function returns a vector of type `KramerSimpsonScores`

and length of `powerRelation$elements`

(unless parameter `elements`

is specified). Higher scoring elements are ranked higher.

Ranking function returns corresponding `SocialRanking`

object.

## Details

Inspired by the Kramer-Simpson method of social choice theory (Simpson 1969)
(Kramer 1975)
, the *Kramer-Simpson-like*
method compares each element against all other elements using the CP-Majority rule.

For a given element \(i\), calculate the `cpMajorityComparisonScore()`

against all elements \(j\), \(d_{ji}(\succsim)\) (notice that \(i\) and
\(j\) are in reverse order).
\(-\max_{j \in N \setminus \lbrace i \rbrace}(d_{ji}(\succsim))\) then
determines the final score, where higher scoring elements are ranked higher (notice the negative symbol in front of the \(\max\) statement).

The implementation slightly differs from the original definition in Allouche T, Escoffier B, Moretti S, Öztürk M (2020).
“Social Ranking Manipulability for the CP-Majority, Banzhaf and Lexicographic Excellence Solutions.”
In Bessiere C (ed.), *Proceedings of the Twenty-Ninth International Joint Conference on Artificial Intelligence, IJCAI-20*, 17--23.
doi:10.24963/ijcai.2020/3
, Main track.
.
While the ranking solution itself is the same, the scores for this package are intentionally multiplied by -1,
as this significantly improves performance when sorting the elements, as well as making simple comparisons between elements more logical to the user.

## References

Allouche T, Escoffier B, Moretti S, Öztürk M (2020).
“Social Ranking Manipulability for the CP-Majority, Banzhaf and Lexicographic Excellence Solutions.”
In Bessiere C (ed.), *Proceedings of the Twenty-Ninth International Joint Conference on Artificial Intelligence, IJCAI-20*, 17--23.
doi:10.24963/ijcai.2020/3
, Main track.

Simpson PB (1969).
“On defining areas of voter choice: Professor Tullock on stable voting.”
*The Quarterly Journal of Economics*, **83**(3), 478--490.

Kramer GH (1975).
“A dynamical model of political equilibrium.”
*Journal of Economic Theory*, **16**(2), 310--334.

## See also

Other CP-majority based functions:
`copelandScores()`

,
`cpMajorityComparison()`

Other ranking solution functions:
`L1Scores()`

,
`L2Scores()`

,
`LPSScores()`

,
`LPScores()`

,
`copelandScores()`

,
`cumulativeScores()`

,
`lexcelScores()`

,
`ordinalBanzhafScores()`

## Examples

```
# 2 > (1 ~ 3) > 12 > (13 ~ 23) > {} > 123
pr <- as.PowerRelation("2 > (1~3) > 12 > (13~23) > {} > 123")
# get scores for all elements
# cpMajorityComparisonScore(pr, 2, 1, strictly = TRUE)[1] = 1
# cpMajorityComparisonScore(pr, 3, 1, strictly = TRUE)[1] = 0
# therefore the Kramer-Simpson-Score for element
# `1` = -max(0, 1) = -1
#
# Score analogous for the other elements
# `2` = 0
# `3` = -2
kramerSimpsonScores(pr)
#> 1 2 3
#> -1 0 -2
#> attr(,"class")
#> [1] "KramerSimpsonScores"
# get scores for two elements
# `1` = 1
# `3` = 2
kramerSimpsonScores(pr, c(1,3))
#> 1 3
#> -1 -2
#> attr(,"class")
#> [1] "KramerSimpsonScores"
# or single element
# result is still a list
kramerSimpsonScores(pr, 2)
#> 2
#> 0
#> attr(,"class")
#> [1] "KramerSimpsonScores"
# 2 > 1 > 3
kramerSimpsonRanking(pr)
#> 2 > 1 > 3
```