Leyes Electorales Ley D´Hondt 
 
La Ley D'Hondt es el procedimiento que se aplica actualmente en España para decidir a qué candidatura corresponde un escaño. El procedimiento se aplica a cada circunscripcióm de forma independiente, para atribuir los escaños que le corresponden entre las candidaturas que se presentan en ella. En las elecciones al Parlamento de Galicia la ley se aplica sólo a las candidaturas que obtuvieron por los menos un 5% de los votos válidos emitidos en la provincia. Las candidaturas que obtengan un porcentaje menor de votos no se tienen en cuenta. Según esta regla, la cifra de votos de cada candidatura se divide por 1,2,3, etc, hasta un número igual al de escaños que se van a repartir. Los escaños se atribuyen a las candidaturas que obtengan números más altos en estas divisiones, en orden decreciente.
 
EJEMPLO DE LA APLICACIÓN:
En una provincia con ocho escaños y diez candidaturas los escaños quedarían así distribuidos si se emitiesen 526.000 votos de la siguiente forma:
Partido A: 168.000 votos
Partido B: 104.000 votos
Partido C: 72.000 votos
Partido D: 64.000 votos
Partido E: 36.000 votos
Partido F: 31.000 votos
Partido G: 24.000 votos
Partido H: 14.000 votos
Partido I: 8.000 votos
Partido J: 3.000 votos
En blanco: 2.000 votos

El 5% de los votos válidos es 26.300; por lo tanto no se tendrán en cuenta en la distribución de escaños los partidos G, H, I y J. Con los otros seis se aplica la regla, calculando los resultados de dividir su número de votos por 1, 2, 3, 4, 5, 6, 7 y 8. Se obtienen los siguientes coeficientes: 
votos:             1            2         3         4          5          6          7          8
Partido A 168.000 84.000 56.000 42.000 33.600 28.000 24.000 21.000
Partido B 104.000 52.000 34.666 26.000 20.800 17.333 14.857 13.000
Partido C   72.000 36.000 24.000 18.000 14.400 12.000 10.285   9.000
Partido D   64.000 32.000 21.333 16.000 12.800 10.666   9.142   8.000
Partido E   36.000 18.000 12.000    9.000   7.200   6.000  5.143    4.500
Partido F   31.000 15.500 10.333    7.750   6.200   5.166  4.428    3.875
 
El primer escaño le corresponde al partido A, porque la cifra de sus votos dividida por uno es la más alta. El segundo escaño es para el partido B, porque la cifra de sus votos dividida por uno es la más alta después de la anterior. Se seguiría así, eligiendo los siguientes coeficientes más altos, hasta atribuir los ocho escaños.
El reparto final de escaños sería:
Partido A: 4 escaños
Partido B: 2 escaños
Partido C: 1 escaño
Partido D: 1 escaño

Bitácora de isard
 
La candidatura de Mendiluce y la ley d'Hondt Domingo, 25 Mayo 2003

Escribo esto hacia las 21:00 horas del día 25 de mayo de 2003 para que no se pueda confundir con propaganda electoral. :-)

El pasado 22 de mayo, en un acto para pedir el voto para la izquierda en el Ayuntamiento de Madrid el director de cine Mariano Barroso pidió a José María Mendiluce que retirara su candidatura (Verdes) para que sus "20000 o 30000 votos" no favoreciesen a la derecha. Algunos de los presentes apoyaron la propuesta.

Esta solicitud se apoya en la forma en que se distribuyen los concejales (y los diputados) en función del número de votos: la ley d'Hondt. Una vez hecho el recuento, se eliminan las candidaturas que no llegan al 5% de los votos y posteriormente se aplica el algoritmo en cuestión.

Barroso creía que si los verdes se retiraban, sus votantes votarían al PSOE o a IU y se traducirán en concejales; de lo contrario no llegarían al 5% y esos votos "se perderían" para la izquierda.

Para mí, este argumento (sacrifícate para que la izquierda pueda derrotar a la derecha) sólo sería moralmente válido si se comprometiesen a eliminar la ley d'Hondt una vez estuviesen en el poder.

Además, con un poco de matemáticas se puede demostrar que no hay garantías de que esos 20000 o 30000 votos signifiquen cambio alguno en los resultados finales.

La última encuesta publicada en El Mundo se otorgaban los siguientes porcentajes en intención de voto:

Si se cumpliese exactamente y votasen 1696600 personas (en 1995 votaron 1762042) los resultados serían:

Con lo que el PP obtendría 28 de los 55 concejales, el PSOE 23 e IU 4. Si 20000 de los 76500 del resto fuesen a parar al PSOE... no cambiaría nada.

Podéis comprobarlo en esta página de simulación

Claro está que quizá mucha gente se escandalizó como yo y no habrá votado a esos partidos que defendía Barroso (y otros presentes en aquel acto). Quizá aumente la participación y los verdes no "roben" votos a nadie sino a la abstención. Quizá haya pocos exvotantes del PSOE que voten a los verdes y muchos de IU, quizá...

Actualización (26 de mayo de 2003)
Con los datos definitivos constatamos que aunque sumásemos los 26448 votos que obtuvo la candidatura de Los Verdes a la lista del PSOE o a IU (suposiciones muy discutibles), la mayoría absoluta del PP no desaparecería.

Actualización (27 de mayo de 2003)

Existen otros sistemas de repartir los escaños (concejales). Desde el mayoritario (como en el Reino Unido) al estrictamente proporcional (como en Italia desde el fin de la Segunda Guerra Mundial hasta la reforma de 1992).

Sobre los problemas del sistema proporcional la experiencia italiana durante medio siglo es suficientemente clara: la gobernabilidad se resiente mucho.

El sistema mayoritario, en el que se elige un sólo representante por circunscripción, tiene un problema obvio de representatividad. Supongamos que sólo se presentasen dos partidos (A y B); si en todas las circunscripciones ganase el partido A por un solo voto, el partido B no tendría ningún representante pese a haber recibido la mitad de los votos.

La ley d'Hondt intenta situarse en un punto intermedio. Sin embargo, promueve en exceso el bipartidismo impidiendo la aparición y ascenso de las opciones "minoritarias" (hay que pensar que un partido sin representación no suele aparecer en los medios de comunicación y por tanto no puede darse a concocer).

La ley de Sainte-Laguë (o de Webster o de los divisores impares) es igual que la ley d'Hondt pero en vez de dividir el número de votos entre 1, 2, 3... se divide entre 1, 3, 5... Así se favorece algo menos a los partidos más votados.

Con este sistema el pasado domingo el resultado hubiese sido idéntido; sin embargo en el último de los supuestos anteriores, el reparto hubiese sido:


Sistema electoral: Ley de Sainte-Laguë  Viernes, 30 Mayo 2003

Como he visto que si actualizo el artículo original de la bitácora no aparezco en los "N principales"... escribiré un artículo para cada sistema electoral (dentro de una serie que se podría llamar Sistemas electorales). :-)

La ley de Sainte-Laguë (o de Webster o de los divisores impares) es igual que la ley d'Hondt pero, en vez de dividir el número de votos entre 1, 2, 3, etc., se divide entre 1, 3, 5, etc. Así se favorece algo menos a los partidos más votados.

Esto quedará más claro con un par de ejemplos. Tomemos los resultados de las elecciones municipales en Benidorm y Calp

Este "mejor reparto" se produce por el aumento de la distancia entre divisores consecutivos. Si el partido A tiene 10000 votos y el B tiene 4998 y hay 5 escaños para repartir, siguiendo la ley d'Hondt

El partido A obtendrá 2 escaños antes de que el partido B se "estrene". El resultado final será 4 a 1.

En cambio, con los divisores impares:

El partido A obtiene el segundo escaño después de que el partido B obtenga escaño. El resultado final es 3 a 2.

Sistemas electorales: ley de Hill-Huntington  Domingo, 01 Junio 2003

El método de Hill-Huntington es muy curioso: los divisores son 1.41, 2.45, 3.46, 4.47, 5.48... (que corresponden a las raíces cuadradas de 1*2, 2*3, 3*4, 4*5, 5*6...)

Esta regla favorece algo más a los partidos más votado que la d'Hondt porque exige más votos para obtener el primer escaño. Nótese que si el partido A tiene 17400 votos y el partido B tiene 10000, éste obtendrá el primer diputado después de que aquél obtenga el segundo. Con la ley d'Hondt el partido A necesitaría, al menos, 20000.

Vamos a ver cuatro ejemplos. En el primero, todos los métodos coinciden; en los siguientes, el de Hill-Huntington va mostrando su cara más "amarga". :-)

Supongamos que tenemos 15 escaños que distribuir


Sistemas electorales: sistema sueco  Lunes, 02 Junio 2003

En Suecia se usa una versión modificada del método de Sainte-Laguë: el primer divisor es 1.41 y el resto 3, 5, 7... Esto dificulta el acceso al primer escaño pero después reparte "generosamente".

Si tomamos un resultado y variamos el número de escaños, veremos cómo se manifiesta la modificación.

Como vemos, el método sueco oscila entre el d'Hondt y el de Sainte-Laguë "puro" (tendiendo un poco más a éste).

Actualización 3 de junio de 2003

Atendiendo a las peticiones de mis amables lectores, antes de acabar la semana pondré aquí el programa (en python) que uso para calcular los repartos que habéis tenido la paciencia de leer.


Sistemas electorales: ley de Hare  Lunes, 09 Junio 2003

Los métodos de cuota consisten en dividir el número de votos totales entre el número de escaños a repartir (con ligeras variaciones) y asignar un escaño por cada "cuota".

La ley de Hare [enlace en catalán] se usa en Grecia, Malta, Bélgica y Alemania.

Se divide el total de votos (20000) entre el número de escaños (5) y se obtiene la cuota (4000). Cada 4000 votos se recibe un escaño.

Como aún quedan 2 escaños por adjudicar, se dan a los partidos que hayan obtenido el resto más alto en la división (este sistema se conoce como método de los restos mayores):

Se puede comprobar que, en este caso, tanto el método de Sainte-Laguë como el de Sainte-Laguë modificado dan este mismo resultado. Sin embargo, el d'Hondt y el de Hill-Hunting dan 3, 2 y 0.

Sistemas electorales: ley de Droop  Miércoles, 11 Junio 2003

La principal crítica que recibe el método de la cuota de Hare es la fragmentación que provoca en el parlamento (o ayuntamiento o...). Para compensar esto se usan distintas formas de calcular la cuota que da derecho a un escaño.

Una de ellas es la cuota (o ley) de Droop. Para obtener la cuota se divide el número de votos por el número de escaños más uno, y se le suma 1 al resultado.

Se divide el total de votos (20000) entre el número de escaños más uno (5+1), el resultado es 3333; se le suma uno y se obtiene la cuota (3334). Cada 3334 votos se recibe un escaño.

Como aún quedan 2 escaños por adjudicar, se dan a los partidos que hayan obtenido el resto más alto en la división (este sistema se conoce como método de los restos mayores):


Sistemas electorales: Imperiali (reforzado)

Un poco menos "proporcional" que las anteriores son las cuotas Imperiali y la Imperiali reforzada. En la primera se divide el número de votos de cada una de las formaciones políticas entre el número de escaños más dos; en la segunda, el divisor es el número de escaños más tres.

Veamos con un ejemplo las diferencias entre los distintos sistemas de cuota.

Para los métodos de Hare y Droop el reparto es 5, 4, 3, 2, 1; para los métodos Imperiali es 5, 4, 4, 2.

Los tres primeros dan 5, 4, 3, 2, 1 y el método Imperiali reforzado 5, 4, 4, 2.

El método de Hare da 4, 4, 4, 2, 1 y los otros tres 5, 4, 4, 2.

Sistemas electorales: barrera electoral  Domingo, 06 Julio 2003

La barrera electoral es el porcentaje mínimo de votos que un partido ha de obtener para poder optar a un escaño. Por ejemplo, en los ayuntamientos españoles sólo se incluyen en la tabla de la Ley d'Hondt los partidos que superen el 5% de los votos válidos emitidos.

Esto provoca situaciones como la ocurrida en las pasadas elecciones municipales (25 de mayo de 2003) en Benidorm. Los resultados fueron los siguientes:

Si la barrera electoral hubiese sido del 3%, incluso con la Ley d'Hondt, el Bloc-IB habría conseguido un escaño.

Con el sistema sueco (Sainte-Laguë modificado):

En cambio, con la barrera en el 5% sólo los dos partidos mayoritarios consiguen representación.

Lo mismo sucede con la Vila Joiosa, Mislata, Quart de Poblet y otros muchos municipios. Los resultados se encuentran en la página del Ministerio del Interior.

En las elecciones autonómicas, cada comunidad puede exigir un porcentaje mínimo de votos distinto. En el caso de la Comunidad Valenciana la ley electoral es de lo más curioso: la circunscripción electoral es la provincia, sin embargo la barrera electoral se establece en el 5% de todos los votos emitidos de la Comunidad.

Sistemas electorales: la paradoja de Alabama  Miércoles, 25 Junio 2003

Hemos repasado los dos tipos de sistema electoral proporcional: métodos de divisores y métodos de cuota. Ambos presentan ventajas e inconvenientes.

Los sistemas de cuota presentan la llamada paradoja de Alabama [enlace en inglés]. En el siglo XIX en Estados Unidos --que no en América-- se determinaba el número de representantes en el Congreso de acuerdo con el método de Hamilton (dividir la población del estado entre la población total para obtener la cuota y usar después la regla de los restos mayores para repartir los escaños restantes). En 1880 el responsable de la oficina del censo explicó cómo Alabama perdería un representante (sin variar la población) si se aumentaba el tamaño de la cámara de 299 a 300 diputados.

Existen casos anteriores a éste: en 1870 Rhode Island perdió un diputado [enlace a un PDF en francés] con el paso de 270 a 280 representantes. Sin embargo, el uso ha impuesto el término de "paradoja de Alabama".

Veámoslo con un ejemplo. Supongamos unas elecciones con una única circumscripción en la que se usa el sistema de Hare (con el método de los restos mayores para repartir los escaños "sobrantes").


Sistemas electorales: la paradoja de la población  Domingo, 29 Junio 2003

Si la "paradoja de Alabama" fuese el único inconveniente de los sistemas de cuota, no habría muchos motivos para descartarlos porque en la mayoría de los casos el número de escaños no varía durante décadas (en España desde las elecciones generales de 1977).

Pero los sistemas de cuota presentan también la "paradoja de la población": en determinadas circunstancias un partido que obtiene más votos (incluso si sus oponentes pierden votos) puede perder un escaño.

Por ejemplo (tomado de http://www.uam.es/personal_pdi/ciencias/barcelo/si stemas.html) supongamos que tenemos que repartir 6 escaños y que los resultados electorales han sido los siguientes:

La cuota sería 358560/6=59760, por lo tanto el reparto inicial sería:

Aplicando la regla de los restos menores, los dos escaños restantes son para los partidos C y D.

Pero veamos qué pasa si el partido A pierde 1960 votos, el partido B pierde 10000 y el partido D gana 2000.

El resultado debería ser el mismo que en el caso anterior o mejor para D. Veámoslo.

La cuota sería 348600/6=58100, por lo tanto el reparto inicial sería:

Aplicando la regla de los restos menores, los dos escaños restantes son para los partidos C y A.

El partido D pasa del 8,3% de los votos al 9,1% y ¡pierde el escaño que tenía!

Alguno de los pacientísimos lectores se preguntará por qué se llama "paradoja de la población". En EE.UU. en el siglo XIX se usaba este método para asignar el número de escaños del congreso que correspondía a cada estado en función de la población. Por tanto, con este método, un estado puede experimentar un aumento de población, sus vecinos una disminución y, al final, perder aquél representantes en el congreso.

Sistemas electorales: programa.  Domingo, 08 Junio 2003

Hasta aquí hemos visto distintos métodos "de divisor". A propuesta de uno de mis dos o tres lectores (gracias :-)) pongo aquí el programa en python que he usado para los ejemplos.
No tiene nada de particular. Primero pide el número de escaños que hay que repartir, después la barrera electoral (3%, 5%, etc.) y finalmente el número de partidos (máximo 6) y los votos que ha obtenido cada uno de ellos.


El programa devuelve el número de escaños que cada uno de los métodos adjudica a cada partido.
Aquí lo tenéis:


#!/usr/bin/env python
import string, math

def div(n, llista):
        """ Divideix en nombre de vots 'n' entre cadascun dels nombres
de la llista. Torna una llista amb els resultats.
"""
        resultat = []
        for x in llista:
                resultat.append(n/x)
        return resultat

def esmaxim(n, llista):
        """ Torna 0 si la llista conté cap element més gran que 'n'.
En cas contrari torna 1.
"""
        for x in llista:
                if x > n:
                        return 0
        return 1

def genera_llista_HH(ne):
        """ Torna una llista de 'ne' elements. La llista està formada
per sqrt(1*2), sqrt(2*3), sqrt(3*4)...
"""
        resultat = []
        for x in range(ne):
                resultat.append(math.sqrt((x+1)*(x+2)))
        return resultat

def genera_llista_SLM(ne):
        """ Torna una llista de 'ne' elements de la forma
1.41, 3, 5, 7, 9...
"""
        resultat = range(1, 2*ne+1, 2)
        resultat[0] = math.sqrt(2)
        return resultat

def re_divisors(escons, la, lb, lc, ld, le, lf):
        esconsA = 0
        esconsB = 0
        esconsC = 0
        esconsD = 0
        esconsE = 0
        esconsF = 0
       
        for x in range(escons):
                llista = []
                llista.append(la[0])
                llista.append(lb[0])
                llista.append(lc[0])
                llista.append(ld[0])
                llista.append(le[0])
                llista.append(lf[0])
                if esmaxim(la[0], llista):
                        esconsA = esconsA + 1
                        ultim = la.pop(0)
                        ultimPartit = "A"
                elif esmaxim(lb[0], llista):
                        esconsB = esconsB + 1
                        ultim = lb.pop(0)
                        ultimPartit = "B"
                elif esmaxim(lc[0], llista):
                        esconsC = esconsC + 1
                        ultim = lc.pop(0)
                        ultimPartit = "C"
                elif esmaxim(ld[0], llista):
                        esconsD = esconsD + 1
                        ultim = ld.pop(0)
                        ultimPartit = "D"
                elif esmaxim(le[0], llista):
                        esconsE = esconsE + 1
                        ultim = le.pop(0)
                        ultimPartit = "E"
                elif esmaxim(lf[0], llista):
                        esconsF = esconsF + 1
                        ultim = lf.pop(0)
                        ultimPartit = "F"
        return [ultim, ultimPartit, esconsA, esconsB, esconsC, esconsD, esconsE, esconsF]

#-- Programa principal --
nre_vots = [0, 0, 0, 0, 0, 0]
total_vots = 0
escons = string.atoi(raw_input("Quants escons? "))
barrera= string.atoi(raw_input("Quina és la barrera (en %)? "))
nre_partits = string.atoi(raw_input("Quants partits (màx. 6)?" ))

if nre_partits > 6:
        nre_partits = 6
       
for x in range(nre_partits):
        print "Introduïu el nombre de vots del partit número", x+1,
        nre_vots[x] = string.atoi(raw_input(": "))
nre_vots.sort()
nre_vots.reverse()

for v in nre_vots:
        total_vots = total_vots + v

if barrera 100:
        barrera = 0

for x in range(len(nre_vots)):
        if nre_vots[x]

Sistemas electorales: programa II  Martes, 17 Junio 2003

Aquí dejo el programita en python con el que he calculado los ejemplos de los sistemas de cuota.


#!/usr/bin/env python

import string

def posicio_maxim(llista):
        """ Busca el màxim en una llista de nombres naturals i torna la
            posició en la llista."""
        index = 0
        max = -1
        for x in range(len(llista)):
                if llista[x] > max:
                        max = llista[x]
                        index = x
        return index

def escons_quota(quota, escons, llista):
        """Torna una llista amb els escons que corresponen
        d'acord amb el sistema de les restes més grans."""
        atribuits = 0
        resultat = []
        t = []
        for x in llista:
                t.append(x)
        for i in range(len(t)):
                e = int(t[i]/quota)
                if atribuits + e <= escons:
                        resultat.append(e)
                        atribuits = atribuits + e
                        t[i] = t[i]%quota
                else:
                        resultat.append(escons-atribuits)
                        atribuits = escons
                        t[i] = t[i]%quota
               
        while atribuits < escons:
                y = posicio_maxim(t)
                resultat[y] = resultat[y] + 1
                t[y] = 0
                atribuits = atribuits + 1
       
        return resultat

#-- Programa principal --
nre_vots = [0, 0, 0, 0, 0, 0]
total_vots = 0
escons = string.atoi(raw_input("Quants escons? "))
barrera= string.atoi(raw_input("Quina és la barrera (en %)? "))
nre_partits = string.atoi(raw_input("Quants partits (màx. 6)?" ))

if nre_partits > 6:
        nre_partits = 6
       
for x in range(nre_partits):
        print "Introduïu el nombre de vots del partit número", x+1,
        nre_vots[x] = string.atoi(raw_input(": "))
nre_vots.sort()
nre_vots.reverse()

for v in nre_vots:
        total_vots = total_vots + v

if barrera < 0 or barrera > 100:
        barrera = 0

for x in range(len(nre_vots)):
        if nre_vots[x] < (barrera/100.0) * total_vots:
                nre_vots[x] = 0

print "-------------------------"
print "Escons: ", escons
print "Barrera: " + str(barrera) + "%"
print "Vots: ", nre_vots
print "Total: ", total_vots

print "---- Hare ----"
print escons_quota(int(total_vots/escons), escons, nre_vots)

print "--- Droop ---"
print escons_quota(int(total_vots/(escons+1))+1, escons, nre_vots)

print "--- Imperiali ---"
print escons_quota(int(total_vots/(escons+2))+1, escons, nre_vots)

print "--- Imperiali reforzada ---"
print escons_quota(int(total_vots/(escons+3))+1, escons, nre_vots)