]> SALOME platform Git repositories - modules/adao.git/commitdiff
Salome HOME
Documentation update and method improvement
authorJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Fri, 10 Nov 2023 10:44:35 +0000 (11:44 +0100)
committerJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Fri, 10 Nov 2023 10:44:35 +0000 (11:44 +0100)
32 files changed:
doc/en/images/sampling_05_SampleAsIndependantRandomVariables_normal.png [deleted file]
doc/en/images/sampling_05_SampleAsMinMaxSobolSequence.png [new file with mode: 0644]
doc/en/images/sampling_06_SampleAsIndependantRandomVariables_normal.png [new file with mode: 0644]
doc/en/images/sampling_06_SampleAsIndependantRandomVariables_uniform.png [deleted file]
doc/en/images/sampling_07_SampleAsIndependantRandomVariables_uniform.png [new file with mode: 0644]
doc/en/images/sampling_07_SampleAsIndependantRandomVariables_weibull.png [deleted file]
doc/en/images/sampling_08_SampleAsIndependantRandomVariables_weibull.png [new file with mode: 0644]
doc/en/ref_algorithm_EnsembleOfSimulationGenerationTask.rst
doc/en/ref_algorithm_MeasurementsOptimalPositioningTask.rst
doc/en/ref_algorithm_SamplingTest.rst
doc/en/ref_sampling_requirements.rst
doc/en/snippets/SampleAsMinMaxLatinHyperCube.rst
doc/en/snippets/SampleAsMinMaxSobolSequence.rst [new file with mode: 0644]
doc/fr/images/sampling_05_SampleAsIndependantRandomVariables_normal.png [deleted file]
doc/fr/images/sampling_05_SampleAsMinMaxSobolSequence.png [new file with mode: 0644]
doc/fr/images/sampling_06_SampleAsIndependantRandomVariables_normal.png [new file with mode: 0644]
doc/fr/images/sampling_06_SampleAsIndependantRandomVariables_uniform.png [deleted file]
doc/fr/images/sampling_07_SampleAsIndependantRandomVariables_uniform.png [new file with mode: 0644]
doc/fr/images/sampling_07_SampleAsIndependantRandomVariables_weibull.png [deleted file]
doc/fr/images/sampling_08_SampleAsIndependantRandomVariables_weibull.png [new file with mode: 0644]
doc/fr/ref_algorithm_EnsembleOfSimulationGenerationTask.rst
doc/fr/ref_algorithm_MeasurementsOptimalPositioningTask.rst
doc/fr/ref_algorithm_SamplingTest.rst
doc/fr/ref_sampling_requirements.rst
doc/fr/snippets/SampleAsMinMaxLatinHyperCube.rst
doc/fr/snippets/SampleAsMinMaxSobolSequence.rst [new file with mode: 0644]
src/daComposant/daAlgorithms/Atoms/eosg.py
src/daComposant/daAlgorithms/EnsembleOfSimulationGenerationTask.py
src/daComposant/daAlgorithms/MeasurementsOptimalPositioningTask.py
src/daComposant/daAlgorithms/SamplingTest.py
src/daComposant/daCore/NumericObjects.py
src/daComposant/daCore/Reporting.py

diff --git a/doc/en/images/sampling_05_SampleAsIndependantRandomVariables_normal.png b/doc/en/images/sampling_05_SampleAsIndependantRandomVariables_normal.png
deleted file mode 100644 (file)
index af69551..0000000
Binary files a/doc/en/images/sampling_05_SampleAsIndependantRandomVariables_normal.png and /dev/null differ
diff --git a/doc/en/images/sampling_05_SampleAsMinMaxSobolSequence.png b/doc/en/images/sampling_05_SampleAsMinMaxSobolSequence.png
new file mode 100644 (file)
index 0000000..98a8d30
Binary files /dev/null and b/doc/en/images/sampling_05_SampleAsMinMaxSobolSequence.png differ
diff --git a/doc/en/images/sampling_06_SampleAsIndependantRandomVariables_normal.png b/doc/en/images/sampling_06_SampleAsIndependantRandomVariables_normal.png
new file mode 100644 (file)
index 0000000..af69551
Binary files /dev/null and b/doc/en/images/sampling_06_SampleAsIndependantRandomVariables_normal.png differ
diff --git a/doc/en/images/sampling_06_SampleAsIndependantRandomVariables_uniform.png b/doc/en/images/sampling_06_SampleAsIndependantRandomVariables_uniform.png
deleted file mode 100644 (file)
index 3ed60a4..0000000
Binary files a/doc/en/images/sampling_06_SampleAsIndependantRandomVariables_uniform.png and /dev/null differ
diff --git a/doc/en/images/sampling_07_SampleAsIndependantRandomVariables_uniform.png b/doc/en/images/sampling_07_SampleAsIndependantRandomVariables_uniform.png
new file mode 100644 (file)
index 0000000..3ed60a4
Binary files /dev/null and b/doc/en/images/sampling_07_SampleAsIndependantRandomVariables_uniform.png differ
diff --git a/doc/en/images/sampling_07_SampleAsIndependantRandomVariables_weibull.png b/doc/en/images/sampling_07_SampleAsIndependantRandomVariables_weibull.png
deleted file mode 100644 (file)
index 7f656aa..0000000
Binary files a/doc/en/images/sampling_07_SampleAsIndependantRandomVariables_weibull.png and /dev/null differ
diff --git a/doc/en/images/sampling_08_SampleAsIndependantRandomVariables_weibull.png b/doc/en/images/sampling_08_SampleAsIndependantRandomVariables_weibull.png
new file mode 100644 (file)
index 0000000..7f656aa
Binary files /dev/null and b/doc/en/images/sampling_08_SampleAsIndependantRandomVariables_weibull.png differ
index 20f3a223f0782d95cbe22ca04236e5576596ca9c..fac12890d03af8861b5e1fef99d75649ead5db92 100644 (file)
@@ -82,6 +82,8 @@ observations :math:`\mathbf{y}^o`.
 
 .. include:: snippets/SampleAsMinMaxLatinHyperCube.rst
 
+.. include:: snippets/SampleAsMinMaxSobolSequence.rst
+
 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
 
 .. include:: snippets/SampleAsnUplet.rst
index ce586719737110c309e18d23de76ce07908cf0c1..d1f1231b83b4fdcfa23045dc7d646ad81acfd63d 100644 (file)
@@ -122,6 +122,8 @@ constrained positioning search.
 
 .. include:: snippets/SampleAsMinMaxLatinHyperCube.rst
 
+.. include:: snippets/SampleAsMinMaxSobolSequence.rst
+
 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
 
 .. include:: snippets/SampleAsnUplet.rst
index 1da38a2198b534861acc0f893985c17322b66856..7984938a2b5cc66608abdf86182f837715e899ea 100644 (file)
@@ -89,6 +89,8 @@ treatment during the calculation by well suited "*observer*".
 
 .. include:: snippets/SampleAsMinMaxLatinHyperCube.rst
 
+.. include:: snippets/SampleAsMinMaxSobolSequence.rst
+
 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
 
 .. include:: snippets/SampleAsnUplet.rst
index fa7cb9a569a92f66980bfe93f34e1fe79d8b1f2b..bd89d1978182859038d11bf8f97b271cd1bd9df5 100644 (file)
@@ -49,9 +49,9 @@ Explicit or implicit description of the state sampling collection
 The state sampling collection can be described using dedicated keywords in the
 command set of an algorithm that requires it.
 
-State sampling :math:`\mathbf{x}` can be provided explicitly or in the form of
-hypercubes, explicit or sampled according to common distributions, or using
-Latin Hypercube Sampling (LHS).
+The sampling of the states :math:`\mathbf{x}` can be provided explicitly or in
+the form of hypercubes, explicit or sampled according to common distributions,
+or using Latin Hypercube Sampling (LHS).
 
 These possible keywords are:
 
@@ -61,6 +61,8 @@ These possible keywords are:
 
 .. include:: snippets/SampleAsMinMaxLatinHyperCube.rst
 
+.. include:: snippets/SampleAsMinMaxSobolSequence.rst
+
 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
 
 .. include:: snippets/SampleAsnUplet.rst
@@ -153,6 +155,24 @@ The distribution of states thus described corresponds to the illustration:
   .. image:: images/sampling_04_SampleAsMinMaxLatinHyperCube.png
     :align: center
 
+Implicit state distribution by keyword "*SampleAsMinMaxSobolSequence*"
+.......................................................................
+
+Implicit sample generation command by "*SampleAsMinMaxSobolSequence*" is as
+follows:
+
+.. code-block:: python
+
+    [...]
+    "SampleAsMinMaxSobolSequence":[[0, 4], [0, 4], [2, 25]]
+    [...]
+
+The distribution of states (there will be 36 here by construction principle of
+the Sobol sequence) thus described corresponds to the illustration:
+
+  .. image:: images/sampling_05_SampleAsMinMaxSobolSequence.png
+    :align: center
+
 Implicit state distribution by keyword "*SampleAsIndependantRandomVariables*" with normal law
 .............................................................................................
 
@@ -167,7 +187,7 @@ follows, using a normal distribution (0,1) by coordinate:
 
 The distribution of states thus described corresponds to the illustration:
 
-  .. image:: images/sampling_05_SampleAsIndependantRandomVariables_normal.png
+  .. image:: images/sampling_06_SampleAsIndependantRandomVariables_normal.png
     :align: center
 
 Implicit state distribution by keyword "*SampleAsIndependantRandomVariables*" with uniform law
@@ -185,7 +205,7 @@ distribution:
 
 The distribution of states thus described corresponds to the illustration:
 
-  .. image:: images/sampling_06_SampleAsIndependantRandomVariables_uniform.png
+  .. image:: images/sampling_07_SampleAsIndependantRandomVariables_uniform.png
     :align: center
 
 Implicit state distribution by keyword "*SampleAsIndependantRandomVariables*" with Weibull law
@@ -203,5 +223,5 @@ distribution:
 
 The distribution of states thus described corresponds to the illustration:
 
-  .. image:: images/sampling_07_SampleAsIndependantRandomVariables_weibull.png
+  .. image:: images/sampling_08_SampleAsIndependantRandomVariables_weibull.png
     :align: center
index 4907dab00db390576dbf5c3cfa202ee693560478..0bb007f0e83cecebb13b4f9c0129a80dfbe2bee2 100644 (file)
@@ -1,11 +1,12 @@
 .. index:: single: SampleAsMinMaxLatinHyperCube
+.. index:: single: Latin hypercube
 
 SampleAsMinMaxLatinHyperCube
   *List of triplets of pair values*. This key describes the bounded domain in
   which the calculations points will be placed, from a *[min,max]* pair for
   each state component. The lower bounds are included. This list of pairs,
   identical in number to the size of the state space, is augmented by a pair of
-  integers *[dim,nb]* containing the dimension of the state space and the
+  integers *[dim,nbr]* containing the dimension of the state space and the
   desired number of sample points. Sampling is then automatically constructed
   using the Latin hypercube method (LHS).
 
diff --git a/doc/en/snippets/SampleAsMinMaxSobolSequence.rst b/doc/en/snippets/SampleAsMinMaxSobolSequence.rst
new file mode 100644 (file)
index 0000000..1afab0e
--- /dev/null
@@ -0,0 +1,16 @@
+.. index:: single: SampleAsMinMaxSobolSequence
+.. index:: single: Sobol Sequence
+
+SampleAsMinMaxSobolSequence
+  *List of triplets of pair values*. This key describes the bounded domain in
+  which the calculations points will be placed, from a *[min,max]* pair for
+  each state component. The lower bounds are included. This list of pairs,
+  identical in number to the size of the state space, is augmented by a pair of
+  integers *[dim,nbr]* containing the dimension of the state space and the
+  minimum desired number of sample points (by construction, the number of
+  points generated in the Sobol sequence will be the power of 2 immediately
+  above this minimum number). Sampling is then automatically constructed using
+  the Latin hypercube method (LHS).
+
+  Example :
+  ``{"SampleAsMinMaxSobolSequence":[[0.,1.],[-1,3]]+[[2,11]]}`` for a state space of dimension 2 and 11 sampling points (there will be 16 points in practice).
diff --git a/doc/fr/images/sampling_05_SampleAsIndependantRandomVariables_normal.png b/doc/fr/images/sampling_05_SampleAsIndependantRandomVariables_normal.png
deleted file mode 100644 (file)
index 5ede766..0000000
Binary files a/doc/fr/images/sampling_05_SampleAsIndependantRandomVariables_normal.png and /dev/null differ
diff --git a/doc/fr/images/sampling_05_SampleAsMinMaxSobolSequence.png b/doc/fr/images/sampling_05_SampleAsMinMaxSobolSequence.png
new file mode 100644 (file)
index 0000000..2c98de8
Binary files /dev/null and b/doc/fr/images/sampling_05_SampleAsMinMaxSobolSequence.png differ
diff --git a/doc/fr/images/sampling_06_SampleAsIndependantRandomVariables_normal.png b/doc/fr/images/sampling_06_SampleAsIndependantRandomVariables_normal.png
new file mode 100644 (file)
index 0000000..5ede766
Binary files /dev/null and b/doc/fr/images/sampling_06_SampleAsIndependantRandomVariables_normal.png differ
diff --git a/doc/fr/images/sampling_06_SampleAsIndependantRandomVariables_uniform.png b/doc/fr/images/sampling_06_SampleAsIndependantRandomVariables_uniform.png
deleted file mode 100644 (file)
index 964fb44..0000000
Binary files a/doc/fr/images/sampling_06_SampleAsIndependantRandomVariables_uniform.png and /dev/null differ
diff --git a/doc/fr/images/sampling_07_SampleAsIndependantRandomVariables_uniform.png b/doc/fr/images/sampling_07_SampleAsIndependantRandomVariables_uniform.png
new file mode 100644 (file)
index 0000000..964fb44
Binary files /dev/null and b/doc/fr/images/sampling_07_SampleAsIndependantRandomVariables_uniform.png differ
diff --git a/doc/fr/images/sampling_07_SampleAsIndependantRandomVariables_weibull.png b/doc/fr/images/sampling_07_SampleAsIndependantRandomVariables_weibull.png
deleted file mode 100644 (file)
index 7a9a5e8..0000000
Binary files a/doc/fr/images/sampling_07_SampleAsIndependantRandomVariables_weibull.png and /dev/null differ
diff --git a/doc/fr/images/sampling_08_SampleAsIndependantRandomVariables_weibull.png b/doc/fr/images/sampling_08_SampleAsIndependantRandomVariables_weibull.png
new file mode 100644 (file)
index 0000000..7a9a5e8
Binary files /dev/null and b/doc/fr/images/sampling_08_SampleAsIndependantRandomVariables_weibull.png differ
index ea1f77d293229c810065388adcbcbfb86023a876..72a66882a1377a8d6110b6ab4e673371e0c85141 100644 (file)
@@ -85,6 +85,8 @@ d'échantillonnage pour établir un ensemble de valeurs de fonctionnelle d'erreu
 
 .. include:: snippets/SampleAsMinMaxLatinHyperCube.rst
 
+.. include:: snippets/SampleAsMinMaxSobolSequence.rst
+
 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
 
 .. include:: snippets/SampleAsnUplet.rst
index 8f8adda9fc144f4bf6ebc625c37948d9506a06ed..c939d7c3314fb3e1ba177ca359b845f45b1e3d27 100644 (file)
@@ -126,6 +126,8 @@ d'analyse pour une recherche de positionnement contraint.
 
 .. include:: snippets/SampleAsMinMaxLatinHyperCube.rst
 
+.. include:: snippets/SampleAsMinMaxSobolSequence.rst
+
 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
 
 .. include:: snippets/SampleAsnUplet.rst
index d5c6bb03e1c28fcf685b8976465188bde1ffff38..12912c83ea098574ab8675dc0486d7e1d22ee121 100644 (file)
@@ -93,6 +93,8 @@ calcul à l'aide des "*observer*" adaptés.
 
 .. include:: snippets/SampleAsMinMaxLatinHyperCube.rst
 
+.. include:: snippets/SampleAsMinMaxSobolSequence.rst
+
 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
 
 .. include:: snippets/SampleAsnUplet.rst
index 09c5047fbaa04d0caf075e56212da040cdcd0940..e3bb716d844cabdec7b2e7433b2674c3e28b9686 100644 (file)
@@ -64,6 +64,8 @@ Ces mots-clés possibles sont les suivants :
 
 .. include:: snippets/SampleAsMinMaxLatinHyperCube.rst
 
+.. include:: snippets/SampleAsMinMaxSobolSequence.rst
+
 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
 
 .. include:: snippets/SampleAsnUplet.rst
@@ -158,6 +160,24 @@ La répartition des états ainsi décrite correspond à l'illustration :
   .. image:: images/sampling_04_SampleAsMinMaxLatinHyperCube.png
     :align: center
 
+Répartition implicite d'états par le mot-clé "*SampleAsMinMaxSobolSequence*"
+............................................................................
+
+La commande de génération implicite d'échantillons par
+"*SampleAsMinMaxSobolSequence*" est la suivante :
+
+.. code-block:: python
+
+    [...]
+    "SampleAsMinMaxSobolSequence":[[0, 4, 1], [0, 4, 1], [2, 25]]
+    [...]
+
+La répartition des états (il y en a ici 36 par principe de construction de la
+séquence de Sobol) ainsi décrite correspond à l'illustration :
+
+  .. image:: images/sampling_05_SampleAsMinMaxSobolSequence.png
+    :align: center
+
 Répartition implicite d'états par le mot-clé "*SampleAsIndependantRandomVariables*" avec loi normale
 ....................................................................................................
 
@@ -173,7 +193,7 @@ normale (0,1) de répartition par coordonnée :
 
 La répartition des états ainsi décrite correspond à l'illustration :
 
-  .. image:: images/sampling_05_SampleAsIndependantRandomVariables_normal.png
+  .. image:: images/sampling_06_SampleAsIndependantRandomVariables_normal.png
     :align: center
 
 Répartition implicite d'états par le mot-clé "*SampleAsIndependantRandomVariables*" avec loi uniforme
@@ -191,7 +211,7 @@ uniforme entre 0 et 5 de répartition par coordonnée :
 
 La répartition des états ainsi décrite correspond à l'illustration :
 
-  .. image:: images/sampling_06_SampleAsIndependantRandomVariables_uniform.png
+  .. image:: images/sampling_07_SampleAsIndependantRandomVariables_uniform.png
     :align: center
 
 Répartition implicite par le mot-clé "*SampleAsIndependantRandomVariables*" avec loi de Weibull
@@ -209,5 +229,5 @@ Weibull à un paramètre de valeur 5 de répartition par coordonnée :
 
 La répartition des états ainsi décrite correspond à l'illustration :
 
-  .. image:: images/sampling_07_SampleAsIndependantRandomVariables_weibull.png
+  .. image:: images/sampling_08_SampleAsIndependantRandomVariables_weibull.png
     :align: center
index ce2bf8e8077ec55c87c85167f854cd2af86d2dce..46101f0cddbc33bf3b7d76597a9758a2c7b84b32 100644 (file)
@@ -1,11 +1,13 @@
 .. index:: single: SampleAsMinMaxLatinHyperCube
+.. index:: single: Latin hypercube
+.. index:: single: Hypercube Latin
 
 SampleAsMinMaxLatinHyperCube
   *Liste de triplets de paires réelles*. Cette clé décrit le domaine borné dans
   lequel les points de calcul seront placés, sous la forme d'une paire
   *[min,max]* pour chaque composante de l'état. Les bornes inférieures sont
   incluses. Cette liste de paires, en nombre identique à la taille de l'espace
-  des états, est complétée par une paire d'entier *[dim,nb]* comportant la
+  des états, est complétée par une paire d'entier *[dim,nbr]* comportant la
   dimension de l'espace des états et le nombre souhaité de points
   d'échantillonnage. L'échantillonnage est ensuite construit automatiquement
   selon la méthode de l'hypercube Latin (LHS).
diff --git a/doc/fr/snippets/SampleAsMinMaxSobolSequence.rst b/doc/fr/snippets/SampleAsMinMaxSobolSequence.rst
new file mode 100644 (file)
index 0000000..2d72dc6
--- /dev/null
@@ -0,0 +1,18 @@
+.. index:: single: SampleAsMinMaxSobolSequence
+.. index:: single: Sobol Sequence
+.. index:: single: Séquence de Sobol
+
+SampleAsMinMaxSobolSequence
+  *Liste de triplets de paires réelles*. Cette clé décrit le domaine borné dans
+  lequel les points de calcul seront placés, sous la forme d'une paire
+  *[min,max]* pour chaque composante de l'état. Les bornes inférieures sont
+  incluses. Cette liste de paires, en nombre identique à la taille de l'espace
+  des états, est complétée par une paire d'entier *[dim,nbr]* comportant la
+  dimension de l'espace des états et le nombre minimum souhaité de points
+  d'échantillonnage (par construction, le nombre de points générés dans la
+  séquence de Sobol sera la puissance de 2 immédiatement supérieure à ce nombre
+  minimum). L'échantillonnage est ensuite construit automatiquement selon la
+  méthode de séquences de Sobol.
+
+  Exemple :
+  ``{"SampleAsMinMaxSobolSequence":[[0.,1.],[-1,3]]+[[2,11]]}`` pour un espace d'état de dimension 2 et au moins 11 points d'échantillonnage (il y aura 16 points en pratique).
index 2204cd149e004f298f63514ad2d469cc7834403d..801a44045ed92574ad9a7db02c263bc10e9ec5ff 100644 (file)
@@ -39,6 +39,7 @@ def eosg(selfA, Xb, HO, outputEOX = False, assumeNoFailure = True):
         selfA._parameters["SampleAsExplicitHyperCube"],
         selfA._parameters["SampleAsMinMaxStepHyperCube"],
         selfA._parameters["SampleAsMinMaxLatinHyperCube"],
+        selfA._parameters["SampleAsMinMaxSobolSequence"],
         selfA._parameters["SampleAsIndependantRandomVariables"],
         Xb,
         selfA._parameters["SetSeed"],
index d22a5f3da213e7949ce060d87832a01ceb6f3bdd..1cd3eaab7ad8500e52fe75f27fe013a99c3e3fdb 100644 (file)
@@ -52,6 +52,12 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
             typecast = tuple,
             message  = "Points de calcul définis par un hyper-cube Latin dont on donne les bornes de chaque variable par une paire [min,max], suivi du nombre de points demandés",
             )
+        self.defineRequiredParameter(
+            name     = "SampleAsMinMaxSobolSequence",
+            default  = [],
+            typecast = tuple,
+            message  = "Points de calcul définis par une séquence de Sobol dont on donne les bornes de chaque variable par une paire [min,max], suivi de la paire [dimension, nombre minimal de points demandés]",
+            )
         self.defineRequiredParameter(
             name     = "SampleAsIndependantRandomVariables",
             default  = [],
index 2cae2a608ec10cecb55d0638056271a84bb5060b..71989bc05baaeb03a055bb987a2a6fcc4122ba7d 100644 (file)
@@ -103,6 +103,12 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
             typecast = tuple,
             message  = "Points de calcul définis par un hyper-cube Latin dont on donne les bornes de chaque variable par une paire [min,max], suivi du nombre de points demandés",
             )
+        self.defineRequiredParameter(
+            name     = "SampleAsMinMaxSobolSequence",
+            default  = [],
+            typecast = tuple,
+            message  = "Points de calcul définis par une séquence de Sobol dont on donne les bornes de chaque variable par une paire [min,max], suivi de la paire [dimension, nombre minimal de points demandés]",
+            )
         self.defineRequiredParameter(
             name     = "SampleAsIndependantRandomVariables",
             default  = [],
index ecc9646d315bc7e13e486167e281fbf5caad7a96..c006e3a1dd20e51d7e6b8b290294f0d8b18c16ed 100644 (file)
@@ -60,6 +60,12 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
             typecast = tuple,
             message  = "Points de calcul définis par un hyper-cube Latin dont on donne les bornes de chaque variable par une paire [min,max], suivi de la paire [dimension, nombre de points demandés]",
             )
+        self.defineRequiredParameter(
+            name     = "SampleAsMinMaxSobolSequence",
+            default  = [],
+            typecast = tuple,
+            message  = "Points de calcul définis par une séquence de Sobol dont on donne les bornes de chaque variable par une paire [min,max], suivi de la paire [dimension, nombre minimal de points demandés]",
+            )
         self.defineRequiredParameter(
             name     = "SampleAsIndependantRandomVariables",
             default  = [],
@@ -181,6 +187,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm):
                 self._parameters["SampleAsExplicitHyperCube"],
                 self._parameters["SampleAsMinMaxStepHyperCube"],
                 self._parameters["SampleAsMinMaxLatinHyperCube"],
+                self._parameters["SampleAsMinMaxSobolSequence"],
                 self._parameters["SampleAsIndependantRandomVariables"],
                 Xb,
                 self._parameters["SetSeed"],
index ab2cee470de2667f6e34cb3e2c20d22e548d20f1..e6e2277cddf64b017c019081029091bee369efdc 100644 (file)
@@ -544,7 +544,12 @@ def EnsembleOfCenteredPerturbations( __bgCenter, __bgCovariance, __nbMembers ):
     return _Perturbations
 
 # ==============================================================================
-def EnsembleOfBackgroundPerturbations( __bgCenter, __bgCovariance, __nbMembers, __withSVD = True ):
+def EnsembleOfBackgroundPerturbations(
+        __bgCenter,
+        __bgCovariance,
+        __nbMembers,
+        __withSVD = True,
+        ):
     "Génération d'un ensemble de taille __nbMembers-1 d'états aléatoires centrés"
     def __CenteredRandomAnomalies(Zr, N):
         """
@@ -1037,6 +1042,7 @@ def BuildComplexSampleList(
     __SampleAsExplicitHyperCube,
     __SampleAsMinMaxStepHyperCube,
     __SampleAsMinMaxLatinHyperCube,
+    __SampleAsMinMaxSobolSequence,
     __SampleAsIndependantRandomVariables,
     __X0,
     __Seed = None,
@@ -1065,20 +1071,40 @@ def BuildComplexSampleList(
         if vt(scipy.version.version) <= vt("1.7.0"):
             __msg = "In order to use Latin Hypercube sampling, you must at least use Scipy version 1.7.0 (and you are presently using Scipy %s). A void sample is then generated."%scipy.version.version
             warnings.warn(__msg, FutureWarning, stacklevel=50)
-            coordinatesList = []
+            sampleList = []
         else:
             __spDesc = list(__SampleAsMinMaxLatinHyperCube)
-            __nbSamp = int(__spDesc.pop()[1])
+            __nbDime,__nbSamp  = map(int, __spDesc.pop()) # Réduction du dernier
             __sample = scipy.stats.qmc.LatinHypercube(
                 d = len(__spDesc),
                 seed = numpy.random.default_rng(__Seed),
                 )
             __sample = __sample.random(n = __nbSamp)
             __bounds = numpy.array(__spDesc)[:,0:2]
-            l_bounds = __bounds[:,0]
-            u_bounds = __bounds[:,1]
-            coordinatesList = scipy.stats.qmc.scale(__sample, l_bounds, u_bounds)
-        sampleList = coordinatesList
+            __l_bounds = __bounds[:,0]
+            __u_bounds = __bounds[:,1]
+            sampleList = scipy.stats.qmc.scale(__sample, __l_bounds, __u_bounds)
+    # ---------------------------
+    elif len(__SampleAsMinMaxSobolSequence) > 0:
+        import scipy, warnings
+        if vt(scipy.version.version) <= vt("1.7.0"):
+            __msg = "In order to use Latin Hypercube sampling, you must at least use Scipy version 1.7.0 (and you are presently using Scipy %s). A void sample is then generated."%scipy.version.version
+            warnings.warn(__msg, FutureWarning, stacklevel=50)
+            sampleList = []
+        else:
+            __spDesc = list(__SampleAsMinMaxSobolSequence)
+            __nbDime,__nbSamp  = map(int, __spDesc.pop()) # Réduction du dernier
+            if __nbDime != len(__spDesc):
+                warnings.warn("Declared space dimension (%i) is not equal to number of bounds (%i), the last one will be used."%(__nbDime, len(__spDesc)), FutureWarning, stacklevel=50)
+            __sample = scipy.stats.qmc.Sobol(
+                d = len(__spDesc),
+                seed = numpy.random.default_rng(__Seed),
+                )
+            __sample = __sample.random_base2(m = int(math.log2(__nbSamp))+1)
+            __bounds = numpy.array(__spDesc)[:,0:2]
+            __l_bounds = __bounds[:,0]
+            __u_bounds = __bounds[:,1]
+            sampleList = scipy.stats.qmc.scale(__sample, __l_bounds, __u_bounds)
     # ---------------------------
     elif len(__SampleAsIndependantRandomVariables) > 0:
         coordinatesList = []
index 22cd12b1a0f6f32e80377f9edaa2e822a6563620..d3d7ac3e8e682ab7072caad62235227cf86e6677 100644 (file)
@@ -252,6 +252,8 @@ class ReportViewInPlainTxt(__ReportV__):
     Report in plain TXT
     """
     #
+    __slots__ = ()
+    #
     default_filename="report.txt"
     tags = {
         "p":["\n",""],