"Czy można uszczęśliwić wszystkich? (o wyborach i algorytmice)"
Prezentacja wygłoszona podczas 10. edycji Studenckiego Festiwalu Informatycznego przez dr. inż. Piotra Faliszewskiego. Podczas wykładu został poruszony problem dotyczący tego co definiuje najlepszy system wyborczy oraz jak stworzyć taki system.
Nagranie na portalu YouTube: https://www.youtube.com/watch?v=uT4YiyUrpP8
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Piotr Faliszewski @ SFI
1. Czy można uszczęśliwić wszystkich?
(o wyborach i algorytmice)
Piotr Faliszewski
Akademia Górniczo-Hutnicza
im. Stanisława Staszica
Kraków
faliszew@agh.edu.pl
Oparte na wspólnych pracach z Edith Elkind (University of Oxford), Jeromem Lang (Universite Paris Dauphine),
Piotrem Skowronem (Uniwersytet Warszawski), Arkadiim Slinko (University of Auckland), Lan Yu (Google Inc.)
2. Wybory parlamentarne….
Wszyscy ci ludzie chcą u
nas pracować, ale nie
przeczytamy dokładnie
wszystkich CV…
W systemie
rozrywkowym samolotu
mieści się tylko 40
filmów… które wybrać?
i nie tylko
6. Jak wybierać parlament?
Okręgi jednomandatowe
100 / 0
49 / 51
100 / 0
25% poparcia wystarcza
do zdobycia większości
parlamentarnej
7. Jak wybierać parlament?
Okręgi jednomandatowe
Listy partyjne
25% poparcia wystarcza
do zdobycia większości
parlamentarnej
Żeby tylko być na
wysokiej pozycji na
liście…
8. C = { , , , , }
V = (v1, … , v6)
Matematyczny model wyborów
• Elekcja to para E = (C, V)
– C – zbiór kandydatów
– V – zbiór wyborców
• Dodatkowy parametr k
– k – rozmiar parlamentu
• … oraz system
wyborczy…
V1:
V5:
V2:
V3:
V6:
V4:
9. C = { , , , , }
V = (v1, … , v6)
• Elekcja to para E = (C, V)
– C – zbiór kandydatów
– V – zbiór wyborców
• Dodatkowy parametr k
– k – rozmiar parlamentu
• … oraz system
wyborczy…
V1:
V5:
V2:
V3:
V6:
V4:
1 0 0 0 0
SNTV
Matematyczny model wyborów
10. C = { , , , , }
V = (v1, … , v6)
• Elekcja to para E = (C, V)
– C – zbiór kandydatów
– V – zbiór wyborców
• Dodatkowy parametr k
– k – rozmiar parlamentu
• … oraz system
wyborczy…
V1:
V5:
V2:
V3:
V6:
V4:
1 1 0 0 0
Bloc
Matematyczny model wyborów
11. C = { , , , , }
V = (v1, … , v6)
• Elekcja to para E = (C, V)
– C – zbiór kandydatów
– V – zbiór wyborców
• Dodatkowy parametr k
– k – rozmiar parlamentu
• … oraz system
wyborczy…
V1:
V5:
V2:
V3:
V6:
V4:
4 3 2 1 0
k-Borda
Matematyczny model wyborów
12. C = { , , , , }
V = (v1, … , v6)
• Elekcja to para E = (C, V)
– C – zbiór kandydatów
– V – zbiór wyborców
• Dodatkowy parametr k
– k – rozmiar parlamentu
• … oraz system
wyborczy…
V1:
V5:
V2:
V3:
V6:
V4:
STV
Matematyczny model wyborów
17. Monroe oraz Chambelrin—Courant
Wybór parlamentu to problem alokacji zasobów!
V1:
V5:
V2:
V3:
V6:
V4:
Kandydaci = Zasoby
System wyborczy
przypisuje kandydatów
do wyborców
18. V1:
V5:
V2:
V3:
V6:
V4:
Wybór parlamentu to problem alokacji zasobów!
Monroe oraz Chambelrin—Courant
Chamberlin-Courant
Należy wybrać k
kandydatów i przypisać ich
do wyborców tak, by
wyborcy byli maksymalnie
zadowoleni
19. Chamberlin-Courant
Należy wybrać k
kandydatów i przypisać ich
do wyborców tak, by
wyborcy byli maksymalnie
zadowoleni
V1:
V5:
V2:
V3:
V6:
V4:
Wybór parlamentu to problem alokacji zasobów!
Monroe oraz Chambelrin—Courant
4 3 2 1 0
20. V1:
V5:
V2:
V3:
V6:
V4:
4 3 2 1 0
Monroe
Podobnie, ale każdy
parlamentarzysta reprezentuje
tak samo liczną grupę
wyborców
Wybór parlamentu to problem alokacji zasobów!
Monroe oraz Chambelrin—Courant
21. Co to znaczy, że problem jest NP-trudny?
P – obliczanie rozwiązań
w czasie wielomianowym
NP – weryfikacja
rozwiązań w czasie
wielomianowym
1
2
3
4
5
6
eXact 3-set Cover (X3C)
22. Co to znaczy, że problem jest NP-trudny?
P – obliczanie rozwiązań
w czasie wielomianowym
NP – weryfikacja
rozwiązań w czasie
wielomianowym
1
2
3
4
5
6
eXact 3-set Cover (X3C)
23. Co to znaczy, że problem jest NP-trudny?
P – obliczanie rozwiązań
w czasie wielomianowym
NP – weryfikacja
rozwiązań w czasie
wielomianowym
1
2
3
4
5
6
eXact 3-set Cover (X3C)
24. Co to znaczy, że problem jest NP-trudny?
P – obliczanie rozwiązań
w czasie wielomianowym
NP – weryfikacja
rozwiązań w czasie
wielomianowym
eXact 3-set Cover (X3C)
1
2
3
4
5
6
Redukcja pomiędzy problemami
• A, B – dwa problemy decyzyjne
• A redukuje się do B jeśli istnieje
obliczalna w czasie wielomianowym
funkcja f taka, że:
x in A f(x) in B
25. Co to znaczy, że problem jest NP-trudny?
eXact 3-set Cover (X3C)
1
2
3
4
5
6
Redukcja pomiędzy problemami
• A, B – dwa problemy decyzyjne
• A redukuje się do B jeśli istnieje
obliczalna w czasie wielomianowym
funkcja f taka, że:
x in A f(x) in B
• Problem jest NP-zupełny, jeśli
redukuje się do niego każdy
język z NP
A B
f
f
26. Co to znaczy, że problem jest NP-trudny?
eXact 3-set Cover (X3C)
1
2
3
4
5
6
v1:
v2:
v3:
v4:
v5:
v6:
k = 2 (ilość elementów / 3)
Monroe Winner (Approval)
27. Co to znaczy, że problem jest NP-trudny?
eXact 3-set Cover (X3C)
1
2
3
4
5
6
v1:
v2:
v3:
v4:
v5:
v6:
k = 2 (ilość elementów / 3)
Monroe Winner (Approval)
30. Zachłanny Monroe
Wejście:
E = (C,V) — elekcja
k — rozmiar parlamentu
Algorytm:
S
for i = 1 to k do:
for each c in C – S:
V(c) n/k wyborców oceniających c najwyżej
score(c) punkty c w V(c)
c* argmaxcC (score(c))
S S {c*}
V V – V(c*)
C C – {c*}
assign c* to voters from V(c*)
return the computed assignment
V1:
V5:
V2:
V3:
V6:
V4:
4 3 2 1 0
: 10
31. V1:
V5:
V2:
V3:
V6:
V4:
4 3 2 1 0
: 10 : 9
Zachłanny Monroe
Wejście:
E = (C,V) — elekcja
k — rozmiar parlamentu
Algorytm:
S
for i = 1 to k do:
for each c in C – S:
V(c) n/k wyborców oceniających c najwyżej
score(c) punkty c w V(c)
c* argmaxcC (score(c))
S S {c*}
V V – V(c*)
C C – {c*}
assign c* to voters from V(c*)
return the computed assignment
32. V1:
V5:
V2:
V3:
V6:
V4:
4 3 2 1 0
: 10 : 9 : 9
Zachłanny Monroe
Wejście:
E = (C,V) — elekcja
k — rozmiar parlamentu
Algorytm:
S
for i = 1 to k do:
for each c in C – S:
V(c) n/k wyborców oceniających c najwyżej
score(c) punkty c w V(c)
c* argmaxcC (score(c))
S S {c*}
V V – V(c*)
C C – {c*}
assign c* to voters from V(c*)
return the computed assignment
33. V1:
V5:
V2:
V3:
V6:
V4:
4 3 2 1 0
: 10 : 9 : 9 : 10
Zachłanny Monroe
Wejście:
E = (C,V) — elekcja
k — rozmiar parlamentu
Algorytm:
S
for i = 1 to k do:
for each c in C – S:
V(c) n/k wyborców oceniających c najwyżej
score(c) punkty c w V(c)
c* argmaxcC (score(c))
S S {c*}
V V – V(c*)
C C – {c*}
assign c* to voters from V(c*)
return the computed assignment
34. V1:
V5:
V2:
V3:
V6:
V4:
4 3 2 1 0
: 10 : 9 : 9 : 10 : 7
Zachłanny Monroe
Wejście:
E = (C,V) — elekcja
k — rozmiar parlamentu
Algorytm:
S
for i = 1 to k do:
for each c in C – S:
V(c) n/k wyborców oceniających c najwyżej
score(c) punkty c w V(c)
c* argmaxcC (score(c))
S S {c*}
V V – V(c*)
C C – {c*}
assign c* to voters from V(c*)
return the computed assignment
35. Wejście:
E = (C,V) — elekcja
k — rozmiar parlamentu
Algorytm:
S
for i = 1 to k do:
for each c in C – S:
V(c) n/k wyborców oceniających c najwyżej
score(c) punkty c w V(c)
c* argmaxcC (score(c))
S S {c*}
V V – V(c*)
C C – {c*}
przypisz c* wyborcom z V(c*)
return obliczone przypisanie
V1:
V5:
V2:
V3:
V6:
V4:
4 3 2 1 0
: 10 : 9 : 9 : 10 : 7
Zachłanny Monroe
36. Jak skuteczna jest metoda zachłanna?
Rozważmy sytuację zaraz po i-tej iteracji
v1:
vj:
vn:
in/k wyborców
z przypisanymi
kandydatami
i potencjalnie
niedostępnych
pozycji
(m-i)/(k-i)
pozycji
Na mocy zasady
szufladkowej, istnieje co
najmniej n/k wyborców,
którzy umieszczają tego
samego kandydata w
zielonym obszarze
37. Jak dobry wynik osiągnęliśmy?
• Wybory parlamentarne w Polsce:
– k = 460, m = 6000
– Osiągamy 96% maksymalnej możliwej satysfakcji
wyborców
– Średnio każdego wyborcę reprezentuje ktoś, kogo ten
wyborca woli od 96% innych kandydatów
• Coś nie tak?
– … każdy wyborca musi dostarczyć ranking 6000
kandydatów…
42. Na zakończenie…
• Wybory (parlamentarne i nie tylko) to fascynujący i
aktualny temat badań!
• Wiele ciekawych reguł wyborów
– STV
– Zachłanny Monroe
– aproksymacja Chamberlin—Courant’a
• Dalsze kierunki badań
– Aksjomatyczne własności systemów wyborów parlamentarnych
– Kompromis pomiędzy ekspresywnością systemu i jego
złożonością obliczeniową
– Dalsze zastosowania wyborów…