Rówoległe algorytmy genetyczne w zastosowaniu do problemu kolor

advertisement
POLITECHNIKA KRAKOWSKA - WIEiK - KATEDRA AUTOMATYKI
Technologie Informacyjne
www.pk.edu.pl/~zk/TI_HP.html
Wykładowca:
dr inż. Zbigniew Kokosiński
[email protected]
Wykład: Generacja liczb losowych
•
•
•
•
•
•
•
Problem generacji liczb losowych
Liczby losowe a pseudolosowe
Zastosowania generatorów liczb losowych
Metody programowej generacji liczb losowych
Przykłady obliczeniowe
Statystyczna ocena jakości generatorów
Metody sprzętowej generacji liczb losowych
Problem generacji liczb losowych
Związki pomiędzy rozkładami liczb losowych
Liczby pseudolosowe (J. von Neumann)
Metoda środka kwadratu (von Neumann, 1946)
Uwaga: niektóre sekwencje degenerują się do zer lub
cykli, podczas gdy inne są zadowalające.
Wniosek: metoda generacji musi być dobrana starannie,
a nie przypadkowo.
Metoda środka kwadratu - przykład
. ..
Xi=
X i^2 =
X i+1 =
X i+1^2=
X i+2 =
X i+2^2=
X i+3 =
X i+3^2=
X i+4 =
X i+4^2=
|| 3967 ||
|| 15|7370|89 ||
|| 7370 ||
|| 54|3169|00 ||
|| 3169 ||
|| 10|0425|61 ||
|| 0425 ||
|| 00|1806|25 ||
|| 1806 ||
|| 03|2616|36 ||
...
Zastosowania liczb pseudolosowych
Algorytmy randomizowane
Algorytmy randomizowane (probabilistyczne) to algorytmy
wykorzystujące pewien mechanizm losowy. Najcześciej jest
to generator liczb pseudolosowych. Zachowanie algorytmu
zależy od dodatkowego strumienia losowych danych
wejściowych. Algorytm ma osiągnąć lepszą jakość (zwykle
którtki czas obliczeń) w średnim przypadku.
Prawdopodobieństwo wystąpienia najgorszego przypadku
jest znikomo małe.
Przykład:
Algorytm sortowania QuickSort działa w średnim przypadku
w czasie O(n), chociaż czas najgorszego przypadku to
O(n^2). Losowe “przetasowanie” danych wejściowych
praktycznie eliminuje najgorszy przypadek.
Algorytm Monte Carlo
Algorytm MC należy do klasy algorytmów
randomizowanych zawierających mechanizm
losowego próbkowania.
Przykład: gra w statki. Losowe próbkowanie jest
efektywniejsze niż systematyczne
przeszukiwanie obszaru.
Algorytm MC jest stosowany w przypadku,
gdy z jakiegoś względu nie jest możliwe albo
dopuszczalne zastosowanie algorytmu
deterministycznego. MC może dać odpowiedź
niepoprawną, jednak prawdopodobieństwo błędu
można dowolnie zmniejszyć poprzez niezależne
powtarzanie algorytmu.
Algorytm Las Vegas
Algorytm LV należy do klasy algorytmów randomizowanych,
które nigdy nie dają niepoprawnego wyniku.
Algorytm nie “ryzykuje” poprawnością wyniku, “hazardowi
podlegają tylko zasoby wykorzystywane w obliczeniach.
Przykład: randomizowany algorytm QuickSort daje zawsze poprawny
wynik sortowania, chociaż element podziałowy (pivot) jest w nim
generowany losowo.
Algorytm LV zawsze daje poprawną odpowiedź, albo informuje o
błędzie. Różny, chociaż skończony, jest tylko czas działania.
Jest to główna różnica pomiędzy algorytmami LV i RC.
Elementarne metody generacji
•
•
•
•
Metoda środka kwadratu (von Neumann, 1946)
Liniowa metoda kongruencyjna (D.H. Lehmer, 1949)
Kwadratowa metoda kongruencyjna (uogólnienie)
Kwadratowa metoda kongruencyjna
(wariant R.R. Conveyou)
• Addytywna metoda kongruencyjna
(G.J. Mitchel, D.P. Moore, 1958)
• Liniowa kombinacja - metoda kongruencyjna
(uogólnienie)
Złożone metody generacji
(zwiększające losowość)
• Metoda tasowania z dwoma sekwencjami losowymi
(M.D. MacLaren, G. Marsaglia, 1968)
• Metoda tasowania z jedną sekwencją losową
(C. Bays, S.D. Durham, 1976)
Uwaga: druga z powyższych metod jest lepsza niż
pierwsza
Arytmetyka modularna
Arytmetyka modularna
Liniowa metoda kongruencyjna
Liniowa metoda kongruencyjna – dobór
współczynników i wartości początkowej
Liniowa metoda kongruencyjna – dobór
współczynników i wartości początkowej
Liniowa metoda
kongruencyjna –
rozkłady wybranych liczb (w–1) i
(w+1) na czynniki
pierwsze, gdzie:
w – długość słowa
maszynowego
jako potęga o
podstawie 2
Liniowa metoda kongruencyjna generowanie losowych liczb ułamkowych
Kwadratowa metoda kongruencyjna
Kwadratowa metoda kongruencyjna dobór współczynników
Kwadratowa metoda kongruencyjna wariant R.R, Coveyou
Addytywna metoda kongruencyjna
Addytywna metoda kongruencyjna - algorytm
Addytywna metoda kongruencyjna rekomendowane pary liczb
Addytywna metoda kongruencyjna - przykład
Niech n=6, m=8, wybrana para liczb to (2,5).
[X(0), ... ,X(5)]=[2,5,1,7,4,3].
Generowana według wzoru X(n)=[X(n-2)+X(n-5)] mod8
sekwencja liczb losowych X(6) ... X(29) - jest następująca:
[140071313043565207640472].
Początkowe wartości komórek pamięci Y[1] ... Y[6] oraz
indeksów w algorytmie są równe Y=[3 4 7 1 5 2], i=2, j=5.
Kolejne kroki:
Y=[3 4 7 1 5 1], i=1, j=4
Y=[3 4 7 1 4 1], i=6, j=3
Y=[3 4 7 0 4 1], i=5, j=2
Liniowa kombinacja - metoda kongruencyjna
Metoda tasowania z jedną sekwencją losową
Tasowanie z jedną sekwencją losową- przykład
Dana jest sekwencja losowa z poprzedniego przykładu,
generowana według wzoru X(n)=[X(n-2)+X(n-5)] mod8 :
X=[251743140071313043565207640472].
Niech k=7 oraz V=[X(0) ... X(k-1)]=[2517431], Y=X(k)=4.
m=8
Kolejne kroki: j=3, Y=V(3)=7 wyprowadź 7,V=[2514431]
j=6, Y=V(6)=1 wyprowadź 1,V=[2514430]
j=0, Y=V(0)=2 wyprowadź 2,V=[0514430]
j=1, Y=V(1)=5 wyprowadź 5,V=[0714430]
j=4, Y=V(4)=4 wyprowadź 4,V=[0714130]
Wygenerowana sekwencja wyjściowa to 71254 ...
Testowanie losowości metodą chi-kwadrat
Testowanie losowości - przykład
Niech r=100, N=1100, N/r=11, sqrt(r)=sqrt(100)=10
(spełniony jest warunek 1100=N>=10r=1000)
Niech 30 wartości z przedziału [0, 99] występuje z
częstotliwością f =11, 20 z f = 12, po 15 z f = 13 oraz
f = 10, 5 z f = 9, 10 z f = 14.
(spr.: 30*11+20*12+15*13+15*10+5*9+10*14=1100)
chi-kwadrat = (30*0+20*1+15*(4+1)+5*4+10*9)/11=
= (0+20+75+20+90)/11=205/11=18.64<=20
Wniosek: chi-kwadrat<=2sqrt(r) - test wypadł pozytywnie.
Generatory sprzętowe – rejestr LFSR
(Linear Feedback Shift Register)
Rejestr przesuwający z liniowym sprzężeniem zwrotnym
(LSFR) powstaje z n-bitowego rejestru przesuwającego
(SR), w którym zastosowano jeden z dwóch typów
sprzężenia: wewnętrzne lub zewnętrzne (na rys. pokazano
rejestry 4-bitowe z wektorem sprzężenia c = 10011,
FF (Flip-Flop) - oznacza element pamięci ).
Dla sprzeżenia wewnetrznego sygnał z
wyjścia ostatniego FF jest podawany na
wejścia FF wskazanych w wektorze c
(ostatnia wartość c zawsze równa 1).
Dla sprzeżenia zewnetrznego sygnał na
wejście pierwszego FF jest podawany z
wyjść FF wskazanych w wektorze c
(pierwsza wartość c zawsze równa 1).
Generatory sprzętowe – rejestr LFSR
Sekwencja binarna generowana przez LSFR jest
okresowa, a okres zależy od stanu początkowego
rejestru i struktury sprzężenia zwrotnego.
Generatory wytwarzające sekwencję o maksymalnej
długości mają okresy równe:
1,
(2^n) – 1,
dla stanu początkowego 00 ... 0
dla każdego innego stanu początkowego
Generator na rejestrze LFSR - przykład
Dany jest generator LFSR jak na rysunku.
Stan początkowy rejestru to 1 0 1 1.
Generator wytwarza na wyjściu okresową sekwencję
binarną o maksymalnej długości równej (2^4)-1=15 :
1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 ...
Download