Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: DerivativeFreeOptimization
+.. index:: single: Global optimization
.. _section_ref_algorithm_DerivativeFreeOptimization:
Calculation algorithm "*DerivativeFreeOptimization*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: DifferentialEvolution
+.. index:: single: Global optimization
.. _section_ref_algorithm_DifferentialEvolution:
Calculation algorithm "*DifferentialEvolution*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: ParticleSwarmOptimization
+.. index:: single: Global optimization
.. _section_ref_algorithm_ParticleSwarmOptimization:
Calculation algorithm "*ParticleSwarmOptimization*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: TabuSearch
+.. index:: single: Global optimization
.. _section_ref_algorithm_TabuSearch:
Calculation algorithm "*TabuSearch*"
.. note::
Some of the "observers" allow to create figures using the built-in Python
- module Gnuplot.py [Gnuplot.py]_, which is an interface to control and send
- arguments to the classic graphical plotting utility Gnuplot [Gnuplot]_.
- Available under most environments, Gnuplot is independent and must be
- correctly preinstalled. Gnuplot.py is here updated to support Python 3.
+ module Gnuplot.py [Gnuplot.py]_, here updated to support Python 3. This
+ module is an interface to control and to send arguments to the outstanding
+ classic utility for graphic plotting Gnuplot [Gnuplot]_. Available for most
+ environments, Gnuplot is independent and must be correctly preinstalled.
Hereinafter we give the identifier and the contents of all the available
"*observer*" models.
optimization methods or methods with reduction, available in ADAO, detailing
their characteristics and their options.
-Some examples on these commands usage are available in the section
-:ref:`section_tutorials_in_salome`, in the section
-:ref:`section_tutorials_in_python` and in the sample files installed with ADAO.
-The mathematical concepts and notations used are explained in the section
-:ref:`section_theory`.
+Some examples on these commands usage are available in the section of
+:ref:`section_tutorials_in_salome`, in the section of
+:ref:`section_tutorials_in_python`, in the section of
+:ref:`section_docu_examples`, and in the sample files installed with ADAO. The
+mathematical concepts and notations used are explained in the general section
+providing :ref:`section_theory`.
.. toctree::
:maxdepth: 1
This section describes the checking algorithms available in ADAO, detailing
their usage characteristics and their options.
-Some examples on these commands usage are available in the section
-:ref:`section_tutorials_in_salome`, in the section
-:ref:`section_tutorials_in_python` and in the sample files installed with ADAO.
-The mathematical concepts and notations used are explained in the section
-:ref:`section_theory`.
+Some examples on these commands usage are available in the section of
+:ref:`section_tutorials_in_salome`, in the section of
+:ref:`section_tutorials_in_python`, in the section of
+:ref:`section_docu_examples`, and in the sample files installed with ADAO. The
+mathematical concepts and notations used are explained in the general section
+providing :ref:`section_theory`.
.. toctree::
:maxdepth: 1
ADAO, detailing their usage characteristics and their options.
These tasks use algorithms from data assimilation methods, optimization methods
-or methods with reduction. We refer to the :ref:`section_theory` section and
-the :ref:`section_reference_assimilation` section for the underlying
-algorithmic details.
+or methods with reduction. We refer to the general section providing
+:ref:`section_theory` section and to the :ref:`section_reference_assimilation`
+section for the underlying algorithmic details.
.. toctree::
:maxdepth: 1
.. index:: single: state estimation
.. index:: single: optimization methods
+.. index:: single: Local optimization
+.. index:: single: Global optimization
.. index:: single: DerivativeFreeOptimization
.. index:: single: ParticleSwarmOptimization
.. index:: single: DifferentialEvolution
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: DerivativeFreeOptimization
+.. index:: single: Optimisation globale
+.. index:: single: Globale (optimisation)
.. _section_ref_algorithm_DerivativeFreeOptimization:
Algorithme de calcul "*DerivativeFreeOptimization*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: DifferentialEvolution
+.. index:: single: Optimisation globale
+.. index:: single: Globale (optimisation)
.. _section_ref_algorithm_DifferentialEvolution:
Algorithme de calcul "*DifferentialEvolution*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: ParticleSwarmOptimization
+.. index:: single: Optimisation globale
+.. index:: single: Globale (optimisation)
.. _section_ref_algorithm_ParticleSwarmOptimization:
Algorithme de calcul "*ParticleSwarmOptimization*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: TabuSearch
+.. index:: single: Optimisation globale
+.. index:: single: Globale (optimisation)
.. _section_ref_algorithm_TabuSearch:
Algorithme de calcul "*TabuSearch*"
.. note::
Une partie des "*observer*" permet de créer des figures en utilisant le
- module Python intégré Gnuplot.py [Gnuplot.py]_, qui est une interface de
- contrôle et transmission d'arguments à l'utilitaire classique de tracé
- graphique Gnuplot [Gnuplot]_. Disponible sous la grande majorité des
+ module Python intégré Gnuplot.py [Gnuplot.py]_, ici mis à jour pour
+ supporter Python 3. Ce module est une interface de contrôle et de
+ transmission d'arguments au remarquable utilitaire classique de tracé
+ graphique Gnuplot [Gnuplot]_. Disponible pour la grande majorité des
environnements, ce dernier est indépendant et doit être correctement
- préinstallé. Gnuplot.py est ici mis à jour pour supporter Python 3
+ préinstallé.
On donne ci-après l'identifiant et le contenu de tous les modèles "*observer*"
disponibles.
réduction, disponibles dans ADAO, en détaillant leurs caractéristiques et leurs
options.
-Des exemples sur l'usage de ces commandes sont disponibles dans la section
-:ref:`section_tutorials_in_salome`, dans la section
-:ref:`section_tutorials_in_python` et dans les fichiers d'exemple installés
-avec ADAO. Les notions et notations mathématiques utilisées sont expliquées
-dans la section :ref:`section_theory`.
+Des exemples sur l'usage de ces commandes sont disponibles dans la section des
+:ref:`section_tutorials_in_salome`, dans la section des
+:ref:`section_tutorials_in_python`, dans la section des
+:ref:`section_docu_examples`, et dans les fichiers d'exemple installés avec
+ADAO. Les notions et notations mathématiques utilisées sont expliquées dans la
+section générale donnant :ref:`section_theory`.
.. toctree::
:maxdepth: 1
Cette section décrit les algorithmes de vérification disponibles dans ADAO,
détaillant leurs caractéristiques d'utilisation et leurs options.
-Des exemples sur l'usage de ces commandes sont disponibles dans la section
-:ref:`section_tutorials_in_salome`, dans la section
-:ref:`section_tutorials_in_python` et dans les fichiers d'exemple installés
-avec ADAO. Les notions et notations mathématiques utilisées sont expliquées
-dans la section :ref:`section_theory`.
+Des exemples sur l'usage de ces commandes sont disponibles dans la section des
+:ref:`section_tutorials_in_salome`, dans la section des
+:ref:`section_tutorials_in_python`, dans la section des
+:ref:`section_docu_examples`, et dans les fichiers d'exemple installés avec
+ADAO. Les notions et notations mathématiques utilisées sont expliquées dans la
+section générale donnant :ref:`section_theory`.
.. toctree::
:maxdepth: 1
Ces tâches utilisent des algorithmes provenant de méthodes d'assimilation de
données, de méthodes d'optimisation ou de méthodes avec réduction. On renvoie à
-la section :ref:`section_theory` et à celle des
+la section générale donnant :ref:`section_theory` et à celle des
:ref:`section_reference_assimilation` pour les détails algorithmiques
sous-jacents.
.. index:: single: estimation d'état
.. index:: single: méthodes d'optimisation
+.. index:: single: Optimisation locale
+.. index:: single: Locale (optimisation)
+.. index:: single: Optimisation globale
+.. index:: single: Globale (optimisation)
.. index:: single: DerivativeFreeOptimization
.. index:: single: ParticleSwarmOptimization
.. index:: single: DifferentialEvolution
# ==============================================================================
class Aidsm(object):
""" ADAO Internal Data Structure Model """
+ __slots__ = (
+ "__name", "__objname", "__directory", "__case", "__parent",
+ "__adaoObject", "__StoredInputs", "__PostAnalysis", "__Concepts",
+ )
+ #
def __init__(self, name = "", addViewers=None):
self.__name = str(name)
self.__objname = None
"""
Generic ADAO TUI builder
"""
+ __slots__ = ()
+ #
def __init__(self, name = ""):
_Aidsm.__init__(self, name)
"""
Classe générale de gestion d'un cache de calculs
"""
+ __slots__ = (
+ "__tolerBP", "__lengthOR", "__initlnOR", "__seenNames", "__enabled",
+ "__listOPCV",
+ )
+ #
def __init__(self,
toleranceInRedundancy = 1.e-18,
lengthOfRedundancy = -1,
"""
Classe générale d'interface de type opérateur simple
"""
+ __slots__ = (
+ "__name", "__NbCallsAsMatrix", "__NbCallsAsMethod",
+ "__NbCallsOfCached", "__reduceM", "__avoidRC", "__inputAsMF",
+ "__mpEnabled", "__extraArgs", "__Method", "__Matrix", "__Type",
+ )
+ #
NbCallsAsMatrix = 0
NbCallsAsMethod = 0
NbCallsOfCached = 0
Classe générale d'interface de type opérateur complet
(Direct, Linéaire Tangent, Adjoint)
"""
+ __slots__ = (
+ "__name", "__check", "__extraArgs", "__FO", "__T",
+ )
+ #
def __init__(self,
name = "GenericFullOperator",
asMatrix = None,
Une classe élémentaire d'algorithme doit implémenter la méthode "run".
"""
+ __slots__ = (
+ "_name", "_parameters", "__internal_state", "__required_parameters",
+ "_m", "__variable_names_not_public", "__canonical_parameter_name",
+ "__canonical_stored_name", "__replace_by_the_new_name",
+ "StoredVariables",
+ )
+ #
def __init__(self, name):
"""
L'initialisation présente permet de fabriquer des variables de stockage
action avancée comme la vérification . Pour les méthodes reprises ici,
le fonctionnement est identique à celles de la classe "Algorithm".
"""
+ __slots__ = (
+ "_name", "_parameters", "StoredVariables", "__canonical_stored_name",
+ )
+ #
def __init__(self, name):
self._name = str( name )
self._parameters = {"StoreSupplementaryCalculations":[]}
"""
Classe générale d'interface d'action pour l'algorithme et ses paramètres
"""
+ __slots__ = (
+ "__name", "__algorithm", "__algorithmFile", "__algorithmName", "__A",
+ "__P", "__Xb", "__Y", "__U", "__HO", "__EM", "__CM", "__B", "__R",
+ "__Q", "__variable_names_not_public",
+ )
+ #
def __init__(self,
name = "GenericAlgorithm",
asAlgorithm = None,
"""
Classe générale d'interface d'action pour la régulation et ses paramètres
"""
+ __slots__ = ("__name", "__P")
+ #
def __init__(self,
name = "GenericRegulation",
asAlgorithm = None,
"""
Classe générale d'interface de type observer
"""
+ __slots__ = ("__name", "__V", "__O", "__I")
+ #
def __init__(self,
name = "GenericObserver",
onVariable = None,
"""
Classe générale d'interface de type texte de script utilisateur
"""
+ __slots__ = ("__name", "__F")
+ #
def __init__(self,
name = "GenericUserScript",
asTemplate = None,
"""
Classe générale d'interface pour le stockage des paramètres externes
"""
+ __slots__ = ("__name", "__P")
+ #
def __init__(self,
name = "GenericExternalParameters",
asDict = None,
"""
Classe générale d'interface de type état
"""
+ __slots__ = (
+ "__name", "__check", "__V", "__T", "__is_vector", "__is_series",
+ "shape", "size",
+ )
+ #
def __init__(self,
name = "GenericVector",
asVector = None,
"""
Classe générale d'interface de type covariance
"""
+ __slots__ = (
+ "__name", "__check", "__C", "__is_scalar", "__is_vector", "__is_matrix",
+ "__is_object", "shape", "size",
+ )
+ #
def __init__(self,
name = "GenericCovariance",
asCovariance = None,
"""
Création d'une fonction d'observateur a partir de son texte
"""
+ __slots__ = ("__corps")
+ #
def __init__(self, corps=""):
self.__corps = corps
def func(self,var,info):
"""
Conservation des commandes de création d'un cas
"""
+ __slots__ = (
+ "__name", "__objname", "__logSerie", "__switchoff", "__viewers",
+ "__loaders",
+ )
+ #
def __init__(self, __name="", __objname="case", __addViewers=None, __addLoaders=None):
self.__name = str(__name)
self.__objname = str(__objname)
Logger général pour disposer conjointement de la sortie standard et de la
sortie sur fichier
"""
+ __slots__ = ("__logfile")
+ #
def __init__(self, level=logging.WARNING):
"""
Initialise un logging à la console pour TOUS les niveaux de messages.
"""
__slots__ = (
"_name", "_objname", "_lineSerie", "_switchoff", "_content",
- "_numobservers", "_object", "_missing")
+ "_numobservers", "_object", "_missing",
+ )
#
def __init__(self, __name="", __objname="case", __content=None, __object=None):
"Initialisation et enregistrement de l'entete"
"dX" qui sera multiplié par "increment" (donc en %), et on effectue de DF
centrées si le booléen "centeredDF" est vrai.
"""
+ __slots__ = (
+ "__name", "__extraArgs", "__mpEnabled", "__mpWorkers", "__mfEnabled",
+ "__rmEnabled", "__avoidRC", "__tolerBP", "__centeredDF", "__lengthRJ",
+ "__listJPCP", "__listJPCI", "__listJPCR", "__listJPPN", "__listJPIN",
+ "__userOperator", "__userFunction", "__increment", "__pool", "__dX",
+ "__userFunction__name", "__userFunction__modl", "__userFunction__path",
+ )
+ #
def __init__(self,
name = "FDApproximation",
Function = None,
Classe générale de persistance définissant les accesseurs nécessaires
(Template)
"""
+ __slots__ = (
+ "__name", "__unit", "__basetype", "__values", "__tags", "__dynamic",
+ "__g", "__title", "__ltitle", "__pause", "__dataobservers",
+ )
+ #
def __init__(self, name="", unit="", basetype=str):
"""
name : nom courant
"""
Classe générale d'interface de type Scheduler/Trigger
"""
+ __slots__ = ()
+ #
def __init__(self,
simplifiedCombo = None,
startTime = 0,
ou des matrices comme dans les classes suivantes, mais c'est déconseillé
pour conserver une signification claire des noms.
"""
+ __slots__ = ()
+ #
def __init__(self, name="", unit="", basetype = float):
Persistence.__init__(self, name, unit, basetype)
"""
Classe définissant le stockage d'une valeur unique entière (int) par pas.
"""
+ __slots__ = ()
+ #
def __init__(self, name="", unit="", basetype = int):
Persistence.__init__(self, name, unit, basetype)
Classe de stockage d'une liste de valeurs numériques homogènes par pas. Ne
pas utiliser cette classe pour des données hétérogènes, mais "OneList".
"""
+ __slots__ = ()
+ #
def __init__(self, name="", unit="", basetype = numpy.ravel):
Persistence.__init__(self, name, unit, basetype)
"""
Classe de stockage d'une matrice de valeurs homogènes par pas.
"""
+ __slots__ = ()
+ #
def __init__(self, name="", unit="", basetype = numpy.matrix):
Persistence.__init__(self, name, unit, basetype)
pas utiliser cette classe pour des données numériques homogènes, mais
"OneVector".
"""
+ __slots__ = ()
+ #
def __init__(self, name="", unit="", basetype = list):
Persistence.__init__(self, name, unit, basetype)
résultats inattendus. Cette classe n'est donc à utiliser qu'à bon escient
volontairement, et pas du tout par défaut.
"""
+ __slots__ = ()
+ #
def __init__(self, name="", unit="", basetype = NoType):
Persistence.__init__(self, name, unit, basetype)
Des objets par défaut sont prévus, et des objets supplémentaires peuvent
être ajoutés.
"""
+ __slots__ = ("__name", "__StoredObjects")
+ #
def __init__(self, name="", defaults=True):
"""
name : nom courant