168 lines
6.1 KiB
TeX
168 lines
6.1 KiB
TeX
\chapter{Podstawowe pojęcia}
|
||
|
||
\section{Algorytmy genetyczne}
|
||
|
||
Algorytm genetyczny jest to metaheurystyka zainspirowana teorią ewolucji
|
||
Charlsa Darwin'a. Algorytm odzierciedla zjawisko ewolucji biologicznej.
|
||
W procesie naturalnej selekcji najlepsze osobniki biorą udział w reprodukcji,
|
||
dając początek nowej, lepiej przystosowanej generacji.
|
||
% przecinek
|
||
|
||
Naturalna selekcja zaczyna się od doboru najdoskonalszych osobników z populacji.
|
||
Biorą one udział w reprodukcji przekazując część swoich genów potomkom. Nowa
|
||
generacja powinna być lepiej przystosowana niż rodzice, ponieważ jest
|
||
połączeniem genów, które zapewniły przeżycie rodzicom. W przypadku gdy wśród nowego
|
||
potomstwa znalazłyby się słabe
|
||
organizmy, to nie ma obawy, że ich geny przejdą do następnego pokolenia, ponieważ
|
||
najprawdobniej nie dożyją one okresu rozrodczego. W ten sposób każde kolejne
|
||
pokolenie jest lepsze niż poprzednie.
|
||
Powyższa wiedza, wynikająca z obserwacji praw natury, została przełożona na grut
|
||
matemtyki i informatyki tworząc algorytm genetyczny.
|
||
% przecinek
|
||
\newpage
|
||
\enlargethispage{12\baselineskip}
|
||
Na algorytm genetyczny składają się:
|
||
\vspace*{-1mm}
|
||
\begin{itemize}[noitemsep]
|
||
% \setlength\itemsep{0.005em}
|
||
\item inicjalizacja populacji,
|
||
\item funkcja przystosowania (stosowana przy ewaluacji i selekcji),
|
||
\item selekcja,
|
||
\item krzyżowanie,
|
||
\item mutacja.
|
||
\end{itemize}
|
||
|
||
\vspace*{-8mm}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.9\hsize]{overview_GA.png}
|
||
\caption{Schemat działania algorytmu genetycznego.}
|
||
\label{overview_ga_pic}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\subsection{Inicjalizacja populacji}
|
||
Algorytm zaczyna się od utworzenia zbioru osobników zwanych populacją. Każdy z
|
||
osobników jest rozwiązaniem problemu obliczeniowego. Osobnik reprezentowany jest
|
||
poprzez zbiór genów (parametrów) nazywanych chromosem.
|
||
Chromosom \newline jest najczęściej kodowany za pomocą:
|
||
\begin{itemize}
|
||
\item wektora genów, z których każdy reprezentowany jest przez liczbę całkowitą,
|
||
a czasem nawet liczbę rzeczywistą,
|
||
\item drzewiastych struktur danych.
|
||
\end{itemize}
|
||
|
||
|
||
\begin{example}
|
||
\end{example}
|
||
\begin{figure}[tbh]
|
||
\centering
|
||
\includegraphics[width=0.7\hsize]{kodowanie.png}
|
||
\caption{Przykład osobników zakodowanych binarnie.}
|
||
\label{kodowanie_pic}
|
||
\end{figure}
|
||
|
||
\subsection{Funkcja przystosowania}
|
||
Funkcja przystosowania określa jak bardzo przystosowany jest osobnik (miara
|
||
jakości osobnika). Im bardziej będzie przystosowany dany osobnik tym bardziej będzie
|
||
faworyzowany w procesie selekcji. Funkcja przystosowania dobierana jest w
|
||
zależności od modelu rozwiązywanego problemu, zwykle algorytm genetyczny dąży \newline do
|
||
jej minializacji lub maksymalizacji.
|
||
\begin{example}
|
||
Dla problemu
|
||
komiwojażera algorytm genetyczny będzie premiował te rozwiązania (w tym wypadku cykle Hamiltona), których suma
|
||
wag krawędzi jest najbliższa minimalnej sumie wag krawędzi w cyklu Hamiltona.
|
||
\end{example}
|
||
|
||
\subsection{Selekcja}
|
||
\enlargethispage{6\baselineskip}
|
||
Z każdej generacji wybierany jest podzbiór populacji, który będzie brał udział
|
||
\newline w
|
||
rozmnażaniu, czyli w tworzeniu nowej generacji. Pojedyńcze osobniki wybierane
|
||
\newline są na
|
||
podstawie funkcji przystosowania. Im lepiej przystosowany dany osobnik tym
|
||
większe będzie miał szanse na wzięcie udziału w reprodukcji.
|
||
|
||
\noindent Wśród metod selekcji chromosomów wyróżniamy między innymi:
|
||
\vspace*{-3mm}
|
||
\begin{itemize}
|
||
\setlength\itemsep{0.005em}
|
||
\item metodę ruletki,
|
||
\item metodę rankingową,
|
||
\item metodę turniejową.
|
||
\end{itemize}
|
||
|
||
\begin{example}
|
||
\textbf{Metoda ruletki.} \newline
|
||
Niech $f(o_i)$ będzie przystosowaniem osobnika $o_i$ z populacji $P$, wtedy
|
||
prawdopodbieństwo wyboru $o_i$ wynosi:
|
||
\begin{equation*}
|
||
p_i = \frac{f(o_i)}{\sum_{j=1}^N f(o_i)},
|
||
\end{equation*}
|
||
gdzie $N$ to rozmiar populacji $P$.
|
||
\end{example}
|
||
\vspace*{-3mm}
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.7\hsize]{selekcja.png}
|
||
\caption{Przykład selekcji metodą ruletki. Losowana jest liczba $r$ z zakresu
|
||
$(0,F)$. \newline W
|
||
tym wypadku wybrany został osobnik $o_4$.}
|
||
\label{selekcja_pic}
|
||
\end{figure}
|
||
|
||
\subsection{Krzyżowanie}
|
||
Krzyżowanie jest to metoda używana do tworzenia nowych osobników. Każdy nowy osobnik tworzony jest
|
||
z pary rodziców. Krzyżowanie polega na łączeniu dwóch
|
||
genotypów w jeden. Potomek rodziców ma zespół cech, które są kombinacją genotypów
|
||
rodziców.
|
||
\enlargethispage{4\baselineskip}
|
||
|
||
\begin{example}
|
||
\end{example}
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\hsize]{krzyzowanie.png}
|
||
\caption{Przykładowe krzyżowanie osobników zakodowanych binarnie.}
|
||
\label{krzyzowanie_pic}
|
||
\end{figure}
|
||
|
||
\subsection{Mutacja}
|
||
Mutacja jest to operator genetyczny gwarantujący różnorodność osobników. Mutacja wprowadza do
|
||
genotypu losowe zmiany. Zazwyczaj mutacja zachodzi z bardzo niskim
|
||
prawdopodbieństwem - najczęściej około 1\%. Wyższe prawdopodbieństwo mogłoby
|
||
spowodobać, że rozwiązania psułyby się zamiast delikatnie zmieniały.
|
||
|
||
W zależności od kodowania mutację można przeprowadzić przykładowo na następujące sposoby:
|
||
\begin{itemize}
|
||
\item w przypadku kodowania binarnego można zanegować losowy bit,
|
||
\item w przypadku kodowania liczbami całkowitymi (rzeczywistymi) można losowy
|
||
gen zamienić liczbą wylosowaną z ustalonego ręcznie zakresu liczb całkowitych (rzeczywistych).
|
||
\end{itemize}
|
||
|
||
\newpage
|
||
\begin{example}
|
||
\end{example}
|
||
\begin{figure}[th]
|
||
\centering
|
||
\includegraphics[width=0.3\hsize]{mutacja.png}
|
||
\caption{Mutacja poprzez zanegowanie losowego bitu.}
|
||
\label{mutacja_pic}
|
||
\end{figure}
|
||
|
||
\subsection{Kryterium stopu}
|
||
Proces generowania coraz to nowyszych pokoleń trwa aż do osiągnięcia kryterium stopu. Popularne kryteria to:
|
||
\begin{itemize}
|
||
\item z góry ustalona liczba iteracji,
|
||
\item znalezienie osobnika (rozwiązania), dla którego funkcja przystosowania
|
||
\newline da
|
||
wystarczająco dobry wynik,
|
||
\item wykorzystanie określonej liczby zasobów np. czasu pracy procesora lub pieniędzy,
|
||
\item przerwanie procesu, gdy kolejne iteracje nie tworzą lepszych rozwiązań,
|
||
\item osiągnięcie najlepszego rozwiązania.
|
||
\end{itemize}
|
||
|
||
\newpage
|
||
\section{Sieci neuronowe}
|