12.4. Conditions requises pour décrire un échantillonnage d’états

De manière générale, il est utile de disposer d’un échantillonnage des états lorsque l’on s’intéresse à des analyses qui bénéficient de la connaissance d’un ensemble de simulations ou d’un ensemble de mesures similaires, mais chacune obtenue pour un état différent.

C’est le cas pour la définition explicite des états simulables des Algorithme de vérification « SamplingTest », Algorithme de tâche « EnsembleOfSimulationGenerationTask » et Algorithme de tâche « MeasurementsOptimalPositioningTask ».

L’ensemble de ces états peut être décrit de manière explicite ou implicite pour en faciliter l’inventaire. On indique ci-dessous les descriptions possibles, et on les fait suivre d’exemples très simples pour montrer les types de répartitions obtenues dans l’espace des états.

12.4.1. Description explicite ou implicite de la collection d’échantillonnage des états

La collection d’échantillonnage des états peut être décrite à l’aide de mots-clés dédiés dans le jeu de commandes d’un algorithme qui le nécessite.

L’échantillonnage des états \mathbf{x} peut être fourni explicitement ou sous la forme d’hypercubes, explicites ou échantillonnés selon des distributions courantes, ou à l’aide d’un échantillonnage par hypercube latin (LHS) ou par séquence de Sobol. Selon la méthode, l’échantillon sera inclus dans le domaine décrit par ses bornes ou sera descriptif du domaine non borné des variables d’état.

Ces mots-clés possibles sont les suivants :

SampleAsExplicitHyperCube

Liste de liste de valeurs réelles. Cette clé décrit les points de calcul sous la forme d’un hyper-cube, dont on donne la liste des échantillonnages explicites de chaque variable comme une liste. C’est donc une liste de listes, chacune étant de taille potentiellement différente. Par nature, les points sont inclus dans le domaine défini par les bornes des listes explicites de chaque variable.

Exemple : {"SampleAsExplicitHyperCube":[[0.,0.25,0.5,0.75,1.], [-2,2,1]]} pour un espace d’état de dimension 2.

SampleAsIndependantRandomVariables

Liste de triplets [Nom, Paramètres, Nombre]. Cette clé décrit les points de calcul sous la forme d’un hyper-cube, dont les points sur chaque axe proviennent de l’échantillonnage aléatoire indépendant de la variable d’axe, selon la spécification de la distribution, de ses paramètres et du nombre de points de l’échantillon, sous la forme d’une liste ['distribution', [parametres], nombre] pour chaque axe. Les distributions possibles sont “normal” de paramètres (mean,std), “lognormal” de paramètres (mean,sigma), “uniform” de paramètres (low,high), ou “weibull” de paramètre (shape). C’est donc une liste de la même taille que celle de l’état. Par nature, les points sont inclus le domaine non borné ou borné selon les caractéristiques des distributions choisies par variable.

Exemple : {"SampleAsIndependantRandomVariables":[['normal',[0.,1.],3], ['uniform',[-2,2],4]]} pour un espace d’état de dimension 2.

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,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). Par nature, les points sont inclus dans le domaine défini par les bornes explicites.

Exemple : {"SampleAsMinMaxLatinHyperCube":[[0.,1.],[-1,3]]+[[2,11]]} pour un espace d’état de dimension 2 et 11 points d’échantillonnage.

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. Par nature, les points sont inclus dans le domaine défini par les bornes explicites.

Remarque : il est nécessaire de disposer de Scipy en version supérieure à 1.7.0 pour utiliser cette option échantillonnage.

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).

SampleAsMinMaxStepHyperCube

Liste de triplets de valeurs réelles. Cette clé décrit les points de calcul sous la forme d’un hyper-cube, dont on donne la liste des échantillonnages implicites de chaque variable par un triplet [min,max,step]. C’est donc une liste de la même taille que celle de l’état. Les bornes sont incluses. Par nature, les points sont inclus dans le domaine défini par les bornes explicites.

Exemple : {"SampleAsMinMaxStepHyperCube":[[0.,1.,0.25],[-1,3,1]]} pour un espace d’état de dimension 2.

SampleAsnUplet

Liste d’états. Cette clé décrit les points de calcul sous la forme d’une liste de n-uplets, chaque n-uplet étant un état. Par nature, les points sont inclus dans le domaine borné défini comme l’enveloppe convexe des points explicitement désignés.

Exemple : {"SampleAsnUplet":[[0,1,2,3],[4,3,2,1],[-2,3,-4,5]]} pour 3 points dans un espace d’état de dimension 4.

Attention à la taille de l’hypercube (et donc au nombre de calculs) qu’il est possible d’atteindre, elle peut rapidement devenir importante.

12.4.2. Exemples très simples de répartitions dans l’espace des états

Pour illustrer les commandes, on propose ici des répartitions simples obtenues dans un espace d’état à 2 dimensions (pour être représentable), et les commandes qui permettent de les obtenir. On choisit arbitrairement de positionner 25 états dans chaque cas. Dans la majeure partie des commandes, comme on décrit les états séparément selon chaque coordonnée, on demande donc 5 valeurs de coordonnées par axe.

Les trois premiers mots-clés illustrent la même répartition car ce sont simplement des manières différentes de la décrire.

12.4.2.1. Répartition explicite d’états par le mot-clé « SampleAsnUplet »

La commande de génération explicite d’échantillons par « SampleAsnUplet » est la suivante :

[...]
"SampleAsnUplet":[[0, 0], [0, 1], [0, 2], [0, 3], [0, 4],
                  [1, 0], [1, 1], [1, 2], [1, 3], [1, 4],
                  [2, 0], [2, 1], [2, 2], [2, 3], [2, 4],
                  [3, 0], [3, 1], [3, 2], [3, 3], [3, 4],
                  [4, 0], [4, 1], [4, 2], [4, 3], [4, 4]]
[...]

La répartition des états ainsi décrite correspond à l’illustration :

_images/sampling_01_SampleAsnUplet.png

12.4.2.2. Répartition implicite d’états par le mot-clé « SampleAsExplicitHyperCube »

La commande de génération implicite d’échantillons par « SampleAsExplicitHyperCube » est la suivante :

[...]
"SampleAsExplicitHyperCube":[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
# ou
"SampleAsExplicitHyperCube":[range(0, 5), range(0, 5)]
[...]

La répartition des états ainsi décrite correspond à l’illustration :

_images/sampling_02_SampleAsExplicitHyperCube.png

12.4.2.3. Répartition implicite d’états par le mot-clé « SampleAsMinMaxStepHyperCube »

La commande de génération implicite d’échantillons par « SampleAsMinMaxStepHyperCube » est la suivante :

[...]
"SampleAsMinMaxStepHyperCube":[[0, 4, 1], [0, 4, 1]]
[...]

La répartition des états ainsi décrite correspond à l’illustration :

_images/sampling_03_SampleAsMinMaxStepHyperCube.png

12.4.2.4. Répartition implicite d’états par le mot-clé « SampleAsMinMaxLatinHyperCube »

La commande de génération implicite d’échantillons par « SampleAsMinMaxLatinHyperCube » est la suivante :

[...]
"SampleAsMinMaxLatinHyperCube":[[0, 4], [0, 4], [2, 25]]
[...]

La répartition des états ainsi décrite correspond à l’illustration :

_images/sampling_04_SampleAsMinMaxLatinHyperCube.png

12.4.2.5. Répartition implicite d’états par le mot-clé « SampleAsMinMaxSobolSequence »

La commande de génération implicite d’échantillons par « SampleAsMinMaxSobolSequence » est la suivante :

[...]
"SampleAsMinMaxSobolSequence":[[0, 4, 1], [0, 4, 1], [2, 25]]
[...]

La répartition des états (il y en a ici 32 par principe de construction de la séquence de Sobol) ainsi décrite correspond à l’illustration :

_images/sampling_05_SampleAsMinMaxSobolSequence.png

12.4.2.6. Répartition implicite d’états par le mot-clé « SampleAsIndependantRandomVariables » avec loi normale

La commande de génération implicite d’échantillons par « SampleAsIndependantRandomVariables » est la suivante, en utilisant une loi normale (0,1) de répartition par coordonnée :

[...]
"SampleAsIndependantRandomVariables":[['normal', [0, 1], 5], ['normal', [0, 1], 5]]
[...]

La répartition des états ainsi décrite correspond à l’illustration :

_images/sampling_06_SampleAsIndependantRandomVariables_normal.png

12.4.2.7. Répartition implicite d’états par le mot-clé « SampleAsIndependantRandomVariables » avec loi uniforme

La commande de génération implicite d’échantillons par « SampleAsIndependantRandomVariables » est la suivante, en utilisant une loi uniforme entre 0 et 5 de répartition par coordonnée :

[...]
"SampleAsIndependantRandomVariables":[['uniform', [0, 5], 5], ['uniform', [0, 5], 5]]
[...]

La répartition des états ainsi décrite correspond à l’illustration :

_images/sampling_07_SampleAsIndependantRandomVariables_uniform.png

12.4.2.8. Répartition implicite par le mot-clé « SampleAsIndependantRandomVariables » avec loi de Weibull

La commande de génération implicite d’échantillons par « SampleAsIndependantRandomVariables » est la suivante, en utilisant une loi de Weibull à un paramètre de valeur 5 de répartition par coordonnée :

[...]
"SampleAsIndependantRandomVariables":[['weibull', [5], 5], ['weibull', [5], 5]]
[...]

La répartition des états ainsi décrite correspond à l’illustration :

_images/sampling_08_SampleAsIndependantRandomVariables_weibull.png