todays work
This commit is contained in:
parent
34fd8efaa8
commit
fc0c67f538
@ -59,7 +59,7 @@
|
||||
\begin{center}
|
||||
\begin{tabular}{lrl}
|
||||
\hspace{0.99cm} Supervisor:~&Prof.~Dr.~&Mario Botsch\\
|
||||
\hspace{0.99cm} &Dipl.~Math.~&Alexander~Richter
|
||||
\hspace{0.99cm} &Dipl.~Math.~&Andreas~Richter
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\vspace*{\stretch{.2}}
|
||||
|
BIN
arbeit/img/B-Splines.png
Normal file
BIN
arbeit/img/B-Splines.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
405
arbeit/img/B-Splines.svg
Normal file
405
arbeit/img/B-Splines.svg
Normal file
@ -0,0 +1,405 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||
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:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="117.30389mm"
|
||||
height="66.311211mm"
|
||||
viewBox="0 0 415.64372 234.96098"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="B-Splines.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6399">
|
||||
<stop
|
||||
style="stop-color:#ff0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6401" />
|
||||
<stop
|
||||
id="stop6407"
|
||||
offset="0.55555558"
|
||||
style="stop-color:#ffff00;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#00ff00;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop6403" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6329-9-7-3">
|
||||
<stop
|
||||
style="stop-color:#ff0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6377" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6329-9-7">
|
||||
<stop
|
||||
id="stop6373"
|
||||
offset="0"
|
||||
style="stop-color:#ff0000;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6329-9">
|
||||
<stop
|
||||
style="stop-color:#ff0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6367" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6369">
|
||||
<stop
|
||||
id="stop6363"
|
||||
offset="0"
|
||||
style="stop-color:#ff0000;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6347"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#ff0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6349" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6341"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6343" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6335"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6337" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6329">
|
||||
<stop
|
||||
style="stop-color:#ff0000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop6331" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible"
|
||||
id="marker4580"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
|
||||
id="path4582"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4540"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
id="path4542"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
|
||||
style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#cccccc;stroke-width:1pt;stroke-opacity:1"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible"
|
||||
id="marker4488"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
|
||||
id="path4490"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
id="path4203"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6399"
|
||||
id="linearGradient6405"
|
||||
x1="61.428577"
|
||||
y1="576.29077"
|
||||
x2="200.71428"
|
||||
y2="576.29077"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6399"
|
||||
id="linearGradient6423"
|
||||
x1="309.28772"
|
||||
y1="576.29077"
|
||||
x2="469.84653"
|
||||
y2="576.29077"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.8"
|
||||
inkscape:cx="176.80108"
|
||||
inkscape:cy="131.06794"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:object-paths="false"
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-others="true"
|
||||
inkscape:snap-nodes="true"
|
||||
inkscape:snap-center="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(-57.714292,-393.25836)">
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient6405);stroke-opacity:1"
|
||||
d="m 61.428577,576.29077 139.285703,0"
|
||||
id="path6389"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 60.503738,433.4594 140.916282,0.12627"
|
||||
id="path4136"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 309.28772,437.17931 c 31.66531,0 31.84405,-39.74202 47.72971,-26.51651 15.88566,13.22551 32.30661,71.10193 39.90102,37.37565 7.5944,-33.72628 14.51411,-41.77591 34.09265,-36.11296 19.57854,5.66295 14.2684,23.35978 38.82773,23.73859"
|
||||
id="path4140"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="czzzc" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient6423);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 309.28772,580.26322 c 31.66531,0 31.84405,-39.74202 47.72971,-26.51651 15.88566,13.22551 32.30661,71.10193 39.90102,37.37565 7.5944,-33.72628 14.51411,-41.77591 34.09265,-36.11296 19.57854,5.66295 14.2684,23.35978 38.82773,23.73859"
|
||||
id="path4140-6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="czzzc" />
|
||||
<path
|
||||
style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4540)"
|
||||
d="m 233.03571,433.20686 50.71429,0"
|
||||
id="path4160"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 130.96188,474.23721 0,56.7857"
|
||||
id="path4162"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4488)"
|
||||
d="m 389.56713,532.84294 0,-56.78571"
|
||||
id="path4162-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4580)"
|
||||
d="m 233.03571,576.29077 50.71429,0"
|
||||
id="path4160-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot4644"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
transform="translate(22.576306,-94.642857)"><flowRegion
|
||||
id="flowRegion4646"><rect
|
||||
id="rect4648"
|
||||
width="66.785713"
|
||||
height="51.785713"
|
||||
x="226.07143"
|
||||
y="477.71936" /></flowRegion><flowPara
|
||||
id="flowPara4650">?</flowPara></flowRoot> <circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670"
|
||||
cx="61.428577"
|
||||
cy="576.29077"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-2"
|
||||
cx="200.71428"
|
||||
cy="576.29077"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-9"
|
||||
cx="310.02182"
|
||||
cy="580.25604"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-3-1"
|
||||
cx="343.75003"
|
||||
cy="580.57648"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-5-2"
|
||||
cx="340.71426"
|
||||
cy="539.86218"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-6-7"
|
||||
cx="373.39285"
|
||||
cy="565.93359"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-2-0"
|
||||
cx="469.64374"
|
||||
cy="578.74463"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-2-0-9"
|
||||
cx="390.35715"
|
||||
cy="624.50507"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-2-0-3"
|
||||
cx="404.28571"
|
||||
cy="557.00507"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-2-0-6"
|
||||
cx="411.78571"
|
||||
cy="549.14789"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-2-0-0"
|
||||
cx="451.42856"
|
||||
cy="560.57648"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-2-0-62"
|
||||
cx="445.71429"
|
||||
cy="577.71936"
|
||||
r="3.2142856" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#d4aa00;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 309.8954,580.47189 33.92857,0.40046 -3.05584,-41.47189 32.41026,26.34935 16.85443,58.56399 14.58157,-66.80366 6.99493,-8.29351 34.09446,29.84463 5.7285,-18.26069 18.42722,18.36158"
|
||||
id="path4771"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccc" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-6"
|
||||
cx="76.90477"
|
||||
cy="576.29077"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-1"
|
||||
cx="92.380959"
|
||||
cy="576.29077"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-8"
|
||||
cx="107.85715"
|
||||
cy="576.29077"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-7"
|
||||
cx="123.33334"
|
||||
cy="576.29077"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-92"
|
||||
cx="138.80952"
|
||||
cy="576.29077"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-0"
|
||||
cx="154.28572"
|
||||
cy="576.29077"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-23"
|
||||
cx="169.7619"
|
||||
cy="576.29077"
|
||||
r="3.2142856" />
|
||||
<circle
|
||||
style="opacity:1;fill:#c83737;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path4670-75"
|
||||
cx="185.2381"
|
||||
cy="576.29077"
|
||||
r="3.2142856" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 15 KiB |
137
arbeit/ma.md
137
arbeit/ma.md
@ -26,7 +26,7 @@ Unless otherwise noted the following holds:
|
||||
\improvement[inline]{Mehr Bilder}
|
||||
|
||||
Many modern industrial design processes require advanced optimization methods
|
||||
do to the increased complexity. These designs have to adhere to more and more
|
||||
due to the increased complexity. These designs have to adhere to more and more
|
||||
degrees of freedom as methods refine and/or other methods are used. Examples for
|
||||
this are physical domains like aerodynamic (i.e. drag), fluid dynamics (i.e.
|
||||
throughput of liquid) --- where the complexity increases with the temporal and
|
||||
@ -38,35 +38,54 @@ time or from case to case.
|
||||
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
|
||||
cost--function for the fitness--functions (i.e. amount of drag, amount of space,
|
||||
*genome* and *fitness--function*. While one can typically use an arbitrary
|
||||
cost--function for the *fitness--functions* (i.e. amount of drag, amount of space,
|
||||
etc.), the translation of the problem--domain into a simple parametric
|
||||
representation can be challenging.
|
||||
representation (the *genome*) can be challenging.
|
||||
|
||||
The quality of such a representation in biological evolution is called
|
||||
*evolvability*\cite{wagner1996complex} and is at the core of this thesis, as the
|
||||
This translation is often necessary as the target of the optimization may have
|
||||
too many degrees of freedom. In the example of an aerodynamic simulation of drag
|
||||
onto an object, those objects--designs tend to have a high number of vertices to
|
||||
adhere to various requirements (visual, practical, physical, etc.). A simpler
|
||||
representation of the same object in only a few parameters that manipulate the
|
||||
whole in a sensible matter are desirable, as this often decreases the
|
||||
computation time significantly.
|
||||
|
||||
Additionally one can exploit the fact, that drag in this case is especially
|
||||
sensitive to non--smooth surfaces, so that a smooth local manipulation of the
|
||||
surface as a whole is more advantageous than merely random manipulation of the
|
||||
vertices.
|
||||
|
||||
The quality of such a low-dimensional representation in biological evolution is
|
||||
strongly tied to the notion of *evolvability*\cite{wagner1996complex}, as the
|
||||
parametrization of the problem has serious implications on the convergence speed
|
||||
and the quality of the solution\cite{Rothlauf2006}.
|
||||
However, there is no consensus on how *evolvability* is defined and the meaning
|
||||
varies from context to context\cite{richter2015evolvability}.
|
||||
varies from context to context\cite{richter2015evolvability}, so there is need
|
||||
for some criteria we can measure, so that we are able to compare different
|
||||
representations to learn and improve upon these.
|
||||
|
||||
One example of such a general representation of an object is to generate random
|
||||
points and represent vertices of an object as distances to these points --- for
|
||||
example via \acf{RBF}. If one (or the algorithm) would move such a point the
|
||||
object will get deformed locally (due to the \ac{RBF}). As this results in a
|
||||
simple mapping from the parameter-space onto the object one can try out
|
||||
different representations of the same object and evaluate the *evolvability*.
|
||||
This is exactly what Richter et al.\cite{anrichterEvol} have done.
|
||||
|
||||
As we transfer the results of Richter et al.\cite{anrichterEvol} from using
|
||||
\acf{RBF} as a representation to manipulate a geometric mesh to the use of
|
||||
\acf{RBF} as a representation to manipulate geometric objects to the use of
|
||||
\acf{FFD} we will use the same definition for evolvability the original author
|
||||
used, namely *regularity*, *variability*, and *improvement potential*. We
|
||||
introduce these term in detail in Chapter \ref{sec:intro:rvi}.
|
||||
introduce these term in detail in Chapter \ref{sec:intro:rvi}. In the original
|
||||
publication the author could show a correlation between these
|
||||
evolvability--criteria with the quality and potential of such optimization.
|
||||
|
||||
In the original publication the author used random sampled points weighted with
|
||||
\acf{RBF} to deform the mesh and showed that the mentioned criteria of
|
||||
*regularity*, *variability*, and *improvement potential* correlate with the quality
|
||||
and potential of such optimization.
|
||||
|
||||
We will replicate the same setup on the same meshes but use \acf{FFD} instead of
|
||||
We will replicate the same setup on the same objects but use \acf{FFD} instead of
|
||||
\acf{RBF} to create a local deformation near the control points and evaluate if
|
||||
the evolution--criteria still work as a predictor given the different deformation
|
||||
scheme, as suspected in \cite{anrichterEvol}.
|
||||
|
||||
## Outline of this thesis
|
||||
the evolution--criteria still work as a predictor for *evolvability* of the
|
||||
representation given the different deformation scheme, as suspected in
|
||||
\cite{anrichterEvol}.
|
||||
|
||||
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
|
||||
@ -79,7 +98,7 @@ In a third step we take a look at the definition of the different evolvability
|
||||
criteria established in \cite{anrichterEvol}.
|
||||
|
||||
In Chapter \ref{sec:impl} we take a look at our implementation of \ac{FFD} and
|
||||
the adaptation for 3D--meshes.
|
||||
the adaptation for 3D--meshes that were used.
|
||||
|
||||
Next, in Chapter \ref{sec:eval}, we describe the different scenarios we use to
|
||||
evaluate the different evolvability--criteria incorporating all aspects
|
||||
@ -94,13 +113,39 @@ Chapter \ref{sec:res} with further on discussion in Chapter \ref{sec:dis}.
|
||||
\label{sec:back:ffd}
|
||||
|
||||
First of all we have to establish how a \ac{FFD} works and why this is a good
|
||||
tool for deforming meshes in the first place. For simplicity we only summarize
|
||||
the 1D--case from \cite{spitzmuller1996bezier} here and go into the extension to
|
||||
the 3D case in chapter \ref{3dffd}.
|
||||
tool for deforming geometric objects (esp. meshes in our case) in the first
|
||||
place. For simplicity we only summarize the 1D--case from
|
||||
\cite{spitzmuller1996bezier} here and go into the extension to the 3D case in
|
||||
chapter \ref{3dffd}.
|
||||
|
||||
The main idea of \ac{FFD} is to create a function $s : [0,1[^d \mapsto
|
||||
\mathbb{R}^d$ that spans a certain part of a vector--space and is only linearly
|
||||
parametrized by some special control points $p_i$ and an constant
|
||||
attribution--function $a_i(u)$, so
|
||||
$$
|
||||
s(u) = \sum_i a_i(u) p_i
|
||||
$$
|
||||
can be thought of a representation of the inside of the convex hull generated by
|
||||
the control points where each point can be accessed by the right $u \in [0,1[$.
|
||||
|
||||
\begin{figure}[!ht]
|
||||
\begin{center}
|
||||
\includegraphics[width=0.7\textwidth]{img/B-Splines.png}
|
||||
\end{center}
|
||||
\caption[Example of B-Splines]{Example of a parametrization of a line with
|
||||
corresponding deformation to generate a deformed objet}
|
||||
\label{fig:bspline}
|
||||
\end{figure}
|
||||
|
||||
In the example in figure \ref{fig:bspline}, the control--points are indicated as
|
||||
red dots and the color-gradient should hint at the $u$--values ranging from
|
||||
$0$ to $1$.
|
||||
|
||||
We now define a \acf{FFD} by the following:
|
||||
Given an arbitrary number of points $p_i$ alongside a line, we map a scalar
|
||||
value $\tau_i \in [0,1[$ to each point with $\tau_i < \tau_{i+1} \forall i$.
|
||||
Given a degree of the target polynomial $d$ we define the curve
|
||||
value $\tau_i \in [0,1[$ to each point with $\tau_i < \tau_{i+1} \forall i$
|
||||
according to the position of $p_i$ on said line.
|
||||
Additionally, given a degree of the target polynomial $d$ we define the curve
|
||||
$N_{i,d,\tau_i}(u)$ as follows:
|
||||
|
||||
\begin{equation} \label{eqn:ffd1d1}
|
||||
@ -114,7 +159,7 @@ N_{i,d,\tau}(u) = \frac{u-\tau_i}{\tau_{i+d}} N_{i,d-1,\tau}(u) + \frac{\tau_{i+
|
||||
If we now multiply every $p_i$ with the corresponding $N_{i,d,\tau_i}(u)$ we get
|
||||
the contribution of each point $p_i$ to the final curve--point parameterized only
|
||||
by $u \in [0,1[$. As can be seen from \eqref{eqn:ffd1d2} we only access points
|
||||
$[i..i+d]$ for any given $i$^[one more for each recursive step.], which gives
|
||||
$[p_i..p_{i+d}]$ for any given $i$^[one more for each recursive step.], which gives
|
||||
us, in combination with choosing $p_i$ and $\tau_i$ in order, only a local
|
||||
interference of $d+1$ points.
|
||||
|
||||
@ -130,10 +175,28 @@ $$s(u) = \sum_{i} N_{i,d,\tau_i}(u) p_i$$
|
||||
these derivations yield $\frac{\partial^d}{\partial u} s(u) = 0$.
|
||||
|
||||
Another interesting property of these recursive polynomials is that they are
|
||||
continuous (given $d \ge 1$) as every $p_i$ gets blended in linearly between
|
||||
$\tau_i$ and $\tau_{i+d}$ and out linearly between $\tau_{i+1}$ and
|
||||
$\tau_{i+d+1}$ as can bee seen from the two coefficients in every step of the
|
||||
recursion.
|
||||
continuous (given $d \ge 1$) as every $p_i$ gets blended in between $\tau_i$ and
|
||||
$\tau_{i+d}$ and out between $\tau_{i+1}$, and $\tau_{i+d+1}$ as can bee seen from the two coefficients
|
||||
in every step of the recursion.
|
||||
|
||||
\improvement[inline]{Weitere Eigenschaften erwähnen:
|
||||
\newline Convex hull
|
||||
\newline $\sum_i N_i = 1$?
|
||||
\newline Bilder von Basisfunktionen zur Visualisierung.
|
||||
}
|
||||
|
||||
For a given number of points $v_1,\dots,v_n$ we can then calculate
|
||||
the contributions $n_{i,j}~:=~N_{j,d,\tau}$ of each control point $p_j$ to get the
|
||||
projection from the control--point--space into the object--space:
|
||||
$$
|
||||
v_i = \sum_j n_{i,j} \cdot p_j = \vec{n}_i^{T} \vec{p}
|
||||
$$
|
||||
or written for all points at the same time:
|
||||
$$
|
||||
\vec{v} = \vec{N} \vec{p}
|
||||
$$
|
||||
where $\vec{N}$ is the $n \times m$ transformation--matrix (later on called
|
||||
**deformation matrix**) for $n$ object--space--points and $m$ control--points.
|
||||
|
||||
### Why is \ac{FFD} a good deformation function?
|
||||
\label{sec:back:ffdgood}
|
||||
@ -202,7 +265,7 @@ The general shape of an evolutionary algorithm (adapted from
|
||||
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
|
||||
we are looking for. Typically these are initialized by a random guess or just
|
||||
zero. Further on we need a so--called *fitness--function* $\Phi : I \mapsto M$ that can take
|
||||
zero. Further on we need a so--called *fitness--function* $\Phi : I \mapsto M$\improvement{Was ist $I,M$?\newline Bezug Genotyp/Phenotyp} that can take
|
||||
each parameter to a measurable space along a convergence--function $c : I \mapsto
|
||||
\mathbb{B}$ that terminates the optimization.
|
||||
|
||||
@ -263,16 +326,20 @@ 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 evolutionary optimization has one more advantage as you can at
|
||||
least get a suboptimal solutions fast, which then refine over time.
|
||||
least get suboptimal solutions fast, which then refine over time.
|
||||
|
||||
## Criteria for the evolvability of linear deformations
|
||||
\label{sec:intro:rvi}
|
||||
|
||||
\improvement[inline]{Nomenklatur. Was ist $\vec{U}$? Kurz Matrix--Darstellung
|
||||
des Problems & Rückgriff auf FFD-Kapitel.}
|
||||
|
||||
|
||||
### Variability
|
||||
|
||||
In \cite{anrichterEvol} *variability* is defined as
|
||||
$$V(\vec{U}) := \frac{\textrm{rank}(\vec{U})}{n},$$
|
||||
whereby $\vec{U}$ is the $m \times n$ deformation--Matrix used to map the $m$
|
||||
whereby $\vec{U}$ is the $n \times m$ deformation--Matrix \unsure{Nicht $(n\cdot d) \times m$? Wegen $u,v,w$?} used to map the $m$
|
||||
control points onto the $n$ vertices.
|
||||
|
||||
Given $n = m$, an identical number of control--points and vertices, this
|
||||
@ -282,10 +349,6 @@ the solution is to trivially move every control--point onto a target--point.
|
||||
In praxis the value of $V(\vec{U})$ is typically $\ll 1$, because as
|
||||
there are only few control--points for many vertices, so $m \ll n$.
|
||||
|
||||
Additionally in our setup we connect neighbouring control--points in a grid so
|
||||
each control point is not independent, but typically depends on $4^d$
|
||||
control--points for an $d$--dimensional control mesh.
|
||||
|
||||
### Regularity
|
||||
|
||||
*Regularity* is defined\cite{anrichterEvol} as
|
||||
|
BIN
arbeit/ma.pdf
BIN
arbeit/ma.pdf
Binary file not shown.
160
arbeit/ma.tex
160
arbeit/ma.tex
@ -169,7 +169,7 @@ Unless otherwise noted the following holds:
|
||||
\improvement[inline]{Mehr Bilder}
|
||||
|
||||
Many modern industrial design processes require advanced optimization
|
||||
methods do to the increased complexity. These designs have to adhere to
|
||||
methods due to the increased complexity. These designs have to adhere to
|
||||
more and more degrees of freedom as methods refine and/or other methods
|
||||
are used. Examples for this are physical domains like aerodynamic
|
||||
(i.e.~drag), fluid dynamics (i.e.~throughput of liquid) --- where the
|
||||
@ -182,39 +182,59 @@ time or from case to case.
|
||||
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 cost--function for the fitness--functions (i.e.~amount of
|
||||
drag, amount of space, etc.), the translation of the problem--domain
|
||||
into a simple parametric representation can be challenging.
|
||||
in terms of a \emph{genome} and \emph{fitness--function}. While one can
|
||||
typically use an arbitrary cost--function for the
|
||||
\emph{fitness--functions} (i.e.~amount of drag, amount of space, etc.),
|
||||
the translation of the problem--domain into a simple parametric
|
||||
representation (the \emph{genome}) can be challenging.
|
||||
|
||||
The quality of such a representation in biological evolution is called
|
||||
\emph{evolvability}\cite{wagner1996complex} and is at the core of this
|
||||
thesis, as the parametrization of the problem has serious implications
|
||||
on the convergence speed and the quality of the
|
||||
solution\cite{Rothlauf2006}. However, there is no consensus on how
|
||||
\emph{evolvability} is defined and the meaning varies from context to
|
||||
context\cite{richter2015evolvability}.
|
||||
This translation is often necessary as the target of the optimization
|
||||
may have too many degrees of freedom. In the example of an aerodynamic
|
||||
simulation of drag onto an object, those objects--designs tend to have a
|
||||
high number of vertices to adhere to various requirements (visual,
|
||||
practical, physical, etc.). A simpler representation of the same object
|
||||
in only a few parameters that manipulate the whole in a sensible matter
|
||||
are desirable, as this often decreases the computation time
|
||||
significantly.
|
||||
|
||||
Additionally one can exploit the fact, that drag in this case is
|
||||
especially sensitive to non--smooth surfaces, so that a smooth local
|
||||
manipulation of the surface as a whole is more advantageous than merely
|
||||
random manipulation of the vertices.
|
||||
|
||||
The quality of such a low-dimensional representation in biological
|
||||
evolution is strongly tied to the notion of
|
||||
\emph{evolvability}\cite{wagner1996complex}, as the parametrization of
|
||||
the problem has serious implications on the convergence speed and the
|
||||
quality of the solution\cite{Rothlauf2006}. However, there is no
|
||||
consensus on how \emph{evolvability} is defined and the meaning varies
|
||||
from context to context\cite{richter2015evolvability}, so there is need
|
||||
for some criteria we can measure, so that we are able to compare
|
||||
different representations to learn and improve upon these.
|
||||
|
||||
One example of such a general representation of an object is to generate
|
||||
random points and represent vertices of an object as distances to these
|
||||
points --- for example via \acf{RBF}. If one (or the algorithm) would
|
||||
move such a point the object will get deformed locally (due to the
|
||||
\ac{RBF}). As this results in a simple mapping from the parameter-space
|
||||
onto the object one can try out different representations of the same
|
||||
object and evaluate the \emph{evolvability}. This is exactly what
|
||||
Richter et al.\cite{anrichterEvol} have done.
|
||||
|
||||
As we transfer the results of Richter et al.\cite{anrichterEvol} from
|
||||
using \acf{RBF} as a representation to manipulate a geometric mesh to
|
||||
using \acf{RBF} as a representation to manipulate geometric objects to
|
||||
the use of \acf{FFD} we will use the same definition for evolvability
|
||||
the original author used, namely \emph{regularity}, \emph{variability},
|
||||
and \emph{improvement potential}. We introduce these term in detail in
|
||||
Chapter \ref{sec:intro:rvi}.
|
||||
Chapter \ref{sec:intro:rvi}. In the original publication the author
|
||||
could show a correlation between these evolvability--criteria with the
|
||||
quality and potential of such optimization.
|
||||
|
||||
In the original publication the author used random sampled points
|
||||
weighted with \acf{RBF} to deform the mesh and showed that the mentioned
|
||||
criteria of \emph{regularity}, \emph{variability}, and \emph{improvement
|
||||
potential} correlate with the quality and potential of such
|
||||
optimization.
|
||||
|
||||
We will replicate the same setup on the same meshes but use \acf{FFD}
|
||||
We will replicate the same setup on the same objects but use \acf{FFD}
|
||||
instead of \acf{RBF} to create a local deformation near the control
|
||||
points and evaluate if the evolution--criteria still work as a predictor
|
||||
given the different deformation scheme, as suspected in
|
||||
\cite{anrichterEvol}.
|
||||
|
||||
\section{Outline of this thesis}\label{outline-of-this-thesis}
|
||||
for \emph{evolvability} of the representation given the different
|
||||
deformation scheme, as suspected in \cite{anrichterEvol}.
|
||||
|
||||
First we introduce different topics in isolation in Chapter
|
||||
\ref{sec:back}. We take an abstract look at the definition of \ac{FFD}
|
||||
@ -227,7 +247,7 @@ definition of the different evolvability criteria established in
|
||||
\cite{anrichterEvol}.
|
||||
|
||||
In Chapter \ref{sec:impl} we take a look at our implementation of
|
||||
\ac{FFD} and the adaptation for 3D--meshes.
|
||||
\ac{FFD} and the adaptation for 3D--meshes that were used.
|
||||
|
||||
Next, in Chapter \ref{sec:eval}, we describe the different scenarios we
|
||||
use to evaluate the different evolvability--criteria incorporating all
|
||||
@ -244,14 +264,39 @@ in Chapter \ref{sec:dis}.
|
||||
\label{sec:back:ffd}
|
||||
|
||||
First of all we have to establish how a \ac{FFD} works and why this is a
|
||||
good tool for deforming meshes in the first place. For simplicity we
|
||||
only summarize the 1D--case from \cite{spitzmuller1996bezier} here and
|
||||
go into the extension to the 3D case in chapter \ref{3dffd}.
|
||||
good tool for deforming geometric objects (esp. meshes in our case) in
|
||||
the first place. For simplicity we only summarize the 1D--case from
|
||||
\cite{spitzmuller1996bezier} here and go into the extension to the 3D
|
||||
case in chapter~\ref{3dffd}.
|
||||
|
||||
The main idea of \ac{FFD} is to create a function
|
||||
\(s : [0,1[^d \mapsto \mathbb{R}^d\) that spans a certain part of a
|
||||
vector--space and is only linearly parametrized by some special control
|
||||
points \(p_i\) and an constant attribution--function \(a_i(u)\), so \[
|
||||
s(u) = \sum_i a_i(u) p_i
|
||||
\] can be thought of a representation of the inside of the convex hull
|
||||
generated by the control points where each point can be accessed by the
|
||||
right \(u \in [0,1[\).
|
||||
|
||||
\begin{figure}[!ht]
|
||||
\begin{center}
|
||||
\includegraphics[width=0.7\textwidth]{img/B-Splines.png}
|
||||
\end{center}
|
||||
\caption[Example of B-Splines]{Example of a parametrization of a line with
|
||||
corresponding deformation to generate a deformed objet}
|
||||
\label{fig:bspline}
|
||||
\end{figure}
|
||||
|
||||
In the example in figure~\ref{fig:bspline}, the control--points are
|
||||
indicated as red dots and the color-gradient should hint at the
|
||||
\(u\)--values ranging from \(0\) to \(1\).
|
||||
|
||||
We now define a \acf{FFD} by the following:\\
|
||||
Given an arbitrary number of points \(p_i\) alongside a line, we map a
|
||||
scalar value \(\tau_i \in [0,1[\) to each point with
|
||||
\(\tau_i < \tau_{i+1} \forall i\). Given a degree of the target
|
||||
polynomial \(d\) we define the curve \(N_{i,d,\tau_i}(u)\) as follows:
|
||||
\(\tau_i < \tau_{i+1} \forall i\) according to the position of \(p_i\)
|
||||
on said line. Additionally, given a degree of the target polynomial
|
||||
\(d\) we define the curve \(N_{i,d,\tau_i}(u)\) as follows:
|
||||
|
||||
\begin{equation} \label{eqn:ffd1d1}
|
||||
N_{i,0,\tau}(u) = \begin{cases} 1, & u \in [\tau_i, \tau_{i+1}[ \\ 0, & \mbox{otherwise} \end{cases}
|
||||
@ -266,10 +311,10 @@ N_{i,d,\tau}(u) = \frac{u-\tau_i}{\tau_{i+d}} N_{i,d-1,\tau}(u) + \frac{\tau_{i+
|
||||
If we now multiply every \(p_i\) with the corresponding
|
||||
\(N_{i,d,\tau_i}(u)\) we get the contribution of each point \(p_i\) to
|
||||
the final curve--point parameterized only by \(u \in [0,1[\). As can be
|
||||
seen from \eqref{eqn:ffd1d2} we only access points \([i..i+d]\) for any
|
||||
given \(i\)\footnote{one more for each recursive step.}, which gives us,
|
||||
in combination with choosing \(p_i\) and \(\tau_i\) in order, only a
|
||||
local interference of \(d+1\) points.
|
||||
seen from \eqref{eqn:ffd1d2} we only access points \([p_i..p_{i+d}]\)
|
||||
for any given \(i\)\footnote{one more for each recursive step.}, which
|
||||
gives us, in combination with choosing \(p_i\) and \(\tau_i\) in order,
|
||||
only a local interference of \(d+1\) points.
|
||||
|
||||
We can even derive this equation straightforward for an arbitrary
|
||||
\(N\)\footnote{\emph{Warning:} in the case of \(d=1\) the
|
||||
@ -283,9 +328,26 @@ derivations yield \(\frac{\partial^d}{\partial u} s(u) = 0\).
|
||||
|
||||
Another interesting property of these recursive polynomials is that they
|
||||
are continuous (given \(d \ge 1\)) as every \(p_i\) gets blended in
|
||||
linearly between \(\tau_i\) and \(\tau_{i+d}\) and out linearly between
|
||||
\(\tau_{i+1}\) and \(\tau_{i+d+1}\) as can bee seen from the two
|
||||
coefficients in every step of the recursion.
|
||||
between \(\tau_i\) and \(\tau_{i+d}\) and out between \(\tau_{i+1}\),
|
||||
and \(\tau_{i+d+1}\) as can bee seen from the two coefficients in every
|
||||
step of the recursion.
|
||||
|
||||
\improvement[inline]{Weitere Eigenschaften erwähnen:
|
||||
\newline Convex hull
|
||||
\newline $\sum_i N_i = 1$?
|
||||
\newline Bilder von Basisfunktionen zur Visualisierung.
|
||||
}
|
||||
|
||||
For a given number of points \(v_1,\dots,v_n\) we can then calculate the
|
||||
contributions \(n_{i,j}~:=~N_{j,d,\tau}\) of each control point \(p_j\)
|
||||
to get the projection from the control--point--space into the
|
||||
object--space: \[
|
||||
v_i = \sum_j n_{i,j} \cdot p_j = \vec{n}_i^{T} \vec{p}
|
||||
\] or written for all points at the same time: \[
|
||||
\vec{v} = \vec{N} \vec{p}
|
||||
\] where \(\vec{N}\) is the \(n \times m\) transformation--matrix (later
|
||||
on called \textbf{deformation matrix}) for \(n\) object--space--points
|
||||
and \(m\) control--points.
|
||||
|
||||
\subsection{\texorpdfstring{Why is \ac{FFD} a good deformation
|
||||
function?}{Why is a good deformation function?}}\label{why-is-a-good-deformation-function}
|
||||
@ -361,9 +423,11 @@ The general shape of an evolutionary algorithm (adapted from
|
||||
algorithm. The population contains \(\mu\) individuals \(a_i\) that fit
|
||||
the shape of the parameters we are looking for. Typically these are
|
||||
initialized by a random guess or just zero. Further on we need a
|
||||
so--called \emph{fitness--function} \(\Phi : I \mapsto M\) that can take
|
||||
each parameter to a measurable space along a convergence--function
|
||||
\(c : I \mapsto \mathbb{B}\) that terminates the optimization.
|
||||
so--called \emph{fitness--function}
|
||||
\(\Phi : I \mapsto M\)\improvement{Was ist $I,M$?\newline Bezug Genotyp/Phenotyp}
|
||||
that can take each parameter to a measurable space along a
|
||||
convergence--function \(c : I \mapsto \mathbb{B}\) that terminates the
|
||||
optimization.
|
||||
|
||||
The main algorithm just repeats the following steps:
|
||||
|
||||
@ -435,7 +499,7 @@ 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 evolutionary optimization
|
||||
has one more advantage as you can at least get a suboptimal solutions
|
||||
has one more advantage as you can at least get suboptimal solutions
|
||||
fast, which then refine over time.
|
||||
|
||||
\section{Criteria for the evolvability of linear
|
||||
@ -443,12 +507,16 @@ deformations}\label{criteria-for-the-evolvability-of-linear-deformations}
|
||||
|
||||
\label{sec:intro:rvi}
|
||||
|
||||
\improvement[inline]{Nomenklatur. Was ist $\vec{U}$? Kurz Matrix--Darstellung
|
||||
des Problems & Rückgriff auf FFD-Kapitel.}
|
||||
|
||||
\subsection{Variability}\label{variability}
|
||||
|
||||
In \cite{anrichterEvol} \emph{variability} is defined as
|
||||
\[V(\vec{U}) := \frac{\textrm{rank}(\vec{U})}{n},\] whereby \(\vec{U}\)
|
||||
is the \(m \times n\) deformation--Matrix used to map the \(m\) control
|
||||
points onto the \(n\) vertices.
|
||||
is the \(n \times m\) deformation--Matrix
|
||||
\unsure{Nicht $(n\cdot d) \times m$? Wegen $u,v,w$?} used to map the
|
||||
\(m\) control points onto the \(n\) vertices.
|
||||
|
||||
Given \(n = m\), an identical number of control--points and vertices,
|
||||
this quotient will be \(=1\) if all control points are independent of
|
||||
@ -458,10 +526,6 @@ onto a target--point.
|
||||
In praxis the value of \(V(\vec{U})\) is typically \(\ll 1\), because as
|
||||
there are only few control--points for many vertices, so \(m \ll n\).
|
||||
|
||||
Additionally in our setup we connect neighbouring control--points in a
|
||||
grid so each control point is not independent, but typically depends on
|
||||
\(4^d\) control--points for an \(d\)--dimensional control mesh.
|
||||
|
||||
\subsection{Regularity}\label{regularity}
|
||||
|
||||
\emph{Regularity} is defined\cite{anrichterEvol} as
|
||||
|
Loading…
Reference in New Issue
Block a user