Seems like a lot changed...
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 111 KiB |
@@ -7,7 +7,7 @@
|
||||
viewBox="0 0 279.4 215.9"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
|
||||
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
|
||||
sodipodi:docname="mbh.svg"
|
||||
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||
inkscape:export-xdpi="150"
|
||||
@@ -27,15 +27,18 @@
|
||||
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:zoom="0.78833942"
|
||||
inkscape:cx="525.15451"
|
||||
inkscape:cy="378.64401"
|
||||
inkscape:window-width="1912"
|
||||
inkscape:window-height="1040"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="31"
|
||||
inkscape:window-y="32"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1">
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:snap-smooth-nodes="false"
|
||||
inkscape:snap-midpoints="false"
|
||||
inkscape:snap-object-midpoints="false">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid9"
|
||||
@@ -270,6 +273,32 @@
|
||||
width="113.38583"
|
||||
height="18.897638"
|
||||
id="rect242401-5-7" />
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow2Mend-7"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(-0.6)"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
|
||||
id="path184215-5" />
|
||||
</marker>
|
||||
<rect
|
||||
x="368.50394"
|
||||
y="226.77165"
|
||||
width="64.108277"
|
||||
height="14.130817"
|
||||
id="rect242401-2" />
|
||||
<rect
|
||||
x="368.50394"
|
||||
y="226.77165"
|
||||
width="64.108276"
|
||||
height="14.130817"
|
||||
id="rect242401-2-6" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
@@ -299,17 +328,17 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="51.237262"
|
||||
y="35.095099"
|
||||
id="tspan295134">Generate Random </tspan><tspan
|
||||
id="tspan10729">Generate Random </tspan><tspan
|
||||
x="53.253338"
|
||||
y="38.622885"
|
||||
id="tspan295136">Mission Guess</tspan></text>
|
||||
id="tspan10731">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"
|
||||
style="fill:#44aa00;fill-rule:evenodd;stroke:#143b11;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect33-3"
|
||||
width="25"
|
||||
height="15"
|
||||
x="97.5"
|
||||
y="32.5"
|
||||
y="42.5"
|
||||
rx="1"
|
||||
ry="1"
|
||||
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||
@@ -326,8 +355,33 @@
|
||||
inkscape:export-xdpi="150"
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="98.748283"
|
||||
y="35.095099"
|
||||
id="tspan295138">Correct the Guess</tspan></text>
|
||||
y="45.095099"
|
||||
id="tspan10733">Correct the Guess</tspan></text>
|
||||
<rect
|
||||
style="fill:#44aa00;fill-rule:evenodd;stroke:#143b11;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect33-3-9"
|
||||
width="25"
|
||||
height="15"
|
||||
x="97.5"
|
||||
y="22.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-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-9);fill:#000000;fill-opacity:1;stroke:none"
|
||||
x="35.644531"
|
||||
y="0"
|
||||
transform="translate(-0.01239847,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="25.095099"
|
||||
id="tspan10735">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"
|
||||
@@ -352,7 +406,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="201.24829"
|
||||
y="99.141974"
|
||||
id="tspan295140">Correct the Guess</tspan></text>
|
||||
id="tspan10737">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"
|
||||
@@ -377,10 +431,10 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="227.35348"
|
||||
y="35.095099"
|
||||
id="tspan295142">Store as Current </tspan><tspan
|
||||
id="tspan10739">Store as Current </tspan><tspan
|
||||
x="227.66698"
|
||||
y="38.622885"
|
||||
id="tspan295144">Best, Set Drill=0</tspan></text>
|
||||
id="tspan10741">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"
|
||||
@@ -405,10 +459,10 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="202.34314"
|
||||
y="67.118536"
|
||||
id="tspan295146">Perturb the Best </tspan><tspan
|
||||
id="tspan10743">Perturb the Best </tspan><tspan
|
||||
x="202.27079"
|
||||
y="70.646322"
|
||||
id="tspan295148">Guess (in Basin)</tspan></text>
|
||||
id="tspan10745">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"
|
||||
@@ -476,12 +530,12 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="37.12022"
|
||||
y="52.132153"
|
||||
id="tspan295150">Hit Search<tspan
|
||||
id="tspan10747">Hit Search<tspan
|
||||
y="52.132153"
|
||||
id="tspan295152"> </tspan></tspan><tspan
|
||||
id="tspan10749"> </tspan></tspan><tspan
|
||||
x="37.12022"
|
||||
y="55.659938"
|
||||
id="tspan295154">Limit?</tspan></text>
|
||||
id="tspan10751">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"
|
||||
@@ -503,12 +557,12 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="107.7821"
|
||||
y="78.232147"
|
||||
id="tspan295156">Hit Drill<tspan
|
||||
id="tspan10753">Hit Drill<tspan
|
||||
y="78.232147"
|
||||
id="tspan295158"> </tspan></tspan><tspan
|
||||
id="tspan10755"> </tspan></tspan><tspan
|
||||
x="107.7821"
|
||||
y="81.759936"
|
||||
id="tspan295160">Limit?</tspan></text>
|
||||
id="tspan10757">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"
|
||||
@@ -530,22 +584,22 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="141.6602"
|
||||
y="25.945316"
|
||||
id="tspan295162">Better<tspan
|
||||
id="tspan10759">Better<tspan
|
||||
y="25.945316"
|
||||
id="tspan295164"> </tspan></tspan><tspan
|
||||
id="tspan10761"> </tspan></tspan><tspan
|
||||
x="141.6602"
|
||||
y="29.473104"
|
||||
id="tspan295166">than<tspan
|
||||
id="tspan10763">than<tspan
|
||||
y="29.473104"
|
||||
id="tspan295168"> </tspan></tspan><tspan
|
||||
id="tspan10765"> </tspan></tspan><tspan
|
||||
x="141.6602"
|
||||
y="33.000892"
|
||||
id="tspan295170">current<tspan
|
||||
id="tspan10767">current<tspan
|
||||
y="33.000892"
|
||||
id="tspan295172"> </tspan></tspan><tspan
|
||||
id="tspan10769"> </tspan></tspan><tspan
|
||||
x="141.6602"
|
||||
y="36.528678"
|
||||
id="tspan295174">best?</tspan></text>
|
||||
id="tspan10771">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"
|
||||
@@ -567,22 +621,22 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="141.6602"
|
||||
y="25.945316"
|
||||
id="tspan295176">Better<tspan
|
||||
id="tspan10773">Better<tspan
|
||||
y="25.945316"
|
||||
id="tspan295178"> </tspan></tspan><tspan
|
||||
id="tspan10775"> </tspan></tspan><tspan
|
||||
x="141.6602"
|
||||
y="29.473104"
|
||||
id="tspan295180">than<tspan
|
||||
id="tspan10777">than<tspan
|
||||
y="29.473104"
|
||||
id="tspan295182"> </tspan></tspan><tspan
|
||||
id="tspan10779"> </tspan></tspan><tspan
|
||||
x="141.6602"
|
||||
y="33.000892"
|
||||
id="tspan295184">current<tspan
|
||||
id="tspan10781">current<tspan
|
||||
y="33.000892"
|
||||
id="tspan295186"> </tspan></tspan><tspan
|
||||
id="tspan10783"> </tspan></tspan><tspan
|
||||
x="141.6602"
|
||||
y="36.528678"
|
||||
id="tspan295188">best?</tspan></text>
|
||||
id="tspan10785">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"
|
||||
@@ -615,32 +669,42 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="-9.077858"
|
||||
y="179.51565"
|
||||
id="tspan295190">Output </tspan><tspan
|
||||
id="tspan10787">Output </tspan><tspan
|
||||
x="-2.361691"
|
||||
y="192.84903"
|
||||
id="tspan295192">Best </tspan><tspan
|
||||
id="tspan10789">Best </tspan><tspan
|
||||
x="-10.317445"
|
||||
y="206.1824"
|
||||
id="tspan295194">Mission</tspan></text>
|
||||
id="tspan10791">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"
|
||||
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 78.75,29.999999 96.25,30"
|
||||
id="path183790"
|
||||
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||
inkscape:export-xdpi="150"
|
||||
inkscape:export-ydpi="150" />
|
||||
inkscape:export-ydpi="150"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<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"
|
||||
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-7)"
|
||||
d="M 78.750001,51.249999 96.25,51.25"
|
||||
id="path183790-2"
|
||||
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||
inkscape:export-xdpi="150"
|
||||
inkscape:export-ydpi="150"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<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 132.5,40 h 11.25"
|
||||
id="path183792"
|
||||
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||
inkscape:export-xdpi="150"
|
||||
inkscape:export-ydpi="150" />
|
||||
inkscape:export-ydpi="150"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<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"
|
||||
@@ -649,12 +713,13 @@
|
||||
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"
|
||||
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 62.499999,62.499999 62.5,48.75"
|
||||
id="path184104"
|
||||
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||
inkscape:export-xdpi="150"
|
||||
inkscape:export-ydpi="150" />
|
||||
inkscape:export-ydpi="150"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<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"
|
||||
@@ -749,7 +814,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="635.915"
|
||||
y="141.72073"
|
||||
id="tspan295196">True</tspan></text>
|
||||
id="tspan10793">True</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-12.955747,15.101026)"
|
||||
@@ -760,7 +825,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="633.8551"
|
||||
y="141.72073"
|
||||
id="tspan295198">False</tspan></text>
|
||||
id="tspan10795">False</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,26.891584,14.845951)"
|
||||
@@ -771,7 +836,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="633.8551"
|
||||
y="141.72073"
|
||||
id="tspan295200">False</tspan></text>
|
||||
id="tspan10797">False</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-32.656732,64.804214)"
|
||||
@@ -782,7 +847,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="633.8551"
|
||||
y="141.72073"
|
||||
id="tspan295202">False</tspan></text>
|
||||
id="tspan10799">False</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-34.796459,97.987154)"
|
||||
@@ -793,7 +858,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="633.8551"
|
||||
y="141.72073"
|
||||
id="tspan295204">False</tspan></text>
|
||||
id="tspan10801">False</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-56.727236,55.251175)"
|
||||
@@ -804,7 +869,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="633.8551"
|
||||
y="141.72073"
|
||||
id="tspan295206">False</tspan></text>
|
||||
id="tspan10803">False</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-104.48989,22.217343)"
|
||||
@@ -815,7 +880,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="633.8551"
|
||||
y="141.72073"
|
||||
id="tspan295208">False</tspan></text>
|
||||
id="tspan10805">False</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,40.720808,1.6305782)"
|
||||
@@ -826,7 +891,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="635.915"
|
||||
y="141.72073"
|
||||
id="tspan295210">True</tspan></text>
|
||||
id="tspan10807">True</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-13.87236,82.629073)"
|
||||
@@ -837,7 +902,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="635.915"
|
||||
y="141.72073"
|
||||
id="tspan295212">True</tspan></text>
|
||||
id="tspan10809">True</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-1.9337214,98.008192)"
|
||||
@@ -848,7 +913,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="635.915"
|
||||
y="141.72073"
|
||||
id="tspan295214">True</tspan></text>
|
||||
id="tspan10811">True</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-74.958276,64.67963)"
|
||||
@@ -859,7 +924,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="635.915"
|
||||
y="141.72073"
|
||||
id="tspan295216">True</tspan></text>
|
||||
id="tspan10813">True</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-104.68725,49.492044)"
|
||||
@@ -870,7 +935,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="635.915"
|
||||
y="141.72073"
|
||||
id="tspan295218">True</tspan></text>
|
||||
id="tspan10815">True</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,1.5394599,3.6362688)"
|
||||
@@ -881,7 +946,29 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="391.15289"
|
||||
y="236.20901"
|
||||
id="tspan295220">Search += 1</tspan></text>
|
||||
id="tspan10817">Search += 1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-19.807533,-12.164499)"
|
||||
id="text242399-8"
|
||||
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect242401-2)"
|
||||
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||
inkscape:export-xdpi="150"
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="373.92732"
|
||||
y="236.20901"
|
||||
id="tspan10819">Lambert's</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-19.993321,-33.621446)"
|
||||
id="text242399-8-6"
|
||||
style="font-size:10.6667px;line-height:1.25;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect242401-2-6)"
|
||||
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/flowcharts/mbh.png"
|
||||
inkscape:export-xdpi="150"
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="376.29452"
|
||||
y="236.20901"
|
||||
id="tspan10821">Standard</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,22.069121,44.757718)"
|
||||
@@ -892,7 +979,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="398.73104"
|
||||
y="236.20901"
|
||||
id="tspan295222">Drill += 1</tspan></text>
|
||||
id="tspan10823">Drill += 1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,22.933651,79.18148)"
|
||||
@@ -903,7 +990,7 @@
|
||||
inkscape:export-ydpi="150"><tspan
|
||||
x="398.73104"
|
||||
y="236.20901"
|
||||
id="tspan295224">Drill += 1</tspan></text>
|
||||
id="tspan10825">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"
|
||||
@@ -911,5 +998,25 @@
|
||||
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"
|
||||
d="M 78.75,30 V 51.25"
|
||||
id="path2208" />
|
||||
<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"
|
||||
d="M 78.75,39.999999 H 75"
|
||||
id="path2210" />
|
||||
<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"
|
||||
d="m 122.5,30 h 10"
|
||||
id="path10402" />
|
||||
<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"
|
||||
d="m 122.5,51.25 h 10"
|
||||
id="path10404" />
|
||||
<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"
|
||||
d="M 132.5,30 V 51.25"
|
||||
id="path10406" />
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 42 KiB |
122
LaTeX/thesis.tex
122
LaTeX/thesis.tex
@@ -12,8 +12,8 @@
|
||||
\degree{Master of Science}{M.S., Aerospace Engineering}
|
||||
\dept{Department of}{Aerospace Engineering}
|
||||
\advisor{Prof.}{Natasha Bosanac}
|
||||
\reader{TBD: Kathryn Davis}
|
||||
\readerThree{TBD: Daniel Scheeres}
|
||||
\reader{Kathryn Davis}
|
||||
\readerThree{Daniel Scheeres}
|
||||
|
||||
\abstract{ \OnePageChapter
|
||||
There are a variety of approaches to finding and optimizing low-thrust trajectories in
|
||||
@@ -573,7 +573,7 @@
|
||||
Englander in his Hybrid Optimal Control Problem paper, but does not allow for missions
|
||||
with multiple targets, simplifying the optimization.
|
||||
|
||||
\section{Inner Loop Implementation}
|
||||
\section{Inner Loop Implementation}\label{inner_loop_section}
|
||||
|
||||
The optimization routine can be reasonable separated into two separate ``loops'' wherein
|
||||
the first loop is used, given an initial guess, to find valid trajectories within the
|
||||
@@ -761,13 +761,117 @@
|
||||
in order to achieve maximum precision.
|
||||
|
||||
\section{Outer Loop Implementation}
|
||||
Overview the outer loop. This may require a final flowchart, but might potentially be too
|
||||
simple to lend itself to one.
|
||||
|
||||
\subsection{Inner Loop Calling Function}
|
||||
The primary reason for including this section is to discuss the error handling.
|
||||
Now we have the tools in place for, given a potential ''mission guess`` in the
|
||||
vicinity of a valid guess, attempting to find a valid and optimal solution in that
|
||||
vicinity. Now what remains is to develop a routine for efficiently generating these
|
||||
random mission guesses in such a way that thoroughly searches the entirety of the
|
||||
solution space with enough granularity that all spaces are considered by the inner loop
|
||||
solver.
|
||||
|
||||
\subsection{Monotonic Basin Hopping}
|
||||
Once that has been accomplished, all that remains is an ''outer loop`` that can generate
|
||||
new guesses or perturb existing valid missions as needed in order to drill down into a
|
||||
specific local minimum. In this thesis, that is accomplished through the use of a
|
||||
Monotonic Basin Hopping algorithm. This will be described more thoroughly in
|
||||
Section~\ref{mbh_subsection}, but Figure~\ref{mbh_flow} outlines the process steps of
|
||||
the algorithm.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{flowcharts/mbh}
|
||||
\caption{A flowchart visualizing the steps in the monotonic basin hopping
|
||||
algorithm}
|
||||
\label{mbh_flow}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Random Mission Generation}
|
||||
|
||||
At a basic level, the algorithm needs to produce a mission guess (represented by all
|
||||
of the values described in Section~\ref{inner_loop_section}) that contains random
|
||||
values within reasonable bounds in the space. This leaves a number of variables open
|
||||
to for implementation. For instance, it remains to be determined which distribution
|
||||
function to use for the random values over each of those variables, which bounds to
|
||||
use, as well as the possibilities for any improvements to a purely random search.
|
||||
|
||||
Currently, the first value set for the mission guess is that of $n$, which is the
|
||||
number of sub-trajectories that each arc will be broken into for the Sims-Flanagan
|
||||
based propagator. For this implementation, that was chosen to be 20, based upon a
|
||||
number of tests in which the calculation time for the propagation was compared
|
||||
against the accuracy of a much higher $n$ value for some known thrust controls, such
|
||||
as a simple spiral orbit trajectory. This value of 20 tends to perform well and
|
||||
provide reasonable accuracy, without producing too many variables for the NLP
|
||||
optimizer to control for (since the impulsive thrust at the center of each of the
|
||||
sub-trajectories is a control variable). This leaves some room for future
|
||||
improvements, as will be discussed in Section~\ref{improvement_section}.
|
||||
|
||||
The bounds for the launch date are provided by the user in the form of a launch
|
||||
window, so the initial launch date is just chosen as a standard random value from a
|
||||
uniform distribution within those bounds.
|
||||
|
||||
A unit launch direction is then also chosen as a 3-length vector of uniform random
|
||||
numbers, then normalized. This unit vector is then multiplied by a uniform random
|
||||
number between 0 and the square root of the maximum launch $C_3$ specified by the
|
||||
user to generate an initial $\vec{v_\infty}$ vector at launch.
|
||||
|
||||
Next, the times of flight of each phase of the mission is then decided. Since launch
|
||||
date has already been selected, the maximum time of flight can be calculated by
|
||||
subtracting the launch date from the latest arrival date provided by the mission
|
||||
designer. Then, each leg is chosen from a uniform distribution with bounds currently
|
||||
set to a minimum flight time of 30 days and a maximum of 70\% of the maximum time of
|
||||
flight. These leg flight times are then iteratively re-generated until the total
|
||||
time of flight (represented by the sum of the leg flight times) is less than the
|
||||
maximum time of flight. This allows for a lot of flexibility in the leg flight
|
||||
times, but does tend toward more often producing longer missions, particularly for
|
||||
missions with more flybys.
|
||||
|
||||
Then, the internal components for each phase are generated. It is at this step, that
|
||||
the mission guess generator splits the outputs into two separate outputs. The first
|
||||
is meant to be truly random, as is generally used as input for a monotonic basin
|
||||
hopping algorithm. The second utilizes a Lambert's solver to determine the
|
||||
appropriate hyperbolic velocities (both in and out) at each flyby to generate a
|
||||
natural trajectory arc. For this Lambert's case, the mission guess is simply seeded
|
||||
with zero thrust controls and outputted to the monotonic basin hopper. The intention
|
||||
here is that if the time of flights are randomly chosen so as to produce a
|
||||
trajectory that is possible with a control in the vicinity of a natural trajectory,
|
||||
we want to be sure to find that trajectory. More detail on how this is handled is
|
||||
available in Section~\ref{mbh_subsection}.
|
||||
|
||||
However, for the truly random mission guess, there are still the $v_\infty$ values
|
||||
and the initial thrust guesses to generate. For each of the phases, the incoming
|
||||
excess hyperbolic velocity is calculated in much the same way that the launch
|
||||
velocity was calculated. However, instead of multiplying the randomly generate unit
|
||||
direction vector by a random number between 0 and the square root of the maximum
|
||||
launch $C_3$, bounds of 0 and 10 kilometers per second are used instead, to provide
|
||||
realistic flyby values.
|
||||
|
||||
The outgoing excess hyperbolic velocity at infinity is then calculated by again
|
||||
choosing a uniform random unit direction vector, then by multiplying this value by
|
||||
the magnitude of the incoming $v_{\infty}$ since this is a constraint of a
|
||||
non-powered flyby.
|
||||
|
||||
From these two velocity vectors the turning angle, and thus the periapsis of the
|
||||
flyby, can then be calculated by the following equations:
|
||||
|
||||
\begin{align}
|
||||
\delta &= \arccos \left( \frac{\vec{v}_{\infty,in} \cdot
|
||||
\vec{v}_{\infty,out}}{|v_{\infty,in}| \cdot {|v_{\infty,out}}|} \right) \\
|
||||
r_p &= \frac{\mu}{\vec{v}_{\infty,in} \cdot \vec{v}_{\infty,out}} \cdot \left(
|
||||
\frac{1}{\sin(\delta/2)} - 1 \right)
|
||||
\end{align}
|
||||
|
||||
If this radius of periapse is then found to be less than the minimum safe radius
|
||||
(currently set to the radius of the planet plus 100 kilometers), then the process is
|
||||
repeated with new random flyby velocities until a valid seed flyby is found. These
|
||||
checks are also performed each time a mission is perturbed or generated by the nlp
|
||||
solver.
|
||||
|
||||
The final requirement then, is the thrust controls, which are actually quite simple.
|
||||
Since the thrust is defined as a 3-vector of values between -1 and 1 representing
|
||||
some percentage of the full thrust producible by the spacecraft thrusters in that
|
||||
direction, the initial thrust controls can then be generated as a $20 \times 3$
|
||||
matrix of uniform random numbers within that bound.
|
||||
|
||||
\subsection{Monotonic Basin Hopping}\label{mbh_subsection}
|
||||
Outline the MBH algorithm, going into detail at each step. Mention the long-tailed PDF being
|
||||
used and go into quite a bit of detail. Englander's paper on the MBH algorithm specifically
|
||||
should be a good guide. Mention validation.
|
||||
@@ -798,7 +902,7 @@
|
||||
Talk a bit about why this work is valuable. Missions that could have benefited, missions that
|
||||
this enables, etc.
|
||||
|
||||
\section{Recommendations for Future Work}
|
||||
\section{Recommendations for Future Work}\label{improvement_section}
|
||||
Recommend future work, obviously. There are a \emph{ton} of opportunities for improvement
|
||||
including parallelization, cluster computing, etc.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user