Dokończono algorytmy genetyczne.

This commit is contained in:
siulkilulki 2018-03-25 17:48:44 +02:00
parent 5c8b1443fa
commit 1e29668ef3
16 changed files with 296 additions and 83 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

View File

@ -2,6 +2,8 @@
\input{pakiety.tex}
\input{ustawienia.tex}
\graphicspath{{img/}}
\newcommand\blankpage{%
\null
\thispagestyle{empty}%
@ -12,6 +14,9 @@
\pagenumbering{roman}
\theoremstyle{definition}
\newtheorem{example}{Przykład}
\numberwithin{example}{chapter}
% strona tytulowa
\input{strona_tytulowa.tex}
% oswiadczenie
@ -71,7 +76,7 @@
\begin{center}
\Large{Uniwersytet im. A. Mickiewicza w Poznaniu} \\
\large{Wydział Matematyki i Informatyki}\\
%\vskip0.2in
%\vskip0.2in
\large{Praca magisterska}\\
\large{\textbf{Ekstrakcja informacji o godzinach rozpoczęcia mszy świętych}}\\
\normalsize{\textbf{Extracting information about church services start times}}\\
@ -166,6 +171,7 @@ Jednocześnie przyjmuję do wiadomości, że przypisanie sobie, w pracy dyplomow
\usepackage{floatflt} % ladne oplywanie obrazkow tekstem
\usepackage{url} % url w bibliografii
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{tabularx} %lepsze tabele nie uzywane
\usepackage{makecell} % do formatowania cell w tabelach
@ -234,62 +240,169 @@ Jednocześnie przyjmuję do wiadomości, że przypisanie sobie, w pracy dyplomow
\section{Algorytmy genetyczne}
Algorytmy genetyczny jest to metaheurystyka zainspirowana teorią ewolucji
Algorytm genetyczny jest to metaheurystyka zainspirowana teorią ewolucji
Charlsa Darwin'a. Algorytm odzierciedla zjawisko ewolucji biologicznej.
W procesie naturalnej selekcji najlepsze osobniki wezmą udział w reprodukcji
dając początek nowej lepiej przystosowanej generacji.
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. Nawet gdyby wśród nowego
potomstwa znalazły się słabe
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.
Ta wiedzę przyrodnicza została przełożona na algorytm genetyczny.
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ę:
\begin{itemize}
\item inicjalizacji populacji,
\item funkcja przystosowania,
\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}
\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.
\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}
\textbf{Przykład}
\subsection{Funkcja przystosowania}
Funkcja przystosowania określa jak bardzo przystosowany jest osobnik (miara
jakości osobnika).
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}
Z każdej generacji wybierany jest podzbiór populacji, który będzie brał udział w
rozmnażaniu, w tworzeniu nowej generacji. Pojedyńcze osobniki wybierane są na
\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.
\subsection{Krzyżowanie}
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.
\subsection{Mutacja}
Operator genetyczny gwarantujący różnorodność osobników. Mutacja wprowadza do
genotypu losowe zmiany.
Proces generacji trwa aż do osiągnięcia kryterium stopu. Popularne kryteria to:
\noindent Wśród metod selekcji chromosomów wyróżniamy między innymi:
\vspace*{-3mm}
\begin{itemize}
\item ustalona z góry liczba iteracji
\item osobnik (rozwiązanie), która spełnia minimalne kryterium % ???
\item wykorzystanie określonej liczby zasobów np. czasu pracy procesora lub pieniędzy
\item kolejne iteracje nie tworzą lepszych rozwiązań
\item osiągnięcie najlepszego rozwiązania
\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}
\chapter{Metody ekstrakcji informacji}
% w kontekście mojego projektu
W tym rozdziale zaprezentowane są wybrane metody,
@ -679,17 +792,4 @@ Fourteenth International Conference on Computational Linguistics, Nantes, France
pages={87--112},
year={1994},
publisher={Springer}
}
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji timesuji
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

View File

@ -2,6 +2,8 @@
\input{pakiety.tex}
\input{ustawienia.tex}
\graphicspath{{img/}}
\newcommand\blankpage{%
\null
\thispagestyle{empty}%
@ -12,6 +14,9 @@
\pagenumbering{roman}
\theoremstyle{definition}
\newtheorem{example}{Przykład}
\numberwithin{example}{chapter}
% strona tytulowa
\input{strona_tytulowa.tex}
% oswiadczenie

BIN
model.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@ -20,6 +20,7 @@
\usepackage{floatflt} % ladne oplywanie obrazkow tekstem
\usepackage{url} % url w bibliografii
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{tabularx} %lepsze tabele nie uzywane
\usepackage{makecell} % do formatowania cell w tabelach

View File

@ -2,59 +2,166 @@
\section{Algorytmy genetyczne}
Algorytmy genetyczny jest to metaheurystyka zainspirowana teorią ewolucji
Algorytm genetyczny jest to metaheurystyka zainspirowana teorią ewolucji
Charlsa Darwin'a. Algorytm odzierciedla zjawisko ewolucji biologicznej.
W procesie naturalnej selekcji najlepsze osobniki wezmą udział w reprodukcji
dając początek nowej lepiej przystosowanej generacji.
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. Nawet gdyby wśród nowego
potomstwa znalazły się słabe
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.
Ta wiedzę przyrodnicza została przełożona na algorytm genetyczny.
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ę:
\begin{itemize}
\item inicjalizacji populacji,
\item funkcja przystosowania,
\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}
\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.
\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}
\textbf{Przykład}
\subsection{Funkcja przystosowania}
Funkcja przystosowania określa jak bardzo przystosowany jest osobnik (miara
jakości osobnika).
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}
Z każdej generacji wybierany jest podzbiór populacji, który będzie brał udział w
rozmnażaniu, w tworzeniu nowej generacji. Pojedyńcze osobniki wybierane są na
\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.
\subsection{Krzyżowanie}
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.
\subsection{Mutacja}
Operator genetyczny gwarantujący różnorodność osobników. Mutacja wprowadza do
genotypu losowe zmiany.
Proces generacji trwa aż do osiągnięcia kryterium stopu. Popularne kryteria to:
\noindent Wśród metod selekcji chromosomów wyróżniamy między innymi:
\vspace*{-3mm}
\begin{itemize}
\item ustalona z góry liczba iteracji
\item osobnik (rozwiązanie), która spełnia minimalne kryterium % ???
\item wykorzystanie określonej liczby zasobów np. czasu pracy procesora lub pieniędzy
\item kolejne iteracje nie tworzą lepszych rozwiązań
\item osiągnięcie najlepszego rozwiązania
\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}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB