OBLICZENIA EWOLUCYJNE wykład 4

Transkrypt

OBLICZENIA EWOLUCYJNE wykład 4
www.kwmimkm.polsl.pl
⎣
OBLICZENIA
EWOLUCYJNE
FITNESS F.
COMPUTATION
chromosome
wykład 4
FITNESS F.
COMPUTATION
Ograniczenia:
EVOLUTIONARY OPERATORS
fitness f. value
xk +1 = xk + u, k
MIGRATION PHASE
communication
with other
subpopulations
TERMINATION
CONDITION
gdzie:
NO
END
1
www.kwmimkm.polsl.pl
Chromosom ≡ wektor sterowania u
x0 – stan początkowy;
xk ∈ R – stan;
u ∈ RN – poszukiwany wektor sterowania.
Wersja binarna:
binarna:
2
www.kwmimkm.polsl.pl
• Każdy element wektora chromosomu zakodowano
za pomocą tej samej liczby bitów;
Dziedzina:
Dziedzina: 〈-200, 200〉
200〉 dla każ
każdego ui.
Optimum:
k = 0, 1,..., N -1
SELECTION
YES
Przyję
Przyjęto:
to: x0=100, N=45
⎦
(charakteryzującej np. wydajność produkcji albo zużycie paliwa)
INITIAL
SUBPOPULATION
SENDING CHROM. TO
COMPUTERS
AND RECEIVING FITNESS F.
VALUE
=0
STEROWANIE OPTYMALNE - sterowanie automatyczne,
w którym następuje ukształtowanie przebiegu sygnału sterującego
powodujące maksymalizację lub minimalizację wartości funkcji celu.
celu.
START
FITNESS F.
COMPUTATION
www.kwmimkm.polsl.pl
Test:
Test: poró
porównanie
wnanie wydajnoś
wydajności
kodowania binarnego i zmiennopozycyjnego.
zmiennopozycyjnego.
Zadanie sterowania:
sterowania:
N −1
⎡
⎤
J = min ⎢ x N2 + ∑ ( xk2 + u k2 ) ⎥
k
(u = 〈u0, ..., u44〉).
• Każdy chromosom jest wektorem składającym się
z N słów;
J * = K 0 h02
Nie pozwala na zwiększenie dokładności bez zwiękzwiększenia liczby bitów;
Przy wzroście rozmiarów dziedziny dokładność
maleje przy konieczności zachowania stałej liczby
bitów.
tu:
tu: J* = 16180.4
3
Wersja zmiennopozycyjna:
zmiennopozycyjna:
www.kwmimkm.polsl.pl
4
Porównywalność algorytmów:
algorytmów:
www.kwmimkm.polsl.pl
• Stała liczebność populacji (60
(60 osobników)
• Każdy chromosom to wektor liczb zmiennopozycyjzmiennopozycyjnych o długości zgodnej z wektorem rozwiązania;
• Stała liczba pokoleń (20
(20 000)
000)
• W reprezentacji binarnej użyto 30 bitów do zakodozakodo-wania
jednej zmiennej, co daje:
30*45=1350
45=1350 bitów w chromosomie.
• Operatory określono tak, by każdy element
chromosomu mieścił się w wymaganym zakresie.
• Mimo użycia różnych operatorów (co wynika ze sposobu
☺ Pozwala uwzględnić bardzo duże dziedziny jak
również przypadki o nieznanych dziedzinach;
kodowania zadania i może powodować różnice w interpretacji)
parametry programu dobrano tak, by wyniki mogły zostać
uczciwie porównane.
☺ Łatwiej jest zaprojektować specjalistyczne narzędzia
ułatwiające postępowanie w przypadku nietrywialnych
ograniczeń.
(np. w przypadku reprezentacji binarnej użyto klasycznych
operatorów, jednak zezwolono na krzyżowanie tylko pomiędzy
elementami).
5
6
1
Wyniki:
L. elementów
(N )
5
15
25
35
45
www.kwmimkm.polsl.pl
Czas CPU [s]
zmiennopoz.
binarnie
184
1080
398
3123
611
5137
823
7177
1072
9221
Czas [s]
10000
• Reprezentacja zmiennopozycyjna jest szybsza.
szybsza.
• Reprezentacja zmiennopozycyjna jest stabilniejsza (daje
bardziej zbliżone wyniki w różnych przebiegach).
• Reprezentacja zmiennopozycyjna jest dokładniejsza
(szczególnie w większych dziedzinach).
zmiennopoz.
binarnie
• Działanie algorytmów (szybkość, zbieżność) można
poprawić wprowadzając specjalne operatory.
operatory.
8000
6000
4000
• W przypadku kodowania binarnego dla dużych dziedzin
i wymaganej większej dokładności różnice w czasach
obliczeń powiększają się.
się.
2000
0
5
15
25
35
www.kwmimkm.polsl.pl
Wnioski z testów:
l. elem. (N)
45
7
www.kwmimkm.polsl.pl
ZADANIE
OPTYMALIZACJI
MODYFIKACJA
PROBLEMU
8
www.kwmimkm.polsl.pl
Modyfikacje:
• łańcuchy o zmiennej długości;
• struktury bogatsze od łańcuchów (np. macierze);
MODYFIKACJA
ALGORYTMU
• zmodyfikowane operatory;
• nowe operatory (inwersja, klonowanie, itp.);
ZMODYFIKOWANY
PROBLEM
ALGORYTM
EWOLUCYJNY
• inna niż binarna reprezentacja zadania;
• „pamięć” chromosomu;
• ...
Zastosowanie AE
KLASYCZNY AG
„zmieniony AG”, „ulepszony AG”, „zmodyfikowany AG”,
ROZWIĄZANIE
OPTYMALNE
...
9
Różnorodne programy opierające się na
zasadzie ewolucji mogą się różnić:
www.kwmimkm.polsl.pl
10
ALGORYTMY EWOLUCYJNE
www.kwmimkm.polsl.pl
Rozwinięcie idei klasycznych AG w kierunku systemów
bardziej skomplikowanych, zawierających:
• odpowiednie struktury danych (kodowanie);
• odpowiednie operatory.
• strukturą danych;
• operatorami;
• metodami tworzenia populacji początkowej;
• sposobami uwzględniania ograniczeń zadania;
• parametrami.
Słabość AE – podstawy teoretyczne:
• tylko dla czystych AG istnieje tw.
tw. o schematach;
• w innych podejściach tylko w niektórych przypadkach
można wykazać teoretycznie ich zbieżność (np. strategie
Zasada działania nie zmienia się:
populacja osobników podlega pewnej transformacji zaś
osobniki starają się przetrwać w procesie ewolucji.
AG
AE
ewolucyjne stosowane do zadań regularnych).
11
Zwykle jednak tylko uzyskujemy interesujące wyniki...
12
2
www.kwmimkm.polsl.pl
Równoległość AG i AE:
„W świecie, w którym algorytmy sekwencyjne są przerabiane
na równoległe za pomocą niezliczonych sztuczek i
łamańców, jest niemałą ironią, że AG (algorytmy wysoko
równoległe) są przerabiane na sekwencyjne za pomocą
równie nienaturalnych sztuczek i wykrętów”
START
OPERATORY
EWOLUCYJNE
WARUNEK
ZATRZYMANIA
STOP
f. celu
PROCES
ZARZĄDZAJĄCY
T
komunikacja
z innymi
podpopulacjami
Max liczba procesorów:
(l. podpopulacji)⋅(l. osobników)
14
www.kwmimkm.polsl.pl
www.kwmimkm.polsl.pl
procedure Algorytm_Ewolucyjny
begin
t:=0
wybierz populację początkową P(t)
oceń P(t)
while (not warunek_zakończenia) do
begin
wybierz T(t) z P(t) (reprodukcja)
utwórz O(t) z T(t) (działanie operatorów ewolucyjnych)
oceń O(t)
utwórz P(t+1) z O(t) i P(t) (sukcesja)
t:=t+1
end
T – temporary - tymczasowy
end
AE to rozwinięcie i uogólnienie AG.
Należy jednoznacznie określić:
• schemat działania AE;
• metodę selekcji;
• sposób kodowania i operatory genetyczne;
• środowisko działania AE.
SUKCESJA
(postselekcja)
chromosom
13
Dla danego problemu można określić wiele sposobów
kodowania i zdefiniować szereg operatorów (np. zadanie
komiwojażera).
+
(F. CELU)
SELEKCJA
N
REPRODUKCJA
(preselekcja)
FEM
FEM
MIGRACJA
Rozproszony AE – znaczące przyspieszenie obliczeń
=
...
FEM
POPULACJA
POCZĄTKOWA
Goldberg,
Goldberg, 1995
SELEKCJA
www.kwmimkm.polsl.pl
Rozproszony AE, autor: Wacław KUŚ:
O – offspring - potomny
15
16
www.kwmimkm.polsl.pl
www.kwmimkm.polsl.pl
procedure Algorytm_Ewolucyjny
begin
t:=0
wybierz populację początkową P(t)
oceń P(t)
while (not warunek_zakończenia) do
begin
wybierz T(t) z P(t) (reprodukcja)
utwórz O(t) z T(t) (operatory)
oceń O(t)
utwórz P(t+1) z O(t) i P(t) (sukcesja)
t:=t+1
end
end
Napór selekcyjny (selektywny nacisk):
nacisk):
Tendencja algorytmu do poprawiania wartości średniej
przystosowania.
Reprodukcja – tworzenie populacji tymczasowej T(t),
która jest poddawana działaniu operatorów genetycznych
tworząc populację potomną O(t).
Sukcesja – tworzenie nowej populacji bazowej P(t+1)
z populacji potomnej O(t) oraz starej populacji
bazowej P(t).
Algorytm charakteryzuje się tym większym naporem
selekcyjnym, im większa jest oczekiwana liczba kopii
lepszego osobnika w porównaniu z oczekiwaną liczbą kopii
osobnika gorszego.
gorszego.
17
18
3
www.kwmimkm.polsl.pl
Twarda (brutalna) selekcja – wybór do populacji
potomnej i powielanie tylko najlepszego osobnika
METODY REPRODUKCJI
www.kwmimkm.polsl.pl
KOŁ
KOŁO RULETKI
(metoda stochastycznego wzrostu).
Przyjęcie jednakowego prawdopodobieństwa algorytm błądzi przypadkowo (brak
(brak selekcji).
selekcji).
– jak w AG...
AG...
REPRODUKCJA TURNIEJOWA
W AE - metoda pośrednia, zwana „miękką
„miękką
selekcją”.
selekcją”.
• Wybó
ybór k osobnikó
osobników (rozmiar turnieju, zwykle k=2) i selekcja
najlepszego z grupy.
• Powtarzane pop_size razy.
19
www.kwmimkm.polsl.pl
REPRODUKCJA RANKINGOWA
20
www.kwmimkm.polsl.pl
METODY SUKCESJI
SUKCESJA TRYWIALNA
Szeregowanie osobnikó
osobników według
według wartoś
wartości przystosowania
i selekcja zgodnie z kolejnoś
kolejnością
cią (wg tzw. linii rangi ):
(z cał
całkowitym zastę
zastępowaniem)
Nową populacją bazową staje populacja potomna:
25
25
20
20
15
15
10
10
5
5
0
0
1
2
3
4
5
6
7
8
9
10
P(t+1) = O(t)
(jak w AG).
☺ Najbardziej odporna na przedwczesną zbieżność.
1
2
3
4
5
6
7
8
9
Najwolniej prowadzi do rozwiązania optymalnego.
10
☺ zapobiega powstawaniu superosobnikó
superosobników;
Może prowadzić do sytuacji, w której nie zawsze
najlepsze rozwiązania z populacji P(t) znajdą się
w populacji P(t+1);
+1);
pomija informację
informację
o wzglę
względnych ocenach osobnikó
osobników.
21
www.kwmimkm.polsl.pl
SUKCESJA
Z CZĘŚ
CIOWYM ZASTĘ
CZĘŚCIOWYM
ZASTĘPOWANIEM
SUKCESJA ELITARNA
www.kwmimkm.polsl.pl
Gwarantuje przeżycie co najmniej najlepszego osobosob-nika
poprzez odpowiedni wybór osobników z P(t) do P(t+1)
W nowej populacji bazowej są osobniki z populacji
potomnej i ze starej populacji bazowej
P(t+1) = O(t) + P(t)
☺ Wzrost wielkości elity powoduje przyspieszenie
zbieżności algorytmu.
☺ Prowadzi zwykle do stabilniejszej pracy AE.
Wzrost wielkości elity powoduje większe prawdoprawdopodobieństwo osiągania ekstremów lokalnych.
Może spowodować tendencję do osiągania maksimów
lokalnych.
Mechanizm usuwania (warianty):
• usuwanie najgorzej przystosowanych osobników;
• usuwanie osobników podobnych do potomnych;
• usuwanie losowo wybranych osobników.
22
Wartość wielkości elity δ decyduje o naporze selekselekcyjnym (δ=0 – sukcesja trywialna).
Najkorzystniej – jeden, ew. kilka osobników).
23
24
4
www.kwmimkm.polsl.pl
www.kwmimkm.polsl.pl
G – dziedzina funkcji;
funkcji;
X – maksimum lokalne
funkcji przystosowania;
przystosowania;
EKSPLORACJA
I
EKSPLOATACJA
Eksploracja:
Wybranie zbioru G(X*), zawierającego maksimum
globalne X* z rodziny obszarów przyciągania ekstremów
lokalnych.
Eksploatacja:
Przeszukiwanie obszaru przyciągania G(X) w celu
wyznaczenie maksimum lokalnego X (sprowadza się do zadania
25
www.kwmimkm.polsl.pl
• Najczęściej informacja o rodzinie obszarów przyciągania
i wartości funkcji przystosowania w maksimach lokalnych
nie jest dostępna,
dostępna, a jej pozyskanie jest bardzo kosztowne.
kosztowne.
• Zadanie optymalizacji globalnej jest nierozwiązywalne
(w ogólnym przypadku, w dokładnym sensie).
• Poszukuje się metod optymalizacji prowadzących do
uzyskania dobrych rozwiązań przybliżonych
z akceptowalnym kosztem – jak algorytmy ewolucyjne.
LOSOWOŚĆ W AE
optymalizacji lokalnej).
26
www.kwmimkm.polsl.pl
OCENA
DZIAŁANIA
AE
27
28
www.kwmimkm.polsl.pl
www.kwmimkm.polsl.pl
• Należy dokonać wielu niezależnych uruchomień dla losowej
próby różnych populacji bazowych P(0).
Różne zachowanie algorytmu w niezależnych
uruchomieniach przy jednakowych ustawieniach
parametrów i identycznych populacjach początkowych…
• W przypadku wielu uruchomień dla tej samej populacji P(0)
można mówić o właściwościach danego algorytmu dla
konkretnej populacji początkowej.
Losowość jest wprowadzana w AE:
• Podczas generowania populacji początkowej.
• Porównywane dwa algorytmy: wskazane jest aby próba ta
była taka sama
• W procesie wyboru populacji potomnej na drodze
reprodukcji (ukierunkowanie działania AE).
(dla każdej losowej populacji początkowej uruchamia się dwa
porównywane algorytmy).
• Podczas działania operatorów ewolucyjnych (próbkowanie
przestrzeni roboczej).
29
30
5
www.kwmimkm.polsl.pl
ANALIZA STATYSTYCZNA:
www.kwmimkm.polsl.pl
KRZYWE ZBIEŻNOŚCI
• Analiza wartości oczekiwanej i odchylenia standardowego wartości
przystosowania w populacji bazowej.
• Są wykresem zmian wartości rozwiązania roboczego
(średniego, najlepszego, najgorszego) w czasie.
• Uwzględnienie informacji o min. i max.
max. osiąganej wartości.
• Kreśli się je:
- dla pojedynczego uruchomienia algorytmu;
• Uwzględnienie informacji o liczbie przypadków niewiele różnych od
od
najlepszego.
• Prezentacja wyników w postaci
histogramu pozwala ocenić
właściwości rozkładu, które mogą
umknąć przy analizie ograniczonej
jedynie do statystyki liczbowych.
- dla wielu niezależnych uruchomień.
(Uśrednione – bardziej reprezenreprezentatywne,
tatywne, lecz gubi się niektóre
informacje o zachowaniu AE
w pojedynczych uruchomieniach).
częstość
pokolenie:
163
20
15
wartość f. przystosowania
max
śr
min
10
Przykładowe krzywe zbieżności
(dla 1 uruchomienia algorytmu):
5
0
6
8
10
12
32
www.kwmimkm.polsl.pl
Szczególna krzywa zbieżności:
pokolenie
14
16
18
20
31
wartość f. przystosowania
www.kwmimkm.polsl.pl
KOSZT SYMULACJI A LICZBA POKOLEŃ
Wykres zmian w kolejnych pokoleniach wartości przysprzystosowania najlepszego osobnika znalezionego
od początku działania AE.
• W wielu metodach optymalizacji koszt jest utożsamiany
z liczbą iteracji metody (przetwarzane jest jedno rozwiązanie).
Po zakończeniu działania AE osobnik ten jest rozwiązaniem
wyznaczonym. przez pojedyncze uruchomienie AE.
• W przypadku algorytmów ewolucyjnych liczba obliczeń
wartości funkcji przystosowania w pojedynczej iteracji
algorytmu ewolucyjnego jest zależna od liczności populacji
potomnej (przetwarzana jest populacja rozwiązań).
wartość f. przystosowania
200
150
100
Np.:
50
0
10
20
30
40
50
60
70
100 iteracji (pokoleń) i 10 osobników
100 iteracji (pokoleń) 1000 osobników
80
pokolenie
33
www.kwmimkm.polsl.pl
34
www.kwmimkm.polsl.pl
• Dowody zbieżności są znane jedynie dla pewnych
szczególnych przypadków funkcji przystosowania (takich
jak funkcja kwadratowa).
• Optymalne kryterium - stwierdzenie, że rozwiązanie
wygenerowane przez AE jest dostatecznie dobrym
przybliżeniem maksimum globalnego funkcji celu.
KRYTERIA
ZATRZYMANIA
AE
• To implikuje znajomość tego maksimum jeszcze przed
rozpoczęciem optymalizacji...
optymalizacji...
KRYTERIA ZATRZYMANIA:
• Polegające na monitorowaniu wartości funkcji przyprzystosowania osobników generowanych przez algorytm;
• Monitorujące zdolność algorytmu do eksploracji przestrzeni
genotypów.
genotypów.
35
36
6
www.kwmimkm.polsl.pl
MONITOROWANIE
MONITOROWANIE WARTOŚ
WARTOŚCI
FUNKCJI PRZYSTOSOWANIA
Kryterium maksymalnego kosztu
• Algorytm kończy działanie, jeśli koszt algorytmu przekroczy
założoną wartość maksymalną Kmax.
Φ
• Wartość Kmax jest najnajczęściej związana ze
specyfiką zadania.
• Często:
Często: przyjęcie pewpewnej maksymalnej liczby
pokoleń algorytmu.
(Czas działania zależy niejawnie
od liczby nowych osobników generowanych w każdym pokoleniu!
pokoleniu!)
Kryterium min. szybkości poprawy
Zwykle nie jest łatwo (bez
dostatecznie dobrej znajoznajomości funkcji przystosowania)
określić wartość zadowalającą.
Φ
Φs
t
37
www.kwmimkm.polsl.pl
Algorytm jest zatrzymywany, jeśli w kolejnych τ obliobliczeniach wartości f. przystosowania nie uda się popo-prawić
wyniku o więcej niż ε.
38
www.kwmimkm.polsl.pl
MONITOROWANIE
ZDOLNOŚCI EKSPLORACYJNYCH
• Zdolność algorytmu do eksploracji przestrzeni genogenotypów jest czynnikiem warunkującym odporność
algorytmu na ekstrema lokalne.
Często ε = 0 - AE zatrzymywany, jeśli nie uda się uzyskać
lepszego rozwiązania w kolejnych τ pokoleniach.
Φ
Zatrzymanie działania gdy AE znajdzie rozwiązanie
o wartości funkcji przystosowania Φs określonej przez
użytkownika jako zadowalająca.
AE może działać dowolnie
długo (należy dodatkowo
określić maksymalny koszt
znalezienia rozwiązania).
t
tmax
www.kwmimkm.polsl.pl
Kryterium zadowalającego poziomu funkcji
przystosowania
• Zdolność taka wynika zarówno z różnorodności populacji
bazowej,
bazowej, jak również z zasięgu operatora mutacji (jeśli
podlega on samoczynnej adaptacji).
min. szybkość poprawy
ε
τ
t
39
40
www.kwmimkm.polsl.pl
www.kwmimkm.polsl.pl
Kryterium zaniku różnorodności populacji
Różnorodność:
Kryterium zatrzymania bazujące na różnorodności populacji
wykorzystuje fakt, że obniżenie różnorodności poniżej
pewnego poziomu świadczy o przejściu do etapu
eksploatacji obszaru przyciągania ekstremum.
ekstremum.
• wpływa na odporność algorytmu ewolucyjnego na
ekstrema lokalne;
• sprawia, że krzyżowanie ma duży zasięg;
• powoduje w efekcie, że algorytm dość szybko generuje
nowe rozwiązania.
Algorytm należy wówczas zatrzymać i wykorzystać pewną
metodę lokalną do dokładnego wyznaczenia tego
ekstremum.
Zanik różnorodności – przełączenie się na przeszukiwaprzeszukiwa-nia
ograniczone do niewielkiego obszaru
(zwykle równoważne z eksploatacją obszaru przyciągania jednego
ekstremum – niekoniecznie globalnego).
globalnego).
41
42
7
www.kwmimkm.polsl.pl
www.kwmimkm.polsl.pl
Kryterium zaniku samoczynnie adaptoadaptowanego zasięgu operatora mutacji
KODOWANIE
I
OPERATORY
GENETYCZNE
• Hipoteza (eksperymentalnie potwierdzona), że jeśli w AE
stosuje się adaptację zasięgu mutacji,
mutacji, to od pewnego
momentu zasięg ten ma trwałą tendencję do zmniejzmniejszania się.
się.
• Ograniczenie zasięgu wiąże się z przełączeniem AE na
eksploatację znalezionego obszaru przyciągania.
• Oblicza się dla populacji bazowej wartość średnią
standardowych odchyleń pamiętanych w genotypach
osobników wykorzystywanych podczas mutacji.
• Spadek tej wartości poniżej pewnego progu
σmin – zakończenie działania.
43
www.kwmimkm.polsl.pl
44
www.kwmimkm.polsl.pl
DEDYKOWANE OPERATORY GENETYCZNE
DOBÓR SPOSOBU KODOWANIA
• Pozwalają poprawić działanie algorytmu dla pewnej
konkretnej klasy zadań (ścisły związek z rozpatrywanym
Jeśli środowisko jest zdefiniowane na podstawie funkcji
celu i ograniczeń, to wskazane jest dobranie takiego
kodu genetycznego, by:
• Powstałe z ich użyciem AE stają się nierzadko
konkurencją wobec innych metod rozwiązywania tych
zadań;
• każde rozwiązanie zadania dało się reprezentować jako
genotyp;
genotyp;
• kodowanie nie wprowadzało dodatkowych ekstremów
lokalnych funkcji przystosowania.
problemem);
• Cena – utrata ogólności algorytmu (dla zadań innej klasy
może być on bardzo nieefektywny lub niemożliwy do
zastosowania).
DOBÓR OPERATORÓW GENETYCZNYCH
1. Spójność algorytmu ze względu na operacje genetyczne.
Dyskusja o wyższości jednych operatorów nad innymi
sprowadza się najczęściej do przeprowadzenia ekspeeksperymentów porównawczych i analizy ich wyników.
2. Brak obciążeń operatorów.
45
www.kwmimkm.polsl.pl
46
Przykłady:
www.kwmimkm.polsl.pl
• AG z kodowaniem binarnym, krzyżowaniem
jednopunktowym i bez operatora mutacji nie spełnia
postulatu spójności
SPÓJNOŚĆ ALGORYTMU ZE WZGLĘDU NA
OPERACJE GENETYCZNE
(gdy populacja bazowa zawiera kopie tego samego osobnika, to
niemożliwe jest wygenerowanie jakiegokolwiek innego osobnika).
• Jest to możliwość wygenerowania dowolnego chrochromosomu z dowolnego innego, posługując się jedynie
operatorami genetycznymi.
genetycznymi.
• jeśli jedynym operatorem genetycznym jest mutacja
bitowa,
bitowa, to postulat spójności jest spełniony.
• Spełnienie postulatu spójności wyklucza niebezpieniebezpieczeństwo,
czeństwo, że w wyniku niewłaściwej inicjalizacji populacji
bazowej algorytm ewolucyjny nie ma możliwości
znalezienia optimum globalnego.
BRAK OBCIĄŻEŃ OPERATORÓW
47
Operator jest obciążony,
obciążony, jeżeli przy braku naporu selekselekcyjnego niektóre osobniki będą bardziej uprzywilejowane
w stosunku do innych.
48
8

Podobne dokumenty