GCMMA/MMA
Improve a design using objective and constraint derivatives with GCMMA or MMA.
Improve a design using objective and constraint derivatives with GCMMA or MMA.
Where to find it
System Solver → Optimization
How to use it
Define an objective, select the design controls and their bounds, and add constraints before running the optimization study. Choose GCMMA/MMA and select Use GCMMA as appropriate. Set a move limit to control the size of each design update.
Settings and initial values
| Setting | Initial value |
|---|---|
| Use move limit | Manual |
| Maximum number of outer iterations | 100 |
| Optimality tolerance | 0.001 |
| Constraint tolerance | 0.001 |
| Step tolerance | 0.001 |
| Use GCMMA | true |
| Move limit | 0.1 |
| Internal tolerance factor | 0.1 |
| Constraint penalty | 1000.0 |
| Penalty increase factor | 2.0 |
| Maximum constraint penalty | 1000000000000.0 |
| Maximum inner iterations per outer | 10 |
| Line-search contraction factor | 0.5 |
| Asymptote contraction factor | 0.7 |
| Asymptote expansion factor | 1.15 |
| Minimum asymptote fraction | 0.05 |
| Stalled-iteration limit | 5 |
| Maximum wall-clock time | null |
| Maximum number of model evaluations | 1000 |
| Dual tolerance | 1e-10 |
| Dual maximum iterations | 500 |
Result
Compare the final objective, constraint values, design and termination reason together.
Troubleshooting
Limits on iterations or evaluations can end a search before an optimum is reached. Inspect feasibility and termination reason, then verify the final design with a solve. This method requires compatible exact derivatives; an arbitrary Python objective cannot be assumed differentiable.