The procedure for requesting AWR support has changed. Please read all about the new AWR product support process.
Page tree
Skip to end of metadata
Go to start of metadata

Summary

  • You can run optimization from the API.

  • One common application is to run several iterations of multiple types of optimization, see How To Run Multiple Optimizers

Code Snippets

Setting Optimizer Type

Project.Optimizer.Type=6

  • The number will the number in the list when you open the optimizer in the user interface.

  • We don't recommend setting optimizer by number as this order could change.

  • Alternately, you can set by the name


Project.Optimizer.Type="Gradient Optimization"


  • You can write a simple script to print out all the types.

 Sub Main
     Debug.Clear
     For i = 1 To Project.Optimizer.TypeCount
          Debug.Print Project.Optimizer.TypeName(i)
     Next i
End Sub
The output of this will be in the debug window

 Pointer - Robust Optimization
Pointer - Train an Optimizer
Pointer - Run Trained Optimizer
Pointer - Gradient Optimization
Random (Local)
Gradient Optimization
Conjugate Gradient
Simplex Optimizer
Genetic (Uniform Mutation)
Genetic (Gaussian Mutation)
Simulated Annealing (Simplex)
Simulated Annealing (Local)
Random (Global)
Direction Set Method


* Alternately, you can write a function to call the optimizer by name and have it return the index if the name is matched, an example is shown below.

Project.Optimizer.Type=find_opt_type("Simplex Optimizer")
Function find_opt_type(nm As String) As Integer
     Dim typ As Integer

     typ = -1
     For i = 1 To Project.Optimizer.TypeCount
          If nm = Project.Optimizer.TypeName(i) Then
               typ = i
          End If
     Next i
     If typ = -1 Then
          MsgBox ("could not find optimizer name specified:" & nm)
     End If
     find_opt_type = typ
End Function


Setting Optimizer Iterations

  • Very simple

 Project.Optimizer.Iterations=1000

Running the Optimizer

  • simple to start, write a loop to check to see if running on when to continue.

 Project.Optimizer.Start
  While Project.Optimizer.Running=True
  Wend