chapter 3 'complete'.

This commit is contained in:
Nicole Dresselhaus 2017-10-10 17:45:58 +02:00
parent 294cb4c501
commit 0a2e779181
Signed by: Drezil
GPG Key ID: 057D94F356F41E25
5 changed files with 811 additions and 49 deletions

BIN
arbeit/img/enoughCP.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

676
arbeit/img/enoughCP.svg Normal file
View File

@ -0,0 +1,676 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="94.223373mm"
height="91.639961mm"
viewBox="0 0 333.86235 324.70852"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="enoughCP.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="128.58458"
inkscape:cy="179.18795"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-object-midpoints="true"
inkscape:snap-smooth-nodes="false"
inkscape:object-paths="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1141"
inkscape:window-x="1680"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-218.18947,-467.98862)">
<circle
style="opacity:1;fill:none;fill-opacity:1;stroke:#000080;stroke-width:0.98587084"
id="path4543"
cx="385.37317"
cy="632.13879"
r="158.09593" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138"
cx="223.68947"
cy="473.48862"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-3"
cx="259.56308"
cy="473.48862"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-6"
cx="295.43668"
cy="473.48862"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-7"
cx="331.31027"
cy="473.48862"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-5"
cx="367.18387"
cy="473.48862"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-35"
cx="403.05746"
cy="473.48862"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-62"
cx="438.93106"
cy="473.48862"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-9"
cx="474.80466"
cy="473.48862"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-1"
cx="510.67825"
cy="473.48862"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-2"
cx="546.55182"
cy="473.48862"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-0"
cx="223.68947"
cy="508.34512"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-3-9"
cx="259.56308"
cy="508.34512"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-6-3"
cx="295.43668"
cy="508.34512"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-7-6"
cx="331.31027"
cy="508.34512"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-5-0"
cx="367.18387"
cy="508.34512"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-35-6"
cx="403.05746"
cy="508.34512"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-62-2"
cx="438.93106"
cy="508.34512"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-9-6"
cx="474.80466"
cy="508.34512"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-1-1"
cx="510.67825"
cy="508.34512"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-2-8"
cx="546.55182"
cy="508.34512"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-20"
cx="223.68947"
cy="578.05811"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-3-2"
cx="259.56308"
cy="578.05811"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-6-37"
cx="295.43668"
cy="578.05811"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-7-5"
cx="331.31027"
cy="578.05811"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-5-9"
cx="367.18387"
cy="578.05811"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-35-2"
cx="403.05746"
cy="578.05811"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-62-28"
cx="438.93106"
cy="578.05811"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-9-9"
cx="474.80466"
cy="578.05811"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-1-7"
cx="510.67825"
cy="578.05811"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-2-3"
cx="546.55182"
cy="578.05811"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-12"
cx="223.68947"
cy="612.91461"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-3-93"
cx="259.56308"
cy="612.91461"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-6-1"
cx="295.43668"
cy="612.91461"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-7-9"
cx="331.31027"
cy="612.91461"
r="5" />
<circle
style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000"
id="path4138-5-4"
cx="367.18387"
cy="612.91461"
r="5" />
<circle
style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000"
id="path4138-35-7"
cx="403.05746"
cy="612.91461"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-62-8"
cx="438.93106"
cy="612.91461"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-9-4"
cx="474.80466"
cy="612.91461"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-1-5"
cx="510.67825"
cy="612.91461"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-2-0"
cx="546.55182"
cy="612.91461"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-61"
cx="223.68947"
cy="647.77112"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-3-0"
cx="259.56308"
cy="647.77112"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-6-6"
cx="295.43668"
cy="647.77112"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-7-3"
cx="331.31027"
cy="647.77112"
r="5" />
<circle
style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000"
id="path4138-5-2"
cx="367.18387"
cy="647.77112"
r="5" />
<circle
style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000"
id="path4138-35-0"
cx="403.05746"
cy="647.77112"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-62-6"
cx="438.93106"
cy="647.77112"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-9-1"
cx="474.80466"
cy="647.77112"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-1-55"
cx="510.67825"
cy="647.77112"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-2-4"
cx="546.55182"
cy="647.77112"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-56"
cx="223.68947"
cy="682.62762"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-3-937"
cx="259.56308"
cy="682.62762"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-6-4"
cx="295.43668"
cy="682.62762"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-7-52"
cx="331.31027"
cy="682.62762"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-5-5"
cx="367.18387"
cy="682.62762"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-35-4"
cx="403.05746"
cy="682.62762"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-62-7"
cx="438.93106"
cy="682.62762"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-9-44"
cx="474.80466"
cy="682.62762"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-1-3"
cx="510.67825"
cy="682.62762"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-2-07"
cx="546.55182"
cy="682.62762"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-68"
cx="223.68947"
cy="717.48413"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-3-8"
cx="259.56308"
cy="717.48413"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-6-43"
cx="295.43668"
cy="717.48413"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-7-1"
cx="331.31027"
cy="717.48413"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-5-49"
cx="367.18387"
cy="717.48413"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-35-20"
cx="403.05746"
cy="717.48413"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-62-68"
cx="438.93106"
cy="717.48413"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-9-92"
cx="474.80466"
cy="717.48413"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-1-6"
cx="510.67825"
cy="717.48413"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-2-6"
cx="546.55182"
cy="717.48413"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-95"
cx="223.68947"
cy="752.34064"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-3-04"
cx="259.56308"
cy="752.34064"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-6-8"
cx="295.43668"
cy="752.34064"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-7-7"
cx="331.31027"
cy="752.34064"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-5-1"
cx="367.18387"
cy="752.34064"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-35-72"
cx="403.05746"
cy="752.34064"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-62-72"
cx="438.93106"
cy="752.34064"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-9-2"
cx="474.80466"
cy="752.34064"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-1-61"
cx="510.67825"
cy="752.34064"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-2-06"
cx="546.55182"
cy="752.34064"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-59"
cx="223.68947"
cy="787.19714"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-3-4"
cx="259.56308"
cy="787.19714"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-6-9"
cx="295.43668"
cy="787.19714"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-7-0"
cx="331.31027"
cy="787.19714"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-5-91"
cx="367.18387"
cy="787.19714"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-35-77"
cx="403.05746"
cy="787.19714"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-62-1"
cx="438.93106"
cy="787.19714"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-9-15"
cx="474.80466"
cy="787.19714"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-1-9"
cx="510.67825"
cy="787.19714"
r="5" />
<circle
style="opacity:1;fill:#aad400;fill-opacity:1;stroke:#000000"
id="path4138-2-7"
cx="546.55182"
cy="787.19714"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-36"
cx="223.68947"
cy="543.2016"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-3-5"
cx="259.56308"
cy="543.2016"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-6-63"
cx="295.43668"
cy="543.2016"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-7-94"
cx="331.31027"
cy="543.2016"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-5-8"
cx="367.18387"
cy="543.2016"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-35-1"
cx="403.05746"
cy="543.2016"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-62-29"
cx="438.93106"
cy="543.2016"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-9-3"
cx="474.80466"
cy="543.2016"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-1-90"
cx="510.67825"
cy="543.2016"
r="5" />
<circle
style="opacity:1;fill:#d4aa00;fill-opacity:1;stroke:#000000"
id="path4138-2-88"
cx="546.55182"
cy="543.2016"
r="5" />
<circle
style="opacity:1;fill:#0000ff;fill-opacity:1;stroke:#000000"
id="path4138-35-7-5"
cx="504.78043"
cy="735.75458"
r="5" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -35,7 +35,7 @@ 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
Evolutionary 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
@ -72,7 +72,7 @@ First we introduce different topics in isolation in Chapter \ref{sec:back}. We
take an abstract look at the definition of \ac{FFD} for a one--dimensional line
(in \ref{sec:back:ffd}) and discuss why this is a sensible deformation function
(in \ref{sec:back:ffdgood}).
Then we establish some background--knowledge of evolutional algorithms (in
Then we establish some background--knowledge of evolutionary algorithms (in
\ref{sec:back:evo}) and why this is useful in our domain (in
\ref{sec:back:evogood}).
In a third step we take a look at the definition of the different evolvability
@ -173,15 +173,15 @@ on the deformation itself.
All in all \ac{FFD} and \ac{DM--FFD} are still good ways to deform a high--polygon
mesh albeit the downsides.
## What is evolutional optimization?
## What is evolutionary optimization?
\label{sec:back:evo}
In this thesis we are using an evolutional optimization strategy to solve the
In this thesis we are using an evolutionary optimization strategy to solve the
problem of finding the best parameters for our deformation. This approach,
however, is very generic and we introduce it here in a broader sense.
\begin{algorithm}
\caption{An outline of evolutional algorithms}
\caption{An outline of evolutionary algorithms}
\label{alg:evo}
\begin{algorithmic}
\STATE t := 0;
@ -197,7 +197,7 @@ however, is very generic and we introduce it here in a broader sense.
\end{algorithmic}
\end{algorithm}
The general shape of an evolutional algorithm (adapted from
The general shape of an evolutionary algorithm (adapted from
\cite{back1993overview}) is outlined in Algorithm \ref{alg:evo}. Here, $P(t)$
denotes the population of parameters in step $t$ of the algorithm. The
population contains $\mu$ individuals $a_i$ that fit the shape of the parameters
@ -227,16 +227,16 @@ can be changed over time. One can for example start off with a high
mutation--rate that cools off over time (i.e. by lowering the variance of a
gaussian noise).
## Advantages of evolutional algorithms
## Advantages of evolutionary algorithms
\label{sec:back:evogood}
The main advantage of evolutional algorithms is the ability to find optima of
The main advantage of evolutionary algorithms is the ability to find optima of
general functions just with the help of a given fitness--function. With this
most problems of simple gradient--based procedures, which often target the same
error--function which measures the fitness, as an evolutional algorithm, but can
error--function which measures the fitness, as an evolutionary algorithm, but can
easily get stuck in local optima.
Components and techniques for evolutional algorithms are specifically known to
Components and techniques for evolutionary algorithms are specifically known to
help with different problems arising in the domain of
optimization\cite{weise2012evolutionary}. An overview of the typical problems
are shown in figure \ref{fig:probhard}.
@ -249,20 +249,20 @@ are shown in figure \ref{fig:probhard}.
Most of the advantages stem from the fact that a gradient--based procedure has
only one point of observation from where it evaluates the next steps, whereas an
evolutional strategy starts with a population of guessed solutions. Because an
evolutional strategy modifies the solution randomly, keeps the best solutions
evolutionary strategy starts with a population of guessed solutions. Because an
evolutionary strategy modifies the solution randomly, keeps the best solutions
and purges the worst, it can also target multiple different hypothesis at the
same time where the local optima die out in the face of other, better
candidates.
If an analytic best solution exists and is easily computable (i.e. because the
error--function is convex) an evolutional algorithm is not the right choice.
error--function is convex) an evolutionary algorithm is not the right choice.
Although both converge to the same solution, the analytic one is usually faster.
But in reality many problems have no analytic solution, because the problem is
either not convex or there are so many parameters that an analytic solution
(mostly meaning the equivalence to an exhaustive search) is computationally not
feasible. Here evolutional optimization has one more advantage as you can at
feasible. Here evolutionary optimization has one more advantage as you can at
least get a suboptimal solutions fast, which then refine over time.
## Criteria for the evolvability of linear deformations
@ -300,9 +300,9 @@ is only performed to map the criterion--range to $[0..1]$, whereas $1$ is the
optimal value and $0$ is the worst value.
This criterion should be characteristic for numeric stability on the on
hand\cite[chapter 2.7]{golub2012matrix} and for convergence speed of evolutional
algorithms on the other hand\cite{anrichterEvol} as it is tied to the notion of
locality\cite{weise2012evolutionary,thorhauer2014locality}.
hand\cite[chapter 2.7]{golub2012matrix} and for convergence speed of
evolutionary algorithms on the other hand\cite{anrichterEvol} as it is tied to
the notion of locality\cite{weise2012evolutionary,thorhauer2014locality}.
### Improvement Potential
@ -439,17 +439,55 @@ and use Cramers rule for inverting the small Jacobian and solving this system of
linear equations.
## Parametrisierung sinnvoll?
## Deformation Grid
- Nachteile von Parametrisierung
- wie in kap. \ref{sec:back:evo} zu sehen, ist Parametrisierung
wichtig\cite{Rothlauf2006}.
- Parametrisierung zwar lokal, aber nicht 1:1
- Deformation ist um einen Kontrollpunkt viel direkter zu steuern.
- => DM--FFD kann abhelfen, further study.
- Schlechte Parametrisierung sorgt dafür, dass CP u.U. nicht zur
Parametrisierung verwendet werden.
As mentioned in chapter \ref{sec:back:evo}, the way of choosing the
representation to map the general problem (mesh--fitting/optimization in our
case) into a parameter-space it very important for the quality and runtime of
evolutionary algorithms\cite{Rothlauf2006}.
Because our control--points are arranged in a grid, we can accurately represent
each vertex--point inside the grids volume with proper B--Spline--coefficients
between $[0,1[$ and --- as a consequence --- we have to embed our object into it
(or create constant "dummy"-points outside).
The great advantage of B--Splines is the locality, direct impact of each
control point without having a $1:1$--correlation, and a smooth deformation.
While the advantages are great, the issues arise from the problem to decide
where to place the control--points and how many.
One would normally think, that the more control--points you add, the better the
result will be, but this is not the case for our B--Splines. Given any point $p$
only the $2 \cdot (d-1)$ control--points contribute to the parametrization of
that point^[Normally these are $d-1$ to each side, but at the boundaries the
number gets increased to the inside to meet the required smoothness].
This means, that a high resolution can have many control-points that are not
contributing to any point on the surface and are thus completely irrelevant to
the solution.
\begin{figure}[!ht]
\begin{center}
\includegraphics{img/enoughCP.png}
\end{center}
\caption{A high resolution ($10 \times 10$) of control--points over a circle.
yellow/green points contribute to the parametrization, red points don't.\newline
An Example--point (blue) is solely determined by the position of the green
control--points.}
\label{fig:enoughCP}
\end{figure}
We illustrate this phenomenon in figure \ref{fig:enoughCP}, where the four red
central points are not relevant for the parametrization of the circle.
\unsure[inline]{erwähnen, dass man aus $\vec{D}$ einfach die Null--Spalten
entfernen kann?}
For our tests we chose different uniformly sized grids and added gaussian noise
onto each control-point^[For the special case of the outer layer we only applied
noise away from the object] to simulate different starting-conditions.
\unsure[inline]{verweis auf DM--FFD?}
# Scenarios for testing evolvability criteria using \acf{FFD}
\label{sec:eval}

Binary file not shown.

View File

@ -179,7 +179,7 @@ simulation --- or known hard algorithmic problems in informatics
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
Evolutionary 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
@ -220,7 +220,7 @@ First we introduce different topics in isolation in Chapter
\ref{sec:back}. We take an abstract look at the definition of \ac{FFD}
for a one--dimensional line (in \ref{sec:back:ffd}) and discuss why this
is a sensible deformation function (in \ref{sec:back:ffdgood}). Then we
establish some background--knowledge of evolutional algorithms (in
establish some background--knowledge of evolutionary algorithms (in
\ref{sec:back:evo}) and why this is useful in our domain (in
\ref{sec:back:evogood}). In a third step we take a look at the
definition of the different evolvability criteria established in
@ -328,18 +328,18 @@ major impact on the deformation itself.
All in all \ac{FFD} and \ac{DM--FFD} are still good ways to deform a
high--polygon mesh albeit the downsides.
\section{What is evolutional
optimization?}\label{what-is-evolutional-optimization}
\section{What is evolutionary
optimization?}\label{what-is-evolutionary-optimization}
\label{sec:back:evo}
In this thesis we are using an evolutional optimization strategy to
In this thesis we are using an evolutionary optimization strategy to
solve the problem of finding the best parameters for our deformation.
This approach, however, is very generic and we introduce it here in a
broader sense.
\begin{algorithm}
\caption{An outline of evolutional algorithms}
\caption{An outline of evolutionary algorithms}
\label{alg:evo}
\begin{algorithmic}
\STATE t := 0;
@ -355,7 +355,7 @@ broader sense.
\end{algorithmic}
\end{algorithm}
The general shape of an evolutional algorithm (adapted from
The general shape of an evolutionary algorithm (adapted from
\cite{back1993overview}) is outlined in Algorithm \ref{alg:evo}. Here,
\(P(t)\) denotes the population of parameters in step \(t\) of the
algorithm. The population contains \(\mu\) individuals \(a_i\) that fit
@ -395,19 +395,19 @@ that can be changed over time. One can for example start off with a high
mutation--rate that cools off over time (i.e.~by lowering the variance
of a gaussian noise).
\section{Advantages of evolutional
algorithms}\label{advantages-of-evolutional-algorithms}
\section{Advantages of evolutionary
algorithms}\label{advantages-of-evolutionary-algorithms}
\label{sec:back:evogood}
The main advantage of evolutional algorithms is the ability to find
The main advantage of evolutionary algorithms is the ability to find
optima of general functions just with the help of a given
fitness--function. With this most problems of simple gradient--based
procedures, which often target the same error--function which measures
the fitness, as an evolutional algorithm, but can easily get stuck in
the fitness, as an evolutionary algorithm, but can easily get stuck in
local optima.
Components and techniques for evolutional algorithms are specifically
Components and techniques for evolutionary algorithms are specifically
known to help with different problems arising in the domain of
optimization\cite{weise2012evolutionary}. An overview of the typical
problems are shown in figure \ref{fig:probhard}.
@ -420,21 +420,21 @@ problems are shown in figure \ref{fig:probhard}.
Most of the advantages stem from the fact that a gradient--based
procedure has only one point of observation from where it evaluates the
next steps, whereas an evolutional strategy starts with a population of
guessed solutions. Because an evolutional strategy modifies the solution
randomly, keeps the best solutions and purges the worst, it can also
target multiple different hypothesis at the same time where the local
optima die out in the face of other, better candidates.
next steps, whereas an evolutionary strategy starts with a population of
guessed solutions. Because an evolutionary strategy modifies the
solution randomly, keeps the best solutions and purges the worst, it can
also target multiple different hypothesis at the same time where the
local optima die out in the face of other, better candidates.
If an analytic best solution exists and is easily computable
(i.e.~because the error--function is convex) an evolutional algorithm is
not the right choice. Although both converge to the same solution, the
analytic one is usually faster.
(i.e.~because the error--function is convex) an evolutionary algorithm
is not the right choice. Although both converge to the same solution,
the analytic one is usually faster.
But in reality many problems have no analytic solution, because the
problem is either not convex or there are so many parameters that an
analytic solution (mostly meaning the equivalence to an exhaustive
search) is computationally not feasible. Here evolutional optimization
search) is computationally not feasible. Here evolutionary optimization
has one more advantage as you can at least get a suboptimal solutions
fast, which then refine over time.
@ -478,7 +478,7 @@ criterion--range to \([0..1]\), whereas \(1\) is the optimal value and
This criterion should be characteristic for numeric stability on the on
hand\cite[chapter 2.7]{golub2012matrix} and for convergence speed of
evolutional algorithms on the other hand\cite{anrichterEvol} as it is
evolutionary algorithms on the other hand\cite{anrichterEvol} as it is
tied to the notion of
locality\cite{weise2012evolutionary,thorhauer2014locality}.
@ -617,7 +617,55 @@ With the Gauss--Newton algorithm we iterate via the formula
and use Cramers rule for inverting the small Jacobian and solving this
system of linear equations.
\section{Parametrisierung sinnvoll?}\label{parametrisierung-sinnvoll}
\section{Deformation Grid}\label{deformation-grid}
As mentioned in chapter \ref{sec:back:evo}, the way of choosing the
representation to map the general problem (mesh--fitting/optimization in
our case) into a parameter-space it very important for the quality and
runtime of evolutionary algorithms\cite{Rothlauf2006}.
Because our control--points are arranged in a grid, we can accurately
represent each vertex--point inside the grids volume with proper
B--Spline--coefficients between \([0,1[\) and --- as a consequence ---
we have to embed our object into it (or create constant ``dummy''-points
outside).
The great advantage of B--Splines is the locality, direct impact of each
control point without having a \(1:1\)--correlation, and a smooth
deformation. While the advantages are great, the issues arise from the
problem to decide where to place the control--points and how many.
One would normally think, that the more control--points you add, the
better the result will be, but this is not the case for our B--Splines.
Given any point \(p\) only the \(2 \cdot (d-1)\) control--points
contribute to the parametrization of that point\footnote{Normally these
are \(d-1\) to each side, but at the boundaries the number gets
increased to the inside to meet the required smoothness}. This means,
that a high resolution can have many control-points that are not
contributing to any point on the surface and are thus completely
irrelevant to the solution.
\begin{figure}[!ht]
\begin{center}
\includegraphics{img/enoughCP.png}
\end{center}
\caption{A high resolution ($10 \times 10$) of control--points over a circle.
yellow/green points contribute to the parametrization, red points don't.\newline
An Example--point (blue) is solely determined by the position of the green
control--points.}
\label{fig:enoughCP}
\end{figure}
We illustrate this phenomenon in figure \ref{fig:enoughCP}, where the
central points are not relevant for the parametrization of the circle.
\unsure[inline]{erwähnen, dass man aus $\vec{D}$ einfach die Null--Spalten
entfernen kann?}
For our tests we chose different uniformly sized grids and added
gaussian noise onto each control-point\footnote{For the special case of
the outer layer we only applied noise away from the object} to
simulate different starting-conditions.
\begin{itemize}
\tightlist