FR 2910983 A1 20080704 FR 0611531 A 20061229 Dispositif de test dynamique de programmes de traitement de données La présente invention a pour objet un dispositif de test dynamique de programmes de traitement de données, ces programmes de traitement de données étant notamment utilisés pour transformer des données initiales et faire apparaître des caractéristiques observables liées à ces données initiales. L'invention est notamment utile dans le domaine du traitement de données initiales bruitées, notamment lorsqu'il est nécessaire de choisir un programme de traitement de données particulier afin qu'il soit le plus adapté pour faire disparaître le bruit des données initiales, et ainsi observer les caractéristiques de ces données de manière fiable. Les programmes de traitement de données pour faire disparaître le bruit de données initiales est connu depuis longtemps par l'homme du métier. En effet, il existe de nombreux programmes de traitement d'images, de programmes de traitement du signal, notamment dans le domaine de la téléphonie mobile. Si l'image ou le signal évolue dans le temps, les programmes de traitement sont appliqués à l'ensemble des données obtenues après chaque unité de temps. Ces programmes de traitement lorsqu'ils sont transposés à des séries de mesures bruitées, appelées données initiales, générées par un système dynamique soumis à de multiples stimuli externes et agents internes, ne donnent pas des résultats fiables. Il est très difficile d'observer des caractéristiques qui soient effectivement pertinentes pour l'étude de ce système dynamique. Notamment, l'application de ces programmes de traitement sur des données climatologiques ou celles produites par un marché financier ne permet pas de déterminer de manière fiable des caractéristiques permettant de prédire des tendances climatologiques ou respectivement des tendances de marché. L'invention a donc pour objet un dispositif de test dynamique de programmes de traitement de données comportant - un microprocesseur, - une horloge définissant une unité de temps, - une interface d'échange pour prélever à chaque unité de temps des données initiales dans une base de données externe, ces données initiales étant variables dans le temps, une mémoire pour stocker les données initiales de chaque unité de temps, -une mémoire comportant au moins un programme de séquençage des données initiales, - une mémoire pour stocker des séquences de données initiales obtenues à partir du programme de séquençage, - une mémoire comportant lesdits programmes de traitement à tester, - une mémoire pour stocker des résultats obtenus par chacun des programmes de traitement à partir des données initiales, le dispositif comportant une mémoire pour stocker des séquences de résultats pour chacun des programmes de traitement, ces séquences de résultats étant obtenues selon le même programme de séquençage que les données initiales, et une mémoire pour stocker un programme de test de la robustesse de chacun des programmes de traitement relativement au programme de séquençage, tel qu'à chaque unité de temps, les données initiales et les séquences de données initiales sont complétées de sorte que la robustesse de chaque programme de traitement relativement au programme de séquençage est redéfinie à chaque unité de temps. En fonction d'un programme de séquençage donné, le dispositif selon l'invention permet de déterminer lequel des programmes de traitements est ponctuellement le plus robuste, et donc le plus pertinent, au regard de chacune des séquences. Un programme de séquençage approprié permet de mettre en évidence l'existence de fréquences propres à un groupe de données initiales. A chaque unité de temps, le dispositif peut modifier le programme de séquençage en fonction de la nouvelle donnée initiale correspondant à cette unité de temps. Par exemple, le programme de séquençage peut être modifié de manière à créer plus de séquences distinctes au sein d'une population de données initiales afin de répartir ces données en groupes plus fins. A chaque unité de temps, le dispositif peut modifier les programmes de traitement des données initiales en fonction de la nouvelle donnée initiale correspondant à cette unité de temps. Les programmes de traitement peuvent notamment inclure un module pour la correction des valeurs aberrantes de données initiales. Par exemple, un programme de séquençage consiste à regrouper au sein d'une même séquence toutes les données répondant à un même critère. Le programme de séquençage étant appliqué à la fois aux données initiales et aux résultats issus des programmes de traitements, le terme données désigne indistinctement les données initiales et les résultats. Les données prises en compte dans le dispositif sont numériques. Les données appartiennent par exemple à l'ensemble des réels. En variante, on peut également utiliser le dispositif selon l'invention pour des programmes de traitement de données type matricielles ou vectorielles. En particulier, dans le cas où les données sont numériques, le critère de séquençage peut être une borne numérique. Dans ce cas, le programme de séquençage conduit à répartir les données en deux séquences, la première séquence comportant toutes les données inférieures strictement à cette borne numérique, et la deuxième séquence comportant toutes les données supérieures ou égale à cette borne numérique. En variante, le programme de séquençage peut permettre de répartir les données selon une pluralité de séquences, en comportant à cet effet une pluralité de bornes découpant les résultats en ensembles distincts les uns des autres. Le programme de séquençage est conçu de telle sorte qu'une donnée n'appartient qu'à une seule et unique séquence. Selon une autre variante, le programme de séquençage peut consister à regrouper dans une même séquence toutes les successions temporelles d'au moins trois données réparties selon un ordre croissant strict ou décroissant strict. A l'issue d'un tel programme de séquençage les données sont réparties en deux séquences, la première séquence regroupant toutes les données appartenant à une succession temporelle d'au moins trois données croissantes strictes ou décroissantes strictes, toutes les autres données appartenant à la deuxième séquence. Un tel séquençage permet par exemple de séparer les données formant un point d'inflexion pour une fonction représentant ces données en fonction des unités de temps. En particulier, le programme de traitement peut consister à transformer les données initiales en résultats, l'unité de valeur des résultats étant identique à celles des données initiales, de manière à pouvoir appliquer le même programme de séquençage aux données initiales et aux résultats. Le programme de séquençage peut aussi être modifié en fonction des résultats obtenus suite au traitement des données initiales, pour permettre de séquencer de manière équilibrée les données initiales et les résultats. Par exemple, le programme de traitement peut consister à calculer la moyenne mobile exponentielle des données initiales en fonction de l'unité de temps. Selon un mode de réalisation particulier de l'invention, le programme de test permettant de définir la robustesse de la fonction corrélant un programme de traitement relativement à un programme de séquençage consiste à étudier la position de la fonction relativement à un seuil numérique, et ou à déterminer des propriétés de dérivabilité de cette fonction. En particulier, à chaque unité de temps, une suite d'ordres est réalisée par un automate en fonction du programme de traitement le plus robuste déterminé lors de l'unité de temps précédente. Ainsi, lorsque les données initiales sont des données climatologiques, la suite d'ordres exécutés par l'automate peut être d'envoyer un signal d'alerte et vigilance à un organisme agréé par l'état, qui en assurera ensuite la diffusion qui lui semble pertinente. Lorsque les données initiales sont des données de marché, par exemple la valeur d'une action ou d'un portefeuille boursier, une succession d'ordres d'achat et ou de vente de cette action et ou de ce portefeuille seront transmis à un intermédiaire financier pour exécution concrète des ordres sur un marché financier donné. L'invention sera mieux comprise à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Celles-ci ne sont présentées qu'à titre indicatif et nullement limitatif de l'invention. Les figures montrent : - Figure 1 : une vue schématique d'ensemble d'un dispositif de test selon l'invention, - Figure 2 : un diagramme représentant la répartition de données initiales et des résultats d'un programme de traitement en fonction du temps. Le dispositif 100 comporte figure 1 un microprocesseur 1, relié à une interface de pilotage 2 comportant un clavier, un écran et une souris. Le microprocesseur 1 est configuré pour communiquer par exemple par ondes radiofréquences, ou bien par un réseau filaire tel qu'Internet avec une base de données externe 3. Le microprocesseur 1 est relié à une horloge 4 du dispositif 100 définissant une unité de temps, par exemple la journée, l'heure ou la minute, etc, tel qu'à chaque unité de temps, le microprocesseur 1 met en oeuvre une interface d'échange 5 pour prélever les données actualisées de la base de données externe 3. Le dispositif La base de données externe 3 est selon un premier exemple une base de données climatologique. Les données climatologiques qui peuvent en particulier être prélevées, à chaque unité de temps, par le dispositif 100 concernent la température ou la pression atmosphérique d'une région particulière du globe. Selon un deuxième exemple, la base de données externe 3 est une base de données des marchés financiers. Les données qui sont alors prélevées par le dispositif 100 concernent la valeur, à chaque unité de temps, d'une action, et ou d'un portefeuille de titres financiers. Les données prélevées sont appelées données initiales. Chaque donnée initiale est liée à l'unité de temps au cours de laquelle elle a été observée. Le dispositif 100 stocke dans une première mémoire 10, ces données initiales de manière continue. Les données de la mémoire 10 peuvent être disposées dans un tableau à deux colonnes, la première colonne référençant l'unité de temps au cours de laquelle, la donnée initiale référencée dans la deuxième colonne a été observée. Le dispositif 100 comporte une mémoire 20 dans laquelle est stocké au moins un programme de séquençage. A chaque unité de temps, la mémoire 10 est complétée, et le programme de séquençage est mis en oeuvre pour séquencer l'ensemble complété de données initiales. Les séquences de données initiales obtenues à chaque unité de temps sont stockées dans un mémoire 30. A chaque unité de temps, au moins un programme de traitement stocké dans la mémoire 40 est mis en oeuvre pour traiter l'ensemble complété de données initiales. Les résultats issus du procédé de traitement sont stockés dans une mémoire 50. Au cours de la même unité de temps, le programme de séquençage, selon une règle identique à celle précédemment appliqué est mis en oeuvre pour séquencer les résultats. Les séquences de résultats obtenues à chaque unité de temps sont stockées dans une mémoire 60. La figure 2 montre un diagramme comporte une première courbe Cl représentant la répartition au fur et à mesure des unités de temps, des valeurs des données initiales et une deuxième courbe C2 représentant la répartition des résultats au fur et à mesure des unités de temps. En l'occurrence, Figure 2, les résultats correspondent à la moyenne mobile exponentielle des données initiales en fonction de l'unité de temps. Sur la Figure 2, l'application d'un programme de séquençage selon une borne numérique B est représentée. La courbe Cl des données initiales coupe la borne en trois points, il existe alors quatre portions P1, P2, P3 et P4 de séquençage des données initiales. La première et la troisième portion P1 et P3 appartiennent à la première séquence, et la deuxième et la quatrième séquence P2 et P4 appartiennent à une seconde séquence. En revanche, comme cela est visible Figure 2, l'application de la même règle de séquençage conduit à répartir la courbe des résultats C2 en deux portions successives correspondant à chacune des deux séquences ainsi formées. Une fois ce séquençage effectué pour les données initiales et les résultats, le dispositif 100 permet de tester la robustesse d'un programme de traitement donné relativement au programme de séquençage, grâce à un programme de test stocké dans une mémoire 70 et mis en oeuvre par le microprocesseur. Le programme de test consiste dans un premier temps à déterminer la fonction qui définit la corrélation entre les résultats de chacune des séquences en fonction des données initiales contenues dans les séquences répondant respectivement aux mêmes critères. Cette fonction est appelée fonction de corrélation entre un programme de traitement relativement à un programme de séquençage. Dans un deuxième temps, le programme de test consiste à comparer la fonction ainsi obtenue relativement à une fonction affine, et ou à étudier la dérivabilité de cette fonction en tous points, et le cas échéant la dérivabilité en tous points de la dérivé de cette fonction. Par exemple, un programme de traitement est considéré comme robuste relativement à un programme de séquençage lorsque la fonction définie ci-dessus répond à l'un au moins des critères suivants : - la fonction est en tous points supérieure à une fonction affine déterminée, et ou - la fonction est dérivable continue en tous points et sa dérivée est également dérivable continue en tous points. Lorsqu'un programme de traitement est confirmé comme robuste à chaque nouvelle unité de temps, pour une séquence de données particulières, il sera préféré pour extrapoler et déterminer la valeur de la donnée initiale qui sera observée lors de l'unité de temps à venir. REVENDICATIONS 1 û Dispositif (100) de test dynamique de programmes de traitement de données comportant - un microprocesseur (1), - une horloge (4) définissant une unité de temps, - une interface (5) d'échange pour prélever à chaque unité de temps des données initiales dans une base de données externe (3), ces données initiales étant variables dans le temps - une mémoire (10) pour stocker les données initiales de chaque unité de temps, - une mémoire (20) comportant au moins un programme de séquençage des données initiales, - une mémoire (30) pour stocker des séquences de données initiales obtenues à partir du programme de séquençage, - une mémoire (40) comportant lesdits programmes de traitement à tester, - une mémoire (50) pour stocker des résultats obtenus par chacun des programmes de traitement à partir des données initiales, caractérisé en ce qu'il comporte une mémoire (60) pour stocker des séquences de résultats pour chacun des programmes de traitement, ces séquences de résultats étant obtenues selon le même programme de séquençage que les données initiales, et une mémoire (70) pour stocker un programme de test de la robustesse de chacun des programmes de traitement relativement au programme de séquençage, tel qu'à chaque unité de temps, les données initiales et les séquences de données initiales sont complétées de sorte que la robustesse de chaque programme de traitement relativement au programme de séquençage est redéfinie à chaque unité de temps. 2 û Dispositif selon la revendication 1, dans lequel à chaque unité de temps, le programme de séquençage est modifié en fonction de la nouvelle donnée initiale correspondant à cette unité de temps. 83 û Dispositif selon les revendications 1 ou 2, dans lequel à chaque unité de temps, les programmes de traitement des données initiales sont modifiés en fonction de la nouvelle donnée initiale correspondant à cette unité de temps. 4 û Dispositif selon l'une quelconque des revendications précédentes dans lequel un programme de séquençage consiste à regrouper au sein d'une même séquence toutes les données répondant à un même critère. û Dispositif selon la revendication 4 caractérisé en ce que ce critère est une borne numérique (B. 6 Dispositif selon la revendication 4 caractérisé en ce que ce le programme de séquençage a pour objet de regrouper toutes les successions temporelles d'au moins trois données réparties selon un ordre croissant strict ou décroissant strict. 7 û Dispositif selon l'une quelconque des revendications précédentes, dans lequel le programme de traitement consiste à transformer les données initiales en résultats, l'unité de valeur des résultats étant identique à celles des données initiales, de manière à pouvoir appliquer le même programme de séquençage aux données initiales et aux résultats. 8 û Dispositif selon l'une quelconque des revendications précédentes, dans lequel le programme de traitement consiste à calculer la moyenne mobile exponentielle des données initiales en fonction de l'unité de temps. 9 -Dispositif selon l'une quelconque des revendications précédentes, dans lequel le programme de test permettant de définir la robustesse de la fonction corrélant un programme de traitement relativement à un programme de séquençage consiste à étudier la position de la fonction relativement à un seuil numérique, et ou à déterminer des propriétés de dérivabilité de la fonction. û Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce qu'à chaque unité de temps, une suite d'ordres est réalisée parun automate en fonction du programme de traitement le plus robuste déterminé lors de l'unité de temps précédente.