Lider zbioru

Transkrypt

Lider zbioru
(C) 2005 RoG@j
2005-03-16
Lider
Lider zbioru
Modalna i mediana
Pewne twierdzenie…
Algorytm znajdywania lidera
!
!
!
Modalna
!
Znalezienie modalnej (najczęściej
występującej wielkości w zbiorze) i
sprawdzenie, czy jej częstość w zbiorze jest
większa niż wartość n/2.
!
!
Jeśli zbiór X zawiera lidera, a x i y są jego
dwoma różnymi elementami, to zbiór Y=X-{x,
y}, który powstał przez usunięcie elementów
x i y ze zbioru X również zawiera lidera.
!
!
!
!
Znalezienie mediany, czyli elementu
znajdującego się na pozycji n/2 i
sprawdzenie, czy jest on liderem - jeśli zbiór
ma lidera, to musi on być jego medianą!!!
!
!
l -element X, który jest liderem,
!
!
Odwrotne twierdzenie nie jest prawdziwe.
X={1, 2, 2, 3, 4} nie ma lidera
Y=X-{1, 3}={2, 2, 4} zawiera już lidera, którym jest
liczba 2.
Istnieje algorytm znajdywania mediany, który nie
korzysta z porządkowania zbioru, ale jest on
niezwykle złożony
Dowód (uzasadnienie)
Zredukowany zbiór Y może zawierać lidera,
choć go nie było w zbiorze X.
!
Alg 15
Mediana
Jest to pracochłonne, bo dla znalezienia modalnej
trzeba najpierw uporządkować zbiór.
Twierdzenie
Liderem w zbiorze nazywamy element, który
występuje w zbiorze więcej niż połowę razy,
czyli więcej, niż n/2 razy, gdy n jest mocą
zbioru.
Problem ten występuje w wyborach, w
których zwycięzca musi uzyskać więcej niż
połowę głosów.
Znalezienie lidera w zbiorze można zastąpić
określeniem innych miar centralności.
!
!
!
jeśli x i y są dwoma różnymi elementami X to co
najwyżej jeden z nich = l,
w zredukowanym zbiorze liczba elementów jest
mniejsza o 2,
częstość występowania l jest mniejsza co
najwyżej o jeden,
l pozostanie więc liderem w zbiorze Y.
Musimy jedynie sprawdzić, czy lider Y jest
liderem początkowego zbioru X.
1
(C) 2005 RoG@j
(1) Algorytm znajdywania
lidera w zbiorze
2005-03-16
(2) Algorytm znajdywania
lidera w zbiorze
!
!
!
!
!
Dane:
Zbiór X złożony z n elementów
{x1, x2, …, xn}
Wynik: Lider l w zbiorze X lub informacja, że
X nie zawiera lidera.
Krok 1: Przyjmij x1 za lidera l oraz niech
c:=1
{Kroki 2-5 stanowią etap wykrywania
kandydata na lidera w X}
(3) Algorytm znajdywania
lidera w zbiorze
!
Krok 5: {Porównujemy kolejny element
zbioru X z kandydatem na lidera}
!
!
!
Jeśli xi=l to zwiększamy c o 1 (c:=c+1) {kolejny
element jest równy liderowi}
W przeciwnym wypadku zmniejszamy c o 1 (c:=c1) {kolejny element nie jest równy liderowi usuwamy go wraz z jedną krotnością lidera}
!
Alg 15
!
(4) Algorytm znajdywania
lidera w zbiorze
!
!
!
W krokach 6-8 sprawdzamy, czy l jest
rzeczywiście liderem w zbiorze X
Złożoność obliczeniowa
algorytmu
!
!
W pierwszym etapie dla każdego elementu
zbioru X (za wyjątkiem pierwszego) jest
wykonywane jedno takie działanie jak w
kroku 3 lub 5
W drugim etapie porównywania są
wykonywane w kroku 6 (jedno) i w kroku 8
(n+1: n porównań, by obliczyć wielokrotność l
w zbiorze X i jedno porównanie, by
sprawdzić, czy ta wielokrotność jest większa
od n/2).
Krok 2: Dla kolejnych wartości i=2, 3, ?, n
wykonaj kroki 3-5 a następnie
przejdź do kroku 5.
Krok 3: Jeśli c=0, to wykonujemy krok 4,
a w przeciwnym wypadku
wykonujemy krok 5.
Krok 4: {Obieramy nowego kandydata na
lidera} Przyjmujemy xi za lidera l
i niech c:=1.
Krok 6: Jeśli c=0, to przejdź do kroku 7,
a w przeciwnym wypadku przejdź
do kroku 8.
Krok 7: Zbiór X nie ma lidera. Zakończ
algorytm.
Krok 8: Wyznacz, ile razy kandydat na lidera
występuje w zbiorze X.
!
!
Jeśli ta liczba jest większa od n/2 to l jest liderem
W przeciwnym razie ten zbiór nie zawiera lidera.
Konkluzja
!
W sumie liczba porównań wynosi
(n-1)+(1+n+1)=2n+1
2

Podobne dokumenty