masterarbeit/presentation/presentation.html

644 lines
28 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>
Evaluation of the Performance of Randomized FFD Control Grids: Master Thesis
</title>
<link rel="stylesheet" href="./template/revealjs/css/reveal.css">
<!-- Theme of AG CG (derived from reveal's white.css) -->
<link rel="stylesheet" href="./template/agcg.css">
<!-- font needed for chalkboard buttons -->
<link rel="stylesheet" href="./template/font-awesome/css/font-awesome.min.css">
<!-- Setup code formatting with highlight.js -->
<link rel="stylesheet" href="./template/revealjs/css/highlight/xcode.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? './template/revealjs/css/print/pdf.css' : './template/revealjs/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
// MARIO version
if (window.location.search.match( /print-pdf/gi ))
{
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = './template/agcg-pdf.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
}
</script>
<!-- MathJax config -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
jax: ["input/TeX","output/HTML-CSS"],
TeX: {
Macros: {
R: "{\\mathrm{{I}\\kern-.15em{R}}}",
abs: ['\\left\\lvert #1 \\right\\rvert', 1],
norm: ['\\left\\Vert #1 \\right\\Vert', 1],
iprod: ['\\left\\langle #1 \\right\\rangle', 1],
vec: ['\\mathbf{#1}', 1],
mat: ['\\mathbf{#1}', 1],
trans: ['{#1}\\mkern-1mu^{\\mathsf{T}}', 1],
matrix: ['\\begin{bmatrix} #1 \\end{bmatrix}', 1],
vector: ['\\begin{pmatrix} #1 \\end{pmatrix}', 1],
of: ['\\mkern{-2mu}\\left( #1 \\right\)', 1]
}
},
tex2jax: {
skipTags: ["script","noscript","style","textarea"],
},
"HTML-CSS": {
styles: { ".reveal section .MathJax_Display": { margin: "0.5em 0em" } },
styles: { ".reveal table .MathJax_Display": { margin: "0em" } },
scale: 95
}
});
</script>
</head>
<body>
<!-- here come the slides -->
<div class="reveal">
<div class="slides">
<!-- Title slide -->
<section class="white-on-blue">
<div class="title"> Evaluation of the Performance of Randomized FFD Control Grids </div>
<div class="subtitle"> Master Thesis </div>
<div class="author"> Stefan Dresselhaus </div>
<div class="affiliation"> Graphics &amp; Geometry Group </div>
</section>
<!-- Table of Contents -->
<!-- all the slides from markdown document: DO NOT INDENT THE body LINE!!! -->
<section id="introduction" class="slide level1">
<h1>Introduction</h1>
<ul>
<li>Many modern industrial design processes require advanced optimization methods due to increased complexity</li>
<li>Examples are
<ul>
<li>physical domains
<ul>
<li>aerodynamics (i.e. drag)</li>
<li>fluid dynamics (i.e. throughput of liquid)</li>
</ul></li>
<li>NP-hard problems
<ul>
<li>layouting of circuit boards</li>
<li>stacking of 3Dobjects</li>
</ul></li>
</ul></li>
</ul>
</section>
<section id="motivation" class="slide level1">
<h1>Motivation</h1>
<ul>
<li>Evolutionary algorithms cope especially well with these problem domains <figure class="" style=""><img src="../arbeit/img/Evo_overview.png" style=""></img><figcaption>Example of the use of evolutionary algorithms in automotive design</figcaption></figure></li>
<li>But formulation can be tricky</li>
</ul>
</section>
<section id="motivation-1" class="slide level1">
<h1>Motivation</h1>
<ul>
<li>Problems tend to be very complex
<ul>
<li>i.e. a surface with <span class="math inline">\(n\)</span> vertices has <span class="math inline">\(3\cdot n\)</span> Degrees of Freedom (DoF).</li>
</ul></li>
<li>Need for a small-dimensional representation that manipulates the high-dimensional problem-space.</li>
<li>We concentrate on smooth deformations (<span class="math inline">\(C^3\)</span>-continuous)</li>
<li>But what representation is good?</li>
</ul>
</section>
<section id="what-representation-is-good" class="slide level1">
<h1>What representation is good?</h1>
<ul>
<li>In biological evolution this measure is called <em>evolvability</em>.
<ul>
<li>no consensus on definition</li>
<li>meaning varies from context to context</li>
<li>measurable?</li>
</ul></li>
<li>Measure depends on representation as well.</li>
</ul>
</section>
<section id="rbf-and-ffd" class="slide level1">
<h1>RBF and FFD</h1>
<ul>
<li>Andreas Richter uses Radial Basis Functions (RBF) to smoothly deform meshes</li>
</ul>
<p><figure class="" style=""><img src="../arbeit/img/deformations.png" style=""></img><figcaption>Example of RBFbased deformation and FFD targeting the same mesh.</figcaption></figure></p>
</section>
<section id="rbf-and-ffd-1" class="slide level1">
<h1>RBF and FFD</h1>
<ul>
<li>My master thesis transferred his idea to Freeform-Deformation (FFD)
<ul>
<li>same setup</li>
<li>same measurements</li>
<li>same results?</li>
</ul></li>
</ul>
<p><figure class="" style=""><img src="../arbeit/img/deformations.png" style=""></img><figcaption>Example of RBFbased deformation and FFD targeting the same mesh.</figcaption></figure></p>
</section>
<section id="outline" class="slide level1">
<h1>Outline</h1>
<ul>
<li><strong>What is FFD?</strong></li>
<li>What is evolutionary optimization?</li>
<li>How to measure evolvability?</li>
<li>Scenarios</li>
<li>Results</li>
</ul>
</section>
<section id="what-is-ffd" class="slide level1">
<h1>What is FFD?</h1>
<ul>
<li>Create a function <span class="math inline">\(s : [0,1[^d \mapsto \mathbb{R}^d\)</span> that is parametrized by some special controlpoints <span class="math inline">\(p_i\)</span> with coefficient functions <span class="math inline">\(a_i(u)\)</span>: <span class="math display">\[
s(\vec{u}) = \sum_i a_i(\vec{u}) \vec{p_i}
\]</span></li>
<li>All points inside the convex hull of <span class="math inline">\(\vec{p_i}\)</span> accessed by the right <span class="math inline">\(u \in [0,1[^d\)</span>.</li>
</ul>
<p><figure class="" style=""><img src="../arbeit/img/B-Splines.png" style=""></img><figcaption>Example of a parametrization of a line with corresponding deformation to generate a deformed objet</figcaption></figure></p>
</section>
<section id="definition-b-splines" class="slide level1">
<h1>Definition B-Splines</h1>
<ul>
<li>The coefficient functions <span class="math inline">\(a_i(u)\)</span> in <span class="math inline">\(s(\vec{u}) = \sum_i a_i(\vec{u}) \vec{p_i}\)</span> are different for each control-point</li>
<li>Given a degree <span class="math inline">\(d\)</span> and position <span class="math inline">\(\tau_i\)</span> for the <span class="math inline">\(i\)</span>th control-point <span class="math inline">\(p_i\)</span> we define <span class="math display">\[\begin{equation}
N_{i,0,\tau}(u) = \begin{cases} 1, &amp; u \in [\tau_i, \tau_{i+1}[ \\ 0, &amp; \mbox{otherwise} \end{cases}
\end{equation}\]</span> and <span class="math display">\[\begin{equation} \label{eqn:ffd1d2}
N_{i,d,\tau}(u) = \frac{u-\tau_i}{\tau_{i+d}} N_{i,d-1,\tau}(u) + \frac{\tau_{i+d+1} - u}{\tau_{i+d+1}-\tau_{i+1}} N_{i+1,d-1,\tau}(u)
\end{equation}\]</span></li>
<li>The derivatives of these coefficients are also easy to compute: <span class="math display">\[\frac{\partial}{\partial u} N_{i,d,r}(u) = \frac{d}{\tau_{i+d} - \tau_i} N_{i,d-1,\tau}(u) - \frac{d}{\tau_{i+d+1} - \tau_{i+1}} N_{i+1,d-1,\tau}(u)\]</span></li>
</ul>
</section>
<section id="properties-of-b-splines" class="slide level1">
<h1>Properties of B-Splines</h1>
<ul>
<li>Coefficients vanish after <span class="math inline">\(d\)</span> differentiations</li>
<li>Coefficients are continuous with respect to <span class="math inline">\(u\)</span></li>
<li>A change in prototypes only deforms the mapping locally<br />
(between <span class="math inline">\(p_i\)</span> to <span class="math inline">\(p_{i+d+1}\)</span>)</li>
</ul>
<p><figure class="" style=""><img src="../arbeit/img/unity.png" style=""></img><figcaption>Example of Basis-Functions for degree <span class="math inline">\(2\)</span>. [Brunet, 2010]<br /> Note, that Brunet starts his index at <span class="math inline">\(-d\)</span> opposed to our definition, where we start at <span class="math inline">\(0\)</span>.</figcaption></figure></p>
</section>
<section id="definition-ffd" class="slide level1">
<h1>Definition FFD</h1>
<ul>
<li>FFD is a space-deformation resulting based on the underlying B-Splines</li>
<li>Coefficients of space-mapping <span class="math inline">\(s(u) = \sum_j a_j(u) p_j\)</span> for an initial vertex <span class="math inline">\(v_i\)</span> are constant</li>
<li>Set <span class="math inline">\(u_{i,j}~:=~N_{j,d,\tau}\)</span> for each <span class="math inline">\(v_i\)</span> and <span class="math inline">\(p_j\)</span> to get the projection: <span class="math display">\[
v_i = \sum_j u_{i,j} \cdot p_j = \vec{u}_i^{T} \vec{p}
\]</span> or written with matrices: <span class="math display">\[
\vec{v} = \vec{U} \vec{p}
\]</span></li>
<li><span class="math inline">\(\vec{U}\)</span> is called <strong>deformation matrix</strong></li>
</ul>
</section>
<section id="implementation-of-ffd" class="slide level1">
<h1>Implementation of FFD</h1>
<ul>
<li>As we deal with 3D-Models we have to extend the introduced 1D-version</li>
<li>We get one parameter for each dimension: <span class="math inline">\(u,v,w\)</span> instead of <span class="math inline">\(u\)</span></li>
<li>Task: Find correct <span class="math inline">\(u,v,w\)</span> for each vertex in our model
<ul>
<li>We used a gradient-descent (via the gauss-newton algorithm)</li>
</ul></li>
</ul>
</section>
<section id="implementation-of-ffd-1" class="slide level1">
<h1>Implementation of FFD</h1>
<ul>
<li>Given <span class="math inline">\(n,m,o\)</span> control-points in <span class="math inline">\(x,y,z\)</span>direction each Point inside the convex hull is defined by <span class="math display">\[V(u,v,w) = \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}.\]</span></li>
<li>Given a target vertex <span class="math inline">\(\vec{p}^*\)</span> and an initial guess <span class="math inline">\(\vec{p}=V(u,v,w)\)</span> we define the errorfunction for the gradientdescent as: <span class="math display">\[Err(u,v,w,\vec{p}^{*}) = \vec{p}^{*} - V(u,v,w)\]</span></li>
</ul>
</section>
<section id="implementation-of-ffd-2" class="slide level1">
<h1>Implementation of FFD</h1>
<ul>
<li>Derivation is straightforward <span class="math display">\[
\scriptsize
\begin{array}{rl}
\displaystyle \frac{\partial Err_x}{\partial u} &amp; 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 \\
= &amp; \displaystyle - \sum_i \sum_j \sum_k N&#39;_{i,d,\tau_i}(u) N_{j,d,\tau_j}(v) N_{k,d,\tau_k}(w) \cdot {c_{ijk}}_x
\end{array}
\]</span> yielding a Jacobian:</li>
</ul>
<p><span class="math display">\[
\scriptsize
J(Err(u,v,w)) =
\left(
\begin{array}{ccc}
\frac{\partial Err_x}{\partial u} &amp; \frac{\partial Err_x}{\partial v} &amp; \frac{\partial Err_x}{\partial w} \\
\frac{\partial Err_y}{\partial u} &amp; \frac{\partial Err_y}{\partial v} &amp; \frac{\partial Err_y}{\partial w} \\
\frac{\partial Err_z}{\partial u} &amp; \frac{\partial Err_z}{\partial v} &amp; \frac{\partial Err_z}{\partial w}
\end{array}
\right)
\]</span></p>
</section>
<section id="implementation-of-ffd-3" class="slide level1">
<h1>Implementation of FFD</h1>
<ul>
<li>Armed with this we iterate the formula <span class="math display">\[J(Err(u,v,w)) \cdot \Delta \left( \begin{array}{c} u \\ v \\ w \end{array} \right) = -Err(u,v,w)\]</span> using Cramers rule for inverting the small Jacobian.</li>
<li>Usually terminates after <span class="math inline">\(3\)</span> to <span class="math inline">\(5\)</span> iteration with an <span class="math inline">\(\epsilon := \vec{p^*} - V(u,v,w) &lt; 10^{-4}\)</span></li>
<li>self-intersecting grids can invalidate the results
<ul>
<li>no problem, as these get not generated and contradict some properties we want (like locality)</li>
</ul></li>
</ul>
</section>
<section id="outline-1" class="slide level1">
<h1>Outline</h1>
<ul>
<li>What is FFD?</li>
<li><strong>What is evolutionary optimization?</strong></li>
<li>How to measure evolvability?</li>
<li>Scenarios</li>
<li>Results</li>
</ul>
</section>
<section id="what-is-evolutionary-optimization" class="slide level1">
<h1>What is evolutionary optimization?</h1>
<div id="section">
<div style="width:50%;float:left">
<pre><code data-noescape data-trim class="" style="">$t := 0$;
initialize $P(0) := \{\vec{a}_1(0),\dots,\vec{a}_\mu(0)\} \in I^\mu$;
evaluate $F(0) : \{\Phi(x) | x \in P(0)\}$;
while($c(F(t)) \neq$ true) {
recombine: $P(t) := r(P(t))$;
mutate: $P''(t) := m(P(t))$;
evaluate $F(t) : \{\Phi(x) | x \in P''(t)\}$
select: $P(t + 1) := s(P''(t) \cup Q,\Phi)$;
$t := t + 1$;
}</code></pre>
</div>
<div style="width:50%;float:left">
<pre><code data-noescape data-trim class="" style="">$t$: Iteration-step
$I$: Set of possible Individuals
$P$: Population of Individuals
$F$: Fitness of Individuals
$Q$: Either set of parents or $\emptyset$
$r(..) : I^\mu \mapsto I^\lambda$
$m(..) : I^\lambda \mapsto I^\lambda$
$s(..) : I^{\lambda + \mu} \mapsto I^\mu$</code></pre>
</div>
<div style="clear: both">
</div>
</div>
<ul>
<li>Algorithm to model simple inheritance</li>
<li>Consists of three main steps
<ul>
<li>recombination</li>
<li>mutation</li>
<li>selection</li>
</ul></li>
<li>An “individual” in our case is the displacement of control-points</li>
</ul>
</section>
<section id="evolutional-loop" class="slide level1">
<h1>Evolutional loop</h1>
<ul>
<li><strong>Recombination</strong> generates <span class="math inline">\(\lambda\)</span> new individuals based on the characteristics of the <span class="math inline">\(\mu\)</span> parents.
<ul>
<li>This makes sure that the next guess is close to the old guess.</li>
</ul></li>
<li><strong>Mutation</strong> introduces new effects that cannot be produced by mere recombination of the parents.
<ul>
<li>Typically these are minor defects to individual members of the population i.e. through added noise</li>
</ul></li>
<li><strong>Selection</strong> selects <span class="math inline">\(\mu\)</span> individuals from the children (and optionally the parents) using a <em>fitnessfunction</em> <span class="math inline">\(\Phi\)</span>.
<ul>
<li>Fitness could mean low error, good improvement, etc.</li>
<li>Fitness not solely determines who survives, there are many possibilities</li>
</ul></li>
</ul>
</section>
<section id="outline-2" class="slide level1">
<h1>Outline</h1>
<ul>
<li>What is FFD?</li>
<li>What is evolutionary optimization?</li>
<li><strong>How to measure evolvability?</strong></li>
<li>Scenarios</li>
<li>Results</li>
</ul>
</section>
<section id="how-to-measure-evolvability" class="slide level1">
<h1>How to measure evolvability?</h1>
<ul>
<li>Different (conflicting) optimization targets
<ul>
<li>convergence speed?</li>
<li>convergence quality?</li>
</ul></li>
<li>As <span class="math inline">\(\vec{v} = \vec{U}\vec{p}\)</span> is linear, we can also look at <span class="math inline">\(\Delta \vec{v} = \vec{U}\, \Delta \vec{p}\)</span>
<ul>
<li>We only change <span class="math inline">\(\Delta \vec{p}\)</span>, so evolvability should only use <span class="math inline">\(\vec{U}\)</span> for predictions</li>
</ul></li>
</ul>
</section>
<section id="evolvability-criteria" class="slide level1">
<h1>Evolvability criteria</h1>
<ul>
<li><strong>Variability</strong>
<ul>
<li>roughly: “How many actual Degrees of Freedom exist?”</li>
<li>Defined by <span class="math display">\[\mathrm{variability}(\vec{U}) := \frac{\mathrm{rank}(\vec{U})}{n} \in [0..1]\]</span></li>
<li>in FFD this is <span class="math inline">\(1/\#\textrm{CP}\)</span> for the number of control-points used for parametrization</li>
</ul></li>
</ul>
</section>
<section id="evolvability-criteria-1" class="slide level1">
<h1>Evolvability criteria</h1>
<ul>
<li><strong>Regularity</strong>
<ul>
<li>roughly: “How numerically stable is the optimization?”</li>
<li>Defined by <span class="math display">\[\mathrm{regularity}(\vec{U}) := \frac{1}{\kappa(\vec{U})} = \frac{\sigma_{min}}{\sigma_{max}} \in [0..1]\]</span> with <span class="math inline">\(\sigma_{min/max}\)</span> being the least/greatest right singular value.</li>
<li>high, when <span class="math inline">\(\|\vec{Up}\| \propto \|\vec{p}\|\)</span></li>
</ul></li>
</ul>
</section>
<section id="evolvability-criteria-2" class="slide level1">
<h1>Evolvability criteria</h1>
<ul>
<li><strong>Improvement Potential</strong>
<ul>
<li>roughly: “How good can the best fit become?”</li>
<li>Defined by <span class="math display">\[\mathrm{potential}(\vec{U}) := 1 - \|(\vec{1} - \vec{UU}^+)\vec{G}\|^2_F\]</span> with a unit-normed guessed gradient <span class="math inline">\(\vec{G}\)</span></li>
</ul></li>
</ul>
</section>
<section id="outline-3" class="slide level1">
<h1>Outline</h1>
<ul>
<li>What is FFD?</li>
<li>What is evolutionary optimization?</li>
<li>How to measure evolvability?</li>
<li><strong>Scenarios</strong></li>
<li>Results</li>
</ul>
</section>
<section id="scenarios" class="slide level1">
<h1>Scenarios</h1>
<ul>
<li>2 Testing Scenarios</li>
<li>1-dimensional fit
<ul>
<li><span class="math inline">\(xy\)</span>-plane to <span class="math inline">\(xyz\)</span>-model, where only the <span class="math inline">\(z\)</span>-coordinate changes</li>
<li>can be solved analytically with known global optimum</li>
</ul></li>
<li>3-dimensional fit
<ul>
<li>fit a parametrized sphere into a face</li>
<li>cannot be solved analytically</li>
<li>number of vertices differ between models</li>
</ul></li>
</ul>
</section>
<section id="d-scenario" class="slide level1">
<h1>1D-Scenario</h1>
<p><figure class="" style=""><img src="../arbeit/img/example1d_grid.png" style=""></img><figcaption>Left: A regular <span class="math inline">\(7 \times 4\)</span>grid<br />Right: The same grid after a random distortion to generate a testcase.</figcaption></figure></p>
<p><figure class="" style="width:70%;"><img src="../arbeit/img/1dtarget.png" style="width:70%;"></img><figcaption>The targetshape for our 1dimensional optimizationscenario including a wireframeoverlay of the vertices.</figcaption></figure></p>
</section>
<section id="d-scenarios" class="slide level1">
<h1>3D-Scenarios</h1>
<p><figure class="" style=""><img src="../arbeit/img/3dtarget.png" style=""></img><figcaption>Left: The sphere we start from with 10 807 vertices<br />Right: The face we want to deform the sphere into with 12 024 vertices.</figcaption></figure></p>
</section>
<section id="outline-4" class="slide level1">
<h1>Outline</h1>
<ul>
<li>What is FFD?</li>
<li>What is evolutionary optimization?</li>
<li>How to measure evolvability?</li>
<li>Scenarios</li>
<li><strong>Results</strong></li>
</ul>
</section>
<section id="variability-1d" class="slide level1">
<h1>Variability 1D</h1>
<ul>
<li>Should measure Degrees of Freedom and thus quality</li>
</ul>
<p><figure class="" style=""><img src="../arbeit/img/evolution1d/variability_boxplot.png" style=""></img><figcaption>The squared error for the various grids we examined.<br /> Note that <span class="math inline">\(7 \times 4\)</span> and <span class="math inline">\(4 \times 7\)</span> have the same number of controlpoints.</figcaption></figure></p>
<ul>
<li><span class="math inline">\(5 \times 5\)</span>, <span class="math inline">\(7 \times 7\)</span> and <span class="math inline">\(10 \times 10\)</span> have <em>very strong</em> correlation (<span class="math inline">\(-r_S = 0.94, p = 0\)</span>) between the <em>variability</em> and the evolutionary error.</li>
</ul>
</section>
<section id="variability-3d" class="slide level1">
<h1>Variability 3D</h1>
<ul>
<li>Should measure Degrees of Freedom and thus quality</li>
</ul>
<p><figure class="" style=""><img src="../arbeit/img/evolution3d/variability_boxplot.png" style=""></img><figcaption>The fitting error for the various grids we examined.<br />Note that the number of controlpoints is a product of the resolution, so <span class="math inline">\(X \times 4 \times 4\)</span> and <span class="math inline">\(4 \times 4 \times X\)</span> have the same number of controlpoints.</figcaption></figure></p>
<ul>
<li><span class="math inline">\(4 \times 4 \times 4\)</span>, <span class="math inline">\(5 \times 5 \times 5\)</span> and <span class="math inline">\(6 \times 6 \times 6\)</span> have <em>very strong</em> correlation (<span class="math inline">\(-r_S = 0.91, p = 0\)</span>) between the <em>variability</em> and the evolutionary error.</li>
</ul>
</section>
<section id="varying-variability" class="slide level1">
<h1>Varying Variability</h1>
<div id="section-1">
<div style="width:50%;float:left">
<p><figure class="" style=""><img src="../arbeit/img/enoughCP.png" style=""></img><figcaption>A high resolution (<span class="math inline">\(10 \times 10\)</span>) of controlpoints over a circle. Yellow/green points contribute to the parametrization, red points dont.<br />An Examplepoint (blue) is solely determined by the position of the green controlpoints.</figcaption></figure></p>
</div>
<div style="width:50%;float:left">
<p><figure class="" style=""><img src="../arbeit/img/evolution3d/variability2_boxplot.png" style=""></img><figcaption>Histogram of ranks of various <span class="math inline">\(10 \times 10 \times 10\)</span> grids with <span class="math inline">\(1000\)</span> controlpoints each showing in this case how many controlpoints are actually used in the calculations.</figcaption></figure></p>
</div>
<div style="clear: both">
</div>
</div>
</section>
<section id="regularity-1d" class="slide level1">
<h1>Regularity 1D</h1>
<ul>
<li>Should measure convergence speed</li>
</ul>
<p><figure class="" style="width:70%;"><img src="../arbeit/img/evolution1d/55_to_1010_steps.png" style="width:70%;"></img><figcaption>Left: <em>Improvement potential</em> against number of iterations until convergence<br />Right: <em>Regularity</em> against number of iterations until convergence<br />Coloured by their gridresolution, both with a linear fit over the whole dataset.</figcaption></figure></p>
<ul>
<li>Not in our scenarios - maybe due to the fact that a better solution simply takes longer to converge, thus dominating.</li>
</ul>
</section>
<section id="regularity-3d" class="slide level1">
<h1>Regularity 3D</h1>
<ul>
<li>Should measure convergence speed</li>
</ul>
<p><figure class="" style="width:70%;"><img src="../arbeit/img/evolution3d/regularity_montage.png" style="width:70%;"></img><figcaption>Plots of <em>regularity</em> against number of iterations for various scenarios together with a linear fit to indicate trends.</figcaption></figure></p>
<ul>
<li>Only <em>very weak</em> correlation</li>
<li>Point that contributes the worst dominates regularity by lowering the least right singular value towards 0.</li>
</ul>
</section>
<section id="improvement-potential-in-1d" class="slide level1">
<h1>Improvement Potential in 1D</h1>
<ul>
<li>Should measure expected quality given a gradient</li>
</ul>
<p><figure class="" style="width:70%;"><img src="../arbeit/img/evolution1d/55_to_1010_improvement-vs-evo-error.png" style="width:70%;"></img><figcaption><em>Improvement potential</em> plotted against the error yielded by the evolutionary optimization for different gridresolutions</figcaption></figure></p>
<ul>
<li><em>very strong</em> correlation of <span class="math inline">\(- r_S = 1.0, p = 0\)</span>.</li>
<li>Even with a distorted gradient</li>
</ul>
</section>
<section id="improvement-potential-in-3d" class="slide level1">
<h1>Improvement Potential in 3D</h1>
<ul>
<li>Should measure expected quality given a gradient</li>
</ul>
<p><figure class="" style="width:70%;"><img src="../arbeit/img/evolution3d/improvement_montage.png" style="width:70%;"></img><figcaption>Plots of <em>improvement potential</em> against error given by our <em>fitnessfunction</em> after convergence together with a linear fit of each of the plotted data to indicate trends.</figcaption></figure></p>
<ul>
<li><em>weak</em> to <em>moderate</em> correlation within each group.</li>
</ul>
</section>
<section id="summary" class="slide level1">
<h1>Summary</h1>
<ul>
<li><em>Variability</em> and <em>Improvement Potential</em> are good measurements in our cases</li>
<li><em>Regularity</em> does not work well because of small singular right values
<ul>
<li>But optimizing for regularity <em>could</em> still lead to a better grid-setup (not shown, but likely)</li>
<li>Effect can be dominated by other factors (i.e. better solutions just take longer)</li>
</ul></li>
</ul>
</section>
<section id="outlook-further-research" class="slide level1">
<h1>Outlook / Further research</h1>
<ul>
<li>Only focused on FFD, but will DM-FFD perform better?
<ul>
<li>for RBF the indirect manipulation also performed worse than the direct one</li>
</ul></li>
<li>Do grids with high regularity indeed perform better?</li>
</ul>
</section>
<section id="thank-you" class="slide level1">
<h1>Thank you</h1>
<p>Any questions?</p>
</section>
</div>
</div>
<script src="./template/revealjs/lib/js/head.min.js"></script>
<script src="./template/revealjs/js/reveal.js"></script>
<script>
// More info https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
// reveal settings
controls: false,
progress: false,
slideNumber: true,
history: true,
center: false,
transition: 'none',
viewDistance: 2, // otherwise videos start early
width: 1280,
height: 1024,
minScale: 0.2,
maxScale: 5, // if this threshold is reached, the chalkboard drawing will be wrongly positioned. hence large threshold!
// use local mathjax installation
math: { mathjax: './template/mathjax/MathJax.js',
config: 'TeX-AMS_HTML-full',
extensions: ["content-mathml.js"]
},
// setup chalkboard
chalkboard: {
src: "presentation.json",
readOnly: false,
theme: "chalkboard",
color: [ 'rgba(255,0,0,1)', 'rgba(255,255,255,1)' ],
background: [ 'rgba(0,0,0,0)' , './template/my-chalkboard/img/blackboard.png' ],
pen: [ './template/my-chalkboard/img/boardmarker.png', './template/my-chalkboard/img/chalk.png' ],
},
// setup reveal-menu
menu: {
side: 'right',
numbers: false,
titleSelector: 'h1',
hideMissingTitles: false,
markers: false,
custom: false,
themes: false,
transitions: false,
openButton: false,
openSlideNumber: true,
keyboard: true
},
// keyboard shortcuts
keyboard: {
40: function() { Reveal.next(); }, // up: next slide
38: function() { Reveal.prev(); }, // down: prev slide
67: function() { RevealChalkboard.toggleNotesCanvas() }, // c: draw on slides
84: function() { RevealChalkboard.toggleChalkboard() }, // t: draw on blackboard
69: function() { RevealChalkboard.toggleSponge() }, // e: toggle eraser
8: function() { RevealChalkboard.clear() }, // BACKSPACE: clear chalkboard
46: function() { RevealChalkboard.reset() }, // DELETE: reset chalkboard
68: function() { RevealChalkboard.download() }, // d: downlad chalkboard drawing
},
// load plugins
dependencies: [
{ src: './template/revealjs/plugin/math/math.js' },
{ src: './template/revealjs/plugin/notes/notes.js', async: true },
/*{ src: './template/revealjs/plugin/highlight/highlight.js', async: true, callback: function() {
var code_blocks = document.querySelectorAll('code');
for( var i = 0, len = code_blocks.length; i < len; i++ ) hljs.highlightBlock(code_blocks[i]);
}},*/
{ src: './template/revealjs/plugin/menu/menu.js' },
{ src: './template/my-chalkboard/chalkboard.js' }, // do not load this async ('ready' event is missing, print wont work)
{ src: './template/my-zoom/zoom.js', async: true },
]
});
</script>
</body>
</html>