- logging.debug("%s Point de démarrage Xini = %s"%(self._name, Xini))
- #
- # Paramètres de pilotage
- # ----------------------
- # Potentiels : "Bounds", "Minimizer", "MaximumNumberOfSteps", "ProjectedGradientTolerance", "GradientNormTolerance", "InnerMinimizer"
- if Parameters.has_key("Bounds") and (type(Parameters["Bounds"]) is type([]) or type(Parameters["Bounds"]) is type(())) and (len(Parameters["Bounds"]) > 0):
- Bounds = Parameters["Bounds"]
- else:
- Bounds = None
- MinimizerList = ["LBFGSB","TNC", "CG", "NCG", "BFGS"]
- if Parameters.has_key("Minimizer") and (Parameters["Minimizer"] in MinimizerList):
- Minimizer = str( Parameters["Minimizer"] )
- else:
- Minimizer = "LBFGSB"
- logging.warning("%s Unknown or undefined minimizer, replaced by the default one \"%s\""%(self._name,Minimizer))
- logging.debug("%s Minimiseur utilisé = %s"%(self._name, Minimizer))
- if Parameters.has_key("MaximumNumberOfSteps") and (Parameters["MaximumNumberOfSteps"] > -1):
- maxiter = int( Parameters["MaximumNumberOfSteps"] )
- else:
- maxiter = 15000
- logging.debug("%s Nombre maximal de pas d'optimisation = %s"%(self._name, str(maxiter)))
- if Parameters.has_key("CostDecrementTolerance") and (Parameters["CostDecrementTolerance"] > 0):
- ftol = float(Parameters["CostDecrementTolerance"])
- factr = ftol * 1.e14
- else:
- ftol = 1.e-7
- factr = ftol * 1.e14
- logging.debug("%s Diminution relative minimale du cout lors de l'arret = %s"%(self._name, str(1./factr)))
- if Parameters.has_key("ProjectedGradientTolerance") and (Parameters["ProjectedGradientTolerance"] > -1):
- pgtol = float(Parameters["ProjectedGradientTolerance"])
- else:
- pgtol = -1
- logging.debug("%s Maximum des composantes du gradient projete lors de l'arret = %s"%(self._name, str(pgtol)))
- if Parameters.has_key("GradientNormTolerance") and (Parameters["GradientNormTolerance"] > -1):
- gtol = float(Parameters["GradientNormTolerance"])
- else:
- gtol = 1.e-05
- logging.debug("%s Maximum des composantes du gradient lors de l'arret = %s"%(self._name, str(gtol)))
- InnerMinimizerList = ["CG", "NCG", "BFGS"]
- if Parameters.has_key("InnerMinimizer") and (Parameters["InnerMinimizer"] in InnerMinimizerList):
- InnerMinimizer = str( Parameters["InnerMinimizer"] )
- else:
- InnerMinimizer = "BFGS"
- logging.debug("%s Minimiseur interne utilisé = %s"%(self._name, InnerMinimizer))