예제 #1
0
파일: T_Optimizers.cs 프로젝트: cub-/qlnet
        string optimizationMethodTypeToString(OptimizationMethodType type)
        {
            switch (type)
            {
            case OptimizationMethodType.simplex:
                return("Simplex");

            case OptimizationMethodType.levenbergMarquardt:
                return("Levenberg Marquardt");

            case OptimizationMethodType.levenbergMarquardt2:
                return("Levenberg Marquardt (cost function's jacbobian)");

            case OptimizationMethodType.conjugateGradient:
                return("Conjugate Gradient");

            case OptimizationMethodType.steepestDescent:
                return("Steepest Descent");

            case OptimizationMethodType.bfgs:
                return("BFGS");

            case OptimizationMethodType.conjugateGradient_goldstein:
                return("Conjugate Gradient (Goldstein line search)");

            case OptimizationMethodType.steepestDescent_goldstein:
                return("Steepest Descent (Goldstein line search)");

            case OptimizationMethodType.bfgs_goldstein:
                return("BFGS (Goldstein line search)");

            default:
                throw new ApplicationException("unknown OptimizationMethod type");
            }
        }
예제 #2
0
        OptimizationMethod makeOptimizationMethod(OptimizationMethodType optimizationMethodType,
                                                  double simplexLambda,
                                                  double levenbergMarquardtEpsfcn,
                                                  double levenbergMarquardtXtol,
                                                  double levenbergMarquardtGtol)
        {
            switch (optimizationMethodType)
            {
            case OptimizationMethodType.simplex:
                return(new Simplex(simplexLambda));

            case OptimizationMethodType.levenbergMarquardt:
                return(new LevenbergMarquardt(levenbergMarquardtEpsfcn, levenbergMarquardtXtol, levenbergMarquardtGtol));

            case OptimizationMethodType.levenbergMarquardt2:
                return(new LevenbergMarquardt(levenbergMarquardtEpsfcn, levenbergMarquardtXtol, levenbergMarquardtGtol, true));

            case OptimizationMethodType.conjugateGradient:
                return(new ConjugateGradient());

            case OptimizationMethodType.steepestDescent:
                return(new SteepestDescent());

            default:
                throw new ApplicationException("unknown OptimizationMethod type");
            }
        }
예제 #3
0
        string optimizationMethodTypeToString(OptimizationMethodType type)
        {
            switch (type)
            {
            case OptimizationMethodType.simplex:
                return("Simplex");

            case OptimizationMethodType.levenbergMarquardt:
                return("Levenberg Marquardt");

            case OptimizationMethodType.conjugateGradient:
                return("Conjugate Gradient");

            case OptimizationMethodType.steepestDescent:
                return("Steepest Descent");

            default:
                throw new ApplicationException("unknown OptimizationMethod type");
            }
        }
예제 #4
0
 string optimizationMethodTypeToString(OptimizationMethodType type)
 {
     switch (type) {
         case OptimizationMethodType.simplex:
             return "Simplex";
         case OptimizationMethodType.levenbergMarquardt:
             return "Levenberg Marquardt";
         case OptimizationMethodType.conjugateGradient:
             return "Conjugate Gradient";
         case OptimizationMethodType.steepestDescent:
             return "Steepest Descent";
         default:
             throw new ApplicationException("unknown OptimizationMethod type");
     }
 }
예제 #5
0
 List<NamedOptimizationMethod> makeOptimizationMethods(OptimizationMethodType[] optimizationMethodTypes,
                                                      int optimizationMethodNb,
                                                      double simplexLambda,
                                                      double levenbergMarquardtEpsfcn,
                                                      double levenbergMarquardtXtol,
                                                      double levenbergMarquardtGtol)
 {
     List<NamedOptimizationMethod> results = new List<NamedOptimizationMethod>(optimizationMethodNb);
     for (int i = 0; i < optimizationMethodNb; ++i) {
         NamedOptimizationMethod namedOptimizationMethod;
         namedOptimizationMethod.optimizationMethod = makeOptimizationMethod(optimizationMethodTypes[i],
                                                                             simplexLambda,
                                                                             levenbergMarquardtEpsfcn,
                                                                             levenbergMarquardtXtol,
                                                                             levenbergMarquardtGtol);
         namedOptimizationMethod.name = optimizationMethodTypeToString(optimizationMethodTypes[i]);
         results.Add(namedOptimizationMethod);
     }
     return results;
 }
예제 #6
0
 OptimizationMethod makeOptimizationMethod(OptimizationMethodType optimizationMethodType,
                                         double simplexLambda,
                                         double levenbergMarquardtEpsfcn,
                                         double levenbergMarquardtXtol,
                                         double levenbergMarquardtGtol)
 {
     switch (optimizationMethodType) {
         case OptimizationMethodType.simplex:
             return new Simplex(simplexLambda);
         case OptimizationMethodType.levenbergMarquardt:
             return new LevenbergMarquardt(levenbergMarquardtEpsfcn, levenbergMarquardtXtol, levenbergMarquardtGtol);
         case OptimizationMethodType.conjugateGradient:
             return new ConjugateGradient();
         case OptimizationMethodType.steepestDescent:
             return new SteepestDescent();
         default:
             throw new ApplicationException("unknown OptimizationMethod type");
     }
 }