diff --git a/ea/ub9/GOParameters.ser b/ea/ub9/GOParameters.ser index 15d30e6..060861b 100644 --- a/ea/ub9/GOParameters.ser +++ b/ea/ub9/GOParameters.ser Binary files differ diff --git a/ea/ub9/QuickHull.m b/ea/ub9/QuickHull.m new file mode 100644 index 0000000..cfb0813 --- /dev/null +++ b/ea/ub9/QuickHull.m @@ -0,0 +1,7 @@ +function [ output_args ] = QuickHull( input_args ) +%UNTITLED2 Summary of this function goes here +% Detailed explanation goes here + + +end + diff --git a/ea/ub9/ea9.pdf b/ea/ub9/ea9.pdf index 5f77385..9480768 100644 --- a/ea/ub9/ea9.pdf +++ b/ea/ub9/ea9.pdf Binary files differ diff --git a/ea/ub9/ea9.tex b/ea/ub9/ea9.tex index 730189a..7449e2b 100644 --- a/ea/ub9/ea9.tex +++ b/ea/ub9/ea9.tex @@ -84,7 +84,7 @@ \vspace{0.5cm} \Aufgabe{Baumstrukturen}{6}\\ \begin{enumerate}[(a)] - \item F6 Problem: Unterschied Komma- und Plusselektion: Kommaselektion erreicht das Minimum bei (4,30) nach ca 3000 Iterationen.. Bei der Plusselektion kovergiert keine der Versuchten Prameterkombinationen vor 50000 iterationen. Bei der Rastriginsfunktion ist es sehr Wahrscheinlich, dass sich Eltern bereits in einem lokalen Minimum befinden und deshalb eine relativ Hohe Fitness haben. Wichtig beim finden des globalen Mimimums der Rstriginfunktion ist es aber das lokale Minimum ständig zu verlassen. Um ein größeres lokales Minimum zu finden. + \item F6 Problem: Unterschied Komma- und Plusselektion: Kommaselektion erreicht das Minimum bei (4,30) nach ca. 3000 Iterationen. Bei der Plusselektion konvergiert keine der versuchten Parameterkombinationen vor 50000 Iterationen. Bei der Rastriginsfunktion ist es sehr Wahrscheinlich, dass sich Eltern bereits in einem lokalen Minimum befinden und deshalb eine relativ hohe Fitness haben. Wichtig beim finden des globalen Minimums der Rastriginfunktion ist es aber das lokale Minimum ständig zu verlassen. Um ein größeres lokales Minimum zu finden. Siehe Abbildung \ref{fig:Problemf6komma} und Abbildung \ref{fig:LensPlus}. \begin{figure}[!htb] \centering @@ -99,14 +99,14 @@ \caption{Rastrigins Funktion + Strategie} \label{fig:Problem_f6+} \end{figure} - \item F8 Problem: Unterschied Komma- und Plusselektion: Kommaselektion erreicht das Minimum mit den besten Parametern(4,20) nach ca 2000 Iterationen. Bei der besten Plusselektion (4,20) wird nach ca 3500 Iterationen das Minimum erreicht . Allgemein benötigt die Plusselektion immer mehr Iterationen als die jeweilige Kommaselektion mit den gleichen Parametern. Die Ackleyfunktion konvergiert bei der Plusselektion um Vergleich zur Rastriginsfunktion, da es leichter für die Kinder ist aus einem Minimum heraus in ein bessere Minimum zu gelangen da der Gradient gerade im Zentrum stark ausgeprägt ist. + \item F8 Problem: Unterschied Komma- und Plusselektion: Kommaselektion erreicht das Minimum mit den besten Parametern(4,20) nach ca 2000 Iterationen. Bei der besten Plusselektion (4,20) wird nach ca 3500 Iterationen das Minimum erreicht. Bei der Ackleyfunktion wird das globale Minimum im Gegensatz zur Rastriginsfunktion gefunden, da dieses dort entscheidend niedriger liegt als die lokalen Minima. Siehe Abbildung \ref{fig:Problem8Komma} und Abbildung \ref{fig:Problem8Plus}. \begin{figure}[!htb] \centering \includegraphics[width=0.7\linewidth]{Problem8Komma} -\caption{Rastrigins Funktion , Strategie} +\caption{Ackley's Funktion , Strategie} \label{fig:Problem8Komma} \end{figure} @@ -119,7 +119,7 @@ \item Linsenproblem. Es ergibt sich kein deutlicher Unterschied im Konvergenzverhalten zwischen Komma- und Plusselektion. \\ - Unsicher: Die Optimierungsfunktion sollte keine lokalen Minima besitzen. Deshalb bleibt man bei Hinzunahme der Eltern auch nicht in lokalen Minima stecken. + Mögliche lokale Minima haben keinen großen Einfluss. Siehe Abbildung \ref{fig:LensKomma} und Abbildung \ref{fig:LensPlus}. diff --git a/mr/ub10/A3c/step1.fig b/mr/ub10/A3c/step1.fig new file mode 100644 index 0000000..8cd2b16 --- /dev/null +++ b/mr/ub10/A3c/step1.fig Binary files differ diff --git a/mr/ub10/A3c/step2.fig b/mr/ub10/A3c/step2.fig new file mode 100644 index 0000000..da19758 --- /dev/null +++ b/mr/ub10/A3c/step2.fig Binary files differ diff --git a/mr/ub10/A3c/step3.fig b/mr/ub10/A3c/step3.fig new file mode 100644 index 0000000..4a32f82 --- /dev/null +++ b/mr/ub10/A3c/step3.fig Binary files differ diff --git a/mr/ub10/A3c/step4.fig b/mr/ub10/A3c/step4.fig new file mode 100644 index 0000000..42f4163 --- /dev/null +++ b/mr/ub10/A3c/step4.fig Binary files differ diff --git a/mr/ub10/A3c/step5.fig b/mr/ub10/A3c/step5.fig new file mode 100644 index 0000000..fd65259 --- /dev/null +++ b/mr/ub10/A3c/step5.fig Binary files differ diff --git a/mr/ub10/A3c/step6.fig b/mr/ub10/A3c/step6.fig new file mode 100644 index 0000000..d033294 --- /dev/null +++ b/mr/ub10/A3c/step6.fig Binary files differ diff --git a/mr/ub10/EX1.m b/mr/ub10/EX1.m new file mode 100644 index 0000000..a9ca7be --- /dev/null +++ b/mr/ub10/EX1.m @@ -0,0 +1,66 @@ +p=[24,10;27,1;35,1;38,4;34,9;44,8;50,19;44,25;24,25;30,18;24,10;27,1] +x=p(:,1); +y=p(:,2); + +[~,xmin]=min(x); +[~,xmax]=max(x); +xmin +xmax +%expanded red +%new added green +%poligon red + +figure(1) +scatter(x,y); +line(p([1,7],1),p([1,7],2),'Color',[1 0 0]) +line(p([1,3],1),p([1,3],2),'Color',[0 1 0]) +line(p([7,3],1),p([7,3],2),'Color',[0 1 0]) + +figure(2) +scatter(x,y); +line(p([1,7],1),p([1,7],2),'Color',[0 0 1]) +line(p([7,3],1),p([7,3],2),'Color',[0 0 1]) +line(p([1,3],1),p([1,3],2),'Color',[1 0 0]) +line(p([1,2],1),p([1,2],2),'Color',[0 1 0]) +line(p([3,2],1),p([3,2],2),'Color',[0 1 0]) + +figure(3) +scatter(x,y); +line(p([1,7],1),p([1,7],2),'Color',[0 0 1]) +line(p([7,3],1),p([7,3],2),'Color',[1 0 0]) +line(p([1,2],1),p([1,2],2),'Color',[0 0 1]) +line(p([3,2],1),p([3,2],2),'Color',[0 0 1]) +line(p([7,6],1),p([7,6],2),'Color',[0 1 0]) +line(p([3,6],1),p([3,6],2),'Color',[0 1 0]) + +figure(4) +scatter(x,y); +line(p([1,2],1),p([1,2],2),'Color',[0 0 1]) +line(p([3,2],1),p([3,2],2),'Color',[0 0 1]) +line(p([7,6],1),p([7,6],2),'Color',[0 0 1]) +line(p([3,6],1),p([3,6],2),'Color',[0 0 1]) +line(p([9,7],1),p([9,7],2),'Color',[0 1 0]) +line(p([9,1],1),p([9,1],2),'Color',[0 1 0]) + +figure(5) +scatter(x,y); +line(p([1,2],1),p([1,2],2),'Color',[0 0 1]) +line(p([3,2],1),p([3,2],2),'Color',[0 0 1]) +line(p([7,6],1),p([7,6],2),'Color',[0 0 1]) +line(p([3,6],1),p([3,6],2),'Color',[0 0 1]) +line(p([9,7],1),p([9,7],2),'Color',[1 0 0]) +line(p([9,1],1),p([9,1],2),'Color',[0 0 1]) +line(p([9,8],1),p([9,8],2),'Color',[0 1 0]) +line(p([8,7],1),p([8,7],2),'Color',[0 1 0]) + +figure(6) +scatter(x,y); +line(p([1,2],1),p([1,2],2),'Color',[0 0 1]) +line(p([3,2],1),p([3,2],2),'Color',[0 0 1]) +line(p([7,6],1),p([7,6],2),'Color',[0 0 1]) +line(p([3,6],1),p([3,6],2),'Color',[0 0 1]) +line(p([9,1],1),p([9,1],2),'Color',[0 0 1]) +line(p([9,8],1),p([9,8],2),'Color',[0 0 1]) +line(p([8,7],1),p([8,7],2),'Color',[0 0 1]) + + diff --git a/mr/ub10/Untitled.ipynb b/mr/ub10/Untitled.ipynb new file mode 100644 index 0000000..17a07f5 --- /dev/null +++ b/mr/ub10/Untitled.ipynb @@ -0,0 +1,117 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "\n", + "def qhull(pts):\n", + " maxx = max(pts, key=lambda pt: pt[0])\n", + " minx = min(pts, key=lambda pt: pt[0])\n", + " hull_up = handle_line(pts, (minx, maxx))\n", + " hull_down = handle_line(pts, (maxx, minx))\n", + " return hull_up + hull_down" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def handle_line(pts, line):\n", + " left = [p for p in pts if leftOf(p, line)]\n", + " if len(left) == 0: return []\n", + " pivot = max(left, key=lambda pt: distanceToLine(pt, line))\n", + " \n", + " l = handle_line(left, (line[0], pivot))\n", + " r = handle_line(left, (pivot, line[1]))\n", + " hull= [line[0]] + l + [pivot] + r + [line[1]]\n", + " return hull\n", + "\n", + "def distanceToLine(pt, (f, t)):\n", + " return np.linalg.norm(cross(t - f, f - pt)) / np.linalg.norm(t - f)\n", + "def leftOf(pt, (f, t)):\n", + " return dot(ortho(t - f), (pt - f)) < -0.00000001\n", + "def ortho(v):\n", + " return np.array([-v[1], v[0]])" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "pts = np.array([[24,10],[27,1],[35,1],[38,4],[34,9],[44,8],[50,19],[44,25],[24,25],[30,18],[24,10],[27,1]])\n", + "pts[:,1]\n", + "plt.figure()\n", + "plt.scatter(pts[:,0],pts[:,1])\n", + "plt.show()\n", + "plt.figure()\n", + "plt.scatter([1,2,3],[1,3,4])\n", + "plt.show()\n", + "#print(qhull(pts))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/mr/ub10/assignment10.pdf b/mr/ub10/assignment10.pdf new file mode 100644 index 0000000..e76391a --- /dev/null +++ b/mr/ub10/assignment10.pdf Binary files differ diff --git a/mr/ub9/A2ParticleFilterResample.png b/mr/ub9/A2ParticleFilterResample.png new file mode 100644 index 0000000..27ae50c --- /dev/null +++ b/mr/ub9/A2ParticleFilterResample.png Binary files differ diff --git a/mr/ub9/A2particlefilter.png b/mr/ub9/A2particlefilter.png new file mode 100644 index 0000000..7e60c21 --- /dev/null +++ b/mr/ub9/A2particlefilter.png Binary files differ diff --git a/mr/ub9/MrUe9MutschlerHohloch.zip b/mr/ub9/MrUe9MutschlerHohloch.zip new file mode 100644 index 0000000..2ae7708 --- /dev/null +++ b/mr/ub9/MrUe9MutschlerHohloch.zip Binary files differ diff --git a/mr/ub9/loc_framework/localize_pf.m b/mr/ub9/loc_framework/localize_pf.m index cd2fcab..f9ce2c6 100644 --- a/mr/ub9/loc_framework/localize_pf.m +++ b/mr/ub9/loc_framework/localize_pf.m @@ -1,11 +1,11 @@ sume=zeros(3,1); -runs = 10; +runs = 1; for i=1:runs % ### Run some initialization initialization steps common to all filters localize_init; % ### Important parameters: - nSamples = 20; + nSamples = 100; ESSmin = 0.7*nSamples; % ### Evaluate PF without measurements: @@ -80,8 +80,8 @@ merr_yaw = abs(mae(3)) %_________________________________ %Ergebnisse 2 e -%1) ESSmin = 0.7*20; errpos: 0.2921 err_yaw= 0.0044 -%2) ESSmin = 0.4*20; errpos: 0.6017 erryaw=0.0120 -%3)ESSmin = always > ess; errpos: 0.1254 erryaw=0.0654 -%4)ESSmin = 0.1*10= errpos= 0.4363 err_yae 0.0393 -%Sollen wir heir die Zeit auch noch messen? \ No newline at end of file +%1) ESSmin = 0.7*20; errpos: 0.5078 err_yaw= 0.0464 +%2) ESSmin = 0.4*20; errpos: 0.6882 erryaw=0.1149 +%3)ESSmin = always > ess; errpos: 0.5342 erryaw=0.0174 +%4)ESSmin = 0.1*20= errpos= 0.8369 err_yae 0.1608 +%Sollen wir hier die Zeit auch noch messen? \ No newline at end of file diff --git a/mr/ub9/mr9.pdf b/mr/ub9/mr9.pdf new file mode 100644 index 0000000..964df6e --- /dev/null +++ b/mr/ub9/mr9.pdf Binary files differ diff --git a/mr/ub9/mr9.tex b/mr/ub9/mr9.tex new file mode 100644 index 0000000..ac2a0a5 --- /dev/null +++ b/mr/ub9/mr9.tex @@ -0,0 +1,127 @@ +\documentclass[a4paper,12pt]{scrartcl} +\usepackage[ngerman]{babel} +\usepackage{graphicx} %BIlder einbinden +\usepackage{amsmath} %erweiterte Mathe-Zeichen +\usepackage{amsfonts} %weitere fonts +\usepackage[utf8]{inputenc} %Umlaute & Co +\usepackage{hyperref} %Links +\usepackage{ifthen} %ifthenelse +\usepackage{enumerate} +\usepackage{pdfpages} +\usepackage{algpseudocode} %Pseudocode +\usepackage{dsfont} % schöne Zahlenräumezeichen +\usepackage{amssymb, amsthm} %noch stärker erweiterte Mathe-Zeichen +\usepackage{tikz} %TikZ ist kein Zeichenprogramm +\usetikzlibrary{trees,automata,arrows,shapes} +\usepackage{qtree} +\usepackage{listings} +\lstset{language=Matlab} + +\pagestyle{empty} + + +\topmargin-50pt + +\newcounter{aufgabe} +\def\tand{&} + +\newcommand{\makeTableLine}[2][0]{% + \setcounter{aufgabe}{1}% + \whiledo{\value{aufgabe} < #1}% + {% + #2\tand\stepcounter{aufgabe}% + } +} + +\newcommand{\aufgTable}[1]{ + \def\spalten{\numexpr #1 + 1 \relax} + \begin{tabular}{|*{\spalten}{p{1cm}|}} + \makeTableLine[\spalten]{A\theaufgabe}$\Sigma$~~\\ \hline + \rule{0pt}{15pt}\makeTableLine[\spalten]{}\\ + \end{tabular} +} + +\def\header#1#2#3#4#5#6#7{\pagestyle{empty} +\begin{minipage}[t]{0.47\textwidth} +\begin{flushleft} +{\bf #4}\\ +#5 +\end{flushleft} +\end{minipage} +\begin{minipage}[t]{0.5\textwidth} +\begin{flushright} +#6 \vspace{0.5cm}\\ +% Number of Columns Definition of Columns second empty line +% \begin{tabular}{|*{5}{C{1cm}|}}\hline A1&A2&A3&A4&$\Sigma$\\\hline&&&&\\\hline\end{tabular}\\\vspace*{0.1cm} +\aufgTable{#7} +\end{flushright} +\end{minipage} +\vspace{1cm} +\begin{center} +{\Large\bf Assignment #1} + +{(Hand-in date #3)} +\end{center} +} + + + +%counts the exercisenumber +\newcounter{n} + +%Kommando für Aufgaben +%\Aufgabe{AufgTitel}{Punktezahl} +\newcommand{\Aufgabe}[2]{\stepcounter{n} +\textbf{Exercise \arabic{n}: #1} (#2 Punkte)\\} + +\newcommand{\Normal}[3]{\mathcal{N}\left(#1,#2,#3\right)} +\newcommand{\Normalf}[3]{\frac{\left|#3\right|^{-\frac{1}{2}}}{\sqrt{2\pi}}e^{-\frac{\left(#1 - #2 \right)^2\cdot \left(#3\right)^{-1}}{2}}} + + + + +\begin{document} + %\header{BlattNr}{Tutor}{Abgabedatum}{Vorlesungsname}{Namen}{Semester}{Anzahl Aufgaben} + \header{9}{}{2015-06-30}{Mobile Robots}{ + \textit{Jan-Peter Hohloch}\\ \textit{Maximus Mutschler} + }{SS 15}{2} + \vspace{1cm} + + \Aufgabe{Unscented Kalman Filter}{10} + \begin{figure}[!htb] +\centering +\includegraphics[width=0.7\linewidth]{a1f1} +\caption{ UKF without measurements} +\label{fig:a1f1} +\end{figure} +\begin{figure}[!htb] +\centering +\includegraphics[width=0.7\linewidth]{a1f2} +\caption{UKF with measurements} +\label{fig:a1f2} +\end{figure} + + \pagebreak +\Aufgabe{Particle Filter}{10} +\begin{figure}[!htb] +\centering +\includegraphics[width=0.7\linewidth]{A2particlefilter} +\caption{PF without measurements} +\label{fig:A2particlefilter} +\end{figure} +\begin{figure}[!htb] +\centering +\includegraphics[width=0.7\linewidth]{A2ParticleFilterResample} +\caption{PF with measurements} +\label{fig:A2ParticleFilterResample} +\end{figure} +\\\\\\\\\ +2e:\\ +1) ESSmin = 0.7*20; errpos: 0.5078 erryaw= 0.0464\\ +2) ESSmin = 0.4*20; errpos: 0.6882 erryaw=0.1149\\ +3)ESSmin = always $>$ ess; errpos: 0.5342 erryaw=0.0174\\ +4)ESSmin = 0.1*20= errpos= 0.8369 erryaw 0.1608\\ + + +\end{document} +