From e0a87290afe3094c8daa93597c8bec55df0ba5b0 Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Thu, 22 Jan 2015 21:59:55 +0100 Subject: [PATCH] Documentation corrections for outputs --- doc/en/ref_algorithm_3DVAR.rst | 16 ++++------ doc/en/ref_algorithm_Blue.rst | 16 +++------- doc/en/ref_algorithm_ExtendedBlue.rst | 30 +++++++------------ doc/en/ref_algorithm_ExtendedKalmanFilter.rst | 14 +++------ doc/en/ref_algorithm_KalmanFilter.rst | 14 +++------ doc/en/ref_algorithm_LinearLeastSquares.rst | 12 ++------ .../ref_algorithm_NonLinearLeastSquares.rst | 14 +++------ ...ef_algorithm_ParticleSwarmOptimization.rst | 13 ++------ doc/en/ref_algorithm_QuantileRegression.rst | 13 ++------ .../ref_algorithm_UnscentedKalmanFilter.rst | 12 ++------ doc/en/ref_options_AlgorithmParameters.rst | 3 +- doc/en/ref_output_variables.rst | 14 ++++----- doc/fr/ref_algorithm_3DVAR.rst | 13 ++------ doc/fr/ref_algorithm_Blue.rst | 14 ++------- doc/fr/ref_algorithm_ExtendedBlue.rst | 14 ++------- doc/fr/ref_algorithm_ExtendedKalmanFilter.rst | 11 +------ doc/fr/ref_algorithm_KalmanFilter.rst | 11 +------ doc/fr/ref_algorithm_LinearLeastSquares.rst | 12 ++------ .../ref_algorithm_NonLinearLeastSquares.rst | 13 ++------ doc/fr/ref_algorithm_ObserverTest.rst | 2 +- ...ef_algorithm_ParticleSwarmOptimization.rst | 14 +++------ doc/fr/ref_algorithm_QuantileRegression.rst | 14 +++------ doc/fr/ref_algorithm_SamplingTest.rst | 2 +- .../ref_algorithm_UnscentedKalmanFilter.rst | 11 +------ doc/fr/ref_options_AlgorithmParameters.rst | 3 +- doc/fr/ref_output_variables.rst | 6 ++-- src/daComposant/daAlgorithms/3DVAR.py | 6 ++-- src/daComposant/daAlgorithms/Blue.py | 6 ++-- src/daComposant/daAlgorithms/ExtendedBlue.py | 6 ++-- .../daAlgorithms/ExtendedKalmanFilter.py | 5 ++-- src/daComposant/daAlgorithms/KalmanFilter.py | 9 +++--- .../daAlgorithms/LinearLeastSquares.py | 6 ++-- .../daAlgorithms/NonLinearLeastSquares.py | 8 ++--- .../daAlgorithms/ParticleSwarmOptimization.py | 21 ++++++------- .../daAlgorithms/QuantileRegression.py | 4 +-- .../daAlgorithms/UnscentedKalmanFilter.py | 9 +++--- 36 files changed, 122 insertions(+), 269 deletions(-) diff --git a/doc/en/ref_algorithm_3DVAR.rst b/doc/en/ref_algorithm_3DVAR.rst index e3221ad..d25dd6b 100644 --- a/doc/en/ref_algorithm_3DVAR.rst +++ b/doc/en/ref_algorithm_3DVAR.rst @@ -52,7 +52,6 @@ Optional and required commands .. index:: single: CostDecrementTolerance .. index:: single: ProjectedGradientTolerance .. index:: single: GradientNormTolerance -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations .. index:: single: Quantiles .. index:: single: SetSeed @@ -157,21 +156,16 @@ The options of the algorithm are the following: Example : ``{"GradientNormTolerance":1.e-5}`` - StoreInternalVariables - This Boolean key allows to store default internal variables, mainly the - current state during iterative optimization process. Be careful, this can be - a numerically costly choice in certain calculation cases. The default is - "False". - - Example : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations This list indicates the names of the supplementary variables that can be available at the end of the algorithm. It involves potentially costly calculations or memory consumptions. The default is a void list, none of these variables being calculated and stored by default. The possible names - are in the following list: ["APosterioriCovariance", "BMA", "OMA", "OMB", - "Innovation", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles"]. + are in the following list: ["APosterioriCovariance", "BMA", "CostFunctionJ", + "CurrentState", "OMA", "OMB", "Innovation", "SigmaObs2", + "MahalanobisConsistency", "SimulatedObservationAtBackground", + "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum", + "SimulationQuantiles"]. Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/en/ref_algorithm_Blue.rst b/doc/en/ref_algorithm_Blue.rst index 59defa9..248a37b 100644 --- a/doc/en/ref_algorithm_Blue.rst +++ b/doc/en/ref_algorithm_Blue.rst @@ -51,7 +51,6 @@ Optional and required commands .. index:: single: Observation .. index:: single: ObservationError .. index:: single: ObservationOperator -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations .. index:: single: Quantiles .. index:: single: SetSeed @@ -102,22 +101,15 @@ described hereafter, of the algorithm. See The options of the algorithm are the following: - StoreInternalVariables - This Boolean key allows to store default internal variables, mainly the - current state during iterative optimization process. Be careful, this can be - a numerically costly choice in certain calculation cases. The default is - "False". - - Example : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations This list indicates the names of the supplementary variables that can be available at the end of the algorithm. It involves potentially costly calculations or memory consumptions. The default is a void list, none of these variables being calculated and stored by default. The possible names - are in the following list: ["APosterioriCovariance", "BMA", "OMA", "OMB", - "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", - "SimulationQuantiles"]. + are in the following list: ["APosterioriCovariance", "BMA", "CostFunctionJ", + "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2", + "MahalanobisConsistency", "SimulatedObservationAtBackground", + "SimulatedObservationAtOptimum", "SimulationQuantiles"]. Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/en/ref_algorithm_ExtendedBlue.rst b/doc/en/ref_algorithm_ExtendedBlue.rst index 76b1ce5..14b629b 100644 --- a/doc/en/ref_algorithm_ExtendedBlue.rst +++ b/doc/en/ref_algorithm_ExtendedBlue.rst @@ -49,7 +49,6 @@ Optional and required commands .. index:: single: Observation .. index:: single: ObservationError .. index:: single: ObservationOperator -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations .. index:: single: Quantiles .. index:: single: SetSeed @@ -100,22 +99,15 @@ described hereafter, of the algorithm. See The options of the algorithm are the following: - StoreInternalVariables - This Boolean key allows to store default internal variables, mainly the - current state during iterative optimization process. Be careful, this can be - a numerically costly choice in certain calculation cases. The default is - "False". - - Example : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations This list indicates the names of the supplementary variables that can be available at the end of the algorithm. It involves potentially costly calculations or memory consumptions. The default is a void list, none of these variables being calculated and stored by default. The possible names - are in the following list: ["APosterioriCovariance", "BMA", "OMA", "OMB", - "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", - "SimulationQuantiles"]. + are in the following list: ["APosterioriCovariance", "BMA", + "CostFunctionJ", "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2", + "MahalanobisConsistency", "SimulatedObservationAtBackground", + "SimulatedObservationAtOptimum", "SimulationQuantiles"]. Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` @@ -244,13 +236,6 @@ The conditional outputs of the algorithm are the following: Example : ``so2 = ADD.get("SigmaObs")[-1]`` - SimulationQuantiles - *List of vectors*. Each element is a vector corresponding to the observed - state which realize the required quantile, in the same order than the - quantiles required by the user. - - Example : ``sQuantiles = ADD.get("SimulationQuantiles")[:]`` - SimulatedObservationAtBackground *List of vectors*. Each element is a vector of observation simulated from the background :math:`\mathbf{x}^b`. @@ -263,6 +248,13 @@ The conditional outputs of the algorithm are the following: Example : ``hxa = ADD.get("SimulatedObservationAtOptimum")[-1]`` + SimulationQuantiles + *List of vectors*. Each element is a vector corresponding to the observed + state which realize the required quantile, in the same order than the + quantiles required by the user. + + Example : ``sQuantiles = ADD.get("SimulationQuantiles")[:]`` + See also ++++++++ diff --git a/doc/en/ref_algorithm_ExtendedKalmanFilter.rst b/doc/en/ref_algorithm_ExtendedKalmanFilter.rst index 16e68a3..d313387 100644 --- a/doc/en/ref_algorithm_ExtendedKalmanFilter.rst +++ b/doc/en/ref_algorithm_ExtendedKalmanFilter.rst @@ -44,7 +44,6 @@ Optional and required commands .. index:: single: Bounds .. index:: single: ConstrainedBy .. index:: single: EstimationOf -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations The general required commands, available in the editing user interface, are the @@ -106,20 +105,13 @@ The options of the algorithm are the following: Example : ``{"EstimationOf":"Parameters"}`` - StoreInternalVariables - This Boolean key allows to store default internal variables, mainly the - current state during iterative optimization process. Be careful, this can be - a numerically costly choice in certain calculation cases. The default is - "False". - - Example : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations This list indicates the names of the supplementary variables that can be available at the end of the algorithm. It involves potentially costly calculations or memory consumptions. The default is a void list, none of these variables being calculated and stored by default. The possible names - are in the following list: ["APosterioriCovariance", "BMA", "Innovation"]. + are in the following list: ["APosterioriCovariance", "BMA", "CostFunctionJ", + "CurrentState", "Innovation"]. Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` @@ -184,6 +176,8 @@ The conditional outputs of the algorithm are the following: the difference between the optimal and the background, and in dynamic the evolution increment. + Exemple : ``d = ADD.get("Innovation")[-1]`` + See also ++++++++ diff --git a/doc/en/ref_algorithm_KalmanFilter.rst b/doc/en/ref_algorithm_KalmanFilter.rst index 64bbc30..dcd35f8 100644 --- a/doc/en/ref_algorithm_KalmanFilter.rst +++ b/doc/en/ref_algorithm_KalmanFilter.rst @@ -51,7 +51,6 @@ Optional and required commands .. index:: single: ObservationError .. index:: single: ObservationOperator .. index:: single: EstimationOf -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations The general required commands, available in the editing user interface, are the @@ -105,20 +104,13 @@ The options of the algorithm are the following: Example : ``{"EstimationOf":"Parameters"}`` - StoreInternalVariables - This Boolean key allows to store default internal variables, mainly the - current state during iterative optimization process. Be careful, this can be - a numerically costly choice in certain calculation cases. The default is - "False". - - Example : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations This list indicates the names of the supplementary variables that can be available at the end of the algorithm. It involves potentially costly calculations or memory consumptions. The default is a void list, none of these variables being calculated and stored by default. The possible names - are in the following list: ["APosterioriCovariance", "BMA", "Innovation"]. + are in the following list: ["APosterioriCovariance", "BMA", "CostFunctionJ", + "CurrentState", "Innovation"]. Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` @@ -183,6 +175,8 @@ The conditional outputs of the algorithm are the following: the difference between the optimal and the background, and in dynamic the evolution increment. + Exemple : ``d = ADD.get("Innovation")[-1]`` + See also ++++++++ diff --git a/doc/en/ref_algorithm_LinearLeastSquares.rst b/doc/en/ref_algorithm_LinearLeastSquares.rst index b287b71..dad7414 100644 --- a/doc/en/ref_algorithm_LinearLeastSquares.rst +++ b/doc/en/ref_algorithm_LinearLeastSquares.rst @@ -51,7 +51,6 @@ Optional and required commands .. index:: single: Observation .. index:: single: ObservationError .. index:: single: ObservationOperator -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations The general required commands, available in the editing user interface, are the @@ -87,20 +86,13 @@ described hereafter, of the algorithm. See The options of the algorithm are the following: - StoreInternalVariables - This Boolean key allows to store default internal variables, mainly the - current state during iterative optimization process. Be careful, this can be - a numerically costly choice in certain calculation cases. The default is - "False". - - Example : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations This list indicates the names of the supplementary variables that can be available at the end of the algorithm. It involves potentially costly calculations or memory consumptions. The default is a void list, none of these variables being calculated and stored by default. The possible names - are in the following list: ["OMA"]. + are in the following list: ["OMA", "CostFunctionJ", + "SimulatedObservationAtOptimum"]. Example : ``{"StoreSupplementaryCalculations":["OMA"]}`` diff --git a/doc/en/ref_algorithm_NonLinearLeastSquares.rst b/doc/en/ref_algorithm_NonLinearLeastSquares.rst index 9dfed31..19905f2 100644 --- a/doc/en/ref_algorithm_NonLinearLeastSquares.rst +++ b/doc/en/ref_algorithm_NonLinearLeastSquares.rst @@ -55,7 +55,6 @@ Optional and required commands .. index:: single: CostDecrementTolerance .. index:: single: ProjectedGradientTolerance .. index:: single: GradientNormTolerance -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations The general required commands, available in the editing user interface, are the @@ -149,20 +148,15 @@ The options of the algorithm are the following: Example : ``{"GradientNormTolerance":1.e-5}`` - StoreInternalVariables - This Boolean key allows to store default internal variables, mainly the - current state during iterative optimization process. Be careful, this can be - a numerically costly choice in certain calculation cases. The default is - "False". - - Example : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations This list indicates the names of the supplementary variables that can be available at the end of the algorithm. It involves potentially costly calculations or memory consumptions. The default is a void list, none of these variables being calculated and stored by default. The possible names - are in the following list: ["BMA", "OMA", "OMB", "Innovation"]. + are in the following list: ["APosterioriCovariance", "BMA", + "CostFunctionJ", "CurrentState", "OMA", "OMB", "Innovation", "SigmaObs2", + "MahalanobisConsistency", "SimulatedObservationAtCurrentState", + "SimulatedObservationAtOptimum"]. Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/en/ref_algorithm_ParticleSwarmOptimization.rst b/doc/en/ref_algorithm_ParticleSwarmOptimization.rst index 136f328..843b6b4 100644 --- a/doc/en/ref_algorithm_ParticleSwarmOptimization.rst +++ b/doc/en/ref_algorithm_ParticleSwarmOptimization.rst @@ -53,7 +53,6 @@ Optional and required commands .. index:: single: QualityCriterion .. index:: single: BoxBounds .. index:: single: SetSeed -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations The general required commands, available in the editing user interface, are the @@ -154,20 +153,14 @@ The options of the algorithm are the following: Example : ``{"SetSeed":1000}`` - StoreInternalVariables - This Boolean key allows to store default internal variables, mainly the - current state during iterative optimization process. Be careful, this can be - a numerically costly choice in certain calculation cases. The default is - "False". - - Example : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations This list indicates the names of the supplementary variables that can be available at the end of the algorithm. It involves potentially costly calculations or memory consumptions. The default is a void list, none of these variables being calculated and stored by default. The possible names - are in the following list: ["BMA", "OMA", "OMB", "Innovation"]. + are in the following list: ["BMA", "CostFunctionJ", "CurrentState", "OMA", + "OMB", "Innovation", "SimulatedObservationAtBackground", + "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"]. Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/en/ref_algorithm_QuantileRegression.rst b/doc/en/ref_algorithm_QuantileRegression.rst index 406fa5c..c09e979 100644 --- a/doc/en/ref_algorithm_QuantileRegression.rst +++ b/doc/en/ref_algorithm_QuantileRegression.rst @@ -45,7 +45,6 @@ Optional and required commands .. index:: single: Minimizer .. index:: single: MaximumNumberOfSteps .. index:: single: CostDecrementTolerance -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations The general required commands, available in the editing user interface, are the @@ -102,20 +101,14 @@ The options of the algorithm are the following: Example : ``{"CostDecrementTolerance":1.e-7}`` - StoreInternalVariables - This Boolean key allows to store default internal variables, mainly the - current state during iterative optimization process. Be careful, this can be - a numerically costly choice in certain calculation cases. The default is - "False". - - Example : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations This list indicates the names of the supplementary variables that can be available at the end of the algorithm. It involves potentially costly calculations or memory consumptions. The default is a void list, none of these variables being calculated and stored by default. The possible names - are in the following list: ["BMA", "OMA", "OMB", "Innovation"]. + are in the following list: ["BMA", "CostFunctionJ", "CurrentState", "OMA", + "OMB", "Innovation", "SimulatedObservationAtBackground", + "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"]. Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/en/ref_algorithm_UnscentedKalmanFilter.rst b/doc/en/ref_algorithm_UnscentedKalmanFilter.rst index cf3b45b..8f135dc 100644 --- a/doc/en/ref_algorithm_UnscentedKalmanFilter.rst +++ b/doc/en/ref_algorithm_UnscentedKalmanFilter.rst @@ -50,7 +50,6 @@ Optional and required commands .. index:: single: Beta .. index:: single: Kappa .. index:: single: Reconditioner -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations The general required commands, available in the editing user interface, are the @@ -121,20 +120,13 @@ The options of the algorithm are the following: Example : ``{"Alpha":1,"Beta":2,"Kappa":0,"Reconditioner":1}`` - StoreInternalVariables - This Boolean key allows to store default internal variables, mainly the - current state during iterative optimization process. Be careful, this can be - a numerically costly choice in certain calculation cases. The default is - "False". - - Example : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations This list indicates the names of the supplementary variables that can be available at the end of the algorithm. It involves potentially costly calculations or memory consumptions. The default is a void list, none of these variables being calculated and stored by default. The possible names - are in the following list: ["APosterioriCovariance", "BMA", "Innovation"]. + are in the following list: ["APosterioriCovariance", "BMA", "CostFunctionJ", + "CurrentState", "Innovation"]. Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/en/ref_options_AlgorithmParameters.rst b/doc/en/ref_options_AlgorithmParameters.rst index 58ea894..b40d046 100644 --- a/doc/en/ref_options_AlgorithmParameters.rst +++ b/doc/en/ref_options_AlgorithmParameters.rst @@ -56,7 +56,7 @@ in the EFICAS graphical interface, the user selects this type in the keyword In the entry, one must enclose a standard dictionary definition between simple quotes, as for example:: - '{"StoreInternalVariables":True,"MaximumNumberOfSteps":25}' + '{"MaximumNumberOfSteps":25,"SetSeed":1000}' It is the recommended way to define algorithmic parameters. @@ -78,7 +78,6 @@ This external Python script file has then to define a variable with the required name "*AlgorithmParameters*", as in the following example:: AlgorithmParameters = { - "StoreInternalVariables" : True, "MaximumNumberOfSteps" : 25, "StoreSupplementaryCalculations" : ["APosterioriCovariance","OMA"], } diff --git a/doc/en/ref_output_variables.rst b/doc/en/ref_output_variables.rst index 8399065..f45c147 100644 --- a/doc/en/ref_output_variables.rst +++ b/doc/en/ref_output_variables.rst @@ -133,7 +133,6 @@ Other usage examples are also given for :ref:`section_u_step4` of the Cross compliance of the information available at the output +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -.. index:: single: StoreInternalVariables .. index:: single: AlgorithmParameters .. index:: single: Stored @@ -147,13 +146,12 @@ calculation. The other information are only present for certain algorithms and/or if they have been requested before the execution of the calculation. It is recalled that the user can request additional information during the -preparation of its ADAO case, using option "*StoreInternalVariables*" each -algorithm through the optional control "*AlgorithmParameters*" of ADAO case. -Reference will be made to the :ref:`section_ref_options_AlgorithmParameters` for -the proper use of this command, and to the description of each algorithm for -the information available by algorithm. One can also ask to keep some input -information by changing the boolean "* * Stored" associated with it in the -edition of the ADAO case. +preparation of its ADAO case, using the optional control "*AlgorithmParameters*" +of ADAO case. Reference will be made to the +:ref:`section_ref_options_AlgorithmParameters` for the proper use of this +command, and to the description of each algorithm for the information available +by algorithm. One can also ask to keep some input information by changing the +boolean "* * Stored" associated with it in the edition of the ADAO case. .. _subsection_r_o_v_Inventaire: diff --git a/doc/fr/ref_algorithm_3DVAR.rst b/doc/fr/ref_algorithm_3DVAR.rst index 6fe7797..be8dc6e 100644 --- a/doc/fr/ref_algorithm_3DVAR.rst +++ b/doc/fr/ref_algorithm_3DVAR.rst @@ -53,7 +53,6 @@ Commandes requises et optionnelles .. index:: single: CostDecrementTolerance .. index:: single: ProjectedGradientTolerance .. index:: single: GradientNormTolerance -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations .. index:: single: Quantiles .. index:: single: SetSeed @@ -163,21 +162,15 @@ Les options de l'algorithme sont les suivantes: Exemple : ``{"GradientNormTolerance":1.e-5}`` - StoreInternalVariables - Cette clé booléenne permet de stocker les variables internes par défaut, - principalement l'état courant lors d'un processus itératif. Attention, cela - peut être un choix numériquement coûteux dans certains cas de calculs. La - valeur par défaut est "False". - - Exemple : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations Cette liste indique les noms des variables supplémentaires qui peuvent être disponibles à la fin de l'algorithme. Cela implique potentiellement des calculs ou du stockage coûteux. La valeur par défaut est une liste vide, aucune de ces variables n'étant calculée et stockée par défaut. Les noms possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA", - "OMA", "OMB", "Innovation", "SigmaObs2", "MahalanobisConsistency", + "CostFunctionJ", "CurrentState", "OMA", "OMB", "Innovation", "SigmaObs2", + "MahalanobisConsistency", "SimulatedObservationAtBackground", + "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum", "SimulationQuantiles"]. Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/fr/ref_algorithm_Blue.rst b/doc/fr/ref_algorithm_Blue.rst index 9b520ff..ae1205a 100644 --- a/doc/fr/ref_algorithm_Blue.rst +++ b/doc/fr/ref_algorithm_Blue.rst @@ -52,7 +52,6 @@ Commandes requises et optionnelles .. index:: single: Observation .. index:: single: ObservationError .. index:: single: ObservationOperator -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations .. index:: single: Quantiles .. index:: single: SetSeed @@ -105,22 +104,15 @@ commande. Les options de l'algorithme sont les suivantes: - StoreInternalVariables - Cette clé booléenne permet de stocker les variables internes par défaut, - principalement l'état courant lors d'un processus itératif. Attention, cela - peut être un choix numériquement coûteux dans certains cas de calculs. La - valeur par défaut est "False". - - Exemple : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations Cette liste indique les noms des variables supplémentaires qui peuvent être disponibles à la fin de l'algorithme. Cela implique potentiellement des calculs ou du stockage coûteux. La valeur par défaut est une liste vide, aucune de ces variables n'étant calculée et stockée par défaut. Les noms possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA", - "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2", - "MahalanobisConsistency", "SimulationQuantiles"]. + "CostFunctionJ", "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2", + "MahalanobisConsistency", "SimulatedObservationAtBackground", + "SimulatedObservationAtOptimum", "SimulationQuantiles"]. Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/fr/ref_algorithm_ExtendedBlue.rst b/doc/fr/ref_algorithm_ExtendedBlue.rst index dfbee64..5a9ff1b 100644 --- a/doc/fr/ref_algorithm_ExtendedBlue.rst +++ b/doc/fr/ref_algorithm_ExtendedBlue.rst @@ -49,7 +49,6 @@ Commandes requises et optionnelles .. index:: single: Observation .. index:: single: ObservationError .. index:: single: ObservationOperator -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations .. index:: single: Quantiles .. index:: single: SetSeed @@ -102,22 +101,15 @@ commande. Les options de l'algorithme sont les suivantes: - StoreInternalVariables - Cette clé booléenne permet de stocker les variables internes par défaut, - principalement l'état courant lors d'un processus itératif. Attention, cela - peut être un choix numériquement coûteux dans certains cas de calculs. La - valeur par défaut est "False". - - Exemple : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations Cette liste indique les noms des variables supplémentaires qui peuvent être disponibles à la fin de l'algorithme. Cela implique potentiellement des calculs ou du stockage coûteux. La valeur par défaut est une liste vide, aucune de ces variables n'étant calculée et stockée par défaut. Les noms possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA", - "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2", - "MahalanobisConsistency", "SimulationQuantiles"]. + "CostFunctionJ", "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2", + "MahalanobisConsistency", "SimulatedObservationAtBackground", + "SimulatedObservationAtOptimum", "SimulationQuantiles"]. Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/fr/ref_algorithm_ExtendedKalmanFilter.rst b/doc/fr/ref_algorithm_ExtendedKalmanFilter.rst index 38700a8..a3ffabb 100644 --- a/doc/fr/ref_algorithm_ExtendedKalmanFilter.rst +++ b/doc/fr/ref_algorithm_ExtendedKalmanFilter.rst @@ -45,7 +45,6 @@ Commandes requises et optionnelles .. index:: single: Bounds .. index:: single: ConstrainedBy .. index:: single: EstimationOf -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations Les commandes requises générales, disponibles dans l'interface en édition, sont @@ -110,21 +109,13 @@ Les options de l'algorithme sont les suivantes: Exemple : ``{"EstimationOf":"Parameters"}`` - StoreInternalVariables - Cette clé booléenne permet de stocker les variables internes par défaut, - principalement l'état courant lors d'un processus itératif. Attention, cela - peut être un choix numériquement coûteux dans certains cas de calculs. La - valeur par défaut est "False". - - Exemple : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations Cette liste indique les noms des variables supplémentaires qui peuvent être disponibles à la fin de l'algorithme. Cela implique potentiellement des calculs ou du stockage coûteux. La valeur par défaut est une liste vide, aucune de ces variables n'étant calculée et stockée par défaut. Les noms possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA", - "Innovation"]. + "CostFunctionJ", "CurrentState", "Innovation"]. Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/fr/ref_algorithm_KalmanFilter.rst b/doc/fr/ref_algorithm_KalmanFilter.rst index c5ae736..195f99c 100644 --- a/doc/fr/ref_algorithm_KalmanFilter.rst +++ b/doc/fr/ref_algorithm_KalmanFilter.rst @@ -51,7 +51,6 @@ Commandes requises et optionnelles .. index:: single: ObservationError .. index:: single: ObservationOperator .. index:: single: EstimationOf -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations Les commandes requises générales, disponibles dans l'interface en édition, sont @@ -107,21 +106,13 @@ Les options de l'algorithme sont les suivantes: Exemple : ``{"EstimationOf":"Parameters"}`` - StoreInternalVariables - Cette clé booléenne permet de stocker les variables internes par défaut, - principalement l'état courant lors d'un processus itératif. Attention, cela - peut être un choix numériquement coûteux dans certains cas de calculs. La - valeur par défaut est "False". - - Exemple : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations Cette liste indique les noms des variables supplémentaires qui peuvent être disponibles à la fin de l'algorithme. Cela implique potentiellement des calculs ou du stockage coûteux. La valeur par défaut est une liste vide, aucune de ces variables n'étant calculée et stockée par défaut. Les noms possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA", - "Innovation"]. + "CostFunctionJ", "CurrentState", "Innovation"]. Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/fr/ref_algorithm_LinearLeastSquares.rst b/doc/fr/ref_algorithm_LinearLeastSquares.rst index efee489..10bc9ce 100644 --- a/doc/fr/ref_algorithm_LinearLeastSquares.rst +++ b/doc/fr/ref_algorithm_LinearLeastSquares.rst @@ -51,7 +51,6 @@ Commandes requises et optionnelles .. index:: single: Observation .. index:: single: ObservationError .. index:: single: ObservationOperator -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations Les commandes requises générales, disponibles dans l'interface en édition, sont @@ -89,20 +88,13 @@ commande. Les options de l'algorithme sont les suivantes: - StoreInternalVariables - Cette clé booléenne permet de stocker les variables internes par défaut, - principalement l'état courant lors d'un processus itératif. Attention, cela - peut être un choix numériquement coûteux dans certains cas de calculs. La - valeur par défaut est "False". - - Exemple : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations Cette liste indique les noms des variables supplémentaires qui peuvent être disponibles à la fin de l'algorithme. Cela implique potentiellement des calculs ou du stockage coûteux. La valeur par défaut est une liste vide, aucune de ces variables n'étant calculée et stockée par défaut. Les noms - possibles sont dans la liste suivante : ["OMA"]. + possibles sont dans la liste suivante : ["OMA", "CostFunctionJ", + "SimulatedObservationAtOptimum"]. Exemple : ``{"StoreSupplementaryCalculations":["OMA"]}`` diff --git a/doc/fr/ref_algorithm_NonLinearLeastSquares.rst b/doc/fr/ref_algorithm_NonLinearLeastSquares.rst index 90f5d02..8a57523 100644 --- a/doc/fr/ref_algorithm_NonLinearLeastSquares.rst +++ b/doc/fr/ref_algorithm_NonLinearLeastSquares.rst @@ -56,7 +56,6 @@ Commandes requises et optionnelles .. index:: single: CostDecrementTolerance .. index:: single: ProjectedGradientTolerance .. index:: single: GradientNormTolerance -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations Les commandes requises générales, disponibles dans l'interface en édition, sont @@ -157,21 +156,15 @@ Les options de l'algorithme sont les suivantes: Exemple : ``{"GradientNormTolerance":1.e-5}`` - StoreInternalVariables - Cette clé booléenne permet de stocker les variables internes par défaut, - principalement l'état courant lors d'un processus itératif. Attention, cela - peut être un choix numériquement coûteux dans certains cas de calculs. La - valeur par défaut est "False". - - Exemple : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations Cette liste indique les noms des variables supplémentaires qui peuvent être disponibles à la fin de l'algorithme. Cela implique potentiellement des calculs ou du stockage coûteux. La valeur par défaut est une liste vide, aucune de ces variables n'étant calculée et stockée par défaut. Les noms possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA", - "OMA", "OMB", "Innovation", "SigmaObs2", "MahalanobisConsistency"]. + "CostFunctionJ", "CurrentState", "OMA", "OMB", "Innovation", "SigmaObs2", + "MahalanobisConsistency", "SimulatedObservationAtCurrentState", + "SimulatedObservationAtOptimum"]. Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/fr/ref_algorithm_ObserverTest.rst b/doc/fr/ref_algorithm_ObserverTest.rst index 83242c8..dd9873c 100644 --- a/doc/fr/ref_algorithm_ObserverTest.rst +++ b/doc/fr/ref_algorithm_ObserverTest.rst @@ -46,7 +46,7 @@ Commandes requises et optionnelles Les commandes requises générales, disponibles dans l'interface en édition, sont les suivantes: - Observers + Observers *Commande obligatoire*. Elle permet de définir des observateurs internes, qui sont des fonctions liées à une variable particulière, qui sont exécutées chaque fois que cette variable est modifiée. C'est une manière pratique de diff --git a/doc/fr/ref_algorithm_ParticleSwarmOptimization.rst b/doc/fr/ref_algorithm_ParticleSwarmOptimization.rst index 110f951..ff6fcb6 100644 --- a/doc/fr/ref_algorithm_ParticleSwarmOptimization.rst +++ b/doc/fr/ref_algorithm_ParticleSwarmOptimization.rst @@ -54,7 +54,6 @@ Commandes requises et optionnelles .. index:: single: QualityCriterion .. index:: single: BoxBounds .. index:: single: SetSeed -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations Les commandes requises générales, disponibles dans l'interface en édition, sont @@ -159,20 +158,15 @@ Les options de l'algorithme sont les suivantes: Exemple : ``{"SetSeed":1000}`` - StoreInternalVariables - Cette clé booléenne permet de stocker les variables internes par défaut, - principalement l'état courant lors d'un processus itératif. Attention, cela - peut être un choix numériquement coûteux dans certains cas de calculs. La - valeur par défaut est "False". - - Exemple : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations Cette liste indique les noms des variables supplémentaires qui peuvent être disponibles à la fin de l'algorithme. Cela implique potentiellement des calculs ou du stockage coûteux. La valeur par défaut est une liste vide, aucune de ces variables n'étant calculée et stockée par défaut. Les noms - possibles sont dans la liste suivante : ["BMA", "OMA", "OMB", "Innovation"]. + possibles sont dans la liste suivante : ["BMA", "CostFunctionJ", + "CurrentState", "OMA", "OMB", "Innovation", + "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", + "SimulatedObservationAtOptimum"]. Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/fr/ref_algorithm_QuantileRegression.rst b/doc/fr/ref_algorithm_QuantileRegression.rst index fe28ed6..be80ca4 100644 --- a/doc/fr/ref_algorithm_QuantileRegression.rst +++ b/doc/fr/ref_algorithm_QuantileRegression.rst @@ -45,7 +45,6 @@ Commandes requises et optionnelles .. index:: single: Minimizer .. index:: single: MaximumNumberOfSteps .. index:: single: CostDecrementTolerance -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations Les commandes requises générales, disponibles dans l'interface en édition, sont @@ -104,20 +103,15 @@ Les options de l'algorithme sont les suivantes: Exemple : ``{"CostDecrementTolerance":1.e-7}`` - StoreInternalVariables - Cette clé booléenne permet de stocker les variables internes par défaut, - principalement l'état courant lors d'un processus itératif. Attention, cela - peut être un choix numériquement coûteux dans certains cas de calculs. La - valeur par défaut est "False". - - Exemple : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations Cette liste indique les noms des variables supplémentaires qui peuvent être disponibles à la fin de l'algorithme. Cela implique potentiellement des calculs ou du stockage coûteux. La valeur par défaut est une liste vide, aucune de ces variables n'étant calculée et stockée par défaut. Les noms - possibles sont dans la liste suivante : ["BMA", "OMA", "OMB", "Innovation"]. + possibles sont dans la liste suivante : ["BMA", "CostFunctionJ", + "CurrentState", "OMA", "OMB", "Innovation", + "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", + "SimulatedObservationAtOptimum"]. Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/fr/ref_algorithm_SamplingTest.rst b/doc/fr/ref_algorithm_SamplingTest.rst index dbdc6df..b4f689e 100644 --- a/doc/fr/ref_algorithm_SamplingTest.rst +++ b/doc/fr/ref_algorithm_SamplingTest.rst @@ -155,7 +155,7 @@ Les options de l'algorithme sont les suivantes: augmentés. Les critères possibles sont dans la liste suivante, dans laquelle les noms équivalents sont indiqués par un signe "=" : ["AugmentedWeightedLeastSquares"="AWLS"="DA", "WeightedLeastSquares"="WLS", - "LeastSquares"="LS"="L2", "AbsoluteValue"="L1", "MaximumError"="ME"]. + "LeastSquares"="LS"="L2", "AbsoluteValue"="L1", "MaximumError"="ME"]. Exemple : ``{"QualityCriterion":"DA"}`` diff --git a/doc/fr/ref_algorithm_UnscentedKalmanFilter.rst b/doc/fr/ref_algorithm_UnscentedKalmanFilter.rst index b7f3930..d8d13d3 100644 --- a/doc/fr/ref_algorithm_UnscentedKalmanFilter.rst +++ b/doc/fr/ref_algorithm_UnscentedKalmanFilter.rst @@ -50,7 +50,6 @@ Commandes requises et optionnelles .. index:: single: Beta .. index:: single: Kappa .. index:: single: Reconditioner -.. index:: single: StoreInternalVariables .. index:: single: StoreSupplementaryCalculations Les commandes requises générales, disponibles dans l'interface en édition, sont @@ -125,21 +124,13 @@ Les options de l'algorithme sont les suivantes: Exemple : ``{"Alpha":1,"Beta":2,"Kappa":0,"Reconditioner":1}`` - StoreInternalVariables - Cette clé booléenne permet de stocker les variables internes par défaut, - principalement l'état courant lors d'un processus itératif. Attention, cela - peut être un choix numériquement coûteux dans certains cas de calculs. La - valeur par défaut est "False". - - Exemple : ``{"StoreInternalVariables":True}`` - StoreSupplementaryCalculations Cette liste indique les noms des variables supplémentaires qui peuvent être disponibles à la fin de l'algorithme. Cela implique potentiellement des calculs ou du stockage coûteux. La valeur par défaut est une liste vide, aucune de ces variables n'étant calculée et stockée par défaut. Les noms possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA", - "Innovation"]. + "CostFunctionJ", "CurrentState", "Innovation"]. Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}`` diff --git a/doc/fr/ref_options_AlgorithmParameters.rst b/doc/fr/ref_options_AlgorithmParameters.rst index 919fd28..2c347e5 100644 --- a/doc/fr/ref_options_AlgorithmParameters.rst +++ b/doc/fr/ref_options_AlgorithmParameters.rst @@ -57,7 +57,7 @@ suit : Dans le champs de saisie, il faut utiliser des guillemets simples pour une définition standard de dictionnaire, comme par exemple:: - '{"StoreInternalVariables":True,"MaximumNumberOfSteps":25}' + '{"MaximumNumberOfSteps":25,"SetSeed":1000}' C'est la manière recommandée pour définir des paramètres algorithmiques. @@ -79,7 +79,6 @@ Ce fichier script Python externe doit d "*AlgorithmParameters*", à la manière de l'exemple qui suit:: AlgorithmParameters = { - "StoreInternalVariables" : True, "MaximumNumberOfSteps" : 25, "StoreSupplementaryCalculations" : ["APosterioriCovariance","OMA"], } diff --git a/doc/fr/ref_output_variables.rst b/doc/fr/ref_output_variables.rst index 5941bf2..7565fbe 100644 --- a/doc/fr/ref_output_variables.rst +++ b/doc/fr/ref_output_variables.rst @@ -137,7 +137,6 @@ la partie :ref:`section_using`, ou en partie :ref:`section_examples`. Conditionnalité des informations disponibles en sortie ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -.. index:: single: StoreInternalVariables .. index:: single: AlgorithmParameters .. index:: single: Stored @@ -151,9 +150,8 @@ calcul. Les autres informations ne sont pr et/ou que si elles ont été réclamées avant l'exécution du calcul. On rappelle que l'utilisateur peut réclamer des informations supplémentaires -lors de l'établissement de son cas ADAO, en utilisant l'option -"*StoreInternalVariables*" de chaque algorithme à travers la commande -optionnelle "*AlgorithmParameters*" du cas ADAO. On se reportera à la +lors de l'établissement de son cas ADAO, en utilisant la commande optionnelle +"*AlgorithmParameters*" du cas ADAO. On se reportera à la :ref:`section_ref_options_AlgorithmParameters` pour le bon usage de cette commande, et à la description de chaque algorithme pour les informations disponibles par algorithme. On peut aussi demander à conserver certaines diff --git a/src/daComposant/daAlgorithms/3DVAR.py b/src/daComposant/daAlgorithms/3DVAR.py index 2ac2931..ba53af8 100644 --- a/src/daComposant/daAlgorithms/3DVAR.py +++ b/src/daComposant/daAlgorithms/3DVAR.py @@ -72,7 +72,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): default = [], typecast = tuple, message = "Liste de calculs supplémentaires à stocker et/ou effectuer", - listval = ["APosterioriCovariance", "BMA", "OMA", "OMB", "Innovation", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"] + listval = ["APosterioriCovariance", "BMA", "OMA", "OMB", "CurrentState", "CostFunctionJ", "Innovation", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"] ) self.defineRequiredParameter( name = "Quantiles", @@ -160,7 +160,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): Jb = 0.5 * (_X - Xb).T * BI * (_X - Xb) Jo = 0.5 * (Y - _HX).T * RI * (Y - _HX) J = float( Jb ) + float( Jo ) - if self._parameters["StoreInternalVariables"]: + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["CurrentState"].store( _X ) if "SimulatedObservationAtCurrentState" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["SimulatedObservationAtCurrentState"].store( _HX ) @@ -256,7 +256,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): # # Correction pour pallier a un bug de TNC sur le retour du Minimum # ---------------------------------------------------------------- - if self._parameters["StoreInternalVariables"]: + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: Minimum = self.StoredVariables["CurrentState"][IndexMin] # # Obtention de l'analyse diff --git a/src/daComposant/daAlgorithms/Blue.py b/src/daComposant/daAlgorithms/Blue.py index d3d0567..d3ca8c0 100644 --- a/src/daComposant/daAlgorithms/Blue.py +++ b/src/daComposant/daAlgorithms/Blue.py @@ -39,7 +39,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): default = [], typecast = tuple, message = "Liste de calculs supplémentaires à stocker et/ou effectuer", - listval = ["APosterioriCovariance", "BMA", "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum"] + listval = ["APosterioriCovariance", "BMA", "OMA", "OMB", "CostFunctionJ", "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum"] ) self.defineRequiredParameter( name = "Quantiles", @@ -127,6 +127,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): # Calcul de la fonction coût # -------------------------- if self._parameters["StoreInternalVariables"] or \ + "CostFunctionJ" in self._parameters["StoreSupplementaryCalculations"] or \ "OMA" in self._parameters["StoreSupplementaryCalculations"] or \ "SigmaObs2" in self._parameters["StoreSupplementaryCalculations"] or \ "MahalanobisConsistency" in self._parameters["StoreSupplementaryCalculations"] or \ @@ -135,7 +136,8 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): HXa = Hm * Xa oma = Y - HXa if self._parameters["StoreInternalVariables"] or \ - "MahalanobisConsistency" in self._parameters["StoreSupplementaryCalculations"]: + "CostFunctionJ" in self._parameters["StoreSupplementaryCalculations"] or \ + "MahalanobisConsistency" in self._parameters["StoreSupplementaryCalculations"]: Jb = 0.5 * (Xa - Xb).T * BI * (Xa - Xb) Jo = 0.5 * oma.T * RI * oma J = float( Jb ) + float( Jo ) diff --git a/src/daComposant/daAlgorithms/ExtendedBlue.py b/src/daComposant/daAlgorithms/ExtendedBlue.py index aaa8534..ea93f62 100644 --- a/src/daComposant/daAlgorithms/ExtendedBlue.py +++ b/src/daComposant/daAlgorithms/ExtendedBlue.py @@ -39,7 +39,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): default = [], typecast = tuple, message = "Liste de calculs supplémentaires à stocker et/ou effectuer", - listval = ["APosterioriCovariance", "BMA", "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum"] + listval = ["APosterioriCovariance", "BMA", "OMA", "OMB", "CostFunctionJ", "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum"] ) self.defineRequiredParameter( name = "Quantiles", @@ -128,6 +128,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): # Calcul de la fonction coût # -------------------------- if self._parameters["StoreInternalVariables"] or \ + "CostFunctionJ" in self._parameters["StoreSupplementaryCalculations"] or \ "OMA" in self._parameters["StoreSupplementaryCalculations"] or \ "SigmaObs2" in self._parameters["StoreSupplementaryCalculations"] or \ "MahalanobisConsistency" in self._parameters["StoreSupplementaryCalculations"] or \ @@ -136,7 +137,8 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): HXa = numpy.matrix(numpy.ravel( H( Xa ) )).T oma = Y - HXa if self._parameters["StoreInternalVariables"] or \ - "MahalanobisConsistency" in self._parameters["StoreSupplementaryCalculations"]: + "CostFunctionJ" in self._parameters["StoreSupplementaryCalculations"] or \ + "MahalanobisConsistency" in self._parameters["StoreSupplementaryCalculations"]: Jb = 0.5 * (Xa - Xb).T * BI * (Xa - Xb) Jo = 0.5 * oma.T * RI * oma J = float( Jb ) + float( Jo ) diff --git a/src/daComposant/daAlgorithms/ExtendedKalmanFilter.py b/src/daComposant/daAlgorithms/ExtendedKalmanFilter.py index b994436..7811630 100644 --- a/src/daComposant/daAlgorithms/ExtendedKalmanFilter.py +++ b/src/daComposant/daAlgorithms/ExtendedKalmanFilter.py @@ -53,7 +53,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): default = [], typecast = tuple, message = "Liste de calculs supplémentaires à stocker et/ou effectuer", - listval = ["APosterioriCovariance", "BMA", "Innovation"] + listval = ["APosterioriCovariance", "BMA", "CurrentState", "CostFunctionJ", "Innovation"] ) def run(self, Xb=None, Y=None, U=None, HO=None, EM=None, CM=None, R=None, B=None, Q=None, Parameters=None): @@ -175,7 +175,8 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): Jb = 0.5 * (Xn - Xb).T * BI * (Xn - Xb) Jo = 0.5 * d.T * RI * d J = float( Jb ) + float( Jo ) - self.StoredVariables["CurrentState"].store( Xn ) + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: + self.StoredVariables["CurrentState"].store( Xn ) self.StoredVariables["CostFunctionJb"].store( Jb ) self.StoredVariables["CostFunctionJo"].store( Jo ) self.StoredVariables["CostFunctionJ" ].store( J ) diff --git a/src/daComposant/daAlgorithms/KalmanFilter.py b/src/daComposant/daAlgorithms/KalmanFilter.py index 1b8331d..cc267e5 100644 --- a/src/daComposant/daAlgorithms/KalmanFilter.py +++ b/src/daComposant/daAlgorithms/KalmanFilter.py @@ -46,7 +46,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): default = [], typecast = tuple, message = "Liste de calculs supplémentaires à stocker et/ou effectuer", - listval = ["APosterioriCovariance", "BMA", "Innovation"] + listval = ["APosterioriCovariance", "BMA", "CurrentState", "CostFunctionJ", "Innovation"] ) def run(self, Xb=None, Y=None, U=None, HO=None, EM=None, CM=None, R=None, B=None, Q=None, Parameters=None): @@ -78,8 +78,8 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): else: Cm = None # - # Nombre de pas du Kalman identique au nombre de pas d'observations - # ----------------------------------------------------------------- + # Nombre de pas identique au nombre de pas d'observations + # ------------------------------------------------------- if hasattr(Y,"stepnumber"): duration = Y.stepnumber() else: @@ -150,7 +150,8 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): Jb = 0.5 * (Xn - Xb).T * BI * (Xn - Xb) Jo = 0.5 * d.T * RI * d J = float( Jb ) + float( Jo ) - self.StoredVariables["CurrentState"].store( Xn ) + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: + self.StoredVariables["CurrentState"].store( Xn ) self.StoredVariables["CostFunctionJb"].store( Jb ) self.StoredVariables["CostFunctionJo"].store( Jo ) self.StoredVariables["CostFunctionJ" ].store( J ) diff --git a/src/daComposant/daAlgorithms/LinearLeastSquares.py b/src/daComposant/daAlgorithms/LinearLeastSquares.py index 20931ad..d6ddcfd 100644 --- a/src/daComposant/daAlgorithms/LinearLeastSquares.py +++ b/src/daComposant/daAlgorithms/LinearLeastSquares.py @@ -39,7 +39,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): default = [], typecast = tuple, message = "Liste de calculs supplémentaires à stocker et/ou effectuer", - listval = ["OMA", "SimulatedObservationAtOptimum"] + listval = ["OMA", "CostFunctionJ", "SimulatedObservationAtOptimum"] ) def run(self, Xb=None, Y=None, U=None, HO=None, EM=None, CM=None, R=None, B=None, Q=None, Parameters=None): @@ -67,11 +67,13 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): # Calcul de la fonction coût # -------------------------- if self._parameters["StoreInternalVariables"] or \ + "CostFunctionJ" in self._parameters["StoreSupplementaryCalculations"] or \ "OMA" in self._parameters["StoreSupplementaryCalculations"] or \ "SimulatedObservationAtOptimum" in self._parameters["StoreSupplementaryCalculations"]: HXa = Hm * Xa oma = Y - HXa - if self._parameters["StoreInternalVariables"]: + if self._parameters["StoreInternalVariables"] or \ + "CostFunctionJ" in self._parameters["StoreSupplementaryCalculations"]: Jb = 0. Jo = 0.5 * oma.T * RI * oma J = float( Jb ) + float( Jo ) diff --git a/src/daComposant/daAlgorithms/NonLinearLeastSquares.py b/src/daComposant/daAlgorithms/NonLinearLeastSquares.py index 0d08f26..c894d51 100644 --- a/src/daComposant/daAlgorithms/NonLinearLeastSquares.py +++ b/src/daComposant/daAlgorithms/NonLinearLeastSquares.py @@ -72,7 +72,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): default = [], typecast = tuple, message = "Liste de calculs supplémentaires à stocker et/ou effectuer", - listval = ["BMA", "OMA", "OMB", "Innovation", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"] + listval = ["BMA", "OMA", "OMB", "CurrentState", "CostFunctionJ", "Innovation", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"] ) def run(self, Xb=None, Y=None, U=None, HO=None, EM=None, CM=None, R=None, B=None, Q=None, Parameters=None): @@ -134,7 +134,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): Jb = 0. Jo = 0.5 * (Y - _HX).T * RI * (Y - _HX) J = float( Jb ) + float( Jo ) - if self._parameters["StoreInternalVariables"]: + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["CurrentState"].store( _X ) if "SimulatedObservationAtCurrentState" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["SimulatedObservationAtCurrentState"].store( _HX ) @@ -159,7 +159,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): Jb = 0. Jo = 0.5 * (Y - _HX).T * RI * (Y - _HX) J = float( Jb ) + float( Jo ) - if self._parameters["StoreInternalVariables"]: + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["CurrentState"].store( _X ) self.StoredVariables["CostFunctionJb"].store( Jb ) self.StoredVariables["CostFunctionJo"].store( Jo ) @@ -266,7 +266,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): # # Correction pour pallier a un bug de TNC sur le retour du Minimum # ---------------------------------------------------------------- - if self._parameters["StoreInternalVariables"]: + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: Minimum = self.StoredVariables["CurrentState"][IndexMin] # # Obtention de l'analyse diff --git a/src/daComposant/daAlgorithms/ParticleSwarmOptimization.py b/src/daComposant/daAlgorithms/ParticleSwarmOptimization.py index 6d4cc5a..215d7d7 100644 --- a/src/daComposant/daAlgorithms/ParticleSwarmOptimization.py +++ b/src/daComposant/daAlgorithms/ParticleSwarmOptimization.py @@ -84,7 +84,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): default = [], typecast = tuple, message = "Liste de calculs supplémentaires à stocker et/ou effectuer", - listval = ["BMA", "OMA", "OMB", "Innovation", "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"] + listval = ["BMA", "OMA", "OMB", "CurrentState", "CostFunctionJ", "Innovation", "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"] ) def run(self, Xb=None, Y=None, U=None, HO=None, EM=None, CM=None, R=None, B=None, Q=None, Parameters=None): @@ -145,13 +145,6 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): # J = float( Jb ) + float( Jo ) # - if self._parameters["StoreInternalVariables"]: - self.StoredVariables["CurrentState"].store( _X ) - self.StoredVariables["CostFunctionJb"].store( Jb ) - self.StoredVariables["CostFunctionJo"].store( Jo ) - self.StoredVariables["CostFunctionJ" ].store( J ) - if "SimulatedObservationAtCurrentState" in self._parameters["StoreSupplementaryCalculations"]: - self.StoredVariables["SimulatedObservationAtCurrentState"].store( _HX ) return J # # Point de démarrage de l'optimisation : Xini = Xb @@ -195,7 +188,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): qBest = copy.copy( quality ) logging.debug("%s Initialisation, Insecte = %s, Qualité = %s"%(self._name, str(Best), str(qBest))) # - if self._parameters["StoreInternalVariables"]: + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["CurrentState"].store( Best ) self.StoredVariables["CostFunctionJb"].store( 0. ) self.StoredVariables["CostFunctionJo"].store( 0. ) @@ -220,8 +213,12 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): qBest = copy.copy( quality ) logging.debug("%s Etape %i, Insecte = %s, Qualité = %s"%(self._name, n, str(Best), str(qBest))) # - if self._parameters["StoreInternalVariables"]: + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["CurrentState"].store( Best ) + if "SimulatedObservationAtCurrentState" in self._parameters["StoreSupplementaryCalculations"]: + _HmX = Hm( numpy.asmatrix(numpy.ravel( Best )).T ) + _HmX = numpy.asmatrix(numpy.ravel( _HmX )).T + self.StoredVariables["SimulatedObservationAtCurrentState"].store( _HmX ) self.StoredVariables["CostFunctionJb"].store( 0. ) self.StoredVariables["CostFunctionJo"].store( 0. ) self.StoredVariables["CostFunctionJ" ].store( qBest ) @@ -246,9 +243,9 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): if "Innovation" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["Innovation"].store( numpy.ravel(d) ) if "BMA" in self._parameters["StoreSupplementaryCalculations"]: - self.StoredVariables["BMA"].store( numpy.ravel(Xb - Xa) ) + self.StoredVariables["BMA"].store( numpy.ravel(Xb) - numpy.ravel(Xa) ) if "OMA" in self._parameters["StoreSupplementaryCalculations"]: - self.StoredVariables["OMA"].store( numpy.ravel(Y - HXa) ) + self.StoredVariables["OMA"].store( numpy.ravel(Y) - numpy.ravel(HXa) ) if "OMB" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["OMB"].store( numpy.ravel(d) ) if "SimulatedObservationAtBackground" in self._parameters["StoreSupplementaryCalculations"]: diff --git a/src/daComposant/daAlgorithms/QuantileRegression.py b/src/daComposant/daAlgorithms/QuantileRegression.py index 482216f..b6a8504 100644 --- a/src/daComposant/daAlgorithms/QuantileRegression.py +++ b/src/daComposant/daAlgorithms/QuantileRegression.py @@ -67,7 +67,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): default = [], typecast = tuple, message = "Liste de calculs supplémentaires à stocker et/ou effectuer", - listval = ["BMA", "OMA", "OMB", "Innovation", "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"] + listval = ["BMA", "OMA", "OMB", "CurrentState", "CostFunctionJ", "Innovation", "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"] ) def run(self, Xb=None, Y=None, U=None, HO=None, EM=None, CM=None, R=None, B=None, Q=None, Parameters=None): @@ -112,7 +112,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): Jb = 0. Jo = 0. J = Jb + Jo - if self._parameters["StoreInternalVariables"]: + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["CurrentState"].store( _X ) if "SimulatedObservationAtCurrentState" in self._parameters["StoreSupplementaryCalculations"]: self.StoredVariables["SimulatedObservationAtCurrentState"].store( _HX ) diff --git a/src/daComposant/daAlgorithms/UnscentedKalmanFilter.py b/src/daComposant/daAlgorithms/UnscentedKalmanFilter.py index bb88171..9cbd4f5 100644 --- a/src/daComposant/daAlgorithms/UnscentedKalmanFilter.py +++ b/src/daComposant/daAlgorithms/UnscentedKalmanFilter.py @@ -82,7 +82,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): default = [], typecast = tuple, message = "Liste de calculs supplémentaires à stocker et/ou effectuer", - listval = ["APosterioriCovariance", "BMA", "Innovation"] + listval = ["APosterioriCovariance", "BMA", "CurrentState", "CostFunctionJ", "Innovation"] ) def run(self, Xb=None, Y=None, U=None, HO=None, EM=None, CM=None, R=None, B=None, Q=None, Parameters=None): @@ -140,8 +140,8 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): else: Cm = None # - # Nombre de pas du Kalman identique au nombre de pas d'observations - # ----------------------------------------------------------------- + # Nombre de pas identique au nombre de pas d'observations + # ------------------------------------------------------- if hasattr(Y,"stepnumber"): duration = Y.stepnumber() else: @@ -271,7 +271,8 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): Jb = 0.5 * (Xn - Xb).T * BI * (Xn - Xb) Jo = 0.5 * d.T * RI * d J = float( Jb ) + float( Jo ) - self.StoredVariables["CurrentState"].store( Xn ) + if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]: + self.StoredVariables["CurrentState"].store( Xn ) self.StoredVariables["CostFunctionJb"].store( Jb ) self.StoredVariables["CostFunctionJo"].store( Jo ) self.StoredVariables["CostFunctionJ" ].store( J ) -- 2.39.2