Brevet FR3057372A1 — publié le 20180413

Machine stochastique modulaire et procédé associé DOMAINE TECHNIQUE DE L'INVENTION La présente invention concerne une machine stochastique modulaire. L'invention se rapporte également à un procédé de calcul de probabilités correspondant. ARRIERE-PLAN TECHNOLOGIQUE Une machine stochastique modulaire trouve des applications dans tous les domaines faisant intervenir de nombreux calculs de probabilités. Il s'agit, par exemple, 10 des domaines relatifs aux marchés financiers, à la modélisation économique ou à la prévision météorologique. En particulier, une machine stochastique modulaire permet de résoudre des problèmes généralement résolus par la méthode de Monte-Carlo par chaînes de Markov. Pour le cas de la finance, par exemple, les prix des actifs sont représentés comme 15 la solution d'une équation différentielle stochastique. L'évaluation des produits dérivés sur de tels actifs repose, dans certains cas, sur des méthodes d'approximation d'une solution de l'équation différentielle stochastique par une chaîne de Markov discrète combinée avec la méthode de Monte-Carlo. Actuellement, dans les domaines faisant intervenir de nombreux calculs de 20 probabilités, des microprocesseurs classiques sont utilisés, généralement au sein de systèmes informatiques de type Von Neumann. Dans un tel cas, des instructions logicielles sont mémorisées dans une mémoire séparée du microprocesseur. Celui-ci est propre à exécuter, par lecture dans la mémoire, des instructions logicielles en fonction de commandes reçues. 25 Les microprocesseurs classiques présentent comme avantage de pouvoir exécuter différentes opérations pour résoudre des problèmes calculatoires de natures différentes. Par « microprocesseur classique », il est entendu un microprocesseur traitant des informations présentées sous une forme déterministe, par exemple au moyen de bits 30 correspondant à des mots numériques prédéfinis, en opposition avec une représentation sous forme probabiliste. Toutefois, les microprocesseurs classiques utilisés dans les systèmes informatiques actuels connaissent une limite physique en termes de vitesse de calcul causée par des limitations en termes de cadencement des horloges et de miniaturisation 35 des composants. 3057372 2 Par ailleurs, il est connu des structures de microprocesseurs dits stochastiques permettant de lever certaines contraintes posées par les architectures déterministes existantes. Toutefois, de telles structures ne permettent pas d'effectuer de manière efficace et flexible tous les calculs de probabilités. En particulier, la possibilité d'utiliser une même structure pour résoudre des problèmes distincts n'est pas aujourd'hui abordée. Dit autrement, une structure correspond à un calcul particulier de probabilités donné et ne peut pas être utilisée pour des calculs différents. Il existe donc un besoin de disposer d'une structure de microprocesseur stochastique propre à résoudre différents problèmes de calcul de probabilités, tout en s'affranchissant des verrous technologiques d'un fonctionnement déterministe. RESUME DE L'INVENTION A cet effet, il est proposé une machine stochastique modulaire propre à effectuer des calculs de probabilités sur des flux de bits stochastiques. La machine comprend au moins un module de distribution stochastique correspondant à une pluralité de variables aléatoires, le module de distribution stochastique étant propre à recevoir en entrée des valeurs de variables aléatoires spécifiées parmi la pluralité de variables aléatoires, et à retourner en sortie une représentation de la distribution de probabilités d'au moins une variable aléatoire non spécifiée conditionnée par les valeurs de variables aléatoires spécifiées reçues en entrée. La machine comprend également au moins deux modules de variable stochastique, chaque module de variable stochastique correspondant à une seule variable aléatoire. Chaque module de variable stochastique comprend un multiplieur stochastique et un normalisateur proportionnel stochastique. Un multiplieur stochastique est propre à recevoir en entrée des représentations d'une première distribution de probabilités et d'une deuxième distribution de probabilités d'une même variable aléatoire, et à retourner en sortie une représentation de la distribution de probabilités produit de ladite variable aléatoire. Un normalisateur proportionnel stochastique est propre à recevoir en entrée une représentation sous forme de bits d'une distribution de probabilités, et à retourner en sortie une représentation proportionnellement normalisée de la distribution de probabilités reçue, la représentation proportionnellement normalisée comprenant plus de bit à 1 que la représentation reçue en entrée. Suivant des modes de réalisation particuliers, la machine comprend une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : 3057372 3 - le module de distribution stochastique et les modules de variable stochastique comprennent des générateurs de bits stochastiques, chaque générateur de bits stochastiques étant propre à générer un flux de bits stochastiques dont la probabilité d'occurrence de bits à 1 est proportionnelle à une valeur mémorisée dans le générateur 5 de bits stochastiques. - le module de distribution stochastique comprend autant de générateurs de bits stochastiques que de combinaisons possibles des différentes valeurs de la pluralité de variables aléatoires. - la représentation de la distribution de probabilités retournée en sortie du module 10 de distribution stochastique est générée à partir de valeurs de probabilités conjointes ou conditionnelles mémorisées dans le module de distribution stochastique. - une représentation d'une distribution de probabilités sur une variable aléatoire est une série temporelle de vecteurs de bits stochastiques dits échantillons-vecteurs, chaque échantillon-vecteur comprenant autant de coordonnées que le cardinal de la variable 15 aléatoire, le nombre de bits à 1 dans la série temporelle pour les coordonnées d'un même rang étant proportionnel à la valeur de probabilité correspondant audit rang. - les vecteurs de bits stochastiques sont des échantillons-valeurs, un échantillon-valeur ne comprenant qu'un seul bit à 1. - chaque module de variable stochastique comprend un échantillonneur 20 stochastique propre à être activé et désactivé, un échantillonneur stochastique étant propre à prendre en entrée des échantillons-vecteurs représentant une distribution de probabilités, et à retourner en sortie des échantillons-valeurs représentant la même distribution de probabilités. - chaque module de variable stochastique est adapté pour fonctionner selon un 25 régime, dit régime déterministe, dans lequel le module de variable stochastique est propre à délivrer une représentation d'une valeur fixée de la variable aléatoire. - chaque module de variable stochastique est connecté au module de distribution stochastique par un bus de données, chaque bus de données comprenant autant de fils que le cardinal de la variable aléatoire correspondant au module de variable stochastique. 30 Il est également proposé un procédé de calcul de probabilités à réaliser sur au moins deux variables aléatoires. Le procédé comprend les étapes de : - de fourniture d'une machine stochastique modulaire comprenant : + au moins un module de distribution stochastique correspondant à une pluralité de variables aléatoires, le module de distribution stochastique étant 35 propre à recevoir en entrée des valeurs de variables aléatoires spécifiées parmi la pluralité de variables aléatoires, et à retourner en sortie une 3057372 4 représentation de la distribution de probabilités d'au moins une variable aléatoire non spécifiée conditionnée par les valeurs de variables aléatoires spécifiées reçues en entrée, et + au moins deux modules de variable stochastique, chaque module de 5 variable stochastique correspondant à une seule variable aléatoire et comprenant : ++ un multiplieur stochastique propre à recevoir en entrée des représentations d'une première distribution de probabilités et d'une deuxième distribution de probabilités d'une même variable aléatoire, et à 10 retourner en sortie une représentation de la distribution de probabilités produit de ladite variable aléatoire, et ++ un normalisateur proportionnel stochastique propre à recevoir en entrée une représentation sous forme de bits d'une distribution de probabilités, et à retourner en sortie une représentation 15 proportionnellement normalisée de la distribution de probabilités reçue, la représentation proportionnellement normalisée comprenant plus de bit à 1 que la représentation reçue en entrée, une représentation d'une distribution de probabilités sur une variable aléatoire étant une série temporelle de vecteurs de bits stochastiques dits échantillons- 20 vecteurs, chaque échantillon-vecteur comprenant autant de coordonnées que le cardinal de la variable aléatoire, le nombre de bits à 1 dans la série temporelle pour les coordonnées d'un même rang étant proportionnel à la valeur de probabilité correspondant audit rang, les vecteurs de bits stochastiques étant des échantillons-valeurs, un 25 échantillon-valeur ne comprenant qu'un seul bit à 1, chaque module de variable stochastique comprenant un échantillonneur stochastique propre à être activé et désactivé, un échantillonneur stochastique étant propre à prendre en entrée des échantillons-vecteurs représentant une distribution de probabilités, et à retourner en sortie des échantillons-valeurs 30 représentant la même distribution de probabilités, chaque module de variable stochastique étant adapté pour fonctionner selon un régime, dit régime déterministe, dans lequel le module de variable stochastique est propre à délivrer une représentation d'une valeur fixée de la variable aléatoire, et 35 la machine comprenant autant de modules de variables stochastiques que de variables aléatoires sur lesquelles est réalisé le calcul ; 3057372 5 - d'activation ou de désactivation d'un échantillonneur stochastique d'au moins un module de variable stochastique en fonction du calcul de probabilités à réaliser ; - de configuration éventuelle d'un module de variable stochastique pour que le module de variable stochastique fonctionne selon le régime déterministe, et 5 - de connexion ou de déconnexion de bus de données entre certains modules de variable stochastique et certains modules de distribution stochastique en fonction du calcul de probabilités à réaliser. Suivant des modes de réalisation particuliers, le procédé de calcul comprend une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les 10 combinaisons techniquement possibles : - l'étape de fourniture d'une machine stochastique modulaire comprend une sous-étape de détermination d'un nombre de modules de distribution stochastique. - l'étape de fourniture d'une machine stochastique modulaire comprend une sous-étape de détermination d'un nombre de modules de variable stochastique. 15 - l'étape de fourniture d'une machine stochastique modulaire comprend une sous- étape de détermination d'un nombre de bus de données. - l'étape de fourniture d'une machine stochastique modulaire comprend la mise en oeuvre d'un algorithme d'optimisation du nombre de modules de distribution stochastique, du nombre de modules de variable stochastique, du nombre de bus de données et de 20 l'agencement des modules de distribution stochastique, des modules de variable stochastique et des bus de données. BREVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la 25 description qui suit de modes de réalisation de l'invention, donnée à titre d'exemple uniquement et en référence aux dessins qui sont : - figure 1, une représentation schématique d'un ensemble de composants permettant de réaliser une machine stochastique modulaire ; - figure 2, une représentation schématique d'un exemple de module de distribution 30 stochastique ; - figure 3, une représentation schématique d'un exemple de module de variable stochastique ; - figure 4, une représentation schématique d'un exemple de multiplieur stochastique ; 35 - figure 5, une représentation schématique d'un exemple de normalisateur proportionnel stochastique ; 3057372 6 - figure 6, une représentation schématique d'un exemple de machine stochastique modulaire, et - figure 7, un exemple de configuration de la machine stochastique modulaire de la figure 6 pour effectuer un calcul de probabilités. 5 DESCRIPTION DETAILLEE DE MODES DE REALISATION Une machine stochastique modulaire est un arrangement de composants de différents types. Le choix du type de composant, du nombre de composants ainsi que de l'agencement des composants est fonction d'un calcul de probabilités à réaliser. 10 Un ensemble de composants permettant de réaliser une machine stochastique modulaire est représenté sur la figure 1. Comme visible sur la figure 1, l'ensemble de composants comprend trois types de composants, à savoir un module de distribution stochastique, un module de variable aléatoire, et un bus de données. 15 Dans ce qui suit, un module de distribution stochastique est désigné par le sigle SD de l'anglais « Stochastic Distribution », un module de distribution stochastique est désigné par le sigle SV de l'anglais « Stochastic Variable » et un bus de données est désigné par le sigle BD. Dans ce qui suit, chaque composant est décrit indépendamment les uns des 20 autres en référence aux figures 2 à 5. Puis un exemple de machine stochastique modulaire est présenté en référence à la figure 6. Enfin, un exemple de mise en oeuvre du procédé de calcul de probabilités est décrit en référence à la figure 7. Préalablement à la description des figures 2 à 7, les notations utilisées et des généralités sont présentées. 25 1 - Notations Les notations suivantes sont utilisées dans la présente description : 30 - X désigne une variable aléatoire discrète et finie. - nX désigne le cardinal de la variable aléatoire X, c'est-à-dire le nombre de valeurs possibles prises par la variable aléatoire X. 35 - xn désigne les valeurs prises par la variable aléatoire X. 3057372 7 - P(X) désigne une distribution de probabilités sur la variable aléatoire X, c'est-à-dire les valeurs de probabilités en fonction des valeurs possibles de la variable aléatoire X. 5 - P([X = xi]) désigne la probabilité que la variable aléatoire X soit égale à la valeur xi. - P(X1,X2, ...4) désigne la distribution de probabilités conjointe sur les variables aléatoires Xi, X2, ... 10 - P(XilXi) désigne la probabilité conditionnelle de la variable aléatoire Xi sachant la variable aléatoire Xi. 2 - Généralités 15 En informatique déterministe, et en particulier dans les microprocesseurs classiques, une information est classiquement représentée sous forme d'octets ou, plus généralement, sous forme de mots numériques formés d'un nombre de bits fixés. Dans ce qui suit, à l'inverse de l'informatique déterministe, une information est 20 représentée sous forme de flux de bits stochastiques. Un « flux de bits stochastiques » est un ensemble de bits, chaque bit prenant par définition la valeur 1 ou la valeur 0. Un bit prenant la valeur 1 est désigné par l'expression « bit à 1 ». Un flux de bits stochastiques est généré par un générateur de bits stochastiques, 25 désigné par la suite par le sigle SBG de l'anglais « Stochastic Bit Generator ». Un SBG est un dispositif physique qui comprend une mémoire destinée à mémoriser une valeur, le SBG étant propre à générer un flux de bits dont la probabilité d'être à 1 est proportionnelle à la valeur mémorisée. Dit autrement, un « ratio de bits à 1 » d'un flux de bits stochastiques désignant le nombre de bits à 1 divisé par le nombre total 30 de bits du flux, le ratio de bits à 1 est proportionnel à la valeur mémorisée. Un SBG est, par exemple, réalisé en utilisant les propriétés stochastiques des jonctions à tunnel magnétique. Une jonction magnétique à effet tunnel est, sous sa forme la plus simple, une mince barrière isolante, n'excédant généralement pas 1 à 2 nanomètres, entre deux 35 électrodes conductrices. Le passage d'un courant électrique se fait par effet tunnel à travers cette barrière, l'effet tunnel désignant la propriété que possède un objet quantique 3057372 8 de franchir une barrière de potentiel même si l'énergie de l'objet quantique est inférieure à l'énergie minimale requise pour franchir cette barrière. A température ambiante, une jonction super-paramagnétique à effet tunnel oscille de manière stochastique entre un état parallèle et un état antiparallèle. Il en résulte des changements aléatoires de la 5 résistance du nano-composant pouvant être utilisés pour engendrer des bits stochastiques. Une distribution de probabilités P(X) sur une variable aléatoire X est représentée par une série temporelle de vecteurs de bits stochastiques appelés échantillons-vecteurs. Un vecteur comprend un ensemble de coordonnées correspondant chacune à un 10 rang. Chaque coordonnée est un bit. Dans ce qui suit, i étant un entier, la coordonnée de rang i est indifféremment désignée par la i-ème coordonnée et désigne indifféremment le i-ème bit ou le bit de rang i. Chaque échantillon-vecteur comprend autant de coordonnées que de valeurs 15 possibles pour la variable aléatoire. Formellement, pour une variable aléatoire X de cardinal nX prenant les valeurs xi, x2, ... xi", les échantillons-vecteurs comprennent n coordonnées et la coordonnée de rang i correspond à la situation dans laquelle la variable aléatoire X est susceptible de prendre la valeur xi. En particulier, la coordonnée de rang i est un bit à 1 lorsque la variable aléatoire X prend la valeur xi. 20 De plus, le ratio de bits à 1 dans la série temporelle pour les coordonnées d'un même rang par rapport au nombre de bits total est proportionnel à la probabilité de la valeur correspondant audit rang. Il est représenté ci-dessous un tableau 1 illustrant un exemple de 20 échantillons-vecteurs représentatifs de la distribution de probabilités P([X = x1]) = 0,1 ; P([X = x2]) 25 0,5 et P([X = x3]) = 0,4 : P([x=x11) ol000ll000000000l000 P([X = x2]) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 P([X = x3]) 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 Tableau 1 30 Comme visible sur le tableau 1, le ratio de bits à 1 est de;2 = 0,2 pour les coordonnées de rang 1, de 2200 = 1 pour les coordonnées de rang 2 et de zo = 0,8 pour les coordonnées de rang 3. 3057372 9 La somme des ratios de bits à 1 étant égale à 0,2 + 1 + 0,8 = 2, une normalisation par un facteur 2 permet d'obtenir les valeurs de 0,1 pour la première ligne, 0,5 pour la deuxième ligne et 0,4 pour la troisième ligne. Alternativement, les vecteurs de bits stochastiques d'une série temporelle 5 représentant une distribution de probabilités P(X) sont des échantillons-valeurs. Par définition, un échantillon-valeur ne comprend qu'un seul bit à 1. Il est représenté ci-dessous un tableau 2 illustrant un exemple de 20 échantillons-valeurs représentatifs de la même distribution de probabilités que dans le cas du tableau 1, à savoir la distribution de probabilités P ([X = 0]) = 0,1 ; P([X = 1]) = 0,5 et 10 P([X = 2]) = 0,4 : P([X=x11) 0 1 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 P([X=x2]) 10 0 010110 0 0 0111010 11 P ([X = x3]) 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 Tableau 2 15 Comme visible sur le tableau 2, le ratio d'occurrence de bits à 1 est de 2-2 0 = 0,1 pour les coordonnées de rang 1, de 1-.2 = 0,5 pour les coordonnées de rang 2 et de 280 0 , 4 pour les coordonnées de rang 3. De fait, les ratios de bits à 1 sont respectivement égaux aux valeurs de de la distribution de probabilités représentée. Une valeur déterministe, c'est-à-dire le cas particulier où la variable aléatoire est 20 connue, est représentée par une série temporelle d'échantillons-valeurs tous identiques où, pour chaque échantillon-valeur, la coordonnée correspondant à la valeur de la variable aléatoire est un bit à 1, les autres coordonnées étant des bits à 0. Par exemple, comme représenté par un tableau 3 ci-dessous, la variable aléatoire X prenant la valeur X = x3 est représentée par la série temporelle d'échantillons-valeurs 25 suivante : P([X=x11) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P([X=x2]) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P ([X = x3]) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Tableau 3 3057372 10 Alternativement, les échantillons-valeurs sont remplacés par des bits codant une information donnée, comme en informatique classique déterministe. Les composants de l'ensemble de composants représenté sur la figure 1 5 permettant de réaliser une machine stochastique modulaire sont à présent décrits. 3 - Le module SD 3.1 - Structure d'un module SD 10 Un module SD correspond à une pluralité de variables aléatoires. Par « pluralité de variables aléatoires », il est entendu au moins deux variables aléatoires. Un module SD correspond, par exemple à deux variables aléatoires. 15 Un module SD correspond, par exemple au moins vingt variables aléatoires. Un module SD est propre à recevoir en entrée des valeurs de variables aléatoires spécifiées parmi la pluralité de variables aléatoires, et à retourner en sortie une représentation de la distribution de probabilités d'au moins une variable aléatoire non spécifiée conditionnée par les valeurs de variables aléatoires spécifiées reçues en entrée. 20 Dit autrement, un module SD correspondant aux variables aléatoires X1,X2, est propre à retourner en sortie, par exemple, une représentation de la distribution de probabilités suivante : P(X7,1xi, x2, ...xn_1) 25 où xi, x2, ....xn_i correspondant aux valeurs respectivement prises par les variables aléatoires Xi, X2, ... Xn_1 spécifiées. Dans des modes de réalisation, un module SD est, par exemple, propre à recevoir en entrée n - 1 échantillons-valeurs représentant respectivement les valeurs xi, x2, ...xn_1 de variables aléatoires X1,X2, spécifiées et est propre à retourner en sortie des 30 échantillons-vecteurs de la distribution de probabilités P(X,Ix1,x2,....xn_1). En outre, un module SD comprend une pluralité de SBG. En particulier, le module SD comprend autant de SBG que de combinaisons possibles des différentes valeurs de la pluralité de variables aléatoires. 3057372 11 Par exemple, un module SD correspondant à deux variables aléatoires X, Y prenant chacune deux valeurs (x,x') et (y, y') comprend quatre SBG puisqu'il y a quatre combinaisons possibles qui sont (x, y), (x, y'), (x', y) et (x', yr). La représentation de la distribution de probabilités retournée en sortie du module 5 SD est générée à partir de valeurs de probabilités conjointes ou conditionnelles mémorisées dans le module SD. En particulier, chaque SBG est propre à mémoriser dans la mémoire du SBG une valeur de probabilité conjointe sur plusieurs variables aléatoires pour générer un flux de bits stochastiques représentatif de la valeur mémorisée. 10 Un module SD comprend également un système de contrôle propre à activer les sorties des SBG correspondant à des valeurs de variables aléatoires spécifiées. A titre d'illustration, à la réception en entrée d'un échantillon-valeur représentant l'information Yi = y1, le système de contrôle est propre à sélectionner les sorties des SBG correspondant à des valeurs de probabilités sachant notamment que la variable aléatoire 15 Yi est fixée à la valeur yi. Dans ce cas, les sorties des SBG correspondant aux valeurs de probabilités sachant que la variable aléatoire Yi est fixée à des valeurs yi différentes sont désactivées et les SBG correspondant ne génèrent alors aucun flux de bits stochastiques. Avantageusement, lorsqu'un SBG est désactivé, il est propre à ne générer que 20 des bits à 1. Cela présente l'avantage de générer un flux de bits stochastiques « transparents », notamment lorsqu'un tel flux de bits stochastiques se retrouve en entrée d'une porte logique AND. 3.2 - Fonctionnement d'un module SD 25 Le fonctionnement d'un module SD est décrit en référence à un exemple de module SD représenté sur la figure 2. Le module SD de la figure 2 correspond à deux variables aléatoires X et Y et est propre à mémoriser la distribution de probabilités P(X,Y). 30 Dans ce cas, le module SD comprend nX x nY SBG. nX valant 3 et nY valant 2, le module SD comprend six SBG. Les SBG sont notés SBG;,, i étant un entier variant de 1 à 3, j étant un entier variant de 1 à 2. Le SBG; ,J est propre à générer un flux de bits stochastiques représentatif de la valeur de probabilité P([X = xi,Y = yi]). 35 Dans le présent exemple, la probabilité que la variable aléatoire X prenne la valeur x1 et que la variable aléatoire Y prenne la valeur yi valant 0,2, le SBG1,2 est propre à 3057372 12 générer, une fois que la sortie du SBG1,2 a été activée par le système de contrôle du SBG1,2, un flux de bits stochastiques représentatif de la valeur 0,2. Le module SD de la figure 2 permet également de générer une représentation sous la forme d'une série temporelle d'échantillons-vecteurs de la distribution de 5 probabilités conditionnelle P([XIY = yi]). Le module SD de la figure 2 permet, par exemple, de générer une représentation sous la forme d'une série temporelle d'échantillons-vecteurs de la distribution de probabilités conjointe P([X,Y = yi]). Pour générer une représentation sous la forme d'une série temporelle 10 d'échantillons-vecteurs de la distribution de probabilités conditionnelle P([XIY = le module SD reçoit en entrée l'échantillon-valeur suivant représentatif de l'information Y= P([Y = yil) 1 PUY = y21) 0 15 A la réception de l'échantillon-valeur ci-dessus, le système de contrôle active les entrée des SBG1,1, SBG2,1 et SBG3,1 correspondant respectivement aux valeurs de probabilités P([X = x1, Y = yij), P([X = x2, Y = y1]) et P([X = x3, Y = yi]). Les SBG1,1, SBG2,1 et SBG3,1 sont, dans ce cas, propres à générer une série temporelle de vecteurs de bits stochastiques dont les coordonnées de rang 1 sont 20 formées par le flux de bits stochastiques généré par le SBG1,1, dont les coordonnées de rang 2 sont formées par le flux de bits stochastiques généré par le SBG2,1 et dont les coordonnées de rang 3 sont formées par le flux de bits stochastiques généré par le SBG31. La série temporelle d'échantillons-vecteurs générée par la combinaison des 25 SBG1,1, SBG2,1 et SBG3,1 représente alors la distribution de probabilités P([X,Y 371l) recherchée. 4 - Le module SV 30 4.1 - Structure d'un module SV Un module SV correspond à une seule variable aléatoire. En particulier, chaque module SV correspond à une variable aléatoire choisie parmi la pluralité de variables aléatoires correspondant à un module SD. 3057372 13 Chaque module SV est propre à être connecté à au moins un module SD par un bus de données propre à assurer la transmission de bits stochastiques. Les bus de données SD sont décrits plus en détails par la suite. Dans certains modes de réalisation, un module SV n'est connecté qu'au(x) 5 module(s) SD correspondant(s) à une pluralité de variables aléatoires, la pluralité de variables aléatoires contenant la variable aléatoire correspondant au module SV. Un module SV comprend un multiplieur stochastique, désigné par la suite par le sigle SPO de l'anglais « Stochastic Product Operator », et un normalisateur proportionnel stochastique, désigné par la suite par le sigle SPN de l'anglais « Stochastic Proportional 10 Normalisator ». Dans certains modes de réalisation, comme visible sur la figure 3, un module SV comprend également un échantillonneur stochastique, désigné par la suite par le sigle SPS de l'anglais « Stochastic Proportional Sampler ». Comme visible sur la figure 3, un module SV correspondant à la variable aléatoire 15 X prenant les valeurs x1, x2, ..., xn est propre à recevoir en entrée des d'échantillons- vecteurs représentatifs d'une pluralité de distribution de probabilités différentes P1(X),P2(X), ...,Pk(X) de la variable aléatoire X pour générer en sortie une représentation sous la forme d'une série temporelle proportionnellement normalisée d'échantillons-vecteurs d'une distribution de probabilités P(X) de ladite variable aléatoire X. 20 Lorsqu'un module SV comprend un SPS activé, le module SV est propre à générer en sortie une représentation sous la forme d'une série temporelle proportionnellement normalisée d'échantillons-valeurs d'une distribution de probabilités P(X) de ladite variable aléatoire X. Dans un tel cas, il est dit que le module SV est propre à retourner une série temporelle d'échantillons représentatifs de valeurs échantillonnées de la variable aléatoire 25 correspondant audit module SV. En particulier, la représentation de la distribution de probabilités générée en sortie du module SV est la représentation proportionnellement normalisée de la distribution de probabilités produit des distributions de probabilités reçues en entrée. En outre, le module SV est adapté pour fonctionner selon un régime, dit régime 30 déterministe, dans lequel le module SV délivre des flux de bits stochastiques représentatifs d'une valeur fixée pour une variable aléatoire. Par exemple, si la variable aléatoire X de cardinal nX = 3 est fixée à la valeur X = x2, la variable aléatoire est dite déterministe et le module SV est configuré pour fonctionner en régime déterministe. Dans un tel cas, le module SV retourne en sortie les 35 échantillons-valeurs suivants : 3057372 14 P([X=x11)0 00 0 0 00 0 0 00 0 0 0 0 0 0 0 0 ... P ([X = x2]) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... P([X=x3]) 0 00 0 0 00 0 0 00 0 0 0 0 0 0 0 0 ... Les composants formant un module SV sont à présent décrits. Pour faciliter la compréhension, il est considéré dans ce qui suit que le module SV est d'une part propre à recevoir une première et une deuxième distributions de 5 probabilités sur la variable aléatoire X qui sont respectivement notées P1(X) et P2(X), et d'autre part propre à générer la distribution de probabilités produit notée P(X) des distributions de probabilités P1(X) et P2(X). L'homme du métier comprendra que ce qui suit s'applique de façon analogue au cas où le module SV reçoit plus de deux distributions de probabilités. Par exemple, dans 10 le cas où un module SV reçoit trois distributions de probabilités, le module SV est, par exemple, un arrangement en cascade de deux modules SV tels que décrits ci-dessous. Les composants formant un module SV sont à présent décrits indépendamment les uns des autres. 15 4.1.1 - Description d'un SPO Un exemple de SPO est représenté sur la figure 4. Le SPO est propre à recevoir en entrée des représentations sous forme d'échantillons-vecteurs respectivement de la première distribution de probabilités P1(X) et 20 de la deuxième distribution de probabilités P2(X) pour retourner en sortie une représentation de la distribution de probabilités produit de la même variable aléatoire X. Le SPO comprend des portes logiques AND correspondant chacune à une valeur possible de la variable aléatoire X. Une porte logique AND est un composant implémentant la fonction « ET ». La 25 fonction « ET » est un opérateur logique de l'algèbre de Boole qui prend en entrée deux opérandes prenant la valeur VRAI ou la valeur FAUX et qui retourne la valeur VRAI si et seulement si les deux opérandes ont la valeur VRAI. Une porte logique est, par exemple, un composant électronique comprenant en entrée deux bornes alimentées soit par une tension nulle, soit par une tension valant 5 V et qui comprend une sortie présentant une 30 tension nulle ou égale à 5 V. La valeur de tension 5 V correspond à la valeur VRAI, c'est- à-dire un bit à 1, et la valeur de tension nulle correspond à la valeur FAUX, c'est-à-dire à un bit à 0. Dans ce cas, la tension en sortie vaut 5 V si et seulement si les tensions en entrée sont toutes les deux égales à 5 V. 3057372 15 Comme visible sur la figure 4, le SPO comprend trois portes AND notées AND1, AND2, et AND3. I étant un entier variant de 1 à 3, la porte AND; correspondant à la valeur xi de la variable aléatoire X. Pour l'indice i variant de 1 à 3, la porte AND, reçoit un premier flux de bits 5 stochastiques représentatif de la valeur P1(X = xi) et un deuxième flux de bits stochastiques représentatif de la valeur P2 (X = xi). La porte AND; effectue un à un le produit des bits de chacun des flux reçus pour retourner en sortie un flux de bits stochastiques représentatif de la valeur P1(X = xi )P2 (X = xi). 10 De fait, comme visible sur la figure 4, le SPO est propre à générer une série temporelle d'échantillons-vecteurs qui se représente sous la forme : X = x1 P1(X = x1)P2(iv = x1) X = x2 P1(X = x2)P2(X = x2) X = x3 P1(x. = x3)P2(X = x3) Il résulte des différents produits de probabilités P1(X = xi)P2(X = xi) que les 15 échantillons-vecteurs en sortie du SPO comprennent nécessairement moins de bits à 1 que les échantillons-vecteurs représentant respectivement les distributions de probabilités P1(X) et P2 (X). Ce phénomène, appelé dilution temporelle, est susceptible de provoquer un ralentissement des calculs puisque le temps nécessaire pour évaluer les ratios de bits à 1 20 sur un flux de bits stochastiques augmente. Dit autrement, l'évaluation de la probabilité d'occurrence de bits à 1 nécessite des flux de bits stochastiques de plus en plus longs. 4.1.2- Description d'un SPN 25 Un SPN est propre à recevoir en entrée une représentation sous forme de bits d'une distribution de probabilités P(X), et à retourner en sortie une représentation proportionnellement normalisée de la distribution de probabilités reçue, la représentation proportionnellement normalisée comprenant plus de bit à 1 que la représentation reçue en entrée. 30 En particulier, la coordonnée de rang i des échantillons-vecteurs de la représentation proportionnellement normalisée a une probabilité d'être à 1 proportionnelle à la valeur de la probabilité P([X = xi]). 3057372 16 L'ajout de bits à 1 est effectué de manière proportionnelle, c'est-à-dire que les rapports entre les ratios de bits à 1 pour différents rangs des échantillons-vecteurs sont inchangés. Un SPN est notamment adapté pour pallier la problématique de la dilution 5 temporelle. Dans le cas d'un module SV, la sortie du SPO est connectée à l'entrée du SPN et les échantillons-vecteurs reçus en entrée du SPN sont les échantillons-vecteurs retournés en sortie du SPO. Un exemple de SPN est représenté sur la figure 5. 10 Selon l'exemple de la figure 5, le SPN représenté est propre à générer des échantillons-vecteurs représentatifs de la distribution de probabilités P(X) dont les coordonnées correspondant à la probabilité maximum de la distribution de probabilités P(X) sont tous des bits à 1. La figure 5 illustre le cas particulier d'une variable aléatoire X prenant trois valeurs 15 x1,x2, x3 et d'une distribution de probabilités P(X) sur la variable aléatoire X définie de la façon suivante : P([X = x1]) = 0,1 P([X = x2]) = 0,1 20 P([X = x3]) = 0,8 Le SPN comprend trois SBG notés SBG1, SBG2 et SBG3 correspondant respectivement aux valeurs X = x1, X = x2 et X = x3. Chaque SBG correspondant à une valeur de la variable aléatoire X reçoit un flux 25 de bits stochastiques correspondant aux coordonnées, dans les échantillons-vecteurs reçus, correspondant à cette même valeur de la variable aléatoire X. Pour i variant de 1 à 3, le SBG, reçoit les coordonnées de rang i des échantillons-vecteurs représentatifs de la distribution de probabilités P(X), c'est-à-dire les coordonnées correspondant au cas où X = xi. 30 En outre, chaque SBG1, SBG2 et SBG3 comprend un compteur noté respectivement C1, C2 et C3. Les compteurs C1, C2 et C3 ont tous la même capacité, notée Nmax. Chaque compteur C1, C2 et 03 est propre à s'incrémenter à la réception d'un bit à 1. Pour i entier variant de 1 à 3, le nombre d'incrémentations d'un compteur C, est noté Ni 35 et est appelé le contenu du compteur C. Le compteur C1 est dit rempli lorsque Ni = Nmax- 3057372 17 Dans l'exemple de la figure 5, le SPN recevant des échantillons-vecteurs représentatifs de la distribution de probabilités P(X), les compteurs C1, C2 et C3 sont incrémentés jusqu'à ce qu'un compteur soit rempli. Une fois qu'un compteur est rempli, le SPN est propre à arrêter l'incrémentation 5 des autres compteurs. Dans le présent exemple, la probabilité maximum de la distribution de probabilités P(X) correspond au cas où X = x3. De fait, le compteur C3 du SBG3 correspondant au cas où X = x3 est le compteur qui est le premier rempli. Le SPN ayant arrêté l'incrémentation des autres compteurs, chaque SBG, génère 10 des flux de bits stochastiques avec pour probabilité d'avoir un bit à 1 égale au contenu Ni du compteur C, divisé par la capacité Nmax des compteurs. Dans le présent exemple, il est considéré que la capacité Nmax des compteurs vaut 200. Le SPN arrête l'incrémentation des autres compteurs lorsque, par exemple, les 15 contenus des compteurs sont les suivants : N1= 25 N2 = 25 N3 = 200 = Nmax 20 Les ratios de bits à 1 des premières, deuxièmes et troisièmes coordonnées valent respectivement : 25 = 0,125 200 25 = 0,125 200 25 200 200 30 En normalisant par la valeur 0,125 + 0,125 + 1 = 1,25, il est obtenu : 0,125 PaX xi,]) .= 0,1 1,25 P([X = x2]) = 0,125 = 0,1 1,25 P([X = x3]) = 1,25 = 0,8 Comme visible sur cette exemple, les échantillons-vecteurs en sortie du SPN représentatifs de la distribution de probabilités P(X) comprennent plus de bits à 1 que les 3057372 18 échantillons-vecteurs en entrée du SPN représentatifs de la même distribution de probabilités P(X). L'ajout de bits à 1 présente donc pour avantage de réduire la dilution temporelle. Selon d'autres variantes, le SPN comprend également des compteurs qui, à la 5 différence de l'exemple précédemment décrit, sont propres à se décrémenter lorsque leur capacité est atteinte et que le bit à générer est à 1. 4.1.3 - Description d'un SPS 10 Un SPS est propre à recevoir des échantillons-vecteurs formant une représentation proportionnellement normalisée d'une distribution de probabilités pour retourner en sortie des échantillons-valeurs représentant la même distribution de probabilités. Dans le cas d'un module SV, le SPS est relié en entrée à la sortie du SPN pour 15 recevoir des échantillons-vecteurs formant une représentation proportionnellement normalisée de la distribution de probabilités P(X) et pour retourner en sortie des échantillons-valeurs représentant la même distribution de probabilités P(X). En outre, le SPS est propre à être activé et désactivé. Lorsque le SPS est désactivé, le SPS se comporte comme un composant passif. 20 Dans un tel cas, la sortie du module SV correspond à la sortie du SPN et le module SV retourne des échantillons-vecteurs proportionnellement normalisés représentatifs de la distribution de probabilités produit des représentations des distributions de probabilités reçues en entrée du module SV. Lorsque le SPS est activé, le SPS effectue une « conversion » des échantillons- 25 vecteurs reçus en entrée pour retourner des échantillons-valeurs. Dans un tel cas, le SPS délivre des échantillons-valeurs représentatifs de valeurs échantillonnées de la variable aléatoire correspondant au module SV. De fait, lorsque le SPS est activé, le module SV retourne en sortie des échantillons-valeurs comprenant un unique bit à 1 et pour lesquels la probabilité que les 30 coefficients de rang i soient des bits à 1 est proportionnelle à la probabilité que la variable aléatoire correspondant au module SV prenne la valeur xi. 3057372 19 4.2- Fonctionnement d'un module SV Un module SV étant l'agencement d'un SPO, d'un SPN et d'un SPS, le fonctionnement d'un module SV résulte des fonctionnements respectifs d'un SPO, d'un 5 SPN et d'un SPS décrits précédemment. Il est considéré dans ce qui suit que le module SV ne fonctionne pas en régime déterministe. Le module SV reçoit en entrée un ensemble d'échantillons-vecteurs représentatifs d'une pluralité de distributions de probabilités différentes d'une même variable aléatoire. 10 L'entrée du module SV étant confondue avec l'entrée d'un SPO, le SPO retourne en sortie des échantillons-vecteurs représentatifs de la distribution de probabilités produit des différentes distributions de probabilités reçues en entrée. La sortie du SPO étant connectée à l'entrée d'un SPN, le SPN reçoit en entrée les échantillons-vecteurs générés par le SPO et qui sont représentatifs de la distribution de 15 probabilités produit des différentes distributions de probabilités reçues en entrée du module SV. Le SPO effectue alors une normalisation de la représentation reçue sous forme d'échantillons-vecteurs, la normalisation consistant à ajouter des bits à 1 en gardant les rapports entre les ratios de bits à 1 identiques aux rapports entre les ratios de bits à 1 de la représentation fournie en entrée du module SV. 20 L'action du SPN a pour effet de réduire la dilution temporelle induite par le SPO. Enfin, la sortie du SPN étant reliée à l'entrée du SPS, le SPS reçoit en entrée les échantillons-vecteurs proportionnellement normalisés représentatif de la distribution de probabilités produit des différentes distributions de probabilités reçues en entrée du module SV. 25 Deux cas se présentent alors. Dans un premier cas, le SPS est désactivé et le SPS se comporte comme un composant passif. Dans ce premier cas, la sortie du module SV correspond à la sortie du SPN. En d'autres termes, le module SV retourne en sortie des échantillons-vecteurs proportionnellement normalisés représentatifs de la distribution de probabilités produit des 30 différentes distributions de probabilités reçues en entrée du module SV. Dans un deuxième cas, le SPS est activé et le SPS convertit alors les échantillons-vecteurs reçus en entrée en échantillons-valeurs. Dans un tel cas, la sortie du module SV correspond à la sortie du SPS et le module SV retourne en sortie des échantillons-valeurs représentatifs de valeurs échantillonnées de la variable aléatoire correspondant au 35 module SV. Il est à présent considéré que le module SV fonctionne en régime déterministe. 3057372 20 Dans un tel cas, une valeur pour la variable aléatoire correspondant au module SV est fixée et le module SV retourne en sortie des échantillons-valeurs représentatifs de la valeur de la variable aléatoire. 5 5 - Les bus de données Les bus de données BD sont propres à connecter entre eux des modules SD et des modules SV. Dans des modes de réalisation, chaque bus de données BD comprend autant de 10 fils que le cardinal de la variable aléatoire correspondant au module SV. Par exemple, un module SV correspondant à la variable aléatoire X est connecté à un module SD correspondant aux variables aléatoires X, Y par un bus de données comprenant nX fils. Dans d'autres modes de réalisation, les bus de données BD sont tous identiques 15 et comprennent de fait chacun le même nombre de fils. Les bus de données sont propres à être connectés ou déconnectés. Dit autrement, chaque bus de données est propre à être activé ou inhibé pour qu'aucun bit stochastique ne soit transmis. Une connexion ou une déconnexion d'un bus de données résulte, par exemple, de 20 l'activation d'une fonction intégrée à un module SD ou à un module SV. Les bus de données sont formés par tout type de support physique propre à acheminer des informations binaires. A titre d'illustration, les bus de données sont des fils, des impressions sur un circuit, ou des dispositifs adaptés pour échanger des ondes électromagnétiques ou des signaux optiques. 25 6 - La machine stochastique modulaire 6.1 - Structure d'une machine stochastique modulaire 30 Une machine stochastique modulaire est propre à effectuer des calculs de probabilités sur des flux de bits stochastiques à partir d'au moins deux variables aléatoires. La machine stochastique modulaire comprend des SBG, au moins un module SD, au moins deux modules SV et des bus de données BD propres à connecter des modules 35 SD et des modules SV entre eux. 3057372 21 La machine stochastique est qualifiée de modulaire parce que la machine stochastique est un assemblage de modules SD, de modules SV et de bus de données BD. L'assemblage d'une machine stochastique modulaire est fonction des calculs de 5 probabilités à réaliser. Dit autrement, un assemblage donné correspond à un ensemble de calculs de probabilités et une configuration particulière de l'assemblage est propre à effectuer un calcul de probabilités particulier parmi l'ensemble de calculs de probabilités. Un exemple de machine 10 stochastique modulaire est représenté sur la figure 6. Dans cet exemple, la machine 10 comprend trois modules SV et deux modules 10 SD. Un premier module SV est noté SV1, un deuxième module SV est noté SV2 et un troisième module SV est noté SV3. Le premier module SV1 correspond à une variable aléatoire 0, le deuxième module SV2 correspond à une variable aléatoire D et le troisième module SV3 correspond 15 à une variable aléatoire Z. Un premier module SD est noté SD1 et un deuxième module SD est noté SD2. Le premier module SD1 correspond aux variables aléatoires 0,D et le deuxième module SD2 correspond aux variables aléatoires O,D,Z. Comme visible sur la figure 6, la machine 10 comprend un premier bus de 20 données BD1, un deuxième bus de données BD2, un troisième bus de données BD3, un quatrième bus de données BD4 et un cinquième bus de données BD5. Le premier bus de données BD1 connecte le premier module SV1 au premier module SD1. Le deuxième bus de données BD2 connecte le premier module SV1 au deuxième 25 module SD2. Le troisième bus de données BD3 connecte le deuxième module SV2 au premier module Spi. Le quatrième bus de données BD4 connecte le deuxième module SV2 au deuxième module SD2. 30 Le cinquième bus de données BD5 connecte le troisième module SV3 au deuxième module SD2. Le fonctionnement de la machine 10 est à présent décrit. 3057372 22 6.2 - Fonctionnement d'une machine stochastique modulaire Un exemple de mise en oeuvre d'un procédé de calcul de probabilités au moyen d'une machine stochastique modulaire est à présent décrit; en référence à la figure 7. 5 La figure 7 correspond à la figure 6, dans laquelle les bus de données BD1, BD2, BD3, BD4 et BD5 sont représentés de façon différente afin d'illustrer un exemple de calcul à partir de la machine 10 de la figure 6. Les conventions suivantes relativement aux bus de données sont utilisées dans ce qui suit : 10 - le sens d'une flèche indique le sens de transmission des flux de bits stochastiques ; - une flèche représentée en pointillés représente la transmission d'échantillons- valeurs représentatifs d'un échantillonnage par la variable aléatoire correspondant au module SV dont est issue la flèche ; 15 - une flèche représentée en trait épais représente la transmission d'échantillons- valeurs, tous identiques, représentatifs de la valeur fixée pour une variable aléatoire, et - une flèche représentée en trait fin représente la transmission d'échantillons- vecteurs représentatifs d'une distribution de probabilités. Dans l'exemple de la figure 7, les variables aléatoires O,D,Z décrivent un système 20 d'aide automatique à la conduite pour véhicule automobile. L'espace à l'avant du véhicule est représenté par une grille d'occupation probabiliste formée de différentes cellules dans laquelle, pour chaque cellule, des capteurs sont installés pour calculer des probabilités. La variable aléatoire 0 est binaire et vaut 1 si la cellule est occupée. 25 La variable aléatoire D est binaire et vaut 1 s'il y a eu une détection par le capteur. La variable aléatoire Z est une variable aléatoire numérique qui correspond à la valeur fournie par un capteur. Dans le présent exemple, le problème à résoudre est le suivant : quelle est la probabilité qu'une cellule soit occupée connaissant la mesure du capteur ? 30 Formulé en termes mathématiques, le problème revient à déterminer la distribution de probabilités sur la variable aléatoire modélisant l'occupation connaissant la valeur retournée par le capteur, c'est-à-dire la distribution de probabilités P(01Z = z). Il est considéré que les distributions de probabilités P(O,D),P(O,D,Z) sont connues, par exemple au moyen de tests. 35 Par construction, la distribution de probabilités P(O,D) indique les probabilités correspondant à des : 3057372 23 - bonnes détections, il s'agit des cas dans lesquels {0 = 1,D = 1} ou {0 = 0,D = 0} ; - fausses détections, il s'agit du cas dans lequel [O = 0, D = 1}, et - cibles ratées, il s'agit du cas dans lequel {0 = 1,D = 0}. 5 Par construction, la distribution de probabilités P(O,D,Z) décrit le fonctionnement du capteur dans les cas de bonnes détections, de fausses détections et de cibles ratées. De façon connue, la distribution de probabilités recherchée s'exprime de la façon suivante : 10 P(OlZ = z) = ED P(0, D)P(0, D, Z = z) Le calcul de probabilités ci-dessus est effectué au moyen d'une machine stochastique modulaire selon le procédé de calcul de probabilités. Le procédé comprend une étape de fourniture d'une machine stochastique 15 modulaire. L'étape de fourniture comprend des sous-étapes. Dans une première sous-étape, le nombre de modules SV est déterminé. Le calcul à réaliser faisant intervenir trois variables aléatoires 0,D,Z, trois modules SV correspondant respectivement aux trois variables aléatoires 0, D, Z sont fournis. 20 Puis, dans une deuxième sous-étape, le nombre de modules SD est déterminé. Les distributions de probabilités P(O,D),P(O,D,Z) étant connues, deux modules SD correspondant respectivement aux variables aléatoires 0, D et 0, D, Z sont fournis. Enfin, dans une troisième sous-étape, le nombre de bus de données BD est déterminé. La troisième sous-étape est mise en oeuvre en fonction de la règle selon 25 laquelle un module SV n'est connecté qu'au(x) module(s) SD correspondant(s) à une pluralité de variables aléatoires, la pluralité de variables aléatoires contenant la variable aléatoire correspondant au module SV. Dans le présent cas, cinq bus de données BD sont nécessaire. A la fin de l'étape de fourniture, la machine stochastique modulaire 10 de la figure 30 6 est obtenue. Dans des modes particuliers de réalisation, l'étape de fourniture comprend la mise en oeuvre d'un algorithme d'optimisation du nombre de modules SD, du nombre de modules SV, du nombre de bus de données et de l'agencement des modules SD, des modules SV et des bus de données. 35 Dans des modes particuliers de réalisation, l'étape de fourniture est réalisée automatiquement par un procédé logiciel consistant à parcourir la structure de la 3057372 24 décomposition de la distribution de probabilités recherchée pour produire un agencement optimal de modules SD, des modules SV et de bus de données BD. Puis un premier ensemble d'étapes est mis en oeuvre. Le premier ensemble d'étapes comprend des sous-étapes d'activation ou de 5 désactivation d'un SPS d'au moins un module SV en fonction du calcul de probabilités à réaliser. Dans le présent exemple, le ,SPS du deuxième module SV2 est activé. Le deuxième module SV2 délivre dans ce cas des échantillons-valeurs représentatifs de valeurs échantillonnées de la variable aléatoire D qui sont transmis au premier module 10 SD, d'une part et au deuxième module SD2 d'autre part, puisque le premier et le deuxième modules SD, et SD2 correspondent chacun à la variable aléatoire D. Les troisième et quatrième bus de données BD3, BD4 connectant le deuxième module SV2 au premier module SD, d'une part et au deuxième module SD2 d'autre part sont alors représentés par des flèches pointillées. 15 En outre, le premier ensemble d'étapes comprend des sous-étapes consistant à faire fonctionner des modules SV selon le régime déterministe. Dans le présent exemple, le troisième module SV3 est configuré pour fonctionner selon le régime déterministe. Le troisième module SV3 délivre dans ce cas des échantillons-valeurs tous identiques représentatifs de la valeur z fixée pour la variable 20 aléatoire Z qui sont transmis au deuxième module SD2 puisque seul le deuxième module SD2 correspond à la variable aléatoire Z. Le cinquième bus de données BD5 connectant le troisième module SV3 au deuxième module SD2 est alors représenté par une flèche en trait épais. A partir de cette configuration de la machine stochastique modulaire, le premier 25 module SD, reçoit du deuxième module SV2 des valeurs échantillonnées de la variable aléatoire D qui est spécifiée. Le module SD1 génère alors une représentation sous forme d'échantillons-vecteurs d'une première distribution de probabilités P1(0) qui s'exprime de la façon suivante : 30 PI(0) P(OID d) où les valeurs d prises par la variable aléatoire D correspondent aux échantillons-valeurs représentatifs des valeurs échantillonnées de la variable aléatoire D retournés en 35 sortie du deuxième module SV2. 3057372 25 Cette opération est possible du fait de la réception d'échantillons-valeurs représentatifs de valeurs échantillonnées de la variable aléatoire D. Les échantillons-vecteurs représentatifs de la première distribution de probabilités Pi(0) sont transmis au premier module SV1 par le premier bus de données Bpi, 5 représentés par une flèche en trait fin. Parallèlement, le deuxième module SD2 reçoit du troisième module SV3 des échantillons-valeurs identiques représentatifs de la valeur fixée z pour la variable aléatoire Z et reçoit également du deuxième module SV2 des échantillons-valeurs représentatifs de valeurs échantillonnées de la variable aléatoire D qui est spécifiée. 10 Le module SD2 génère alors une représentation sous forme d'échantillons- vecteurs d'une deuxième distribution de probabilités P2(0) qui s'exprime de la façon suivante : P2(0) = P(OID = d,Z 15 où les valeurs d prises par la variable aléatoire D correspondent aux échantillons-valeurs représentatifs des valeurs échantillonnées de la variable aléatoire D retournés en -sortie du deuxième module SV2, et où la valeur z prise par la variable aléatoire Z correspond aux échantillons-valeurs identiques représentatifs de la valeur fixée z pour la 20 variable aléatoire Z retournés en sortie du troisième module SV3. Cette opération est possible du fait de la réception d'échantillons-valeurs représentatifs de valeurs échantillonnées de la variable aléatoire D et d'échantillons-valeurs représentatifs de la valeur z fixée pour la variable aléatoire Z. Les échantillons-vecteurs de la deuxième distribution de probabilités P2(0) sont 25 transmis au premier module SV1 par le deuxième bus de données BD2, représentés par une flèche en trait fin. Le premier module SV1 effectue alors l'opération suivante : P(0 IZ = = Er) P(OID = d)P(OID = d, Z = =EDP1(0)P2(0) 30 En d'autres termes, le premier module SV1 retourne en sortie une représentation proportionnellement normalisée du produit des distributions de probabilités Pi(0) et P2(0) et fournit de fait le résultat au problème posé. La machine 10 stochastique modulaire est configurable de diverses manières 35 pour, par exemple, calculer les distributions de probabilités P(ZIO = o,D = d) ou P(ZID = d). 3057372 26 Une machine stochastique modulaire offre ainsi la possibilité d'effectuer une grande diversité de calculs de probabilités. En outre, l'utilisation d'une machine stochastique modulaire est particulièrement simple et ne requiert pas beaucoup d'opérations. 5 La vitesse de calcul est considérablement augmentée par rapport aux microprocesseurs classiques. REVENDICATIONS1.- Machine (10) stochastique modulaire propre à effectuer des calculs de probabilités sur des flux de bits stochastiques, la machine comprenant : - au moins un module de distribution stochastique (SD) correspondant à une pluralité de variables aléatoires (O, D, Z), le module de distribution stochastique (SD) étant propre à recevoir en entrée des valeurs de variables aléatoires spécifiées parmi la pluralité de variables aléatoires, et à retourner en sortie une représentation de la distribution de probabilités d'au moins une variable aléatoire non spécifiée conditionnée par les valeurs de variables aléatoires spécifiées reçues en entrée, et - au moins deux modules de variable stochastique (SV), chaque module de variable stochastique (SV) correspondant à une seule variable aléatoire (O, D, Z) et comprenant : + un multiplieur stochastique (SPO) propre à recevoir en entrée des représentations d'une première distribution de probabilités (P1(X)) et d'une deuxième distribution de probabilités (P2(X)) d'une même variable aléatoire (X), et à retourner en sortie une représentation de la distribution de probabilités produit (P(X)) de ladite variable aléatoire (X), et + un normalisateur proportionnel stochastique (SPN) propre à recevoir en entrée une représentation sous forme de bits d'une distribution de probabilités, et à retourner en sortie une représentation proportionnellement normalisée de la distribution de probabilités reçue, la représentation proportionnellement normalisée comprenant plus de bit à 1 que la représentation reçue en entrée. 2.- Machine (10) selon la revendication 1, dans laquelle le module de distribution stochastique (SD) et les modules de variable stochastique (SV) comprennent des générateurs de bits stochastiques (SBG), chaque générateur de bits stochastiques (SBG) étant propre à générer un flux de bits stochastiques dont la probabilité d'occurrence de bits à 1 est proportionnelle à une valeur mémorisée dans le générateur de bits stochastiques (SBG). 3.- Machine (10) selon la revendication 2, dans laquelle le module de distribution stochastique (SD) comprend autant de générateurs de bits stochastiques que de combinaisons possibles des différentes valeurs de la pluralité de variables aléatoires. 3057372 28 4.- Machine (10) selon l'une quelconque des revendications 1 à 3, dans laquelle la représentation de la distribution de probabilités retournée en sortie du module de distribution stochastique (SD) est générée à partir de valeurs de probabilités conjointes ou conditionnelles mémorisées dans le module de distribution stochastique (SD). 5 5.- Machine (10) selon l'une quelconque des revendications 1 à 4, dans laquelle une représentation d'une distribution de probabilités sur une variable aléatoire est une série temporelle de vecteurs de bits stochastiques dits échantillons-vecteurs, chaque échantillon-vecteur comprenant autant de coordonnées que le cardinal de la variable 10 aléatoire, le nombre de bits à 1 dans la série temporelle pour les coordonnées d'un même rang étant proportionnel à la valeur de probabilité correspondant audit rang. 6.- Machine (10) selon la revendication 5, dans laquelle les vecteurs de bits stochastiques sont des échantillons-valeurs, un échantillon-valeur ne comprenant qu'un 15 seul bit à 1. 7.- Machine (10) selon l'une quelconque des revendications 1 à 6 prises en combinaison avec les revendications 5 et 6, dans laquelle chaque module de variable stochastique (SV) comprend un échantillonneur stochastique (SPS) propre à être activé et 20 désactivé, un échantillonneur stochastique (SPS) étant propre à prendre en entrée des échantillons-vecteurs représentant une distribution de probabilités, et à retourner en sortie des échantillons-valeurs représentant la même distribution de probabilités. 8.- Machine (10) selon la revendication 7, dans laquelle chaque module de 25 variable stochastique (SV) est adapté pour fonctionner selon un régime, dit régime déterministe, dans lequel le module de variable stochastique (SV) est propre à délivrer une représentation d'une valeur fixée de la variable aléatoire. 9.- Machine (10) selon l'une quelconque des revendications 1 à 8, dans laquelle 30 chaque module de variable stochastique (SV) est connecté au module de distribution stochastique (SD) par un bus de données, chaque bus de données comprenant autant de fils que le cardinal de la variable aléatoire correspondant au module de variable stochastique (SV). 35 10.- Procédé de calcul de probabilités à réaliser sur au moins deux variables aléatoires, le procédé comprenant les étapes : 3057372 29 - de fourniture d'une machine (10) stochastique modulaire comprenant : + au moins un module de distribution stochastique (SD) correspondant à une pluralité de variables aléatoires (O, D, Z), le module de distribution stochastique (SD) étant propre à recevoir en entrée des valeurs de variables 5 aléatoires spécifiées parmi la pluralité de variables aléatoires, et à retourner en sortie une représentation de la distribution de probabilités d'au moins une variable aléatoire non spécifiée conditionnée par les valeurs de variables aléatoires spécifiées reçues en entrée, et + au moins deux modules dé variable stochastique (SV), chaque module de 10 variable stochastique (SV) correspondant à une seule variable aléatoire (O, D, Z) et comprenant : ++ un multiplieur stochastique (SPO) propre à recevoir en entrée des représentations d'une première distribution de probabilités (P1(X)) et d'une deuxième distribution de probabilités (P2(X)) d'une même variable 15 aléatoire (X), et à retourner en sortie une représentation de la distribution de probabilités produit (P(X)) de ladite variable aléatoire (X), et ++ un normalisateur proportionnel stochastique (SPN) propre à recevoir en entrée une représentation sous forme de bits d'une distribution de 20 probabilités, et à retourner en sortie une représentation proportionnellement normalisée de la distribution de probabilités reçue, la représentation proportionnellement normalisée comprenant plus de bit à 1 que la représentation reçue en entrée, une représentation d'une distribution de probabilités sur une variable aléatoire 25 étant une série temporelle de vecteurs de bits stochastiques dits échantillons- vecteurs, chaque échantillon-vecteur comprenant autant de coordonnées que le cardinal de la variable aléatoire, le nombre de bits à 1 dans la série temporelle pour les coordonnées d'un même rang étant proportionnel à la valeur de probabilité correspondant audit rang, 30 les vecteurs de bits stochastiques étant des échantillons-valeurs, un échantillon-valeur ne comprenant qu'un seul bit à 1, chaque module de variable stochastique (SV) comprenant un échantillonneur stochastique (SPS) propre à être activé et désactivé, un échantillonneur stochastique (SPS) étant propre à prendre en entrée des échantillons- 35 vecteurs représentant une distribution de probabilités, et à retourner en sortie des échantillons-valeurs représentant la même distribution de probabilités, 3057372 30 chaque module de variable stochastique (SV) étant adapté pour fonctionner selon un régime, dit régime déterministe, dans lequel le module de variable stochastique (SV) est propre à délivrer une représentation d'une valeur fixée de la variable aléatoire, et 5 la machine (10) comprenant autant de modules de variables stochastiques (SV) que de variables aléatoires sur lesquelles le calcul est à réaliser ; d'activation ou de désactivation d'un échantillonneur stochastique (SPS) d'au moins un module de variable stochastique (SV) en fonction du calcul de probabilités à réaliser ; 10 - de configuration éventuelle d'un module de variable stochastique (SV) pour que le module de variable stochastique (SV) fonctionne selon le régime déterministe, et - de connexion ou de déconnexion de bus de données entre certains modules de variable stochastique (SV) et certains modules de distribution stochastique (SD) en fonction du calcul de probabilités à réaliser.