// 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.10com.umlet.element.base.Class68028024040MultidirectionalSearchOptimizer -- --com.umlet.element.base.Class6606029080<<interface>> FunctionOptimizer /Minimizes a function/ -- -- optimize(Point, OptimizationController)com.umlet.element.base.Relation78011050190lt=<<.30;30;30;170com.umlet.element.base.Class10302017080<<interface>> FunctionCache -- -- getValue(Point) get/setFunction()com.umlet.element.base.Class1030140170100<<interface>> ParallelFunctionCache -- -- compute(Point) waitFor(Point) abort(Point)com.umlet.element.base.Relation1090705090lt=<<-30;30;30;70com.umlet.element.base.Class103028017040ParallelExecutorCache -- --com.umlet.element.base.Relation10902105090lt=<<.30;30;30;70com.umlet.element.base.Relation890150160170lt=<<<- m2=130;150;140;30com.umlet.element.base.Class129015015070<<interface>> Function -- -- evaluate(Point)com.umlet.element.base.Relation1170150140170lt=<<<-30;150;120;30com.umlet.element.base.Class126037023040RocketOptimizationFunction -- --com.umlet.element.base.Relation134019050200lt=<<.30;30;30;180com.umlet.element.base.Class104039010030Simulation -- -- com.umlet.element.base.Relation111036017060lt=<<<-150;30;30;40com.umlet.element.base.Class94055020080<<interface>> OptimizableParameter -- -- getName() computeValue(Simulation)com.umlet.element.base.Relation1010380320190lt=<<<-300;30;30;170com.umlet.element.base.Class116055026070<<interface>> OptimizationGoal -- -- getMinimizationParameter(double)com.umlet.element.base.Relation1260380120190lt=<<<-100;30;30;170com.umlet.element.base.Class143055026070<<interface>> SimulationDomain -- -- getDistanceToDomain(Simulation)com.umlet.element.base.Relation1410380170190lt=<<<-30;30;150;170com.umlet.element.base.Class1620340210120<<interface>> SimulationModifier -- -- getName() getRelatedObject() modify(Simulation, double) get/set...com.umlet.element.base.Relation146036018050lt=<<<- m2=*30;30;160;30com.umlet.element.base.Class92071022040MaximumAltitudeParameter -- --com.umlet.element.base.Relation100060050130lt=<<.30;30;30;110com.umlet.element.base.Class131071014040MaximizationGoal -- --com.umlet.element.base.Class115071014040MinimizationGoal -- -- com.umlet.element.base.Class124077012040ValueSeekGoal -- -- com.umlet.element.base.Relation119059070140lt=<<.50;30;30;120com.umlet.element.base.Relation132059070140lt=<<.30;30;50;120com.umlet.element.base.Relation127059050200lt=<<.30;30;30;180com.umlet.element.base.Class191034021040/AbstractSimulationModifier/ -- --com.umlet.element.base.Relation180033013050lt=<<.30;30;110;30com.umlet.element.base.Class191042021040/GenericModifier/ -- --com.umlet.element.base.Relation19903505090lt=<<-30;30;30;70com.umlet.element.base.Class191050021040GenericComponentModifier -- --com.umlet.element.base.Relation19904305090lt=<<-30;30;30;70com.umlet.element.base.Class62043033070<<interface>> OptimizationController -- -- stepTaken(Point,double,Point,double,double)com.umlet.element.base.Relation76029050160lt=<<<-30;30;30;140com.umlet.element.base.Note5060530490FunctionOptimizer 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