Need feedback about this Multi-Winner system

Ballot uses range.
N is the number of winners.
For each subset of N candidates, the following processes apply:

  • for each vote, the ratings of the N candidates considered are sorted from best in first position, to worst in last position (after having sorted them, it’s possible to maximize the weight of the vote by normalizing the ratings, but I don’t think it makes sense in this context).
  • for each position, the sorted ratings are added, obtaining at the end a list of sums Si.
  • divide each Si by the position Pi, which starts from 1 (variants of this method can be obtained by multiplying or dividing Si for other values).
  • Si are added to obtain a single R value associated with the subset of candidates considered.

The subset of candidates with the highest R, contains the N winners.

Example to calculate R

  • 5 votes with range [0,5]:
    A[5] B[4] C[2] D[1] E[0]
    A[4] B[5] C[0] D[3] E[2]
    A[0] B[3] C[4] D[5] E[0]
    A[1] B[0] C[2] D[4] E[5]
    A[2] B[2] C[5] D[0] E[3]

  • Subset {B,C,D}. Ratings sorted for each vote (without normalization):
    4 | 2 | 1
    5 | 3 | 0
    5 | 4 | 3
    4 | 2 | 0
    5 | 2 | 0

  • Get sums Si for each position Pi:
    [ 23 | 13 | 4 ]

  • Si divided by Pi:
    [ 23/1 | 13/2 | 4/3 ] = [ 23 | 6.5 | 1.33 ]

  • Sum the Si to get R:
    R = 30.83

If there is already a similar method, tell me in the comments.
This method is currently quite a category of methods with many variations. I have yet to figure out which variant is the best.
Currently, I would say that “the best variant” (the default definition) is:
no normalization of votes, Si divided by position, range [0,3].

Unless I am mistaken the calculation is dependent on the number of candidates running. This ruin close immunity and other things like that.

What do you mean by “dependent on the number of candidates running”?

Nope, this method is identical to Thiele.

I think the procedure @Essenzia is trying to describe is:

Given a subset of candidates S, |S|=number of winners:

  • For each voter, you sort the scores from largest to smallest.
  • You calculate S_i by adding each voter’s ith largest score given to a candidate in S. (i=1, 2,…,number of winners)
  • R, or more precisely R(S), is the sum from 1 to (number of winners) of S_i / i

Elect the set that maximizes R.

So the Thiele method is
Quality(Winner set) = ∑voters v ∑1≤j≤W (jth greatest score among winners on voter v’s ballot) / j

I think that’s equivalent to what you proposed.

A major criticism of the Thiele method is that in situations such as
(2 H.Q.) ABCG
6 winners
ABCDEF wins. Generally ABCDEG is seen as superior.
On the other hand, methods that fulfill this “Universally Liked Candidates PR” requirement tend to have a difficult time guaranteeing that the addition of ballots that score all candidates identically will not affect the final result. (Independence of Irrelevant Ballots). It’s clear that these requirements are not mutually incompatible but most of the methods that satisfy both requirements tend to sacrifice some other desirable property, such as monotonicity or IIA.

I was undecided whether to multiply by “1/i” or “1/(2^i)” (with i = position start from 0 for the exp).
If “1/i” has already been used by Thiele, then I use “1/(2^i)”.

Another problem is that if the range is [0,MAX] then all 0-rated candidates will not be considered in the calculation of Si (ie, 0/… = 0).
Therefore range [-MAX, MAX] must be used.

An approval voting like this:
A[X] B[X] C[X] D[-] E[-]
must be treated like this:
A[1] B[1] C[1] D[-1] E[-1]
and not like this:
A[1] B[1] C[1] D[0] E[0]

That is not proportional, however. In the party list case:
5A, 3B (8 winners)
S={4As, 4Bs} scores 5+5/2+5/4+5/8 + 3+3/2+3/4+3/8 = 15
S={5As, 3Bs} scores 5+5/2+5/4+5/8+5/16 + 3+3/2+3/4 =14 15/16

S{4As, 4Bs} = 5 + 5/2 + 5/4 + 5/8 + 3/16 + 3/32 + 3/64 + 3/128 = 9,7265
S{5As, 3Bs} = 5 + 5/2 + 5/4 + 5/8 + 5/16 + 3/32 + 3/64 + 3/128 = 9,8515
{5As, 3Bs} win.

You, in value 3, restart the exponential from 2^0.

No, the party vote being 5A 3B means that the votes were:
5 voters: A[1] B[0]
3 voters: A[0] B[1]
(but A and B each represent a group of candidates.)
So a party A ballot’s sorted ratings for {5A, 3B} would be 1,1,1,1,1,0,0,0
And for a party B ballot it would be 1,1,1,0,0,0,0,0

For {4A, 4B} the sorted ratings for every ballot would be 1,1,1,1,0,0,0,0

If I add the sorted ratings together for S={5A,3B}, I get 8,8,8,5,5,0,0,0
8+8/2+8/4+5/8+5/16=14 15/16

If I add the sorted ratings together for S={4A,4B}, I get 8,8,8,8,0,0,0,0

Sorry, b̶o̶t̶h̶ for my mistake a̶n̶d̶ ̶b̶e̶c̶a̶u̶s̶e̶,̶ ̶a̶f̶t̶e̶r̶ ̶n̶o̶t̶i̶c̶i̶n̶g̶ ̶t̶h̶e̶ ̶f̶o̶l̶l̶o̶w̶i̶n̶g̶ ̶p̶r̶o̶b̶l̶e̶m̶,̶ ̶I̶ ̶d̶i̶d̶n̶’̶t̶ ̶d̶o̶ ̶t̶h̶e̶ ̶m̶a̶t̶h̶s̶ ̶(̶I̶’̶m̶ ̶a̶ ̶l̶i̶t̶t̶l̶e̶ ̶b̶u̶s̶y̶ ̶n̶o̶w̶)̶:̶
in a previous comment I said that the range must be [-MAX,MAX] and not [0,MAX], because otherwise “0 / …” is always “= 0”, and disapproval candidates aren’t considered.
If you want to use AV then you need a range [-1,1] instead of [0,1].

EDIT: I checked and with [-1,1] it returns the correct result in your example.