VF13ad Optimizer Feature Spec and Test Procedures Lead: Steve C Developer: Darrel STE/GUI Tester: Tom Explore Failing Tests Other Findings Requirements Interface/Functional Spec Overview Description Fields GUI Remarks Examples Test Procedures Assumptions Existing Tests Recommended Additional Tests Appendix A - Miscellaneous Data NOTES Explore Known bugs/issues committed in JIRA against this feature: JIRA ID Summary Comment GMT-2862 VF13ad no longer works in Linux P3 bug. No action required. GMT-2475 Provide a parameter to check convergence status of a VF13 optimizer Listed as a P1 improvement. Per 11/16/12 discussion with Steve H, this will not be part of R2013A. No action required. Note that GMT-2640 is the VF13ad Optimizer QA task (not a bug). Failing Tests Run Identification: [Gmat-buildtest] Test results: 2012-11-09 (Win7-64/GMAT-32/M2010a/VS) No failed tests. Other Findings 1 2 3 4 Submitted bug, GMT-3214, Message window, for Fmincon use, does not display converged status Submitted bug,GMT-3270 - VF13ad report file does not contain iteration data Submitted bug, GMT-3277, Default value for FeasibilityTolerance is too loose There are a number of fmincon Optimizer bugs submitted that also apply to VF13. When I close these bugs, I will also verify that any issues related to VF13 are also closed. Some examples below. a GMT-3274, Fmincon output data Requirements. Need to make sure VF outputs desired constraint values at the beginning of the report. b Requirements These are working requirements. They are included here for review and convenience purposes. After review, requirements are maintained in the formal SRS located at SourceForge in /trunk/doc/SystemDocs/Requirements. ID Requirement FRR-21.1.0 The system shall allow the user to create and configure a VF13ad optimizer with the following properties: FRR-21.1.1 1) Maximum iterations FRR-21.1.2 2) Convergence tolerance FRR-21.1.3.0 3) Derivative Method FRR-21.1.3.1 i. Forward difference FRR-21.1.3.2 ii. Central difference DEFERRED iii. Backward difference FRR-21.1.3.4 4) Constraint tolerance FRR-21.2.0 The system shall optionally show progress of a vf13ad optimizer in the message window that includes all of the following parameters: FRR-21.2.1 1) FRR-21.2.2 2) Achieved and desired values of the constraints FRR-21.2.3 3) Cost function value FRR-21.2.4 4) Iteration number FRR-21.3 The system shall optionally create a report file containing information on each iteration of the vf13ad optimizer containing all data listed in FRR21.2. Current value of control variables Interface/Functional Spec Overview The Sequential Quadratic Processor (SQP) optimizer, VF13ad, used to optimize mission parameters. Description The VF13ad optimizer is a SQP-based Nonlinear Programming solver available in the Harwell Subroutine Library. VF13ad performs nonlinear constrained optimization and supports both linear and nonlinear constraints. To use this solver, you must configure the solver options including convergence criteria, maximum iterations, and gradient computation method. In the mission sequence, you implement an optimizer such as VF13ad by using an Optimize/EndOptimize sequence. Within this sequence, you define optimization variables by using the Vary command, and define cost and constraints by using the Minimize and NonlinearConstraint commands respectively. Fields See the User Interface Spec spreadsheet for reference information for fields. GUI The VF13ad dialog box allows you to specify properties of a VF13ad such as as maximum iterations, cost function tolerance, feasibility tolerance, choice of reporting options, and choice of whether or not to use the central difference derivative method. To create a VF13ad resource, navigate to the Resources tree, expand the Solvers folder, highlight and then right-click on the Optimizers sub-folder, point to Add and then select VF13AD. This will create a new VF13ad resource, VF13ad1. Double-click on VF13ad1 to bring up the VF13ad dialog box shown below. Remarks VF13ad Optimizer Availability This optimizer is not included as part of the nominal GMAT installation and is only available if you have created and installed the VF13ad plug-in. Object and Command Interactions The VF13ad object can only be used in the context of optimization-type commands. Please see the documentation for Optimize, Vary, NonlinearConstraint, and Minimize for more information and worked examples. Examples Create a VF13AD resource named VF13ad1. Create VF13ad VF13ad1; GMAT VF13ad1.ShowProgress = true; GMAT VF13ad1.ReportStyle = Normal; GMAT VF13ad1.ReportFile = 'VF13adVF13ad1.data'; GMAT VF13ad1.MaximumIterations = 200; GMAT VF13ad1.Tolerance = 1e-005; GMAT VF13ad1.UseCentralDifferences = false; GMAT VF13ad1.FeasibilityTolerance = 1e-003; For an example of how a VF13AD resource can be used within an Optimization sequence, see the Optimize command examples. Test Procedures Assumptions None Existing Tests There are 42 files of the form *.tc. Test Name VF13ad_Validation_* VF13AD_ConvergenceTolerance Description Validation type tests. There are 33 files of this type. VF13AD_DerivativeMethod_CentralDiff VF13AD_DerivativeMethod_ForwardDiff VF13AD_LRO2BurnApsidesRotation VF13AD_LRO3BurnApsidesRotation VF13AD_MaxIterations VF13AD_OptimalLunarTransfer VF13AD_ShowProgress_Iteration VF13AD_ShowProgress_Parameters Recommended Additional Tests 1 Unique Validation Test Name Summary Appendix A - Miscellaneous Data Note that this data is primarily for the internal use of the feature lead. It does not need to be reviewed by the SDE and STE. NOTES 1