Update for meeting with Bosanac
This commit is contained in:
BIN
LaTeX/flowcharts/mbh.png
Normal file
BIN
LaTeX/flowcharts/mbh.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 103 KiB |
915
LaTeX/flowcharts/mbh.svg
Normal file
915
LaTeX/flowcharts/mbh.svg
Normal file
@@ -0,0 +1,915 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="11in"
|
||||||
|
height="8.5in"
|
||||||
|
viewBox="0 0 279.4 215.9"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
|
||||||
|
sodipodi:docname="mbh.svg"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#eeeeee"
|
||||||
|
borderopacity="1"
|
||||||
|
inkscape:pageshadow="0"
|
||||||
|
inkscape:pageopacity="1"
|
||||||
|
inkscape:pagecheckerboard="false"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="true"
|
||||||
|
units="in"
|
||||||
|
inkscape:zoom="1.1148803"
|
||||||
|
inkscape:cx="548.48938"
|
||||||
|
inkscape:cy="287.02633"
|
||||||
|
inkscape:window-width="1916"
|
||||||
|
inkscape:window-height="1045"
|
||||||
|
inkscape:window-x="1920"
|
||||||
|
inkscape:window-y="31"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid9"
|
||||||
|
units="mm"
|
||||||
|
dotted="false"
|
||||||
|
color="#ababff"
|
||||||
|
opacity="0.1254902"
|
||||||
|
empcolor="#b9b9ff"
|
||||||
|
empopacity="0.25098039"
|
||||||
|
spacingx="0.25"
|
||||||
|
spacingy="0.25" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<marker
|
||||||
|
style="overflow:visible;"
|
||||||
|
id="Arrow2Mend"
|
||||||
|
refX="0.0"
|
||||||
|
refY="0.0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow2Mend"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.6) rotate(180) translate(0,0)"
|
||||||
|
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||||
|
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||||
|
id="path184215" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible;"
|
||||||
|
id="Arrow1Mend"
|
||||||
|
refX="0.0"
|
||||||
|
refY="0.0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow1Mend"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.4) rotate(180) translate(10,0)"
|
||||||
|
style="fill-rule:evenodd;fill:context-stroke;stroke:context-stroke;stroke-width:1.0pt;"
|
||||||
|
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||||
|
id="path184197" />
|
||||||
|
</marker>
|
||||||
|
<rect
|
||||||
|
x="368.50394"
|
||||||
|
y="226.77165"
|
||||||
|
width="113.38583"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect242401" />
|
||||||
|
<rect
|
||||||
|
x="623.62205"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244094"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596" />
|
||||||
|
<marker
|
||||||
|
style="overflow:visible;"
|
||||||
|
id="marker184496"
|
||||||
|
refX="0.0"
|
||||||
|
refY="0.0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow2Lend"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(1.1) rotate(180) translate(1,0)"
|
||||||
|
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||||
|
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||||
|
id="path184494" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible;"
|
||||||
|
id="marker184486"
|
||||||
|
refX="0.0"
|
||||||
|
refY="0.0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow2Lend"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(1.1) rotate(180) translate(1,0)"
|
||||||
|
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||||
|
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||||
|
id="path184484" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible;"
|
||||||
|
id="marker184476"
|
||||||
|
refX="0.0"
|
||||||
|
refY="0.0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow2Lend"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(1.1) rotate(180) translate(1,0)"
|
||||||
|
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||||
|
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||||
|
id="path184474" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible;"
|
||||||
|
id="marker184466"
|
||||||
|
refX="0.0"
|
||||||
|
refY="0.0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow2Lend"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(1.1) rotate(180) translate(1,0)"
|
||||||
|
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||||
|
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||||
|
id="path184464" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible;"
|
||||||
|
id="Arrow2Lend"
|
||||||
|
refX="0.0"
|
||||||
|
refY="0.0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow2Lend"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(1.1) rotate(180) translate(1,0)"
|
||||||
|
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||||
|
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||||
|
id="path184209" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible;"
|
||||||
|
id="Arrow1Lend"
|
||||||
|
refX="0.0"
|
||||||
|
refY="0.0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow1Lend"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8) rotate(180) translate(12.5,0)"
|
||||||
|
style="fill-rule:evenodd;fill:context-stroke;stroke:context-stroke;stroke-width:1.0pt;"
|
||||||
|
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||||
|
id="path184191" />
|
||||||
|
</marker>
|
||||||
|
<rect
|
||||||
|
x="434.64567"
|
||||||
|
y="396.85039"
|
||||||
|
width="61.417323"
|
||||||
|
height="23.622047"
|
||||||
|
id="rect150110" />
|
||||||
|
<rect
|
||||||
|
x="-18.897638"
|
||||||
|
y="170.07874"
|
||||||
|
width="56.692913"
|
||||||
|
height="56.692913"
|
||||||
|
id="rect142542" />
|
||||||
|
<rect
|
||||||
|
x="99.212598"
|
||||||
|
y="51.968504"
|
||||||
|
width="94.488189"
|
||||||
|
height="56.692913"
|
||||||
|
id="rect5354" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-6" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-6-0" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-6-0-3" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-6-0-3-0" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-6-0-3-0-1" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-5" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-5-7" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-5-7-5" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-5-7-5-9" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-5-7-5-9-7" />
|
||||||
|
<rect
|
||||||
|
x="623.62207"
|
||||||
|
y="132.28346"
|
||||||
|
width="47.244095"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect201596-5-7-5-9-7-5" />
|
||||||
|
<rect
|
||||||
|
x="368.50394"
|
||||||
|
y="226.77165"
|
||||||
|
width="113.38583"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect242401-5" />
|
||||||
|
<rect
|
||||||
|
x="368.50394"
|
||||||
|
y="226.77165"
|
||||||
|
width="113.38583"
|
||||||
|
height="18.897638"
|
||||||
|
id="rect242401-5-7" />
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<rect
|
||||||
|
style="fill:#44aa00;fill-rule:evenodd;stroke:#143b11;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="rect33"
|
||||||
|
width="25"
|
||||||
|
height="15"
|
||||||
|
x="50"
|
||||||
|
y="32.5"
|
||||||
|
rx="1"
|
||||||
|
ry="1"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
id="text5352"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82223px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;text-align:center;white-space:pre;shape-inside:url(#rect33);fill:#000000;fill-opacity:1;stroke:none"
|
||||||
|
x="35.644531"
|
||||||
|
y="0"
|
||||||
|
transform="translate(-0.08406023,4.1855642)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="51.237262"
|
||||||
|
y="35.095099"
|
||||||
|
id="tspan295134">Generate Random </tspan><tspan
|
||||||
|
x="53.253338"
|
||||||
|
y="38.622885"
|
||||||
|
id="tspan295136">Mission Guess</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="fill:#44aa00;fill-rule:evenodd;stroke:#143b11;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="rect33-3"
|
||||||
|
width="25"
|
||||||
|
height="15"
|
||||||
|
x="97.5"
|
||||||
|
y="32.5"
|
||||||
|
rx="1"
|
||||||
|
ry="1"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
id="text5352-6"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82223px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;text-align:center;white-space:pre;shape-inside:url(#rect33-3);fill:#000000;fill-opacity:1;stroke:none"
|
||||||
|
x="35.644531"
|
||||||
|
y="0"
|
||||||
|
transform="translate(-0.01240229,5.9494573)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="98.748283"
|
||||||
|
y="35.095099"
|
||||||
|
id="tspan295138">Correct the Guess</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="fill:#44aa00;fill-rule:evenodd;stroke:#143b11;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="rect33-3-1"
|
||||||
|
width="25"
|
||||||
|
height="15"
|
||||||
|
x="200"
|
||||||
|
y="96.545944"
|
||||||
|
rx="1"
|
||||||
|
ry="1"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
id="text5352-6-2"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82223px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;text-align:center;white-space:pre;shape-inside:url(#rect33-3-1);fill:#000000;fill-opacity:1;stroke:none"
|
||||||
|
x="35.644531"
|
||||||
|
y="0"
|
||||||
|
transform="translate(-0.01240229,5.9485265)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="201.24829"
|
||||||
|
y="99.141974"
|
||||||
|
id="tspan295140">Correct the Guess</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="fill:#44aa00;fill-rule:evenodd;stroke:#143b11;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="rect33-3-2"
|
||||||
|
width="25"
|
||||||
|
height="15"
|
||||||
|
x="225"
|
||||||
|
y="32.5"
|
||||||
|
rx="1"
|
||||||
|
ry="1"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
id="text5352-6-8"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82223px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;text-align:center;white-space:pre;shape-inside:url(#rect33-3-2);fill:#000000;fill-opacity:1;stroke:none"
|
||||||
|
x="35.644531"
|
||||||
|
y="0"
|
||||||
|
transform="translate(-0.05512173,4.1442229)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="227.35348"
|
||||||
|
y="35.095099"
|
||||||
|
id="tspan295142">Store as Current </tspan><tspan
|
||||||
|
x="227.66698"
|
||||||
|
y="38.622885"
|
||||||
|
id="tspan295144">Best, Set Drill=0</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="fill:#44aa00;fill-rule:evenodd;stroke:#143b11;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="rect33-3-2-9"
|
||||||
|
width="25"
|
||||||
|
height="15"
|
||||||
|
x="200"
|
||||||
|
y="64.522972"
|
||||||
|
rx="1"
|
||||||
|
ry="1"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
id="text5352-6-8-7"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82223px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;text-align:center;white-space:pre;shape-inside:url(#rect33-3-2-9);fill:#000000;fill-opacity:1;stroke:none"
|
||||||
|
x="35.644531"
|
||||||
|
y="0"
|
||||||
|
transform="translate(-0.04788654,3.8750393)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="202.34314"
|
||||||
|
y="67.118536"
|
||||||
|
id="tspan295146">Perturb the Best </tspan><tspan
|
||||||
|
x="202.27079"
|
||||||
|
y="70.646322"
|
||||||
|
id="tspan295148">Guess (in Basin)</tspan></text>
|
||||||
|
<circle
|
||||||
|
style="fill:#3771c8;stroke:#1d195c;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path49453"
|
||||||
|
cx="153.75"
|
||||||
|
cy="40"
|
||||||
|
r="8.75"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:2.82223px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||||
|
x="145.3591"
|
||||||
|
y="40.778595"
|
||||||
|
id="text59025"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan59023"
|
||||||
|
style="stroke-width:0.264583"
|
||||||
|
x="145.3591"
|
||||||
|
y="40.778595">Converged?</tspan></text>
|
||||||
|
<circle
|
||||||
|
style="fill:#3771c8;stroke:#1d195c;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path49453-9"
|
||||||
|
cx="153.75"
|
||||||
|
cy="104.04594"
|
||||||
|
r="8.75"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:2.82223px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||||
|
x="145.3591"
|
||||||
|
y="104.82453"
|
||||||
|
id="text59025-3"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan59023-1"
|
||||||
|
style="stroke-width:0.264583"
|
||||||
|
x="145.3591"
|
||||||
|
y="104.82453">Converged?</tspan></text>
|
||||||
|
<circle
|
||||||
|
style="fill:#3771c8;stroke:#1d195c;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path49453-9-5"
|
||||||
|
cx="62.5"
|
||||||
|
cy="72.022972"
|
||||||
|
r="8.75"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:2.82223px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;white-space:pre;inline-size:17.5442;stroke-width:0.264583"
|
||||||
|
x="37.12022"
|
||||||
|
y="52.132153"
|
||||||
|
id="text59025-3-0"
|
||||||
|
transform="translate(25.24139,19.199044)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="37.12022"
|
||||||
|
y="52.132153"
|
||||||
|
id="tspan295150">Hit Search<tspan
|
||||||
|
y="52.132153"
|
||||||
|
id="tspan295152"> </tspan></tspan><tspan
|
||||||
|
x="37.12022"
|
||||||
|
y="55.659938"
|
||||||
|
id="tspan295154">Limit?</tspan></text>
|
||||||
|
<circle
|
||||||
|
style="fill:#3771c8;stroke:#1d195c;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path49453-9-7"
|
||||||
|
cx="110"
|
||||||
|
cy="104.04594"
|
||||||
|
r="8.75"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:2.82223px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;white-space:pre;inline-size:12.3773;stroke-width:0.264583"
|
||||||
|
x="107.7821"
|
||||||
|
y="78.232147"
|
||||||
|
id="text59025-3-8"
|
||||||
|
transform="translate(2.0792803,25.122011)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="107.7821"
|
||||||
|
y="78.232147"
|
||||||
|
id="tspan295156">Hit Drill<tspan
|
||||||
|
y="78.232147"
|
||||||
|
id="tspan295158"> </tspan></tspan><tspan
|
||||||
|
x="107.7821"
|
||||||
|
y="81.759936"
|
||||||
|
id="tspan295160">Limit?</tspan></text>
|
||||||
|
<circle
|
||||||
|
style="fill:#3771c8;stroke:#1d195c;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path49453-5"
|
||||||
|
cx="193.75"
|
||||||
|
cy="40"
|
||||||
|
r="8.75"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:2.82223px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;white-space:pre;inline-size:15.1444;stroke-width:0.264583"
|
||||||
|
x="141.6602"
|
||||||
|
y="25.945316"
|
||||||
|
id="text59025-9"
|
||||||
|
transform="translate(52.011984,9.7717296)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="141.6602"
|
||||||
|
y="25.945316"
|
||||||
|
id="tspan295162">Better<tspan
|
||||||
|
y="25.945316"
|
||||||
|
id="tspan295164"> </tspan></tspan><tspan
|
||||||
|
x="141.6602"
|
||||||
|
y="29.473104"
|
||||||
|
id="tspan295166">than<tspan
|
||||||
|
y="29.473104"
|
||||||
|
id="tspan295168"> </tspan></tspan><tspan
|
||||||
|
x="141.6602"
|
||||||
|
y="33.000892"
|
||||||
|
id="tspan295170">current<tspan
|
||||||
|
y="33.000892"
|
||||||
|
id="tspan295172"> </tspan></tspan><tspan
|
||||||
|
x="141.6602"
|
||||||
|
y="36.528678"
|
||||||
|
id="tspan295174">best?</tspan></text>
|
||||||
|
<circle
|
||||||
|
style="fill:#3771c8;stroke:#1d195c;stroke-width:0.5;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path49453-5-9"
|
||||||
|
cx="153.75"
|
||||||
|
cy="137.31892"
|
||||||
|
r="8.75"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:2.82223px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;white-space:pre;inline-size:15.1444;stroke-width:0.264583"
|
||||||
|
x="141.6602"
|
||||||
|
y="25.945316"
|
||||||
|
id="text59025-9-4"
|
||||||
|
transform="translate(12.011984,107.09065)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="141.6602"
|
||||||
|
y="25.945316"
|
||||||
|
id="tspan295176">Better<tspan
|
||||||
|
y="25.945316"
|
||||||
|
id="tspan295178"> </tspan></tspan><tspan
|
||||||
|
x="141.6602"
|
||||||
|
y="29.473104"
|
||||||
|
id="tspan295180">than<tspan
|
||||||
|
y="29.473104"
|
||||||
|
id="tspan295182"> </tspan></tspan><tspan
|
||||||
|
x="141.6602"
|
||||||
|
y="33.000892"
|
||||||
|
id="tspan295184">current<tspan
|
||||||
|
y="33.000892"
|
||||||
|
id="tspan295186"> </tspan></tspan><tspan
|
||||||
|
x="141.6602"
|
||||||
|
y="36.528678"
|
||||||
|
id="tspan295188">best?</tspan></text>
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#cc00ff;stroke:#460e4f;stroke-opacity:1;stroke-width:1.8897638;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path139876"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="5"
|
||||||
|
sodipodi:cx="9.4488192"
|
||||||
|
sodipodi:cy="198.4252"
|
||||||
|
sodipodi:r1="47.244095"
|
||||||
|
sodipodi:r2="38.221275"
|
||||||
|
sodipodi:arg1="-1.5707963"
|
||||||
|
sodipodi:arg2="-0.9424778"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
d="m 9.4488204,151.18111 44.9318036,32.64486 -17.162424,52.82051 -55.538764,0 -17.162421,-52.82051 z"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,60.152685,82.387287)"
|
||||||
|
inkscape:transform-center-y="-1.1936444"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,60.134234,83.680721)"
|
||||||
|
id="text142540"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect142542)"
|
||||||
|
x="19.013081"
|
||||||
|
y="0"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="-9.077858"
|
||||||
|
y="179.51565"
|
||||||
|
id="tspan295190">Output </tspan><tspan
|
||||||
|
x="-2.361691"
|
||||||
|
y="192.84903"
|
||||||
|
id="tspan295192">Best </tspan><tspan
|
||||||
|
x="-10.317445"
|
||||||
|
y="206.1824"
|
||||||
|
id="tspan295194">Mission</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="scale(0.26458333)"
|
||||||
|
id="text150108"
|
||||||
|
style="line-height:1.25;font-family:sans-serif;font-size:10.66666667px;text-align:center;white-space:pre;shape-inside:url(#rect150110)" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="m 75,39.999999 c 22.5,0 22.5,0 22.5,0"
|
||||||
|
id="path183790"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="m 122.5,39.999999 c 22.5,0 22.5,0 22.5,0"
|
||||||
|
id="path183792"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="M 153.75,48.75 V 67.5 H 71.249999"
|
||||||
|
id="path184102"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 62.499999,62.499999 c 0,-14.999999 0,-14.999999 0,-14.999999"
|
||||||
|
id="path184104"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 62.499999,81.249998 c 0,41.250002 0,41.250002 0,41.250002"
|
||||||
|
id="path184106"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="m 162.5,39.999999 c 22.5,0 22.5,0 22.5,0"
|
||||||
|
id="path184537"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 202.5,39.999999 c 22.5,0 22.5,0 22.5,0"
|
||||||
|
id="path184539"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="m 193.75,48.75 c 0,20 0,20 0,20 H 200"
|
||||||
|
id="path184543"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="m 233.75,47.5 c 0,25 0,25 0,25 H 225"
|
||||||
|
id="path184545"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="m 212.5,79.999998 c 0,16.250001 0,16.250001 0,16.250001"
|
||||||
|
id="path184547"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="m 200,103.75 c -37.5,0 -37.5,0 -37.5,0"
|
||||||
|
id="path184549"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="m 153.75,112.5 c 0,16.25 0,16.25 0,16.25"
|
||||||
|
id="path184551"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.486484;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 162.5,137.5 c 81.25,0 81.25,0 81.25,0 V 48.75"
|
||||||
|
id="path184668"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="m 145,103.75 c -26.25,0 -26.25,0 -26.25,0"
|
||||||
|
id="path184783"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
d="m 101.25,103.75 c -10.000001,0 -10.000001,0 -10.000001,0 V 75 h -20"
|
||||||
|
id="path196556"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.471405;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="M 110,94.999999 V 75 h 90"
|
||||||
|
id="path196558"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,-3.7723068,1.325598)"
|
||||||
|
id="text201594"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="635.915"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295196">True</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,-12.955747,15.101026)"
|
||||||
|
id="text201594-4"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-5)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="633.8551"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295198">False</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,26.891584,14.845951)"
|
||||||
|
id="text201594-4-6"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-5-7)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="633.8551"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295200">False</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,-32.656732,64.804214)"
|
||||||
|
id="text201594-4-6-6"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-5-7-5)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="633.8551"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295202">False</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,-34.796459,97.987154)"
|
||||||
|
id="text201594-4-6-6-3"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-5-7-5-9)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="633.8551"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295204">False</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,-56.727236,55.251175)"
|
||||||
|
id="text201594-4-6-6-3-4"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-5-7-5-9-7)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="633.8551"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295206">False</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,-104.48989,22.217343)"
|
||||||
|
id="text201594-4-6-6-3-4-2"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-5-7-5-9-7-5)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="633.8551"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295208">False</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,40.720808,1.6305782)"
|
||||||
|
id="text201594-1"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-6)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="635.915"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295210">True</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,-13.87236,82.629073)"
|
||||||
|
id="text201594-1-6"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-6-0)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="635.915"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295212">True</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,-1.9337214,98.008192)"
|
||||||
|
id="text201594-1-6-2"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-6-0-3)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="635.915"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295214">True</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,-74.958276,64.67963)"
|
||||||
|
id="text201594-1-6-2-6"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-6-0-3-0)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="635.915"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295216">True</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,-104.68725,49.492044)"
|
||||||
|
id="text201594-1-6-2-6-5"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect201596-6-0-3-0-1)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="635.915"
|
||||||
|
y="141.72073"
|
||||||
|
id="tspan295218">True</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,1.5394599,3.6362688)"
|
||||||
|
id="text242399"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect242401)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="391.15289"
|
||||||
|
y="236.20901"
|
||||||
|
id="tspan295220">Search += 1</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,22.069121,44.757718)"
|
||||||
|
id="text242399-4"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect242401-5)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="398.73104"
|
||||||
|
y="236.20901"
|
||||||
|
id="tspan295222">Drill += 1</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,22.933651,79.18148)"
|
||||||
|
id="text242399-4-4"
|
||||||
|
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect242401-5-7)"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150"><tspan
|
||||||
|
x="398.73104"
|
||||||
|
y="236.20901"
|
||||||
|
id="tspan295224">Drill += 1</tspan></text>
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.48734;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 145,137.5 c -35,0 -35,0 -35,0 v -23.75"
|
||||||
|
id="path262918"
|
||||||
|
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||||
|
inkscape:export-xdpi="150"
|
||||||
|
inkscape:export-ydpi="150" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 38 KiB |
BIN
LaTeX/flowcharts/nlp.png
Normal file
BIN
LaTeX/flowcharts/nlp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
1194
LaTeX/flowcharts/nlp.svg
Normal file
1194
LaTeX/flowcharts/nlp.svg
Normal file
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 46 KiB |
@@ -25,8 +25,8 @@ module Thesis
|
|||||||
include("./plotting.jl")
|
include("./plotting.jl")
|
||||||
include("./inner_loop/laguerre-conway.jl")
|
include("./inner_loop/laguerre-conway.jl")
|
||||||
include("./inner_loop/propagator.jl")
|
include("./inner_loop/propagator.jl")
|
||||||
include("./inner_loop/phase.jl")
|
include("./inner_loop/nlp_solver.jl")
|
||||||
include("./inner_loop/monotonic_basin_hopping.jl")
|
# include("./inner_loop/monotonic_basin_hopping.jl")
|
||||||
# include("./outer_loop.jl")
|
# include("./outer_loop.jl")
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -26,3 +26,8 @@ struct Mass_Error{T} <: Exception where T <: Real
|
|||||||
mass::T
|
mass::T
|
||||||
end
|
end
|
||||||
Base.showerror(io::IO, e::Mass_Error) = print(io, "mass (", e.mass, ") got too low in propagation")
|
Base.showerror(io::IO, e::Mass_Error) = print(io, "mass (", e.mass, ") got too low in propagation")
|
||||||
|
|
||||||
|
struct Mission_Creation_Error{T} <: Exception where T <: Real
|
||||||
|
num_entries::T
|
||||||
|
end
|
||||||
|
Base.showerror(io::IO, e::Mission_Creation_Error) = print(io, "Tried to create a mission with $(e.num_entries) entries")
|
||||||
|
|||||||
110
julia/src/inner_loop/nlp_solver.jl
Normal file
110
julia/src/inner_loop/nlp_solver.jl
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
using SNOW
|
||||||
|
|
||||||
|
export solve_mission
|
||||||
|
|
||||||
|
struct Result
|
||||||
|
converged::Bool
|
||||||
|
info::Symbol
|
||||||
|
sol::Matrix{Float64}
|
||||||
|
end
|
||||||
|
|
||||||
|
"""
|
||||||
|
This function will take an initial guess to a mission profile and leverage Ipopt to solve the mission
|
||||||
|
"""
|
||||||
|
function solve_mission( guess::Mission_Guess;
|
||||||
|
tol=1e-8,
|
||||||
|
verbose::Bool=false )
|
||||||
|
# First we need to define a function that propagates the mission all the way through
|
||||||
|
# The function takes in a constraints vector (g) and an input vector (x) and spits out
|
||||||
|
# the objective function. In my case, the objective will be constant.
|
||||||
|
#
|
||||||
|
|
||||||
|
# First we define our starting point
|
||||||
|
x0 = Vector(guess)
|
||||||
|
n = size(guess.phases[1].thrust_profile)[1]
|
||||||
|
flybys = [ p.planet for p in guess.phases ]
|
||||||
|
|
||||||
|
# And our NLP
|
||||||
|
function optimizer!(g,x)
|
||||||
|
# Establish initial conditions
|
||||||
|
mass = guess.start_mass
|
||||||
|
v∞_out = x[2:4]
|
||||||
|
current_planet = Earth
|
||||||
|
launch_date = Dates.unix2datetime(x[1])
|
||||||
|
time = utc2et(Dates.format(launch_date,"yyyy-mm-ddTHH:MM:SS"))
|
||||||
|
start = state(current_planet, time, v∞_out, mass)
|
||||||
|
|
||||||
|
# Now, for each phase we must require:
|
||||||
|
# - That the ending state matches (unless final leg)
|
||||||
|
# - That the v∞_out == v∞_in (unless final leg)
|
||||||
|
# - That the minimum height is acceptable (unless final leg)
|
||||||
|
# - That the ending position matches (if final leg)
|
||||||
|
# - That the ending mass is acceptable (if final leg)
|
||||||
|
i = 0
|
||||||
|
for flyby in flybys
|
||||||
|
phase_params = x[ 5 + (3n+7) * i : 5 + (3n+7) * (i+1) - 1 ]
|
||||||
|
v∞_in = phase_params[1:3]
|
||||||
|
v∞_out = phase_params[4:6]
|
||||||
|
tof = phase_params[7]
|
||||||
|
thrusts = reshape(phase_params[8:end], (n,3))
|
||||||
|
current_planet = flyby
|
||||||
|
time += tof
|
||||||
|
goal = state(current_planet, time, v∞_in)
|
||||||
|
final = prop(reshape(thrusts, (n,3)), start, guess.sc, tof)[2]
|
||||||
|
if flyby != flybys[end]
|
||||||
|
g[1+8i:6+8i] .= final[1:6] .- goal[1:6]
|
||||||
|
g[7+8i] = norm(v∞_out) - norm(v∞_in)
|
||||||
|
δ = acos( ( v∞_in ⋅ v∞_out ) / ( norm(v∞_in) * norm(v∞_out) ) )
|
||||||
|
g[8+8i] = (current_planet.μ/(v∞_in ⋅ v∞_in)) * ( 1/sin(δ/2) - 1 )
|
||||||
|
else
|
||||||
|
g[8length(flybys)+1:8length(flybys)+3] .= final[1:3] .- goal[1:3]
|
||||||
|
g[8length(flybys)+4] = final[7]
|
||||||
|
end
|
||||||
|
start = state(current_planet, time, v∞_out, final[7])
|
||||||
|
i += 1
|
||||||
|
return 1.0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
g = zeros(8length(flybys)+4)
|
||||||
|
optimizer!(g,x0)
|
||||||
|
return g
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# n = size(x0)[1]
|
||||||
|
|
||||||
|
# function f!(g,x)
|
||||||
|
# try
|
||||||
|
# g[1:6] .= prop(reshape(x,(n,3)), start, craft, tof, primary)[2][1:6]
|
||||||
|
# return 1.
|
||||||
|
# catch e
|
||||||
|
# if isa(e,LaGuerreConway_Error) || isa(e, Mass_Error) || isa(e, PropOne_Error)
|
||||||
|
# return 10_000.
|
||||||
|
# else
|
||||||
|
# rethrow
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
|
||||||
|
# lower_x = -1 * ones(3n)
|
||||||
|
# upper_x = ones(3n)
|
||||||
|
# num_constraints = 6
|
||||||
|
# filename = "ipopt_"*string(rand(UInt))
|
||||||
|
# ipopt_options = Dict("constr_viol_tol" => tol,
|
||||||
|
# "acceptable_constr_viol_tol" => 1e-4,
|
||||||
|
# "max_iter" => 10_000,
|
||||||
|
# "max_cpu_time" => 30.,
|
||||||
|
# "print_level" => 0,
|
||||||
|
# "output_file" => filename)
|
||||||
|
# options = Options(solver=IPOPT(ipopt_options),
|
||||||
|
# derivatives=ForwardAD())
|
||||||
|
# x, _, info = minimize(f!, vec(x0), num_constraints, lower_x, upper_x, final[1:6], final[1:6], options)
|
||||||
|
# rm(filename)
|
||||||
|
# if info in [:Solve_Succeeded, :Solved_To_Acceptable_Level]
|
||||||
|
# return Result(true, info, reshape(x,(n,3)))
|
||||||
|
# else
|
||||||
|
# if verbose println(info) end
|
||||||
|
# return Result(false, info, x0)
|
||||||
|
# end
|
||||||
|
|
||||||
|
end
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
using SNOW
|
|
||||||
|
|
||||||
export solve_phase
|
|
||||||
|
|
||||||
struct Result
|
|
||||||
converged::Bool
|
|
||||||
info::Symbol
|
|
||||||
sol::Matrix{Float64}
|
|
||||||
end
|
|
||||||
|
|
||||||
"""
|
|
||||||
This function will take a single phase (so an initial state, and a final state) and an initial guess
|
|
||||||
to the thrust profile and use an NLP solver to find the nearest thrust profile to that initial guess
|
|
||||||
that satisfies the final state condition
|
|
||||||
"""
|
|
||||||
function solve_phase( start::Vector{Float64},
|
|
||||||
final::Vector{Float64},
|
|
||||||
craft::Sc,
|
|
||||||
tof::Float64,
|
|
||||||
x0::Matrix{Float64},
|
|
||||||
primary::Body=Sun;
|
|
||||||
tol=1e-8,
|
|
||||||
verbose::Bool=false )
|
|
||||||
n = size(x0)[1]
|
|
||||||
|
|
||||||
function f!(g,x)
|
|
||||||
try
|
|
||||||
g[1:6] .= prop(reshape(x,(n,3)), start, craft, tof, primary)[2][1:6]
|
|
||||||
return 1.
|
|
||||||
catch e
|
|
||||||
if isa(e,LaGuerreConway_Error) || isa(e, Mass_Error) || isa(e, PropOne_Error)
|
|
||||||
return 10_000.
|
|
||||||
else
|
|
||||||
rethrow
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
lower_x = -1 * ones(3n)
|
|
||||||
upper_x = ones(3n)
|
|
||||||
num_constraints = 6
|
|
||||||
filename = "ipopt_"*string(rand(UInt))
|
|
||||||
ipopt_options = Dict("constr_viol_tol" => tol,
|
|
||||||
"acceptable_constr_viol_tol" => 1e-4,
|
|
||||||
"max_iter" => 10_000,
|
|
||||||
"max_cpu_time" => 30.,
|
|
||||||
"print_level" => 0,
|
|
||||||
"output_file" => filename)
|
|
||||||
options = Options(solver=IPOPT(ipopt_options),
|
|
||||||
derivatives=ForwardAD())
|
|
||||||
x, _, info = minimize(f!, vec(x0), num_constraints, lower_x, upper_x, final[1:6], final[1:6], options)
|
|
||||||
rm(filename)
|
|
||||||
if info in [:Solve_Succeeded, :Solved_To_Acceptable_Level]
|
|
||||||
return Result(true, info, reshape(x,(n,3)))
|
|
||||||
else
|
|
||||||
if verbose println(info) end
|
|
||||||
return Result(false, info, x0)
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
export Phase, Mission_Guess, Mission, Bad_Mission
|
export Phase, Mission_Guess, Mission, Bad_Mission
|
||||||
export test_phase1, test_phase2
|
export test_phase1, test_phase2
|
||||||
export test_mg, test_mission
|
export test_mg, test_mission
|
||||||
|
export Vector
|
||||||
|
|
||||||
struct Phase
|
struct Phase
|
||||||
planet::Body
|
planet::Body
|
||||||
@@ -55,6 +56,51 @@ function Mission_Guess(sc::Sc, mass::Float64, date::DateTime, v∞::Vector{Float
|
|||||||
Mission_Guess(sc, mass, date, v∞, phases, false)
|
Mission_Guess(sc, mass, date, v∞, phases, false)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
"""
|
||||||
|
This is the opposite of the function below. It takes a vector and any other necessary information and outputs a mission guess
|
||||||
|
"""
|
||||||
|
function Mission_Guess(x::Vector{Float64}, sc::Sc, mass::Float64, flybys::Vector{Body})
|
||||||
|
# Variable mission params
|
||||||
|
launch_date = Dates.unix2datetime(x[1])
|
||||||
|
launch_v∞ = x[2:4]
|
||||||
|
|
||||||
|
# Try to intelligently determine n
|
||||||
|
three_n = ((length(x)-4)/length(flybys)) - 7
|
||||||
|
three_n % 3 == 0 || throw(Mission_Creation_Error(three_n))
|
||||||
|
n::Int = three_n/3
|
||||||
|
|
||||||
|
# Build the phases
|
||||||
|
i = 0
|
||||||
|
phases = Vector{Phase}()
|
||||||
|
for flyby in flybys
|
||||||
|
phase_params = x[ 5 + (3n+7) * i : 5 + (3n+7) * (i+1) - 1 ]
|
||||||
|
v∞_in = phase_params[1:3]
|
||||||
|
v∞_out = phase_params[4:6]
|
||||||
|
tof = phase_params[7]
|
||||||
|
thrusts = reshape(phase_params[8:end], (n,3))
|
||||||
|
push!(phases, Phase(flyby, v∞_in, v∞_out, tof, thrusts))
|
||||||
|
i += 1
|
||||||
|
end
|
||||||
|
return Mission_Guess(sc, mass, launch_date, launch_v∞, phases, false)
|
||||||
|
end
|
||||||
|
|
||||||
|
"""
|
||||||
|
This is a function to convert a mission guess into an nlp-ready vector. It doesn't contain all
|
||||||
|
information from the guess though.
|
||||||
|
"""
|
||||||
|
function Base.Vector(g::Mission_Guess)
|
||||||
|
result = Vector{Float64}()
|
||||||
|
push!(result, Dates.datetime2unix(g.launch_date))
|
||||||
|
push!(result, g.launch_v∞...)
|
||||||
|
for phase in g.phases
|
||||||
|
push!(result,phase.v∞_in...)
|
||||||
|
push!(result,phase.v∞_out...)
|
||||||
|
push!(result,phase.tof)
|
||||||
|
push!(result,phase.thrust_profile...)
|
||||||
|
end
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
const test_mg = Mission_Guess(bepi, 12_000., DateTime(1992,11,19), [-3.4,1.2,0.1], test_phases)
|
const test_mg = Mission_Guess(bepi, 12_000., DateTime(1992,11,19), [-3.4,1.2,0.1], test_phases)
|
||||||
|
|
||||||
struct Mission
|
struct Mission
|
||||||
|
|||||||
36
julia/test/inner_loop/nlp_solver.jl
Normal file
36
julia/test/inner_loop/nlp_solver.jl
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
@testset "Phase" begin
|
||||||
|
|
||||||
|
println("Testing NLP solver")
|
||||||
|
|
||||||
|
# We'll start by testing the mission_guess -> vector function
|
||||||
|
vec = Vector(test_mg)
|
||||||
|
@test typeof(vec) == Vector{Float64}
|
||||||
|
|
||||||
|
# Now we go in the other direction
|
||||||
|
flybys = [ p.planet for p in test_mg.phases ]
|
||||||
|
guess = Mission_Guess(vec, test_mg.sc, test_mg.start_mass, flybys)
|
||||||
|
@test typeof(guess) == Mission_Guess
|
||||||
|
@test guess.sc == test_mg.sc
|
||||||
|
@test guess.start_mass == test_mg.start_mass
|
||||||
|
@test guess.launch_date == test_mg.launch_date
|
||||||
|
@test guess.launch_v∞ == test_mg.launch_v∞
|
||||||
|
@test guess.converged == test_mg.converged
|
||||||
|
for i in 1:length(guess.phases)
|
||||||
|
@test guess.phases[i].planet == test_mg.phases[i].planet
|
||||||
|
@test guess.phases[i].v∞_in == test_mg.phases[i].v∞_in
|
||||||
|
@test guess.phases[i].v∞_out == test_mg.phases[i].v∞_out
|
||||||
|
@test guess.phases[i].tof == test_mg.phases[i].tof
|
||||||
|
@test guess.phases[i].thrust_profile == test_mg.phases[i].thrust_profile
|
||||||
|
end
|
||||||
|
|
||||||
|
# Now we test an example run of the basic "inner function"
|
||||||
|
leave, arrive = DateTime(1992,11,19), DateTime(1993,4,1)
|
||||||
|
earth_state = state(Earth, leave)
|
||||||
|
venus_state = state(Venus, arrive)
|
||||||
|
v∞_out, v∞_in, tof = Thesis.lamberts(Earth, Venus, leave, arrive)
|
||||||
|
phase = Phase(Venus, v∞_in, v∞_in, tof, zeros(20,3))
|
||||||
|
guess = Mission_Guess(bepi, 12_000., leave, v∞_out, [phase])
|
||||||
|
g = solve_mission(guess)
|
||||||
|
println(g)
|
||||||
|
|
||||||
|
end
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
@testset "Phase" begin
|
|
||||||
|
|
||||||
println("Testing NLP solver")
|
|
||||||
|
|
||||||
using SNOW, PlotlyJS
|
|
||||||
|
|
||||||
# First we'll test an Earth case
|
|
||||||
# Initial Setup
|
|
||||||
T = rand( 8hour : second : day )
|
|
||||||
revs = 8
|
|
||||||
n = 10 * revs
|
|
||||||
start_mass = 10_000.
|
|
||||||
|
|
||||||
# A simple orbit raising
|
|
||||||
start = gen_orbit(T, start_mass, Earth)
|
|
||||||
thrust = spiral(0.9, n, start, test_sc, revs*T, Earth)
|
|
||||||
final = prop(thrust, start, test_sc, revs*T, Earth)[2]
|
|
||||||
new_T = 2π * √( xyz_to_oe(final, Earth.μ)[1]^3 / Earth.μ )
|
|
||||||
|
|
||||||
# This should be close enough to converge, but Earth orbits are picky
|
|
||||||
thrust_guess = spiral(0.89, n, start, test_sc, revs*T, Earth)
|
|
||||||
guess_final = prop(thrust_guess, start, test_sc, revs*T, Earth)[2]
|
|
||||||
result = solve_phase(start, final, test_sc, revs*T, thrust_guess, Earth, verbose=true)
|
|
||||||
calc_path, calc_final = prop(result.sol, start, test_sc, revs*T, Earth, interpolate=true)
|
|
||||||
|
|
||||||
# Test
|
|
||||||
@test norm(guess_final[1:6] - final[1:6]) > 1e-4
|
|
||||||
@test result.converged
|
|
||||||
@test norm(calc_final[1:6] - final[1:6]) < 1e-4
|
|
||||||
|
|
||||||
# Plot
|
|
||||||
paths = Pathlist()
|
|
||||||
push!(paths, prop(start, T, Earth),
|
|
||||||
calc_path,
|
|
||||||
prop(calc_final, T, Earth),
|
|
||||||
prop(final, T, Earth) )
|
|
||||||
fig = plot_orbits(paths, Earth,
|
|
||||||
labels=["init", "transit", "post-transit", "final"],
|
|
||||||
colors=["#FFF","#F44","#4F4","#44F"])
|
|
||||||
savefig(fig, "../plots/nlp_test_earth.html")
|
|
||||||
|
|
||||||
# Now the sun case
|
|
||||||
T = rand( 0.5year : hour : 1.5year )
|
|
||||||
tof = 0.7T
|
|
||||||
n = 20
|
|
||||||
start_mass = 12_000.
|
|
||||||
|
|
||||||
# A simple orbit raising again, to keep things simple
|
|
||||||
start = gen_orbit(T, start_mass)
|
|
||||||
thrust = spiral(0.6, n, start, bepi, tof)
|
|
||||||
final = prop(thrust, start, bepi, tof)[2]
|
|
||||||
new_T = 2π * √( xyz_to_oe(final, Sun.μ)[1]^3 / Sun.μ )
|
|
||||||
|
|
||||||
# This should be close enough to converge
|
|
||||||
thrust_guess = spiral(0.55, n, start, bepi, tof)
|
|
||||||
guess_final = prop(thrust_guess, start, bepi, tof)[2]
|
|
||||||
result = solve_phase(start, final, bepi, tof, thrust_guess, verbose=true)
|
|
||||||
calc_path, calc_final = prop(result.sol, start, bepi, tof, interpolate=true)
|
|
||||||
|
|
||||||
# Test
|
|
||||||
@test norm(guess_final[1:6] - final[1:6]) > 1e-4
|
|
||||||
@test result.converged
|
|
||||||
@test norm(calc_final[1:6] - final[1:6]) < 1e-4
|
|
||||||
|
|
||||||
# Plot
|
|
||||||
paths = Pathlist()
|
|
||||||
push!(paths, prop(start, T), calc_path, prop(calc_final, T), prop(final, T) )
|
|
||||||
fig = plot_orbits(paths,
|
|
||||||
labels=["init", "transit", "post-transit", "final"],
|
|
||||||
colors=["#FFF","#F44","#4F4","#44F"])
|
|
||||||
savefig(fig, "../plots/nlp_test_sun.html")
|
|
||||||
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -14,9 +14,9 @@ catch
|
|||||||
end
|
end
|
||||||
|
|
||||||
@testset "All Tests" begin
|
@testset "All Tests" begin
|
||||||
include("plotting.jl")
|
# include("plotting.jl")
|
||||||
include("inner_loop/laguerre-conway.jl")
|
# include("inner_loop/laguerre-conway.jl")
|
||||||
include("inner_loop/propagator.jl")
|
# include("inner_loop/propagator.jl")
|
||||||
include("inner_loop/phase.jl")
|
include("inner_loop/nlp_solver.jl")
|
||||||
include("inner_loop/monotonic_basin_hopping.jl")
|
# include("inner_loop/monotonic_basin_hopping.jl")
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user