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: