2018-02-01 23:30:49 +01:00
|
|
|
|
\chapter{Podstawowe pojęcia}
|
2018-03-12 23:12:25 +01:00
|
|
|
|
|
|
|
|
|
\section{Algorytmy genetyczne}
|
|
|
|
|
|
2018-03-25 17:48:44 +02:00
|
|
|
|
Algorytm genetyczny jest to metaheurystyka zainspirowana teorią ewolucji
|
2018-03-12 23:12:25 +01:00
|
|
|
|
Charlsa Darwin'a. Algorytm odzierciedla zjawisko ewolucji biologicznej.
|
2018-03-25 17:48:44 +02:00
|
|
|
|
W procesie naturalnej selekcji najlepsze osobniki biorą udział w reprodukcji,
|
|
|
|
|
dając początek nowej, lepiej przystosowanej generacji.
|
|
|
|
|
% przecinek
|
2018-03-12 23:12:25 +01:00
|
|
|
|
|
|
|
|
|
Naturalna selekcja zaczyna się od doboru najdoskonalszych osobników z populacji.
|
|
|
|
|
Biorą one udział w reprodukcji przekazując część swoich genów potomkom. Nowa
|
2018-03-25 17:48:44 +02:00
|
|
|
|
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
|
2018-03-12 23:12:25 +01:00
|
|
|
|
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.
|
2018-03-25 17:48:44 +02:00
|
|
|
|
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}
|
2018-03-12 23:12:25 +01:00
|
|
|
|
Na algorytm genetyczny składają się:
|
2018-03-25 17:48:44 +02:00
|
|
|
|
\vspace*{-1mm}
|
|
|
|
|
\begin{itemize}[noitemsep]
|
|
|
|
|
% \setlength\itemsep{0.005em}
|
|
|
|
|
\item inicjalizacja populacji,
|
|
|
|
|
\item funkcja przystosowania (stosowana przy ewaluacji i selekcji),
|
2018-03-12 23:12:25 +01:00
|
|
|
|
\item selekcja,
|
|
|
|
|
\item krzyżowanie,
|
|
|
|
|
\item mutacja.
|
|
|
|
|
\end{itemize}
|
2018-03-12 23:12:25 +01:00
|
|
|
|
|
2018-03-25 17:48:44 +02:00
|
|
|
|
\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
|
2018-03-12 23:12:25 +01:00
|
|
|
|
\subsection{Inicjalizacja populacji}
|
2018-03-25 17:48:44 +02:00
|
|
|
|
Algorytm zaczyna się od utworzenia zbioru osobników zwanych populacją. Każdy z
|
2018-03-12 23:12:25 +01:00
|
|
|
|
osobników jest rozwiązaniem problemu obliczeniowego. Osobnik reprezentowany jest
|
2018-03-25 17:48:44 +02:00
|
|
|
|
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}
|
2018-03-12 23:12:25 +01:00
|
|
|
|
|
|
|
|
|
\subsection{Funkcja przystosowania}
|
|
|
|
|
Funkcja przystosowania określa jak bardzo przystosowany jest osobnik (miara
|
2018-03-25 17:48:44 +02:00
|
|
|
|
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}
|
|
|
|
|
|
2018-03-12 23:12:25 +01:00
|
|
|
|
\subsection{Selekcja}
|
2018-03-25 17:48:44 +02:00
|
|
|
|
\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
|
2018-03-20 23:48:02 +01:00
|
|
|
|
podstawie funkcji przystosowania. Im lepiej przystosowany dany osobnik tym
|
|
|
|
|
większe będzie miał szanse na wzięcie udziału w reprodukcji.
|
|
|
|
|
|
2018-03-25 17:48:44 +02:00
|
|
|
|
\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}
|
|
|
|
|
|
2018-03-12 23:12:25 +01:00
|
|
|
|
\subsection{Krzyżowanie}
|
2018-03-25 17:48:44 +02:00
|
|
|
|
Krzyżowanie jest to metoda używana do tworzenia nowych osobników. Każdy nowy osobnik tworzony jest
|
2018-03-20 23:48:02 +01:00
|
|
|
|
z pary rodziców. Krzyżowanie polega na łączeniu dwóch
|
2018-03-25 17:48:44 +02:00
|
|
|
|
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}
|
|
|
|
|
|
2018-03-12 23:12:25 +01:00
|
|
|
|
\subsection{Mutacja}
|
2018-03-25 17:48:44 +02:00
|
|
|
|
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.
|
2018-03-20 23:48:02 +01:00
|
|
|
|
|
2018-03-25 17:48:44 +02:00
|
|
|
|
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}
|
2018-03-20 23:48:02 +01:00
|
|
|
|
|
2018-03-25 17:48:44 +02:00
|
|
|
|
\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:
|
2018-03-20 23:48:02 +01:00
|
|
|
|
\begin{itemize}
|
2018-03-25 17:48:44 +02:00
|
|
|
|
\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.
|
2018-03-20 23:48:02 +01:00
|
|
|
|
\end{itemize}
|
2018-03-25 17:48:44 +02:00
|
|
|
|
|
|
|
|
|
\newpage
|
|
|
|
|
\section{Sieci neuronowe}
|