FR 3033431 A1 20160909 FR 1551828 A 20150304 INRIA173 FRD Dispositif de simulation L'invention concerne le domaine de la conception des systèmes embarqués et la simulation de leur fonctionnement. Plus particulièrement, l'invention trouve son application dans la conception des systèmes embarqués critiques. Les systèmes embarqués critiques présentent la particularité d'être conçus de manière à ne connaître aucune faille et/ou pour présenter une très haute tolérance en cas d'apparition d'une faille. Par exemple, les ressources de ces systèmes sont doublées, triplées, voire décuplées, de manière à assurer une redondance en cas de panne d'un des éléments, ainsi que pour s'assurer que tous les calculs que ces systèmes sont chargés de réaliser sont terminés dans les temps souhaités. Historiquement, la progression technologique a été suffisante pour combler la complexification croissante de ces systèmes. En d'autres termes, l'accroissement de puissance disponible pour les processeurs des systèmes embarqués rendait la conception simple : il suffisait de surdimensionner le pilote avec un coefficient important pour garantir l'intégrité de tous les systèmes embarqués, qu'il s'agisse d'avionique, d'aérospatiale, d'automobile ou de ferroviaire. Dans les années récentes, deux effets combinés ont changé ce paradigme. D'une part, bien que les puissances des pilotes continuent de s'accroître de manière régulière, cette croissance s'est ralentie et tend à se ralentir encore plus au fur et à mesure que la finesse de gravure augmente. Cela est accru par le fait que la consommation électrique et la chaleur dégagée sont des critères qui sont devenus cruciaux, alors que cela n'était pas le cas pour les anciens pilotes. D'autre part, de grands progrès ont été réalisés en termes de modélisation physique et d'application pratique des systèmes embarqués, et les applications de ceux-ci exigent une puissance de calcul qui s'est grandement accrue, et qui tend à s'accroître plus vite que l'accroissement de la puissance des processeurs. 3033431 2 Il existe donc un besoin de produire un dispositif qui permet de mieux dimensionner les besoins en puissance de calcul des systèmes embarqués. À cet effet, l'invention propose un dispositif de simulation comprenant une mémoire 5 recevant un jeu de données représentant des mesures d'un paramètre, un sélecteur capable de produire un ensemble de sous-jeux de données à partir du jeu de données, chaque sous-jeu de données de cet ensemble comprenant des données successives du jeu de données dont le nombre est un entier naturel reçu comme variable par le sélecteur, un évaluateur capable, à partir d'un ensemble de valeurs définissant une 10 courbe, de calculer un facteur de forme indiquant une probabilité de correspondance entre la courbe définie par l'ensemble de valeurs et une courbe de Gumbel. Le dispositif comprend également un pilote agencé pour : - appeler le sélecteur avec une pluralité de nombres pour générer une pluralité 15 d'ensembles de sous-jeux de données, - dans chaque sous-jeu de données de chaque ensemble de sous-jeux de données, sélectionner les données dont la valeur de mesure est la plus importante, et créer une pluralité de jeux de données de courbe en associant les données sélectionnées de chaque ensemble, 20 - appeler l'évaluateur avec la pluralité de jeux de données de courbe, et sélectionner le jeu de données de courbe dont le facteur de forme indique la probabilité la plus importante. Ce dispositif est avantageux car il permet de déterminer une courbe de Gumbel qui 25 approche de manière fidèle la loi de distribution du jeu de données de la mémoire. Dans divers modes de réalisation particuliers, le dispositif peut présenter l'une ou la combinaison de plusieurs des caractéristiques suivantes : - le pilote est agencé pour déterminer une taille représentant le nombre de mesures dans 30 le jeu de données, et pour appeler le sélecteur avec une pluralité de nombres de type 10*k, où k est un entier naturel compris entre 1 et la partie entière de la taille divisée par quarante, 3033431 3 - l'évaluateur est en outre capable de calculer un facteur d'échelle et un facteur de localisation, - le pilote est agencé pour calculer une fonction extrême correspondant à la probabilité inverse de la fonction de répartition tirée d'une courbe de Gumbel définie par le facteur 5 de forme correspondant au jeu de courbes sélectionné et par le facteur d'échelle et le facteur de localisation associés, - le pilote est en outre agencé pour déterminer une probabilité à partir d'une valeur reçue en entrée ou une valeur à partir d'une probabilité reçue en entrée à partir de la fonction extrême, 10 - le dispositif peut en outre comprendre: - un estimateur capable de calculer une valeur représentative de l'espérance qu'une mesure du jeu de données soit supérieure à une valeur reçue en entrée, - un trieur capable, à partir d'un jeu de données représentant des mesures 15 d'un paramètre et d'une valeur reçus en entrée, de générer un sous-jeu de données tirées du jeu de données reçu en entrée et dont les mesures associées sont supérieures à la valeur reçue en entrée, - un second évaluateur capable, à partir d'un sous-jeu de données définissant une distribution, de calculer un facteur de forme indiquant une 20 probabilité de correspondance entre la distribution définie par le sous-jeu de données et une distribution de Pareto généralisée, le pilote étant agencé pour parcourir le jeu de données par valeur croissante des mesures associées, pour appeler à chaque fois le trieur avec le jeu de données et la valeur, pour appeler l'estimateur avec le sous-jeu de données résultant et la 25 valeur pour calculer une pluralité de valeurs d'espérance, pour analyser la pluralité de valeurs d'espérance et déterminer une mesure d'arrêt du jeu de données à partir de laquelle la courbe formée par la pluralité de valeurs d'espérance présente une inflexion, pour parcourir le jeu de données par valeur croissante des mesures associées à partir de la valeur associée à la mesure 30 d'arrêt, pour appeler à chaque fois le trieur avec le jeu de données et la valeur, pour appeler le second évaluateur avec la pluralité de sous-jeux de données 3033431 4 résultante, et pour sélectionner le sous-jeu de données dont le facteur de forme indique la probabilité la plus importante, - le second évaluateur est en outre capable de calculer un facteur d'échelle, - le pilote est agencé pour calculer une fonction correspondant à la probabilité inverse 5 de la fonction de répartition tirée d'une courbe de Gumbel définie par le facteur de forme correspondant au sous-jeu de données sélectionné, par le facteur d'échelle associé, et par un facteur de localisation défini par la mesure d'arrêt, - le pilote est en outre agencé pour déterminer une probabilité à partir d'une valeur reçue en entrée ou une valeur à partir d'une probabilité reçue en entrée à partir de la 10 fonction extrême, et - lequel le pilote est en outre agencé pour retourner la valeur ou la probabilité la plus importante déterminée par chaque fonction extrême. D'autres caractéristiques et avantages de l'invention apparaîtront mieux à la lecture de 15 la description qui suit, tirée d'exemples donnés à titre illustratif et non limitatif, illustrés par des dessins sur lesquels : - la figure 1 représente un schéma générique d'un dispositif selon l'invention, et - la figure 2 représente un exemple de réalisation d'une fonction mise en oeuvre par le dispositif de la figure 1. 20 La présente description est de nature à faire intervenir des éléments susceptibles de protection par le droit d'auteur et/ou le copyright. Le titulaire des droits n'a pas d'objection à la reproduction à l'identique par quiconque du présent document de brevet ou de sa description, telle qu'elle apparaît dans les dossiers officiels. Pour le reste, il 25 réserve intégralement ses droits. Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. 30 Pour garantir l'intégrité d'un système embarqué, il convient de garantir que celui-ci réalisera les tâches et/ou calculs que l'on lui demande dans un temps maximal imparti. 3 03 3 4 3 1 5 Pour cela, la demanderesse a découvert que la théorie des valeurs extrêmes (EVT pour « Extreme Values Theory » en anglais) pouvait être utile. En effet, cette théorie vise à permettre l'étude du comportement des parties supérieures et inférieures d'une loi de distribution dont la fonction de distribution est inconnue. L'invention vise donc à 5 utiliser l'EVT pour déterminer le comportement extrême d'un pilote vis-à-vis d'une tâche donnée, et d'en déduire le dimensionnement adapté pour un système embarqué. Certains travaux ont déjà été entrepris dans ce domaine, c'est-à-dire l'estimation d'un temps d'exécution (pire-cas) d'un programme ou d'une tâche. Les travaux les plus 10 significatifs ont été réalisés par Edgar et al ("Statistical analysis of WCET for scheduling", 22nd IEEE Real-Time Systems Symposium (RTSS01), 2001), Hansen et al ("Statistical-based wcet estimation and validation", 9th International Workshop on Worst-Case Execution Time (WCET) Analysis, 2009), Y Lu et al ("A new way about using statistical analysis of worst-case execution times", ACM SIGBED Review, 2011), 15 et Cucu-Grosjean et al ("Measurement-based probabilistic timing analysis for multi- path programs", 24th Euromicro Conference on Real-time Systems (ECRTS), 2012). Ces travaux s'appuient sur une version appelée GEV (valeur extrême généralisée) de l'EVT. Cette version de l'EVT vise à approcher la partie supérieure d'une loi de 20 distribution au moyen d'une famille de courbes appelées courbes de Gumbel. Toute la difficulté est, à partir d'une distribution donnée, de déterminer quelle est la courbe de Gumbel qui correspond à cette distribution. À ce jour, aucune des solutions citées ci-dessus ne donne réellement satisfaction, ni une 25 quelconque certitude quant à la qualité de la correspondance entre la courbe de Gumbel déterminée et la loi de la distribution. Une autre version de l'EVT existe. Cette version s'appelle GPD (distribution de Pareto généralisée). Là encore, il s'agit d'associer une loi de distribution donnée dont la 30 fonction de distribution est inconnue à une courbe de Pareto définie par la théorie GPD. Il n'existe à ce jour aucun document qui explique comment choisir une courbe GPD à partir d'une distribution donnée. 3033431 6 Au-delà de l'absence de solution satisfaisante pour modéliser une distribution inconnue de manière suffisamment certaine au moyen de la version GEV ou de la version GPD de l'EVT, il n'existe aucun document qui combine ces deux versions ensemble pour réaliser une telle détermination. 5 Le dispositif de l'invention, dans ses diverses variantes, vient combler ces manques. La figure 1 représente un schéma générique d'un dispositif de simulation selon l'invention. Le dispositif comprend une mémoire 2, un sélecteur 4, un évaluateur 6, un 10 pilote 8, un trieur 10, un estimateur 12 et un second évaluateur 14. Dans le cadre de l'invention, la mémoire 2 peut être tout type de stockage de données propre à recevoir des données numériques : disque dur, disque dur à mémoire flash (SSD en anglais), mémoire flash sous toute forme, mémoire vive, disque magnétique, 15 stockage distribué localement ou dans le cloud, etc. Les données calculées par le dispositif peuvent être stockées sur tout type de mémoire similaire à la mémoire 2, ou sur celle-ci. Ces données peuvent être effacées après que le dispositif ait effectué ses tâches ou conservées. 20 Les 5 unités fonctionnelles (le sélecteur 4, l'évaluateur 6, le pilote 8, le trieur 10, l'estimateur 12 et le second évaluateur 14) peuvent être réunies au sein d'un même boîtier, sous la forme d'un ou plusieurs pilotes ou circuits intégrés spécialisés pour réaliser leurs fonctions, ou encore sous la forme de code informatique exécuté sur une ou plusieurs machines informatiques reliées entre elles pour la réalisation du dispositif, 25 ou sous toute forme intermédiaire entre ces types de réalisation. La mémoire 2 reçoit un jeu de données représentant des mesures d'un paramètre dont on cherche à évaluer la loi de distribution. Dans l'exemple décrit plus haut, ce jeu de données comprend divers temps d'exécution d'une tâche donnée par un pilote donné, et 30 le but est de déterminer quel est le temps « pire-cas » que ce pilote pourra mettre pour exécuter cette tâche. Dans d'autres variantes, les données peuvent représenter un autre type de paramètre de mesure dont on cherche à évaluer une valeur extrême. 3033431 7 Le sélecteur 4 a pour fonction le réagencement des données du jeu de données en fonction d'un paramètre d'entrée. Plus précisément, le sélecteur 4 reçoit un entier naturel non nul comme paramètre, et accède au jeu de données stocké dans la mémoire 2 pour produire en sortie un ensemble de sous-jeux de données qui contiennent 5 chacun un nombre de données égal au paramètre. Par exemple, si le paramètre a pour valeur 10 et que le jeu de données comprend 100 mesures, le sélecteur 4 retournera un ensemble de 10 sous-jeux de données comprenant chacun 10 mesures. Le sélecteur 4 peut être réalisé de très nombreuses manières, et être par exemple codé sous la forme d'une fonction informatique qui découpe le jeu de données en tranches de tailles égales. 10 Les sous-jeux de données peuvent ensuite être utilisés pour définir une courbe qui est utilisée dans la version GEV de l'EVT. Lorsque le nombre de mesures du jeu de données n'est pas divisible par 10, le sélecteur 4 fonctionne à l'identique jusqu'au dernier bloc, qui est traité avec un nombre 15 de données inférieur. L'évaluateur 6 a pour fonction la détermination d'un ou plusieurs paramètres d'une courbe de Gumbel à partir d'un jeu de données en entrée. Ces paramètres incluent un facteur de forme (communément désigné par la lettre grecque Xi dans l'EVT), un 20 facteur d'échelle correspondant à la variance de la loi Gumbel (communément désigné par la lettre grecque Sigma dans l'EVT) et un facteur de localisation correspondant à la moyenne de la loi Gumbel (communément désigné par la lettre grecque Mu dans l'EVT). Dans l'exemple décrit ici, l'évaluateur 6 est une fonction dénommée gev.fit() qui est disponible dans le paquet « ismev » du langage de programmation R (langage de 25 programmation dédié aux statistiques). Dans l'exemple décrit ici, la fonction gev.fit() détermine le facteur de forme, le facteur d'échelle et le facteur de localisation en les estimant par la méthode du maximum de vraisemblance. En variante, le facteur de forme, le facteur d'échelle et le facteur de localisation pourraient être déterminés par la méthode des moments. 30 Le second évaluateur 14 est similaire à l'évaluateur 6, sauf qu'il détermine une distribution de Pareto au lieu d'une courbe de Gumbel. Les paramètres produits incluent 3033431 8 un facteur de forme (communément désigné par la lettre grecque Xi dans l'EVT), un facteur d'échelle (communément désigné par la lettre grecque Sigma dans l'EVT) et un facteur de localisation (communément désigné par la lettre grecque Mu dans l'EVT). Dans l'exemple décrit ici, le second évaluateur 14 est une fonction dénommée gpd.fit() 5 qui est disponible dans le paquet « ismev » du langage de programmation R. Dans l'exemple décrit ici, la fonction gpd.fit() estime le facteur d'échelle et le facteur de localisation en les estimant par la méthode du maximum de vraisemblance. Le facteur de localisation est déterminé en amont comme on le verra plus bas. En variante, le facteur de forme et le facteur d'échelle pourraient être déterminés par la méthode des 10 moments. Le trieur 10 a pour fonction la production de sous-jeux de données dont les valeurs de mesures associées sont toutes supérieures à celles d'une valeur de référence reçue en entrée. Plus précisément, le trieur 10 reçoit une valeur comme paramètre et un jeu de 15 données. Comme on le verra par la suite, c'est toujours le jeu de données de la mémoire 2 qui est utilisé comme jeu de données d'entrée. Celui-ci pourrait donc être désigné comme variable globale, et le trieur 10 pourrait ne recevoir que la valeur comme paramètre. Ainsi, si la valeur est 100, le trieur 10 retournera toutes les données du jeu de données dont la valeur est supérieure à 100. En variante, le trieur 10 pourrait 20 également recevoir un entier naturel non nul qui indique l'indice d'une valeur du jeu de données trié par valeurs croissantes. Ainsi, le trieur 10 retournerait le sous-jeu de données qui contient toutes les données supérieures à la valeur de mesure désignée par l'indice reçu comme paramètre. 25 L'estimateur 12 a pour fonction la détermination de l'espérance mathématique qu'une mesure du jeu de données soit supérieure à une mesure choisie du jeu de données. Comme on le verra, le pilote 8 parcourt le jeu de données pour faire calculer par l'estimateur 12 cette espérance par valeur croissante du jeu de données, et pour calculer une liste de valeurs d'espérance correspondante. Cette liste de valeurs d'espérance 30 décrit une courbe qui est utilisée dans la version GPD de l'EVT. 3033431 9 Le pilote 8 a pour fonction l'appel du sélecteur 4, de l'évaluateur 6, du trieur 10, de l'estimateur 12 et du second évaluateur 14 afin de mettre en oeuvre la version GEV et éventuellement la version GPD de l'EVT afin de déterminer la fonction de l'EVT qui approche le mieux la distribution du jeu de données reçu dans la mémoire 2. Cette 5 fonction de l'EVT permet en retour de déterminer quel est le temps d'exécution « pire- cas » par le processeur de la tâche qui a servi à générer le jeu de données. Ce temps d'exécution peut alors être utilisé pour améliorer le dimensionnement d'un système embarqué utilisant ce processeur et mettant en oeuvre cette tâche. Comme on le verra dans ce qui suit, le dispositif peut même calculer, selon la variante, la précision avec 10 laquelle la fonction de l'EVT approche le jeu de données. En variante, le dispositif de l'invention peut être utilisé dans d'autres applications que la détermination de temps « pire-cas » d'une tâche par un processeur, dès lors qu'il s'agit d'étudier la prise de valeurs extrêmes d'un paramètre physique. Tout comme les autres 15 éléments, le pilote 8 peut être réalisé de très nombreuses manières et être, par exemple, codé sous la forme d'une fonction informatique. La figure 2 représente un exemple de fonction mise en oeuvre par le pilote 8. 20 L'ensemble du code exécuté par la fonction de la figure 2 est dans l'exemple décrit ici codé en langage R. D'autres langages de programmation pourront être utilisés. La fonction commence par une opération 200 par l'exécution d'une fonction InitQ. Cette fonction initialise le dispositif et assure la présence du jeu de données dans la 25 mémoire 2. Ensuite, dans une opération 202 optionnelle, un test est réalisé par une fonction TstO. La fonction Tst() met en oeuvre un test E.T et I.I.D qui permet de déterminer si la distribution définie par le jeu de données reçu dans la mémoire 2 peut être approché par 30 l'EVT ou pas. L'article de Garrido et al "Modelling of rare events and estimation of extreme quantiles, model selecting methods for distribution tails" PhD. Work, 2002 3033431 10 décrit ce test. Si ce n'est pas le cas, alors la fonction se termine en 204, avec une indication que le jeu de données ne peut pas être approché par l'EVT. Sinon, l'exécution de la fonction se poursuit dans deux branches distinctes. La première 5 branche, à gauche sur la figure 2, sert à réaliser une simulation par la version GEV de l'EVT, et la deuxième branche, à droite sur la figure 2, sert à réaliser une simulation par la version GPD de l'EVT. La première branche commence dans une opération 206 par l'initialisation à 1 d'un 10 indice i. Cet indice sert à définir plusieurs tailles de découpage du jeu de données par le sélecteur 4, afin de déterminer plusieurs courbes qui seront approchées. Ensuite, une boucle commence dans laquelle le sélecteur 4 est appelé dans une opération 208 avec l'exécution d'une fonction Sort(). La fonction Sort() reçoit le jeu de 15 données Dat reçu dans la mémoire 2 et l'indice i multiplié par 10 comme paramètres. Comme c'est toujours le jeu de données Dat de la mémoire 2 qui est utilisé comme jeu de données d'entrée, celui-ci pourrait donc être désigné comme variable globale dans la fonction Sort(), et le sélecteur 4 pourrait ne recevoir que l'indice i multiplié par 10 comme paramètre. Comme décrit plus haut, la fonction Sort() découpe le jeu de données 20 Dat en un ensemble de jeux de données Srt qui contiennent chacun 10*i données. Ensuite, dans une opération 210, le pilote 8 exécute une fonction Curv() qui va calculer des données de courbe à partir de l'ensemble de sous-jeux de données Srt calculé à l'opération 208. Pour cela, dans chaque sous-jeu de données de l'ensemble Srt, seule la 25 valeur maximale est gardée, et les valeurs résultantes définissent ensemble des données de courbe Crv. Par exemple, pour l'indice i égal à 1, le jeu de données Dat a été découpé en sous-jeux de 10 valeurs. Avec l'exécution de la fonction Curv(), seule la plus grande des 10 valeurs des données de chaque sous-ensemble de 10 données est conservée, pour former les données Crv. 30 Ainsi, l'accroissement de l'indice i par incrément de 10 permet, par la combinaison des opérations 208 et 210, de « découper » le jeu de données Dat en tranches d'épaisseur 3033431 11 variable pour ne retenir que les extrema de ces tranches, et la variation de la taille des tranches permet de trouver le découpage qui permet de découvrir le plus d'extrema. Ensuite, dans une opération 214, l'évaluateur 6 est appelé avec l'exécution d'une 5 fonction Eval(), qui reçoit les données de courbes Crv comme paramètre. Comme décrit plus haut, dans l'exemple décrit ici, la fonction Eval() exécute la fonction gev fit() du paquet « ismev » du langage de programmation R. En sortie de la fonction Eval(), les trois facteurs Ksi, Sig et Mu pour l'indice courant i sont retournés. Le facteur Ksi désigne le facteur de forme de la courbe de Gumbel associée à la distribution définie par 10 les données de courbe Crv, le facteur Sig désigne le facteur d'échelle de cette même courbe de Gumbel, et le facteur Mu désigne le facteur de localisation. La fonction Eval() peut également calculer une valeur dite de convergence qui donne un indice de la fiabilité de l'estimation réalisée. En effet, les facteurs Ksi, Sig et Mu étant déterminés par la méthode du maximum de vraisemblance, la valeur de convergence permet 15 d'indiquer si l'estimation est fiable ou pas. Le facteur de forme Ksi est ensuite comparé au facteur de forme minimal Ksil dans une opération 214 avec l'exécution d'une fonction Minl(). La fonction Minl() retourne le triplé de facteurs (Ksil,Sigl,Mul) calculé précédemment si Ksi est supérieur à Ksil, et 20 retourne (Ksi,Sig,Mu) comme nouveau couple (Ksil,Sigl,Mul) sinon. Ainsi, au fur et à mesure que l'indice i est incrémenté, le triplé (Ksil,Sigl,Mul) qui est calculé représente la courbe dont le facteur de forme Ksi est le plus petit parmi toutes les courbes Crv générées par les opérations 208 et 210. Selon la version GEV de l'EVT, cette courbe, dont le facteur de forme est le plus petit, représente la courbe de Gumbel qui a le plus de 25 probabilité de représenter la distribution du jeu de données Dat. Enfin, dans une opération 216, il est testé si l'indice i est inférieur à n/40 où n est le nombre de données du jeu de données Dat. Si i vaut n/40, alors l'ensemble Srt comprend 4 sous-jeux de données, et la valeur de n/40 permet d'assurer que le jeu de 30 données Crv comprendra au moins 4 points. Si c'est le cas, alors l'indice i est incrémenté dans une opération 218, et la boucle reprend en 208. Sinon, la simulation par la version GEV de l'EVT est terminée, et la courbe de Gumbel qui est déterminée 3033431 12 comme approchant le jeu de données est définie par le facteur de forme et le facteur d'échelle, Ksi et Sigl, qui ont été retenus après l'opération 216, ensemble avec le facteur de localisation qui leur correspond qui a été déterminé avec la fonction de l'opération 212. 5 En variante, la première branche pourrait être réalisée en sortant le calcul du triplé (Ksi 1,Sigl,Mul) de la boucle. De plus, la fonction Eval() pourrait ne renvoyer que le facteur de forme Ksi qui est le seul paramètre nécessaire pour identifier les données de courbes Crv (ou l'indice d'itération correspondant) qui représentent le 10 meilleur découpage du jeu de données Dat pour déterminer la courbe de Gumbel qui correspond au jeu de données Dat. La deuxième branche commence dans une première opération par l'initialisation à 1 d'un indice i dans une opération 220. L'indice i est utilisé pour parcourir le jeu de 15 données Dat en appliquant une simulation adaptée à la version GPD de l'EVT. La deuxième branche comprend deux boucles. La première boucle sert à déterminer un indice de départ pour la deuxième boucle, et la deuxième boucle détermine une distribution de Pareto qui correspond le mieux au jeu de données Dat. 20 La deuxième boucle commence dans une opération 222 par l'appel du trieur 10 avec l'appel d'une fonction Sort2(). La fonction Sort2() reçoit comme paramètre le jeu de données Dat reçu dans la mémoire 2, et l'indice courant i. Comme on l'a vu plus haut, le jeu de données Dat étant systématiquement appelé comme variable, il pourrait être 25 passé comme variable globale, et la fonction Sort2() pourrait ne recevoir que l'indice i comme paramètre. Dans un premier temps, la fonction Sort2() détermine dans le jeu de données Dat des données de référence dont la valeur de mesure a pour rang l'indice i lorsque les données du jeu de données Dat sont triées par valeur croissante de mesure. Dans un second temps, la fonction Sort2() sélectionne dans le jeu de données Dat toutes 30 les données dont les valeurs de mesure sont supérieures à la valeur de mesure des données de référence dans un sous-jeu de données Srt2. La fonction Sort2() peut être 3033431 13 programmée de très nombreuses manières, avec ou sans tri préalable du jeu de données Dat, par passage direct de la valeur des données de référence, etc. Ensuite la boucle se poursuit dans une opération 224 avec l'appel de l'estimateur 12 qui 5 exécute une fonction Est() qui reçoit le sous-jeu de données Srt2. Comme décrit plus haut, la fonction Est() calcule l'espérance du sous-jeu de données Srt2, c'est-à-dire l'espérance que des données du jeu de données Dat présente une valeur de mesure supérieure à la valeur de mesure des données de référence de l'instance i de la première boucle. Cela peut être réalisé avec toute fonction classique de calcul de l'espérance 10 mathématique, et le résultat est stocké dans un tableau E[] qui reçoit toutes les valeurs d'espérance, à l'indice i. Enfin la première boucle se poursuit avec un test Infl() dans une opération 226. Ce test vise à déterminer si la courbe d'espérance définie par les valeurs du tableau E[] est 15 sensiblement linéaire, ou si l'espérance E[] présente une inflexion. En effet, la version GPD de l'EVT enseigne que la distribution permettant de déterminer la distribution de Pareto est contenue dans la partie de la courbe d'espérance qui n'est pas linéaire. Le test Infl() peut être réalisé de manière automatisée, par exemple en calculant la dérivée première ou seconde de la courbe d'espérance à chaque itération et en déterminant 20 l'inflexion dès que la dérivée première n'est plus constante ou que la dérivée seconde est non nulle, ou encore à la main, par représentation graphique de la courbe d'espérance sur un affichage, et entrée d'une décision d'arrêt ou pas. S'il est déterminé qu'il n'y a pas d'inflexion, alors la première boucle reprend, avec l'incrémentation de l'indice i dans une opération 228, puis la répétition de la boucle avec l'opération 222. 25 La première boucle permet de déterminer de manière la plus rapide l'indice des données dont la valeur de mesure indique l'inflexion de la courbe d'espérance, également appelée mesure d'arrêt. La première boucle décrite ici ne parcourt pas tout le jeu de données Dat : elle s'arrête dès qu'une inflexion est détectée. Une certaine tolérance 30 pourra être prévue pour la détection de la mesure d'arrêt, afin d'éviter de s'arrêter « trop tôt » dans un minimum local. La mesure d'arrêt qui est ainsi déterminée définit la valeur 3033431 14 du facteur de localisation pour la courbe de Gumbel qui sera déterminée à la fin de la deuxième boucle. En variante, la première boucle pourrait parcourir toutes les données du jeu de données 5 pour établir une courbe d'espérance complète, et ainsi prendre une décision plus sûre sur la mesure d'arrêt. Une fois la mesure d'arrêt déterminée, la deuxième boucle commence. Elle est assez similaire à la boucle de la première branche. Ainsi, on va parcourir le jeu de données 10 Dat à partir de la mesure d'arrêt, calculer des distributions de Pareto pour une pluralité de sous-jeux de données, et choisir la distribution dont le facteur de forme est le plus faible. Ainsi, dans une opération 230, le second évaluateur 14 est appelé pour exécuter une 15 fonction Eval2() qui reçoit le sous-jeu de données Srt2 comme paramètre. Cette fonction est similaire en principe à la fonction Eval() au détail près qu'elle est adaptée à la version GPD de l'EVT. Comme pour l'opération 212, la fonction Eval2() retourne un couple (Ksi,Sig). Ici, la fonction Eval2() ne retourne pas de facteur de localisation car il a été déterminé avec l'opération 226. La fonction Eval2() peut également calculer une 20 valeur dite de convergence qui donne un indice de la fiabilité de l'estimation réalisée. En effet, les facteurs Ksi, Sig et Mu étant déterminés par la méthode du maximum de vraisemblance, la valeur de convergence permet d'indiquer si l'estimation est fiable ou pas. 25 Ensuite, dans une opération 232, le couple (Ksi,Sig) est comparé à un couple (Ksi2,Sig2) avec l'exécution d'une fonction Min2O. La fonction Min2() retourne le couple (Ksi2,Sig2) calculé précédemment si Ksi est supérieur à Ksi2, et retourne (Ksi,Sig) comme nouveau couple (Ksi2,Sig2) sinon. Ainsi, au fur et à mesure que l'indice i est incrémenté, le couple (Ksi2,Sig2) qui est calculé représente la courbe dont 30 le facteur de forme Ksi est le plus petit parmi tous les sous-jeux de données Srt2. Selon la version GPD de l'EVT, cette distribution, dont le facteur de forme est le plus petit, 3033431 15 représente la distribution de Pareto qui a le plus de probabilité de représenter la distribution du jeu de données Dat. Ensuite, dans une opération 234, un test détermine si l'indice i est inférieur au nombre n 5 de données du jeu moins 4. Ce test permet de garantir que le sous-jeu de données Srt2 utilisé pour déterminer la distribution de Pareto évaluée dans l'opération 230 contient au moins 4 points. Si c'est le cas, la deuxième boucle reprend avec l'incrémentation de l'indice i dans une 10 opération 236, et le calcul du sous-jeu de données Srt2 pour ce nouvel indice i avec l'appel du trieur 10 dans une opération 238 identique à l'opération 222. Dans l'exemple décrit ici, l'opération 238 est disposée à cet endroit car, lors de la première exécution de la deuxième boucle, le sous-jeu de données Srt2 pour la mesure d'arrêt avait déjà été déterminé, et qu'il n'était donc pas nécessaire de le refaire. Néanmoins, l'opération 238 15 pourrait être placée en tête de la deuxième boucle, et le sous-jeu de données Srt2 être déterminé à nouveau. En variante, la première branche pourrait être réalisée en sortant le calcul du couple (Ksi2,Sig2) de la boucle. De plus, la fonction Eval20 pourrait également 20 calculer le facteur de localisation de la distribution de Pareto, ou inversement ne renvoyer que le facteur de forme Ksi qui est le seul paramètre nécessaire pour identifier le sous-jeu de données Srt2 (ou l'indice d'itération correspondant) qui représente le meilleur découpage du jeu de données Dat pour déterminer la distribution de Pareto qui correspond au jeu de données Dat. 25 La première branche et la deuxième branche peuvent être réalisées en série ou en parallèle. De même les calculs au sein de ces branches pourront être sérialisés ou mis en parallèle lorsque possible. 30 La deuxième branche est dans l'exemple décrit ici optionnelle (d'où la flèche en traits tiretés entre le test de l'opération 202 et la première opération 220 de la deuxième 3033431 16 branche) : le dispositif peut calculer la courbe de Gumbel selon la première branche uniquement. Néanmoins, la Demanderesse a découvert que l'exécution des deux branches pouvait 5 être très avantageuse. En effet, elle a découvert qu'en combinant la détermination par la version GEV et GPD de l'EVT, il est possible non seulement déterminer la courbe de Gumbel ou distribution de Pareto qui s'approche le plus de la distribution du jeu de données Dat reçu dans la mémoire 2, mais il est également possible de déterminer la précision absolue avec laquelle celle-ci est approchée. 10 Ainsi, lorsque la première branche et la deuxième branche sont exécutées, une fonction Cmp() est exécutée dans une dernière opération 240. La fonction Cmp() permet d'utiliser les deux courbes de Gumbel qui ont été déterminées par les calculs précédents afin de simuler le comportement recherché. 15 Ensuite, la fonction Cmp() détermine la fonction de répartition des deux courbes de Gumbel déterminées pour la version GEV d'une part et pour la version GPD d'autre part. Ensuite, la fonction Cmp() définit, pour chacune de la version GEV et de la version GPD, une fonction extrême qui représente la probabilité inverse de la fonction 20 de répartition (c'est-à-dire définie par g = 1-f si f est la fonction de répartition). Ainsi, si ce qui est recherché est de connaître la valeur « pire cas » pour une probabilité donnée, alors la fonction Cmp() détermine pour chaque fonction extrême la valeur extrême qui correspond à la probabilité reçue comme variable. Enfin, la fonction Cmp() 25 renvoie la valeur la plus importante. Ainsi, la fonction Cmp() renvoie la valeur la plus conservatrice tout en étant sûr d'avoir convergé en utilisant à la fois la version GEV et la version GPD de l'EVT. En variante, si c'est au contraire une probabilité qui est recherchée pour une valeur 30 extrême donnée, la fonction Cmp() détermine pour chaque fonction extrême la probabilité qui correspond à la valeur extrême fournie en entrée. Ici encore, la probabilité la plus importante est renvoyée afin d'être aussi conservateur que possible. 3033431 17 Dans encore une autre variante, la fonction Cmp() peut renvoyer une fonction qui correspond à une composition entre la fonction extrême de la fonction de répartition tirée de la version GEV et celle tirée de la version GPD. En effet, comme il est souhaité de renvoyer une valeur conservatrice, la fonction Cmp() calcule la fonction de 5 répartition pour la version GEV et pour la version GPD, en tire chaque fonction extrême respective, et définit une nouvelle fonction dont la valeur pour chaque point est définie comme le maximum de ces fonctions inverses. Ainsi, il sera possible d'utiliser cette fonction conservatrice à loisir. 10 Dans ce qui précède, les déterminations ont été décrites en référence à un facteur de forme dont la valeur la plus faible indique la probabilité de correspondance la plus forte avec la GEV et/ou la GPD. Les fonctions d'évaluation pourraient être conçues pour produire d'autres indicateurs que le facteur de forme, pour lesquels c'est au contraire une valeur plus importante qui indique la probabilité la plus importante, ou le fait de 15 s'approcher d'une valeur référence. Ces variantes rentrent bien évidemment dans la portée des revendications. L'invention concerne également un produit de programme d'ordinateur agencé, lorsqu'il est exécuté, pour réaliser le dispositif et/ou le procédé décrits ci-dessus et 20 revendiqués dans les revendications. REVENDICATIONS1. Dispositif de simulation comprenant une mémoire (2) recevant un jeu de données représentant des mesures d'un paramètre, un sélecteur (4) capable de produire un ensemble de sous-jeux de données à partir du jeu de données, chaque sous-jeu de données de cet ensemble comprenant des données successives du jeu de données dont le nombre est un entier naturel reçu comme variable par le sélecteur (4), un évaluateur (6) capable, à partir d'un ensemble de valeurs définissant une courbe, de calculer un facteur de forme indiquant une probabilité de correspondance entre la courbe définie par l'ensemble de valeurs et une courbe de Gumbel, et un pilote (8) agencé pour : - appeler le sélecteur (4) avec une pluralité de nombres pour générer une pluralité d'ensembles de sous-jeux de données, - dans chaque sous-jeu de données de chaque ensemble de sous-jeux de données, sélectionner les données dont la valeur de mesure est la plus importante, et créer une pluralité de jeux de données de courbe en associant les données sélectionnées de chaque ensemble, - appeler l'évaluateur (6) avec la pluralité de jeux de données de courbe, et sélectionner le jeu de données de courbe dont le facteur de forme indique la probabilité la plus importante. 2. Dispositif selon la revendication 1, dans lequel le pilote (8) est agencé pour déterminer une taille représentant le nombre de mesures dans le jeu de données, et pour appeler le sélecteur avec une pluralité de nombres de type 10*k, où k est un entier naturel compris entre 1 et la partie entière de la taille divisée par quarante. 3. Dispositif selon l'une des revendications précédentes, dans lequel l'évaluateur (6) est en outre capable de calculer un facteur d'échelle et un facteur de localisation. 3033431 19 4. Dispositif selon la revendication 3, dans lequel le pilote (8) est agencé pour calculer une fonction extrême correspondant à la probabilité inverse de la fonction de répartition tirée d'une courbe de Gumbel définie par le facteur de forme correspondant au jeu de courbes sélectionné et par le facteur d'échelle et 5 le facteur de localisation associés. 5. Dispositif selon la revendication 4, dans lequel le pilote (8) est en outre agencé pour déterminer une probabilité à partir d'une valeur reçue en entrée ou une valeur à partir d'une probabilité reçue en entrée à partir de la fonction extrême. 10 6. Dispositif selon l'une des revendications précédentes, comprenant en outre : - un estimateur (12) capable de calculer une valeur représentative de l'espérance qu'une mesure du jeu de données soit supérieure à une valeur reçue en entrée, 15 - un trieur (10) capable, à partir d'un jeu de données représentant des mesures d'un paramètre et d'une valeur reçus en entrée, de générer un sous-jeu de données tirées du jeu de données reçu en entrée et dont les mesures associées sont supérieures à la valeur reçue en entrée, - un second évaluateur (14) capable, à partir d'un sous-jeu de données 20 définissant une distribution, de calculer un facteur de forme indiquant une probabilité de correspondance entre la distribution définie par le sous-jeu de données et une distribution de Pareto généralisée, le pilote (8) étant agencé pour parcourir le jeu de données par valeur croissante des mesures associées, pour appeler à chaque fois le trieur (10) avec le jeu de 25 données et la valeur, pour appeler l'estimateur (12) avec le sous-jeu de données résultant et la valeur pour calculer une pluralité de valeurs d'espérance, pour analyser la pluralité de valeurs d'espérance et déterminer une mesure d'arrêt du jeu de données à partir de laquelle la courbe formée par la pluralité de valeurs d'espérance présente une inflexion, pour parcourir le jeu de données par valeur 30 croissante des mesures associées à partir de la valeur associée à la mesure d'arrêt, pour appeler à chaque fois le trieur (10) avec le jeu de données et la valeur, pour appeler le second évaluateur (14) avec la pluralité de sous-jeux de 3033431 20 données résultante, et pour sélectionner le sous-jeu de données dont le facteur de forme indique la probabilité la plus importante. 7. Dispositif selon la revendication 6, dans lequel le second évaluateur (14) est en 5 outre capable de calculer un facteur d'échelle. 8. Dispositif selon la revendication 7, dans lequel le pilote (8) est agencé pour calculer une fonction correspondant à la probabilité inverse de la fonction de répartition tirée d'une courbe de Gumbel définie par le facteur de forme 10 correspondant au sous-jeu de données sélectionné, par le facteur d'échelle associé, et par un facteur de localisation défini par la mesure d'arrêt. 9. Dispositif selon la revendication 8, dans lequel le pilote (8) est en outre agencé pour déterminer une probabilité à partir d'une valeur reçue en entrée ou une 15 valeur à partir d'une probabilité reçue en entrée à partir de la fonction extrême. 10. Dispositif selon les revendications 5 et 9, dans lequel le pilote (8) est en outre agencé pour retourner la valeur ou la probabilité la plus importante déterminée par chaque fonction extrême.