Dear citizens of the world,
In a previous post, I delineated a formula for calculating seats in an assembly based on Penrose square root law and multiple factors for measuring how much voting power a constituency aught to have in the assembly. The algorithm was not optimal because it did not create an assembly of a known size. It merely created an assembly of approximately some desired size. I fortunately came up with a simple procedure that creates an assembly of nearly exactly the wanted size, give or take a seat due to rounding errors. The procedure is so simple that it surprises me that I didn’t think of it before coming up with the less optimal algorithm. But, everything is easy with 20-20 hindsight.
Rather than figure out how many of the n’th of the factor (e.g. population) to apply the square root to, we apply the square root to the actual factor itself. We then sum up all the square roots calculated for all the constituencies. We divide the desired size of the assembly by the sum of the square roots. That fraction is then applied to the square root of the factor of each constituency, which results in the weight they should have in the assembly.
All the weights should now add up to the desired size of the assembly. But since we are trying to assign whole seats (1 individual per seat), we need a procedure that guarantees that each constituency gets at least one seat. Simply taking the ceiling of the result will again unpredictably increase the size of the assembly. What we can do to avoid this is reduce the “target size” by the number of constituencies, then add back 1 seat per constituency. Even if rounding off the square root multiplied by our fraction to the closest integer results in a constituency getting 0 seats, they are guaranteed to have at least 1 seat. More succinctly the formula is as follows:
a: size of assembly
n: number of constituencies
p…p[n]: some factor for constituency 1,2...n
f[n]: allotment for constituency n
c = a – n
s = SUM( SQRT(p) …SQRT(p[n] )
d = c / s
f[n] = ( SQRT(p[n]) * d ) + 1
If we want to use several factors:
x: number of factors
c = (a – n ) / x
I have suggested using population and GDP as factors and creating an assembly of 800 seats. For this we get the following formula for calculating seat allotments:
p…p[n]: population for constituency 1,2...n
e…e[n]: GDP for constituency 1,2...n
c = 400 – n/2
s = SUM( SQRT(p) …SQRT(p[n] )
t = SUM( SQRT(e) …SQRT(e[n] )
d = c / s
g = c / t
f[n] = ( SQRT(p[n]) * d ) + ( SQRT(e[n]) * g) + 1
Using this algorithm will prevent the total size of the assembly from unpredictably vacillating in size as the constituencies change sizes. Of course, growth of one constituency will like in any assembly remove seats from another. However, since we use the square root formula, the effect of linear growth diminishes the larger the constituency gets. Only explosive growth in small constituencies should drastically change the composition of the assembly. Here Europe comes to mind.
Whether the EU is considered a single constituency or many constituencies does substantially alter the total number of seats Europe has. What is required is a somewhat objective means to define a constituency. I don’t know if so called gerrymandering can be entirely eliminated. Using a procedure that takes into account the Penrose square root law certainly introduces an incentive for decentralization (since a large constituency gets more seats by simply splitting up). But more seats is not necessarily better. Having more representatives makes it harder to enforce unanimity in voting patterns. Splitting up a constituency will have real effects of domestic cohesion. Imagine if New York and California had their own seats in the U.N. How often would they vote along with Texas, Alabama or Alaska? Even if a large constituency has less seats than if it was split up, being one single constituency has its definite merits.