IGlobalOptimization OpenGlobalOptimization
IGlobalOptimization goT = Tools.OpenGlobalOptimization();
if (goT != null)
{
goT.NumberOfCores = 8; // READ/WRITE
//
// The available Algorithms
//
switch (goT.Algorithm) // READ/WRITE
{
case OptimizationAlgorithm.DampedLeastSquares:
case OptimizationAlgorithm.OrthogonalDescent:
break;
}
//
// The available NumberToSave values
//
switch (goT.NumberToSave) // READ/WRITE
{
case OptimizationSaveCount.Save_10:
case OptimizationSaveCount.Save_20:
case OptimizationSaveCount.Save_30:
case OptimizationSaveCount.Save_40:
case OptimizationSaveCount.Save_50:
case OptimizationSaveCount.Save_60:
case OptimizationSaveCount.Save_70:
case OptimizationSaveCount.Save_80:
case OptimizationSaveCount.Save_90:
case OptimizationSaveCount.Save_100:
break;
}
double mf = goT.CurrentMeritFunction01; // 01 - 10 are available
mf = goT.CurrentMeritFunction(n: 1); // n == 1,10
int nTargets = goT.Targets; // READ ONLY
int nVars = goT.Variables; // READ ONLY
int nCycles = goT.Cycles; // READ ONLY
long nSystems = goT.Systems; // READ ONLY
double iMF = goT.InitialMeritFunction; // READ ONLY
goT.Run();
for (int i = 1; i <= 10; i++)
{
Thread.Sleep(1000);
Console.WriteLine(String.Format("Iteration {0}: Cycles {1}",
i,
goT.Cycles)
);
Console.Write("\t");
for (int j = 1; j <= 10; j++)
{
iMF = goT.CurrentMeritFunction(j);
Console.Write(String.Format("{0}: {1}\t", j, iMF));
if ((j == 5)) { Console.Write("\n\t"); }
}
Console.WriteLine();
}
goT.Cancel();
goT.Close();
}
Next: