1d-scenario description done
This commit is contained in:
parent
a411c1012b
commit
6a97360ab2
@ -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
BIN
arbeit/img/1dtarget.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 114 KiB |
BIN
arbeit/img/example1d_grid.png
Normal file
BIN
arbeit/img/example1d_grid.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
92
arbeit/ma.md
92
arbeit/ma.md
@ -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
|
||||
|
||||
|
BIN
arbeit/ma.pdf
BIN
arbeit/ma.pdf
Binary file not shown.
118
arbeit/ma.tex
118
arbeit/ma.tex
@ -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}
|
||||
|
@ -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}}
|
||||
|
1920
dokumentation/evolution3d/20171013_3dFit_4x4x7_100times.log
Normal file
1920
dokumentation/evolution3d/20171013_3dFit_4x4x7_100times.log
Normal file
File diff suppressed because it is too large
Load Diff
1830
dokumentation/evolution3d/20171013_3dFit_5x4x4_100times.log
Normal file
1830
dokumentation/evolution3d/20171013_3dFit_5x4x4_100times.log
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user