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}
|
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}
|
## Adaption of \ac{FFD}
|
||||||
|
\label{sec:ffd:adapt}
|
||||||
|
|
||||||
As we have established in Chapter \ref{sec:back:ffd} we can define an
|
As we have established in Chapter \ref{sec:back:ffd} we can define an
|
||||||
\ac{FFD}--displacement as
|
\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}
|
# Scenarios for testing evolvability criteria using \acf{FFD}
|
||||||
\label{sec:eval}
|
\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
|
## 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
|
## Procedure: 1D Function Approximation
|
||||||
- Ergebnis auch bei Rauschen konstant?
|
|
||||||
- normierter 1--Vektor auf den Gradienten addieren
|
For our setup we first compute the coefficients of the deformation--matrix and
|
||||||
- Kegel entsteht
|
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
|
## 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
|
\section{\texorpdfstring{Adaption of
|
||||||
\ac{FFD}}{Adaption of }}\label{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
|
As we have established in Chapter \ref{sec:back:ffd} we can define an
|
||||||
\ac{FFD}--displacement as
|
\ac{FFD}--displacement as
|
||||||
|
|
||||||
@ -763,43 +765,103 @@ using
|
|||||||
|
|
||||||
\label{sec:eval}
|
\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
|
\section{Test Scenario: 1D Function
|
||||||
Approximation}\label{test-scenario-1d-function-approximation}
|
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}
|
In this scenario we used the shape defined by Giannelli et
|
||||||
\tightlist
|
al.\cite{giannelli2012thb}, which is also used by Richter et
|
||||||
\item
|
al.\cite{anrichterEvol} using the same discretization to
|
||||||
Ebene -\textgreater{} Template--Fit
|
\(150 \times 150\) points for a total of \(n = 22\,500\) vertices. The
|
||||||
\end{itemize}
|
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}
|
Regarding the \emph{fitness--function} \(f(\vec{p})\), we use the very
|
||||||
\tightlist
|
simple approach of calculating the squared distances for each
|
||||||
\item
|
corresponding vertex \[
|
||||||
Trivial
|
\textrm{f(\vec{p})} = \sum_{i=1}^{n} \|(\vec{Up})_i - s_i\|_2^2 = \|\vec{Up} - \vec{s}\|^2 \rightarrow \min
|
||||||
\end{itemize}
|
\] 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
|
This formula is also the least--squares approximation error for which we
|
||||||
Auswertung}\label{besonderheiten-der-auswertung}
|
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}
|
\section{Procedure: 1D Function
|
||||||
\tightlist
|
Approximation}\label{procedure-1d-function-approximation}
|
||||||
\item
|
|
||||||
Analytische Lösung einzig beste
|
|
||||||
\item
|
|
||||||
Ergebnis auch bei Rauschen konstant?
|
|
||||||
\item
|
|
||||||
normierter 1--Vektor auf den Gradienten addieren
|
|
||||||
|
|
||||||
\begin{itemize}
|
For our setup we first compute the coefficients of the
|
||||||
\tightlist
|
deformation--matrix and use then the formulas for \emph{variability} and
|
||||||
\item
|
\emph{regularity} to get our predictions. Afterwards we solve the
|
||||||
Kegel entsteht
|
problem analytically to get the (normalized) correct gradient that we
|
||||||
\end{itemize}
|
use as guess for the \emph{improvement potential}. To check we also
|
||||||
\end{itemize}
|
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
|
\section{Test Scenario: 3D Function
|
||||||
Approximation}\label{test-scenario-3d-function-approximation}
|
Approximation}\label{test-scenario-3d-function-approximation}
|
||||||
|
@ -154,7 +154,7 @@
|
|||||||
\newcommand\data[1]{\marginpar{\vspace{-35pt}\begin{center}
|
\newcommand\data[1]{\marginpar{\vspace{-35pt}\begin{center}
|
||||||
\includegraphics[width=1cm]{img/cd}
|
\includegraphics[width=1cm]{img/cd}
|
||||||
\end{center}\vspace{-15pt}\centering\footnotesize\texttt{#1}}}
|
\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{\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{\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}}
|
\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