1d-scenario description done

This commit is contained in:
Nicole Dresselhaus 2017-10-15 20:00:59 +02:00
parent a411c1012b
commit 6a97360ab2
Signed by: Drezil
GPG Key ID: 057D94F356F41E25
9 changed files with 3936 additions and 39 deletions

View File

@ -172,4 +172,15 @@
Url = {http://jcst.ict.ac.cn:8080/jcst/EN/article/downloadArticleFile.do?attachType=PDF\&id=9543}
}
@article{giannelli2012thb,
title={THB-splines: The truncated basis for hierarchical splines},
author={Giannelli, Carlotta and J{\"u}Ttler, Bert and Speleers, Hendrik},
journal={Computer Aided Geometric Design},
volume={29},
number={7},
pages={485--498},
year={2012},
publisher={Elsevier},
url={https://pdfs.semanticscholar.org/a858/aa68da617ad9d41de021f6807cc422002258.pdf},
doi={10.1016/j.cagd.2012.03.025},
}

BIN
arbeit/img/1dtarget.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -424,6 +424,7 @@ formulas for the general case so it can be adapted quite freely.
## Adaption of \ac{FFD}
\label{sec:ffd:adapt}
As we have established in Chapter \ref{sec:back:ffd} we can define an
\ac{FFD}--displacement as
@ -581,22 +582,95 @@ of the control--points.] to simulate different starting-conditions.
# Scenarios for testing evolvability criteria using \acf{FFD}
\label{sec:eval}
In our experiments we use the same two testing--scenarios, that were also used
by \cite{anrichterEvol}. The first scenario deforms a plane into a shape
originally defined in \cite{giannelli2012thb}, where we setup control-points in
a 2--dimensional manner merely deform in the height--coordinate to get the
resulting shape.
In the second scenario we increase the degrees of freedom significantly by using
a 3--dimensional control--grid to deform a sphere into a face. So each control
point has three degrees of freedom in contrast to first scenario.
## Test Scenario: 1D Function Approximation
### Optimierungszenario
\begin{figure}[th]
\begin{center}
\includegraphics[width=0.7\textwidth]{img/1dtarget.png}
\end{center}
\caption{The target--shape for our 1--dimensional optimization--scenario
including a wireframe--overlay of the vertices.}
\label{fig:1dtarget}
\end{figure}
- Ebene -> Template--Fit
In this scenario we used the shape defined by Giannelli et al.\cite{giannelli2012thb},
which is also used by Richter et al.\cite{anrichterEvol} using the same
discretization to $150 \times 150$ points for a total of $n = 22\,500$ vertices. The
shape is given by the following definition
$$
s(x,y) =
\begin{cases}
0.5 \cos(4\pi \cdot q^{0.5}) + 0.5 & q(x,y) < \frac{1}{16},\\
2(y-x) & 0 < y-x < 0.5,\\
1 & 0.5 < y - x
\end{cases}
$$
with $(x,y) \in [0,2] \times [0,1]$ and $q(x,y)=(x-1.5)^2 + (y-0.5)^2$, which we have
visualized in figure \ref{fig:1dtarget}.
### Matching in 1D
As the starting-plane we used the same shape, but set all
$z$--coordinates to $0$, yielding a flat plane, which is partially already
correct.
- Trivial
Regarding the *fitness--function* $f(\vec{p})$, we use the very simple approach
of calculating the squared distances for each corresponding vertex
$$
\textrm{f(\vec{p})} = \sum_{i=1}^{n} \|(\vec{Up})_i - s_i\|_2^2 = \|\vec{Up} - \vec{s}\|^2 \rightarrow \min
$$
where $s_i$ are the respective solution--vertices to the parametrized
source--vertices^[The parametrization is encoded in $\vec{U}$ and the initial
position of the control points. See \ref{sec:ffd:adapt}] with the current
deformation--parameters $\vec{p} = (p_1,\dots, p_m)$. We can do this
one--to--one--correspondence because we have exactly the same number of
source and target-vertices do to our setup of just flattening the object.
### Besonderheiten der Auswertung
This formula is also the least--squares approximation error for which we
can compute the analytic solution $\vec{p^{*}} = \vec{U^+}\vec{s}$, yielding us
the correct gradient in which the evolutionary optimizer should move.
- Analytische Lösung einzig beste
- Ergebnis auch bei Rauschen konstant?
- normierter 1--Vektor auf den Gradienten addieren
- Kegel entsteht
## Procedure: 1D Function Approximation
For our setup we first compute the coefficients of the deformation--matrix and
use then the formulas for *variability* and *regularity* to get our predictions.
Afterwards we solve the problem analytically to get the (normalized) correct
gradient that we use as guess for the *improvement potential*. To check we also
consider a distorted gradient $\vec{g}_{\textrm{d}}$
$$
\vec{g}_{\textrm{d}} = \frac{\vec{g}_{\textrm{c}} + \mathbb{1}}{\|\vec{g}_{\textrm{c}} + \mathbb{1}\|}
$$
where $\mathbb{1}$ is the vector consisting of $1$ in every dimension and
$\vec{g}_\textrm{c} = \vec{p^{*}}$ the calculated correct gradient.
We then set up a regular 2--dimensional grid around the object with the desired
grid resolutions. To generate a testcase we then move the grid--vertices
randomly inside the x--y--plane. As we do not want to generate hard to solve
grids we avoid the generation of self--intersecting grids.\improvement{besser
formulieren} To achieve that we select a uniform distributed number
$r \in [-0.25,0.25]$ per dimension and shrink the distance to the neighbours
(the smaller neighbour for $r < 0$, the larger for $r > 0$) by the factor
$r$^[Note: On the Edges this displacement is only applied outwards by flipping the sign of $r$, if appropriate.].
\begin{figure}[ht]
\begin{center}
\includegraphics[width=\textwidth]{img/example1d_grid.png}
\end{center}
\caption{\newline Left: A regular $7 \times 4$--grid\newline Right: The same grid after a
random distortion to generate a testcase.}
\label{fig:example1d_grid}
\end{figure}
An Example of such a testcase can be seen for a $7 \times 4$--grid in figure
\ref{fig:example1d_grid}.
## Test Scenario: 3D Function Approximation

Binary file not shown.

View File

@ -604,6 +604,8 @@ adapted quite freely.
\section{\texorpdfstring{Adaption of
\ac{FFD}}{Adaption of }}\label{adaption-of}
\label{sec:ffd:adapt}
As we have established in Chapter \ref{sec:back:ffd} we can define an
\ac{FFD}--displacement as
@ -763,43 +765,103 @@ using
\label{sec:eval}
In our experiments we use the same two testing--scenarios, that were
also used by \cite{anrichterEvol}. The first scenario deforms a plane
into a shape originally defined in \cite{giannelli2012thb}, where we
setup control-points in a 2--dimensional manner merely deform in the
height--coordinate to get the resulting shape.
In the second scenario we increase the degrees of freedom significantly
by using a 3--dimensional control--grid to deform a sphere into a face.
So each control point has three degrees of freedom in contrast to first
scenario.
\section{Test Scenario: 1D Function
Approximation}\label{test-scenario-1d-function-approximation}
\subsection{Optimierungszenario}\label{optimierungszenario}
\begin{figure}[th]
\begin{center}
\includegraphics[width=0.7\textwidth]{img/1dtarget.png}
\end{center}
\caption{The target--shape for our 1--dimensional optimization--scenario
including a wireframe--overlay of the vertices.}
\label{fig:1dtarget}
\end{figure}
\begin{itemize}
\tightlist
\item
Ebene -\textgreater{} Template--Fit
\end{itemize}
In this scenario we used the shape defined by Giannelli et
al.\cite{giannelli2012thb}, which is also used by Richter et
al.\cite{anrichterEvol} using the same discretization to
\(150 \times 150\) points for a total of \(n = 22\,500\) vertices. The
shape is given by the following definition \[
s(x,y) =
\begin{cases}
0.5 \cos(4\pi \cdot q^{0.5}) + 0.5 & q(x,y) < \frac{1}{16},\\
2(y-x) & 0 < y-x < 0.5,\\
1 & 0.5 < y - x
\end{cases}
\] with \((x,y) \in [0,2] \times [0,1]\) and
\(q(x,y)=(x-1.5)^2 + (y-0.5)^2\), which we have visualized in figure
\ref{fig:1dtarget}.
\subsection{Matching in 1D}\label{matching-in-1d}
As the starting-plane we used the same shape, but set all
\(z\)--coordinates to \(0\), yielding a flat plane, which is partially
already correct.
\begin{itemize}
\tightlist
\item
Trivial
\end{itemize}
Regarding the \emph{fitness--function} \(f(\vec{p})\), we use the very
simple approach of calculating the squared distances for each
corresponding vertex \[
\textrm{f(\vec{p})} = \sum_{i=1}^{n} \|(\vec{Up})_i - s_i\|_2^2 = \|\vec{Up} - \vec{s}\|^2 \rightarrow \min
\] where \(s_i\) are the respective solution--vertices to the
parametrized source--vertices\footnote{The parametrization is encoded in
\(\vec{U}\) and the initial position of the control points. See
\ref{sec:ffd:adapt}} with the current deformation--parameters
\(\vec{p} = (p_1,\dots, p_m)\). We can do this
one--to--one--correspondence because we have exactly the same number of
source and target-vertices do to our setup of just flattening the
object.
\subsection{Besonderheiten der
Auswertung}\label{besonderheiten-der-auswertung}
This formula is also the least--squares approximation error for which we
can compute the analytic solution \(\vec{p^{*}} = \vec{U^+}\vec{s}\),
yielding us the correct gradient in which the evolutionary optimizer
should move.
\begin{itemize}
\tightlist
\item
Analytische Lösung einzig beste
\item
Ergebnis auch bei Rauschen konstant?
\item
normierter 1--Vektor auf den Gradienten addieren
\section{Procedure: 1D Function
Approximation}\label{procedure-1d-function-approximation}
\begin{itemize}
\tightlist
\item
Kegel entsteht
\end{itemize}
\end{itemize}
For our setup we first compute the coefficients of the
deformation--matrix and use then the formulas for \emph{variability} and
\emph{regularity} to get our predictions. Afterwards we solve the
problem analytically to get the (normalized) correct gradient that we
use as guess for the \emph{improvement potential}. To check we also
consider a distorted gradient \(\vec{g}_{\textrm{d}}\) \[
\vec{g}_{\textrm{d}} = \frac{\vec{g}_{\textrm{c}} + \mathbb{1}}{\|\vec{g}_{\textrm{c}} + \mathbb{1}\|}
\] where \(\mathbb{1}\) is the vector consisting of \(1\) in every
dimension and \(\vec{g}_\textrm{c} = \vec{p^{*}}\) the calculated
correct gradient.
We then set up a regular 2--dimensional grid around the object with the
desired grid resolutions. To generate a testcase we then move the
grid--vertices randomly inside the x--y--plane. As we do not want to
generate hard to solve grids we avoid the generation of
self--intersecting grids.\improvement{besser
formulieren} To achieve that we select a uniform distributed number
\(r \in [-0.25,0.25]\) per dimension and shrink the distance to the
neighbours (the smaller neighbour for \(r < 0\), the larger for
\(r > 0\)) by the factor \(r\)\footnote{Note: On the Edges this
displacement is only applied outwards by flipping the sign of \(r\),
if appropriate.}.
\begin{figure}[ht]
\begin{center}
\includegraphics[width=\textwidth]{img/example1d_grid.png}
\end{center}
\caption{\newline Left: A regular $7 \times 4$--grid\newline Right: The same grid after a
random distortion to generate a testcase.}
\label{fig:example1d_grid}
\end{figure}
An Example of such a testcase can be seen for a \(7 \times 4\)--grid in
figure \ref{fig:example1d_grid}.
\section{Test Scenario: 3D Function
Approximation}\label{test-scenario-3d-function-approximation}

View File

@ -154,7 +154,7 @@
\newcommand\data[1]{\marginpar{\vspace{-35pt}\begin{center}
\includegraphics[width=1cm]{img/cd}
\end{center}\vspace{-15pt}\centering\footnotesize\texttt{#1}}}
\renewcommand\vec[1]{\textbf{#1}}
\renewcommand{\vec}[1]{\mathbf{#1}}
\newcommandx{\unsure}[2][1=]{\todo[linecolor=red,backgroundcolor=red!25,bordercolor=red,#1]{\textbf{Unsure:} #2}}
\newcommandx{\change}[2][1=]{\todo[linecolor=blue,backgroundcolor=blue!25,bordercolor=blue,#1]{\textbf{Change:} #2}}
\newcommandx{\info}[2][1=]{\todo[linecolor=OliveGreen,backgroundcolor=OliveGreen!25,bordercolor=OliveGreen,#1]{\textbf{Info:} #2}}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff