En Informatique, un algorithme déterministe est un algorithme qui, étant donné une entrée particulière, produira toujours la même sortie, avec la machine sous-jacente passant toujours par la même séquence d'états. Les algorithmes déterministes forment, de loin, la famille d'algorithme la plus étudiée.
Formellement, un algorithme déterministe calcule une fonction mathématique ; une fonction ayant une valeur unique pour n'importe quelle entrée dans son ensemble de définition, l'algorithme produit cette valeur en sortie.
Un algorithme déterministe peut se définir comme un automate : un état décrivant ce que la machine fait à un moment particulier. Les automates déterministes passent d'un état à un autre de manière discrète et prédéterminée : l'état courant est complètement déterminé par l'état précédent. On notera qu'un tel automate peut être déterministe et ne jamais terminer son calcul.
Parmi les automates déterministes, on peut trouver la machine de Turing déterministe et l' automate fini déterministe .
Plusieurs facteurs peuvent être à l'origine du fonctionnement non déterministe d'un algorithme :
S'il utilise un état externe différent de son entrée, tel qu'une entrée utilisateur, un minuteur matériel, une variable aléatoire ou des données externes.
S'il opère d'une manière sensible au temps, par exemple si plusieurs processeurs écrivent dans la même variable au même moment. Dans ce cas, l'ordre d'écriture affecte le résultat.
Si une erreur matérielle entraîne un changement d'état imprévisible.
Bien que les programmes réels soient rarement purement déterministes, il est plus facile pour des êtres humains -- ou d'autres programmes --, de raisonner sur des programmes qui le sont. Pour cette raison, la plupart des langages de programmation, et spécialement en programmation fonctionnelle, font l'effort d'empêcher les évènements ci-dessus, sauf en condition contrôlée.
La prévalence des microprocesseurs multi-cœur a entraîné un regain d'intérêt pour le déterminisme, ainsi que pour le non déterminisme, en programmation parallèle.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Building up on the basic concepts of sampling, filtering and Fourier transforms, we address stochastic modeling, spectral analysis, estimation and prediction, classification, and adaptive filtering, w
Explore les aspects de formalisme et de sécurité des systèmes de chiffrement symétrique, y compris les chiffrements par bloc, le chiffrement à longueur variable et les définitions de sécurité.
Explore les générateurs de nombres aléatoires, des vrais nombres aléatoires aux algorithmes pseudo-aléatoires, y compris le générateur modulo et les techniques avancées.
vignette|Les jeux de dés sont des symboles du hasard (jeux de hasard). vignette|Tyché ou Fortuna et sa corne d'abondance (fortune, hasard, en grec ancien, sort en latin) déesse allégorique gréco-romaine de la chance, des coïncidences, de la fortune, de la prospérité, de la destinée...|alt= Le hasard est le principe déclencheur d'événements non liés à une cause connue. Il peut être synonyme de l'« imprévisibilité », de l'« imprédictibilité », de fortune ou de destin.
In computer programming, a nondeterministic algorithm is an algorithm that, even for the same input, can exhibit different behaviors on different runs, as opposed to a deterministic algorithm. There are several ways an algorithm may behave differently from run to run. A concurrent algorithm can perform differently on different runs due to a race condition. A probabilistic algorithm's behaviors depends on a random number generator.
En informatique théorique, et notamment en théorie des automates, un automate abstrait ou une machine abstraite est un modèle théorique d'un ordinateur digital et discret. Il importe peu, dans ce cadre, de savoir si cet appareil peut effectivement être construit, mais plutôt d'appréhender, par ce modèle simplifié, le fonctionnement des machines, et de les comparer entre eux. La notion d'automate ou de machine abstraite, aussi appelé « modèle de machine » joue un rôle central en informatique théorique.
This paper is devoted to the distributed complexity of finding an approximation of the maximum cut (MAXCUT) in graphs. A classical algorithm consists in letting each vertex choose its side of the cut uniformly at random. This does not require any communica ...
ELSEVIER2020
, ,
In this paper we propose a dynamical low-rank strategy for the approximation of second order wave equations with random parameters. The governing equation is rewritten in Hamiltonian form and the approximate solution is expanded over a set of 2S dynamical ...
2020
Coding techniques have been well studied and used for improving communication quality by combating noise and mitigating interference.
Recently, it has been shown that the same coding techniques can also be exploited to further improve communication perform ...