diff --git a/arbeit/Makefile b/arbeit/Makefile index 1f5719a..a388c4b 100644 --- a/arbeit/Makefile +++ b/arbeit/Makefile @@ -1,11 +1,11 @@ all: ma.md bibma.bib template.tex settings/abkuerzungen.tex settings/commands.tex settings/environments.tex settings/hyphenation.tex settings/packages.tex files/titlepage.tex files/erklaerung.tex pandoc -s -N --template=template.tex ma.md -o ma.tex rm -f ma.pdf ma.aux ma.idx ma.lof ma.log ma.lot ma.out ma.tdo ma.toc ma.bbl ma.blg ma.loa - pdflatex -interaction batchmode ma.tex || true + xelatex -interaction batchmode ma.tex || true bibtexu ma - pdflatex -interaction batchmode ma.tex || true + xelatex -interaction batchmode ma.tex || true while test `cat ma.log | grep -e "\(Rerun to get citations correct\)" | wc -l` -gt 0 ; do \ - rm ma.log && (pdflatex -interaction batchmode ma.tex || true) \ + rm ma.log && (xelatex -interaction batchmode ma.tex || true) \ done rm -f ma.aux ma.idx ma.lof ma.lot ma.out ma.tdo ma.toc ma.bbl ma.blg ma.loa # rm -f ma.log diff --git a/arbeit/TODO.md b/arbeit/TODO.md index 925c3a7..2b55158 100644 --- a/arbeit/TODO.md +++ b/arbeit/TODO.md @@ -1,6 +1,9 @@ 10x10x10 3x variablität errechnen - variablität soll sich unterscheiden -> Plot - Punkte in der Mitte tragen nichts zur Parametrisierung bei, da zu weit weg -4x5x4, 4x4x7 100x rechnen + plotten + +4x4x5, 7x4x4 100x rechnen + plotten + - 1. done, 2. rechnet 1D-Fall noch 7x4, 4x7 und 7x7 als hochauflösendes. + - done diff --git a/arbeit/bibma.bib b/arbeit/bibma.bib index 386d802..ff32e43 100644 --- a/arbeit/bibma.bib +++ b/arbeit/bibma.bib @@ -87,3 +87,31 @@ doi = {10.1137/0111030}, URL = {https://doi.org/10.1137/0111030}, eprint = {https://doi.org/10.1137/0111030} } +@article{minai2006complex, + title={Complex engineered systems: A new paradigm}, + author={Minai, Ali A and Braha, Dan and Bar-Yam, Yaneer}, + journal={Complex engineered systems: Science meets technology}, + pages={1--21}, + year={2006}, + publisher={Springer}, + url={https://www.researchgate.net/profile/Yaneer_Bar-Yam/publication/225104044_Complex_Engineered_Systems_A_New_Paradigm/links/59107f20a6fdccbfd57eb84d/Complex-Engineered-Systems-A-New-Paradigm.pdf} +} +@article{wagner1996complex, + title={COMPLEX ADAPTATIONS AND THE EVOLUTION OF EVOLVABILITY}, + author={WAGNER, GUNTER P and ALTENBERG23, LEE}, + journal={Evolution}, + volume={50}, + number={3}, + pages={967--976}, + year={1996}, + url={http://arep.med.harvard.edu/pdf/Wagner96.pdf}, +} +@inproceedings{richter2015evolvability, + title={Evolvability of representations in complex system engineering: a survey}, + author={Richter, Andreas and Botsch, Mario and Menzel, Stefan}, + booktitle={Evolutionary Computation (CEC), 2015 IEEE Congress on}, + pages={1327--1335}, + year={2015}, + organization={IEEE}, + url={http://www.graphics.uni-bielefeld.de/publications/cec15.pdf} +} diff --git a/arbeit/files/erklaerung.tex b/arbeit/files/erklaerung.tex index 5a476c2..14df900 100644 --- a/arbeit/files/erklaerung.tex +++ b/arbeit/files/erklaerung.tex @@ -2,11 +2,10 @@ \thispagestyle{empty} \vspace*{\stretch{1}} \noindent -{\huge Erklärung}\\[1cm] +{\huge Declaration of own work(?)}\\[1cm] I hereby declare that this thesis is my own work and effort. Where other sources of information have been used, they have been acknowledged. -blah blah - -\\[2cm] +\improvement[inline]{write proper declaration..} +%\\[2cm] Bielefeld, den \today\hspace{\fill} \parbox[t]{5cm}{\dotfill\\ \centering Stefan Dresselhaus} \vspace*{\stretch{3}} diff --git a/arbeit/ma.md b/arbeit/ma.md index dee2575..34552d0 100644 --- a/arbeit/ma.md +++ b/arbeit/ma.md @@ -24,20 +24,54 @@ Unless otherwise noted the following holds: # Introduction \improvement[inline]{mehr Motivation, Ziel der Arbeit, Wieso das ganze?\newline -Wieso untersuchen wir das überhaupt?\newline +Wieso untersuchen wir das überhaupt? \cmark \newline +Aufbau der Arbeit? \xmark \newline Mehr Bilder} -In this Master Thesis we try to extend a previously proposed concept of -predicting the evolvability of \acf{FFD} given a -Deformation-Matrix\cite{anrichterEvol}. In the original publication the author -used random sampled points weighted with \acf{RBF} to deform the mesh and -defined three different criteria that can be calculated prior to using an -evolutional optimization algorithm to asses the quality and potential of such -optimization. +Many modern industrial design processes require advanced optimization methods +do to the increased complexity. These designs have to adhere to more and more +degrees of freedom as methods refine and/or other methods are used. Examples for +this are physical domains like aerodynamic (i.e. drag), fluid dynamics (i.e. +throughput of liquid) -- where the complexity increases with the temporal and +spatial resolution of the simulation -- or known hard algorithmic problems in +informatics (i.e. layouting of circuit boards or stacking of 3D-objects). +Moreover these are typically not static environments but requirements shift over +time or from case to case. + +Evolutional algorithms cope especially well with these problem domains while +addressing all the issues at hand\cite{minai2006complex}. One of the main +concerns in these algorithms is the formulation of the problems in terms of a +genome and a fitness function. While one can typically use an arbitrary +cost-function for the fitness-functions (i.e. amount of drag, amount of space, +etc.), the translation of the problem-domain into a simple parametric +representation can be challenging. + +The quality of such a representation in biological evolution is called +*evolvability*\cite{wagner1996complex} and is at the core of this thesis. +However, there is no consensus on how *evolvability* is defined and the meaning +varies from context to context\cite{richter2015evolvability}. + +As we transfer the results of Richter et al.\cite{anrichterEvol} from using +\acf{RBF} as a representation to manipulate a geometric mesh to the use of +\acf{FFD} we will use the same definition for evolvability the original author +used, namely *regularity*, *variability*, and *improvement potential*. We +introduce these term in detail in Chapter \ref{sec:intro:rvi}. + +In the original publication the author used random sampled points weighted with +\acf{RBF} to deform the mesh and showed that the mentioned criteria of +*regularity*, *variability*, and *improvement potential* correlate with the quality +and potential of such optimization. We will replicate the same setup on the same meshes but use \acf{FFD} instead of -\acf{RBF} to create a deformation and evaluate if the evolution-criteria still -work as a predictor given the different deformation scheme. +\acf{RBF} to create a local deformation near the control points and evaluate if +the evolution-criteria still work as a predictor given the different deformation +scheme, as suspected in \cite{anrichterEvol}. + +## Outline of this thesis + +\improvement[inline]{Kapitel vorstellen, Inhalt? Ziel?} + +# Background ## What is \acf{FFD}? \label{sec:intro:ffd} @@ -150,6 +184,7 @@ optimization has one more advantage as you get bad solutions fast, which refine over time. ## Criteria for the evolvability of linear deformations +\label{sec:intro:rvi} ### Variability @@ -286,7 +321,7 @@ To solve this we derive partially, like before: $$ \begin{array}{rl} \displaystyle \frac{\partial Err_x}{\partial u} & p^{*}_x - \displaystyle \sum_i \sum_j \sum_k N_{i,d,\tau_i}(u) N_{j,d,\tau_j}(v) N_{k,d,\tau_k}(w) \cdot {c_{ijk}}_x \\ - = & \displaystyle - \sum_i \sum_j \sum_k N'_i(u) N_{j,d,\tau_j}(v) N_{k,d,\tau_k}(w) \cdot {c_{ijk}}_x + = & \displaystyle - \sum_i \sum_j \sum_k N'_{i,d,\tau_i}(u) N_{j,d,\tau_j}(v) N_{k,d,\tau_k}(w) \cdot {c_{ijk}}_x \end{array} $$ @@ -302,10 +337,17 @@ J(Err(u,v,w)) = \end{array} \right) $$ - -\unsure[inline]{Should I add an informal complete derivative?\newline -Like leaving out Sums & $i,j,k$-Indices to make obvious what derivative belongs -where in what case?} +$$ +\scriptsize += +\left( +\begin{array}{ccc} +- \displaystyle \sum_{i,j,k} N'_{i}(u) N_{j}(v) N_{k}(w) \cdot {c_{ijk}}_x &- \displaystyle \sum_{i,j,k} N_{i}(u) N'_{j}(v) N_{k}(w) \cdot {c_{ijk}}_x & - \displaystyle \sum_{i,j,k} N_{i}(u) N_{j}(v) N'_{k}(w) \cdot {c_{ijk}}_x \\ +- \displaystyle \sum_{i,j,k} N'_{i}(u) N_{j}(v) N_{k}(w) \cdot {c_{ijk}}_y &- \displaystyle \sum_{i,j,k} N_{i}(u) N'_{j}(v) N_{k}(w) \cdot {c_{ijk}}_y & - \displaystyle \sum_{i,j,k} N_{i}(u) N_{j}(v) N'_{k}(w) \cdot {c_{ijk}}_y \\ +- \displaystyle \sum_{i,j,k} N'_{i}(u) N_{j}(v) N_{k}(w) \cdot {c_{ijk}}_z &- \displaystyle \sum_{i,j,k} N_{i}(u) N'_{j}(v) N_{k}(w) \cdot {c_{ijk}}_z & - \displaystyle \sum_{i,j,k} N_{i}(u) N_{j}(v) N'_{k}(w) \cdot {c_{ijk}}_z +\end{array} +\right) +$$ With the Gauss-Newton algorithm we iterate via the formula $$J(Err(u,v,w)) \cdot \Delta \left( \begin{array}{c} u \\ v \\ w \end{array} \right) = -Err(u,v,w)$$ @@ -319,6 +361,9 @@ linear equations. - Deformation ist um einen Kontrollpunkt viel direkter zu steuern. - => DM-FFD? + +# Scenarios for testing evolvability criteria using \acf{FFD} + ## Test Scenario: 1D Function Approximation ### Optimierungszenario diff --git a/arbeit/ma.pdf b/arbeit/ma.pdf index d7f9df3..ac52bb0 100644 Binary files a/arbeit/ma.pdf and b/arbeit/ma.pdf differ diff --git a/arbeit/ma.tex b/arbeit/ma.tex index 9221ff3..d3147ea 100644 --- a/arbeit/ma.tex +++ b/arbeit/ma.tex @@ -148,18 +148,60 @@ Unless otherwise noted the following holds: \chapter{Introduction}\label{introduction} -In this Master Thesis we try to extend a previously proposed concept of -predicting the evolvability of \acf{FFD} given a -Deformation-Matrix\cite{anrichterEvol}. In the original publication the -author used random sampled points weighted with \acf{RBF} to deform the -mesh and defined three different criteria that can be calculated prior -to using an evolutional optimization algorithm to asses the quality and -potential of such optimization. +\improvement[inline]{mehr Motivation, Ziel der Arbeit, Wieso das ganze?\newline +Wieso untersuchen wir das überhaupt? \cmark \newline +Aufbau der Arbeit? \xmark \newline +Mehr Bilder} + +Many modern industrial design processes require advanced optimization +methods do to the increased complexity. These designs have to adhere to +more and more degrees of freedom as methods refine and/or other methods +are used. Examples for this are physical domains like aerodynamic +(i.e.~drag), fluid dynamics (i.e.~throughput of liquid) -- where the +complexity increases with the temporal and spatial resolution of the +simulation -- or known hard algorithmic problems in informatics +(i.e.~layouting of circuit boards or stacking of 3D-objects). Moreover +these are typically not static environments but requirements shift over +time or from case to case. + +Evolutional algorithms cope especially well with these problem domains +while addressing all the issues at hand\cite{minai2006complex}. One of +the main concerns in these algorithms is the formulation of the problems +in terms of a genome and a fitness function. While one can typically use +an arbitrary cost-function for the fitness-functions (i.e.~amount of +drag, amount of space, etc.), the translation of the problem-domain into +a simple parametric representation can be challenging. + +The quality of such a representation in biological evolution is called +\emph{evolvability}\cite{wagner1996complex} and is at the core of this +thesis. However, there is no consensus on how \emph{evolvability} is +defined and the meaning varies from context to +context\cite{richter2015evolvability}. + +As we transfer the results of Richter et al.\cite{anrichterEvol} from +using \acf{RBF} as a representation to manipulate a geometric mesh to +the use of \acf{FFD} we will use the same definition for evolvability +the original author used, namely \emph{regularity}, \emph{variability}, +and \emph{improvement potential}. We introduce these term in detail in +Chapter \ref{sec:intro:rvi}. + +In the original publication the author used random sampled points +weighted with \acf{RBF} to deform the mesh and showed that the mentioned +criteria of \emph{regularity}, \emph{variability}, and \emph{improvement +potential} correlate with the quality and potential of such +optimization. We will replicate the same setup on the same meshes but use \acf{FFD} -instead of \acf{RBF} to create a deformation and evaluate if the -evolution-criteria still work as a predictor given the different -deformation scheme. +instead of \acf{RBF} to create a local deformation near the control +points and evaluate if the evolution-criteria still work as a predictor +given the different deformation scheme, as suspected in +\cite{anrichterEvol}. + +\section{Outline of this thesis}\label{outline-of-this-thesis} + +\improvement[inline]{Kapitel vorstellen, Inhalt? Ziel?} + +\chapter{Background}\label{background} \section{\texorpdfstring{What is \acf{FFD}?}{What is ?}}\label{what-is} @@ -281,6 +323,8 @@ you get bad solutions fast, which refine over time. \section{Criteria for the evolvability of linear deformations}\label{criteria-for-the-evolvability-of-linear-deformations} +\label{sec:intro:rvi} + \subsection{Variability}\label{variability} In \cite{anrichterEvol} variability is defined as @@ -424,7 +468,7 @@ To solve this we derive partially, like before: \[ \begin{array}{rl} \displaystyle \frac{\partial Err_x}{\partial u} & p^{*}_x - \displaystyle \sum_i \sum_j \sum_k N_{i,d,\tau_i}(u) N_{j,d,\tau_j}(v) N_{k,d,\tau_k}(w) \cdot {c_{ijk}}_x \\ - = & \displaystyle - \sum_i \sum_j \sum_k N'_i(u) N_{j,d,\tau_j}(v) N_{k,d,\tau_k}(w) \cdot {c_{ijk}}_x + = & \displaystyle - \sum_i \sum_j \sum_k N'_{i,d,\tau_i}(u) N_{j,d,\tau_j}(v) N_{k,d,\tau_k}(w) \cdot {c_{ijk}}_x \end{array} \] @@ -440,12 +484,18 @@ J(Err(u,v,w)) = \frac{\partial Err_z}{\partial u} & \frac{\partial Err_z}{\partial v} & \frac{\partial Err_z}{\partial w} \end{array} \right) +\] \[ +\scriptsize += +\left( +\begin{array}{ccc} +- \displaystyle \sum_{i,j,k} N'_{i}(u) N_{j}(v) N_{k}(w) \cdot {c_{ijk}}_x &- \displaystyle \sum_{i,j,k} N_{i}(u) N'_{j}(v) N_{k}(w) \cdot {c_{ijk}}_x & - \displaystyle \sum_{i,j,k} N_{i}(u) N_{j}(v) N'_{k}(w) \cdot {c_{ijk}}_x \\ +- \displaystyle \sum_{i,j,k} N'_{i}(u) N_{j}(v) N_{k}(w) \cdot {c_{ijk}}_y &- \displaystyle \sum_{i,j,k} N_{i}(u) N'_{j}(v) N_{k}(w) \cdot {c_{ijk}}_y & - \displaystyle \sum_{i,j,k} N_{i}(u) N_{j}(v) N'_{k}(w) \cdot {c_{ijk}}_y \\ +- \displaystyle \sum_{i,j,k} N'_{i}(u) N_{j}(v) N_{k}(w) \cdot {c_{ijk}}_z &- \displaystyle \sum_{i,j,k} N_{i}(u) N'_{j}(v) N_{k}(w) \cdot {c_{ijk}}_z & - \displaystyle \sum_{i,j,k} N_{i}(u) N_{j}(v) N'_{k}(w) \cdot {c_{ijk}}_z +\end{array} +\right) \] -\unsure[inline]{Should I add an informal complete derivative?\newline -Like leaving out Sums & $i,j,k$-Indices to make obvious what derivative belongs -where in what case?} - With the Gauss-Newton algorithm we iterate via the formula \[J(Err(u,v,w)) \cdot \Delta \left( \begin{array}{c} u \\ v \\ w \end{array} \right) = -Err(u,v,w)\] and use Cramers rule for inverting the small Jacobian and solving this @@ -463,6 +513,10 @@ system of linear equations. =\textgreater{} DM-FFD? \end{itemize} +\chapter{\texorpdfstring{Scenarios for testing evolvability criteria +using +\acf{FFD}}{Scenarios for testing evolvability criteria using }}\label{scenarios-for-testing-evolvability-criteria-using} + \section{Test Scenario: 1D Function Approximation}\label{test-scenario-1d-function-approximation} diff --git a/arbeit/settings/commands.tex b/arbeit/settings/commands.tex index 07f4682..4f0c48d 100644 --- a/arbeit/settings/commands.tex +++ b/arbeit/settings/commands.tex @@ -131,25 +131,6 @@ \newcommand{\myquote}[1]{\glqq{}#1\grqq{}} % richtige Anfuehrungszeichen: ,, Bla '' % \newcommand{\str}[1]{{\tt{}#1}} % einheitliche formatierung fuer zeichenketten -% ##### draft ##### -\newcommand{\ignore}[1]{} -\newcommand\info[1]{\marginpar{\begin{center}#1\end{center}}} -\newcommand\note{\marginpar{\begin{center}$\longleftarrow$\end{center}}} -\newcommand\picmis[1]{$$\boxed{\mbox{\ttfamily picture #1}}$$} -%Todo am Rand notieren -\begin{comment} -% DONE WITH \usepackage{todo} -\newcommand{\todo}[1]{% - \ensuremath{\bigstar}% - \marginpar{% - \begin{flushleft}% - \vspace{-1.5\baselineskip}% - {\small TODO\ \ensuremath{\bigstar}\\#1}% - \end{flushleft}% - }% -}% -\end{comment} - \newcommand\opdown[2]{\lower0.75em\hbox{$\stackrel{\displaystyle#1}{\scriptstyle#2}$}} \newcommand\toconv[2]{\;\lower0.5em\hbox{$\stackrel{\longrightarrow}{\scriptstyle#1\to#2}$}} \newcommand\wildcard[1]{\fbox{\ttfamily Platzhalter: #1}} @@ -179,3 +160,6 @@ \newcommandx{\info}[2][1=]{\todo[linecolor=OliveGreen,backgroundcolor=OliveGreen!25,bordercolor=OliveGreen,#1]{\textbf{Info:} #2}} \newcommandx{\improvement}[2][1=]{\todo[linecolor=violet,backgroundcolor=violet!25,bordercolor=violet,#1]{\textbf{Improvement:} #2}} \newcommandx{\thiswillnotshow}[2][1=]{\todo[disable,#1]{#2}} + +\renewcommand\cmark{\textcolor{OliveGreen}{\ding{51}}} +\renewcommand\xmark{\textcolor{Maroon}{\ding{55}}} diff --git a/arbeit/settings/packages.tex b/arbeit/settings/packages.tex index bfeabe7..9dea24b 100644 --- a/arbeit/settings/packages.tex +++ b/arbeit/settings/packages.tex @@ -1,3 +1,4 @@ +\usepackage[dvipsnames]{xcolor} \usepackage{acronym} % acronym list and writing acronyms full length exactly once % \usepackage{amsfonts} \usepackage{amsmath} %\align @@ -15,7 +16,7 @@ \usepackage{color} %\colorbox \usepackage{dsfont} %\mathds \usepackage{draftwatermark} -\SetWatermarkLightness{0.95} % default: 0.8 +\SetWatermarkLightness{0.9} % default: 0.8 \usepackage{epigraph} % \usepackage{euler} % euler: uni, eucal: baake, ohne: standard \usepackage{eucal} % euler calligraphy @@ -36,11 +37,11 @@ \usepackage{mathtools} \usepackage{multirow} \usepackage{nicefrac} -\usepackage[numbers,square,sort=none]{natbib} -\newcommand*{\refname}{References} +\usepackage[numbers,square,sort]{natbib} \usepackage{patchcmd} %\usepackage[draft]{pdfpages} \usepackage{pdfpages} +\usepackage{pifont} %\usepackage{pst-all} % PSTricks-Grafikerstellung %\usepackage{pstricks} %\usepackage{qtree} % baum @@ -62,7 +63,6 @@ \usepackage{verbatim} % \begin{comment} \end{comment} \usepackage{wrapfig} % \usepackage{wasysym} -\usepackage[pdftex,dvipsnames]{xcolor} \usepackage{xspace} % intelligent \makro_ whitespace \usepackage{xargs} % use more than one optional parameter in new commands