• Nie Znaleziono Wyników

Operatory genetyczne

W dokumencie Ewolucyjne wnioskowanie gramatyczne (Stron 90-93)

4.8. Algorytm genetyczny

4.8.3. Operatory genetyczne

Krzyżowanie

Operatorom genetycznym, w tym również krzyżowaniu, podlegają tylko produkcje typu A → BC (ze zbioru PN). W modelu GCS krzyżowane dwie produkcje wymieniają swoje lewe strony oraz symbole z prawej strony produkcji na losowo wybranej pozy-cji. Przykładowo, wynikiem działania operatora na dwóch produkcjach:

A

BC,

D

EF

może być para produkcji

D

EC,

A

BF

przy założeniu, że zamianie (krzyżowaniu) podlegały symbole z pierwszej pozycji prawej strony produkcji. Operator krzyżowania uruchamiany jest z prawdopodobień-stwem pk.

Mutacja

Operator mutacji przechodzi przez kolejne pozycje produkcji typu A → BC i z praw-dopodobieństwem pa może zmienić symbol z danej pozycji produkcji na losowo wybra-ny ze zbioru nieterminali N. W krańcowym zatem wypadku, efektem zadziałania ope-ratora może być produkcja z losowo zmienionymi symbolami zarówno po lewej stronie, jak i prawej stronie produkcji. Przykładowo, mutacja na dwóch pozycjach poniższej produkcji, tj. na lewej stronie produkcji oraz drugiej pozycji prawej strony,

A

→ BC może dać w efekcie produkcję postaci

G

→ BD.

Inwersja

W ogólnym przypadku operator inwersji permutuje kod chromosomu. W przypad-ku produkcji nieterminalnej modelu GCS permutacji podlegają dwa symbole prawej strony produkcji. Efektem inwersji przykładowej produkcji

A

→ BC będzie produkcja postaci

A

→ CB.

Operator inwersji stosowany jest z prawdopodobieństwem pi.

Inwersja osobnika jest w tej chwili rzadziej stosowanym operatorem genetycznym, ze względu na możliwość stosowania np. krzyżowania równomiernego, które nie jest

tak wrażliwe na permutację kodu, jak operatory krzyżowania jedno- i dwupunktowego (Arabas 2001). Ze względu jednak na epistatyczne właściwości populacji klasyfikato-rów w modelu GCS operator inwersji wydaje się być pożyteczny102. Warto bowiem zauważyć, że inwersja symboli po prawej stronie produkcji równoznaczna jest z za-mianą kolejności poddrzew wyprowadzeń każdego z symboli, co z kolei nie powoduje zaburzenia związków epistatycznych pomiędzy klasyfikatorami.

Inwersja jest, oprócz wprowadzonych wcześniej płodności i ścisku, trzecim już mechanizmem, którego zadaniem jest utrzymanie wysokiego tempa zbieżności lub jej lepszym końcowym stopniem, pomimo istnienia wysokiej epistazy populacji produk-cji modelu GCS.

4.9. Korekcja

Wynikiem działania operatorów genetycznych na produkcjach gramatyki, jak również możliwej losowej inicjacji populacji produkcji, może być pojawienie się bez-użytecznych symboli nieterminalnych. Symbol nieterminalny jest bezużyteczny, jeżeli nie jest produktywny lub jest nieosiągalny. Z symbolu produktywnego można wypro-wadzić jakiś łańcuch końcowy, składający się wyłącznie z symboli terminalnych, na-tomiast symbol osiągalny można wyprowadzić z symbolu startowego S (Hopcroft i Ullman 1979). Produkcja jest produktywna, jeżeli symbole nieterminalne prawej strony produkcji są produktywne. W przypadku reprezentacji gramatyki w PNC ozna-cza to, że obydwa symbole nieterminalne składające się na prawą stronę produkcji muszą być produktywne. Produkcja jest osiągalna, jeżeli symbol nieterminalny pra-wej strony produkcji jest osiągalny.

Co prawda algorytm CYK radzi sobie z produkcjami bezużytecznymi, jednak niewątpliwie takie reguły niepotrzebnie powiększają gramatykę, a co za tym idzie w sposób istotny zwiększają czas rozbioru analizowanego zdania. Zasadnym zatem się wydaje wprowadzenie możliwości upraszczania (korekcji) gramatyki. Mechanizm

korekcji w pierwszej kolejności usuwa wszystkie produkcje redundantne w gramatyce,

a następnie poszukuje i usuwa produkcje nieproduktywne i nieosiągalne.

Ze względu na epistatyczne własności produkcji gramatyki korekcja gramatyki wykonywana jest na kopii gramatyki, którą następnie przeprowadza się rozbiór zda-nia. Po rozbiorze zdań uczących obliczone wartości parametrów klasyfikatorów

Parcl(G) zostają z powrotem skojarzone z klasyfikatorami gramatyki niekorygowanej. W dalszym procesie indukcji gramatyki bierze udział już tylko gramatyka niekorygo-wana, gdyż wiele reguł w danej chwili bezużytecznych może okazać się dobrym mate-riałem genetycznym w kolejnym kroku ewolucyjnym.

4.10. Parametry

Proces uczenia modelu GCS sterowany jest przez zestaw parametrów, które moż-na, idąc za (Pawlak 1999), podzielić na dwie grupy:

• parametry nieciągłe – zmienne decyzyjne, • parametry ciągłe.

Zmienne decyzyjne

Do zmiennych decyzyjnych modelu GCS zaliczyć można:

fGA – zmienna zezwalająca na uruchomienie algorytmu genetycznego (tak/nie), 1

GA

f – rodzaj zastosowanej selekcji podczas wyboru pierwszej produkcji (ruletka, turniej, losowa),

2 GA

f – rodzaj zastosowanej selekcji podczas wyboru drugiej produkcji (ruletka, turniej, losowa),

fkor – zmienna zezwalająca na uruchomienie korekcji gramatyki (tak/nie),

fcs – zmienna zezwalająca na uruchomienie operatora pokrycia startowego (tak/nie),

fcp – zmienna zezwalająca na uruchomienie operatora pokrycia pełnego (tak/nie),

fcu – zmienna zezwalająca na uruchomienie operatora pokrycia uniwersalnego (tak/nie).

Parametry ciągłe

Zbiór parametrów ciągłych modelu tworzą:

pkprawdopodobieństwo krzyżowania dla algorytmu genetycznego ( pk ∈[0, 1]),

pm – prawdopodobieństwo mutacji dla algorytmu genetycznego ( pm ∈[0, 1]),

piprawdopodobieństwo inwersji dla algorytmu genetycznego ( pi ∈[0, 1]),

paprawdopodobieństwo zastosowania operatora pokrycia agresywnego ( pa ∈ [0, 1]),

cf – współczynnik ścisku (cf ∈[1, 30]),

cs – podpopulacja ścisku (cs ∈[1, 30]),

ba – kwota bazowa (ba ∈[0, 15]),

raf – współczynnik zmniejszania kwoty bazowej (raf ∈[0, 15]),

ts – rozmiar podpopulacji turniejowej (ts ∈[1, 30]),

nP – rozmiar populacji,

nstart– liczba początkowych produkcji nieterminalnych ze zbioru PN (nstart ∈ [1, 30]),

nN – liczba symboli nieterminalnych (nN ∈[1, 30]),

nT – liczba symboli terminalnych,

nelit – wielkość elity (nelit ∈[1, 30]),

nrun – liczba iteracji (nrun = 10, 50),

nmax– maksymalna liczba kroków ewolucyjnych (nmax ∈[1, 50 000]),

wp – waga rozbioru zdania poprawnego r∈ R+ (wp ∈[1, 20]),

wc – waga funkcji klasycznej klasyfikatora (wc ∈[1, 20]),

wf – waga funkcji płodności klasyfikatora (wf ∈[1, 15]),

f0 – miara użyteczności klasyfikatora niebiorącego udziału w parsowaniu ( f0 ∈ [0, 10]).

Po nazwie parametru, w nawiasie, umieszczono zakres jego badanej zmienności. Rozmiar populacji jest nP jest wyliczany przez model jako suma liczby stworzonych

produkcji terminalnych oraz liczby początkowych produkcji nieterminalnych.

4.11. Algorytmiczny opis modelu

W rozdziale tym przedstawiono algorytmiczny zapis modelu GCS. Zapis podany jest metodą zstępującą, czyli w pierwszej kolejności opisana jest zasadnicza, ewolu-cyjna pętla modelu (procedure GCS – rys. 21), a następnie pozostałe, wywoływane przez nią procedury.

procedure GCS

1. begin

2. wczytaj zestaw zdań uczących R 3. ustaw parametry modelu

4. inicjuj gramatykę Gi = {N, T, PT, PN, S, Su} 5. while (not kryterium stopu) do

6. begin

7. indukuj gramatykę Gi

8. oblicz fG dla Gi

9. if fGA then uruchom algorytm genetyczny na gramatyce Gi

10. end

11. end

Rys. 21. Główna pętla modelu GCS Fig. 21. Main loop of GCS model

W dokumencie Ewolucyjne wnioskowanie gramatyczne (Stron 90-93)