123 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			123 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | <?xml version="1.0" encoding="UTF-8" standalone="no"?><umlet_diagram><help_text>// Uncomment the following line to change the fontsize: | ||
|  | // fontsize=14 | ||
|  | 
 | ||
|  | 
 | ||
|  | ////////////////////////////////////////////////////////////////////////////////////////////// | ||
|  | // Welcome to UMLet! | ||
|  | // | ||
|  | // Double-click on UML elements to add them to the diagram, or to copy them | ||
|  | // Edit elements by modifying the text in this panel | ||
|  | // Hold Ctrl to select multiple elements | ||
|  | // Use Ctrl+mouse to select via lasso | ||
|  | // | ||
|  | // Use ± or Ctrl+mouse wheel to zoom | ||
|  | // Drag a whole relation at its central square icon | ||
|  | // | ||
|  | // Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word) | ||
|  | // Edit the files in the "palettes" directory to create your own element palettes | ||
|  | // | ||
|  | // Select "Custom Elements > New..." to create new element types | ||
|  | ////////////////////////////////////////////////////////////////////////////////////////////// | ||
|  | 
 | ||
|  | 
 | ||
|  | // This text will be stored with each diagram;  use it for notes.</help_text><zoom_level>10</zoom_level><element><type>com.umlet.element.base.Class</type><coordinates><x>680</x><y>280</y><w>240</w><h>40</h></coordinates><panel_attributes>MultidirectionalSearchOptimizer | ||
|  | -- | ||
|  | --</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Class</type><coordinates><x>660</x><y>60</y><w>290</w><h>80</h></coordinates><panel_attributes><<interface>> | ||
|  | FunctionOptimizer | ||
|  | /Minimizes a function/ | ||
|  | -- | ||
|  | -- | ||
|  | optimize(Point, OptimizationController)</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>780</x><y>110</y><w>50</w><h>190</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>30;30;30;170</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1030</x><y>20</y><w>170</w><h>80</h></coordinates><panel_attributes><<interface>> | ||
|  | FunctionCache | ||
|  | -- | ||
|  | -- | ||
|  | getValue(Point) | ||
|  | get/setFunction()</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1030</x><y>140</y><w>170</w><h>100</h></coordinates><panel_attributes><<interface>> | ||
|  | ParallelFunctionCache | ||
|  | -- | ||
|  | -- | ||
|  | compute(Point) | ||
|  | waitFor(Point) | ||
|  | abort(Point)</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1090</x><y>70</y><w>50</w><h>90</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>30;30;30;70</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1030</x><y>280</y><w>170</w><h>40</h></coordinates><panel_attributes>ParallelExecutorCache | ||
|  | -- | ||
|  | --</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1090</x><y>210</y><w>50</w><h>90</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>30;30;30;70</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>890</x><y>150</y><w>160</w><h>170</h></coordinates><panel_attributes>lt=<<<- | ||
|  | m2=1</panel_attributes><additional_attributes>30;150;140;30</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1290</x><y>150</y><w>150</w><h>70</h></coordinates><panel_attributes><<interface>> | ||
|  | Function | ||
|  | -- | ||
|  | -- | ||
|  | evaluate(Point)</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1170</x><y>150</y><w>140</w><h>170</h></coordinates><panel_attributes>lt=<<<-</panel_attributes><additional_attributes>30;150;120;30</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1260</x><y>370</y><w>230</w><h>40</h></coordinates><panel_attributes>RocketOptimizationFunction | ||
|  | -- | ||
|  | --</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1340</x><y>190</y><w>50</w><h>200</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>30;30;30;180</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1040</x><y>390</y><w>100</w><h>30</h></coordinates><panel_attributes>Simulation | ||
|  | -- | ||
|  | -- | ||
|  | </panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1110</x><y>360</y><w>170</w><h>60</h></coordinates><panel_attributes>lt=<<<-</panel_attributes><additional_attributes>150;30;30;40</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>940</x><y>550</y><w>200</w><h>80</h></coordinates><panel_attributes><<interface>> | ||
|  | OptimizableParameter | ||
|  | -- | ||
|  | -- | ||
|  | getName() | ||
|  | computeValue(Simulation)</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1010</x><y>380</y><w>320</w><h>190</h></coordinates><panel_attributes>lt=<<<-</panel_attributes><additional_attributes>300;30;30;170</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1160</x><y>550</y><w>260</w><h>70</h></coordinates><panel_attributes><<interface>> | ||
|  | OptimizationGoal | ||
|  | -- | ||
|  | -- | ||
|  | getMinimizationParameter(double)</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1260</x><y>380</y><w>120</w><h>190</h></coordinates><panel_attributes>lt=<<<-</panel_attributes><additional_attributes>100;30;30;170</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1430</x><y>550</y><w>260</w><h>70</h></coordinates><panel_attributes><<interface>> | ||
|  | SimulationDomain | ||
|  | -- | ||
|  | -- | ||
|  | getDistanceToDomain(Simulation)</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1410</x><y>380</y><w>170</w><h>190</h></coordinates><panel_attributes>lt=<<<-</panel_attributes><additional_attributes>30;30;150;170</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1620</x><y>340</y><w>210</w><h>120</h></coordinates><panel_attributes><<interface>> | ||
|  | SimulationModifier | ||
|  | -- | ||
|  | -- | ||
|  | getName() | ||
|  | getRelatedObject() | ||
|  | modify(Simulation, double) | ||
|  | get/set...</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1460</x><y>360</y><w>180</w><h>50</h></coordinates><panel_attributes>lt=<<<- | ||
|  | m2=*</panel_attributes><additional_attributes>30;30;160;30</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>920</x><y>710</y><w>220</w><h>40</h></coordinates><panel_attributes>MaximumAltitudeParameter | ||
|  | -- | ||
|  | --</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1000</x><y>600</y><w>50</w><h>130</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>30;30;30;110</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1310</x><y>710</y><w>140</w><h>40</h></coordinates><panel_attributes>MaximizationGoal | ||
|  | -- | ||
|  | --</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1150</x><y>710</y><w>140</w><h>40</h></coordinates><panel_attributes>MinimizationGoal | ||
|  | -- | ||
|  | -- | ||
|  | </panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1240</x><y>770</y><w>120</w><h>40</h></coordinates><panel_attributes>ValueSeekGoal | ||
|  | -- | ||
|  | -- | ||
|  | </panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1190</x><y>590</y><w>70</w><h>140</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>50;30;30;120</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1320</x><y>590</y><w>70</w><h>140</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>30;30;50;120</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1270</x><y>590</y><w>50</w><h>200</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>30;30;30;180</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1910</x><y>340</y><w>210</w><h>40</h></coordinates><panel_attributes>/AbstractSimulationModifier/ | ||
|  | -- | ||
|  | --</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1800</x><y>330</y><w>130</w><h>50</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>30;30;110;30</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1910</x><y>420</y><w>210</w><h>40</h></coordinates><panel_attributes>/GenericModifier/ | ||
|  | -- | ||
|  | --</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1990</x><y>350</y><w>50</w><h>90</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>30;30;30;70</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1910</x><y>500</y><w>210</w><h>40</h></coordinates><panel_attributes>GenericComponentModifier | ||
|  | -- | ||
|  | --</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1990</x><y>430</y><w>50</w><h>90</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>30;30;30;70</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>620</x><y>430</y><w>330</w><h>70</h></coordinates><panel_attributes><<interface>> | ||
|  | OptimizationController | ||
|  | -- | ||
|  | -- | ||
|  | stepTaken(Point,double,Point,double,double)</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>760</x><y>290</y><w>50</w><h>160</h></coordinates><panel_attributes>lt=<<<-</panel_attributes><additional_attributes>30;30;30;140</additional_attributes></element><element><type>com.umlet.element.base.Note</type><coordinates><x>50</x><y>60</y><w>530</w><h>490</h></coordinates><panel_attributes>FunctionOptimizer is the central interface that defines optimization | ||
|  | algorithms.  This is a general bounded function minimization  | ||
|  | algorithm.  It obtains the function values from a FunctionCache. | ||
|  | The FunctionCache caches function evaluations that  it obtains  | ||
|  | from a Function object. | ||
|  |   | ||
|  | Some implementations require the usage of a ParallelFunctionCache, | ||
|  | which allows queueing function evaluations to take place in the | ||
|  | background. | ||
|  |   | ||
|  | The main Function implementation is RocketOptimizationFunction, | ||
|  | which computes various properties of a given Simulation.  The | ||
|  | parameter that is computed is defined by an OptimizableParameter | ||
|  | (e.g. apogee altitude, stability, max. velocity).  The goal of the  | ||
|  | optimization is defined by an OptimizationGoal (e.g. maximize/minimize | ||
|  | the parameter, or seek a specific value).  The optimization may be  | ||
|  | additionally limited using a SimulationDomain (e.g. require a specific  | ||
|  | minimum amount of stability). | ||
|  |   | ||
|  | The modifications to the simulation are done by SimulationModifier | ||
|  | objects.  The number of modifier objects is the dimensionality of the | ||
|  | optimization - each optimization dimensions corresponds to a specific | ||
|  | value that can be changed in the simulation.  The generic modifier | ||
|  | classes use reflection to modify values dynamically. | ||
|  |   | ||
|  | The optimization progress and ending can be controlled by an | ||
|  | OptimizationController.  The stepTaken method is called after each | ||
|  | step to determine whether to continue or stop the optimization. | ||
|  | 
 | ||
|  | bg=#ffff88</panel_attributes><additional_attributes/></element></umlet_diagram> |