Перевод с английского. Оригинал — на сайте Фонда пропорционального представительства (Proportional Representation Foundation):
-
Инициализация
-
Установить квоту (число голосов, необходимых для избрания) равной 0.0001 плюс число действительных бюллетеней, деленных на число распределяемых мандатов, увеличенное на единицу.
-
Присвоить кандидатам, которые не взяли самоотвод, статус «имеющий шансы».
-
Проверить на окончание подсчета (4.3.).
-
Присвоить каждому бюллетеню вес, равный 1, и передать его имеющему шансы кандидату, занимающему в бюллетене наивысшее место.
-
Присвоить каждому кандидату число голосов, равное числу всех переданных ему бюллетеней.
-
-
Раунд подсчёта
-
Избрание победителей. Присвоить каждому имеющему шансы кандидату, число голосов которого больше квоты, статус «ожидающий» (избранный и ожидающий передачи излишка). Присвоить каждому такому кандидату излишек, равный числу голосов этого кандидата минус квота. Проверить на окончание подсчета (4.3.).
-
Исключение гарантированно проигравших (необязательный этап). Найти наибольший набор имеющих шансы кандидатов, который удовлетворяет всем следующим условиям:
-
Число имеющих шансы кандидатов, которые не входят в набор, больше или равно числу распределяемых мандатов минус число ожидающих и избранных кандидатов.
-
Все имеющие шансы кандидаты с равным или меньшим, чем у любого входящего в набор кандидата, числом голосов, также входят в набор.
-
Сумма голосов кандидатов в наборе плюс сумма всех текущих излишков (см. 2.1) меньше, чем наименьшее число голосов среди имеющих шансы кандидатов, которые не входят в набор.
Если получившийся набор не пуст, присвоить каждому кандидату в наборе статус «проигравший» и проверить завершение подсчета (4.3.), передать каждый бюллетень, присвоенный проигравшим кандидатам и перейти к шагу 2.1.
-
-
Передача наибольшего излишка. Выбрать ожидающего кандидата, если есть, с наибольшим (возможно, нулевым) излишком; в случае равенства нескольких кандидатов воспользоваться процедурой 4.1. Присвоить каждому бюллетеню, переданному такому кандидату, вес, равный текущему весу бюллетеня, умноженному на излишек кандидата (2.1) и делённому на полное число голосов за кандидата. Передать все такие бюллетени (4.2). Если излишек (возможно, нулевой) передан, перейти к шагу 2.1.
-
Исключение последнего кандидата. Присвоить статус «исключён» имеющему шансы кандидату с наименьшим числом голосов; в случае равенства нескольких кандидатов воспользоваться процедурой 4.1. Проверить на завершение подсчёта (4.3). Передать все бюллетени, присвоенные исключенному кандидату (4.2). Перейти к шагу 2.1.
-
-
Завершение подсчёта
Присвоить всем ожидающим кандидатам статус избранных. Если все мандаты распределены, исключить оставшихся имеющих шансы кандидатов; в противном случае — избрать их. Подсчёт завершён.
-
Общие процедуры
-
Действия в случае равенства голосов. Эта ситуация может возникнуть в 2.3 (при выборе кандидата для передачи излишка) или в 2.4 (выборе кандидата для исключения). Для разрешения этой ситуации заранее случайным образом составляется упорядоченный список всех кандидатов. Выбирают для передачи излишка или исключения того кандидата, который находится раньше в списке.
-
Передача бюллетеней. Присвоить каждый требующий передачи бюллетень имеющему шансы кандидату, который занимает наивысшее место в этом бюллетене, и прибавить текущий вес бюллетеня к числу голосов за этого кандидата. Если в бюллетене не осталось таких кандидатов, или вес бюллетеня равен нулю, бюллетень считается исчерпанным и в дальнейшем подсчёте не участвует.
-
Проверка на окончание подсчёта. Если число избранных и ожидающих кандидатов равно числу распределяемых мест, или число избранных, ожидающих и имеющих шансы кандидатов меньше или равно числа распределяемых мест, подсчёт завершён. Перейти к шагу 3.
-
Арифметика. Результаты умножения и деления обрезаются без округления до четырёх знаков после запятой.
-
Примечания
Это минималистские правила ВИМГ. Единственное усложнение, которое здесь допущено — необязательное исключение заведомо проигравших. Включение этого шага можно оправдать тем, что оно ускоряет подсчет, так как уменьшает число передач голосов (в частности, избегает передачи голосов кандидатам, которые неизбежно будут исключены).
Исключение заведомо проигравших необязательно в том смысле, что правила могут использоваться без этого шага. Однако, если они используются с этим шагом, он должен быть обязательным, поскольку результат с ним может отличаться от результата без него, поскольку он изменяет порядок, в котором передаются голоса.