Pourquoi les données en informatique sont-elles considérées comme discrètes?


35

Je comprends que la "structure" des données dépend totalement de l’algèbre booléenne, mais:

Pourquoi les données sont-elles considérées comme une entité mathématique discrète plutôt que continue?

Relatif à ceci:

Quels sont les inconvénients, ou invariants, violés lors de la structuration de données en tant qu'entité continue dans r dimensions?

Je ne suis pas un expert dans ce domaine car je suis un étudiant en mathématiques de premier cycle. Je serais donc très reconnaissant à quelqu'un de m'expliquer cela comme si j'avais cinq ans.


12
Un calcul réel serait déraisonnablement puissant
harold

1
Parcourez ce chapitre si le temps le permet. L'auteur explique qu'il est très facile d'apprendre des signaux analogiques vs binaires
Muhammad Sayef

Réponses:


44

Répondre

pourquoi les données ont-elles été considérées comme une entité mathématique discrète plutôt que continue?

Ce n'était pas un choix. il est théoriquement et pratiquement impossible de représenter des valeurs continues et concrètes dans un calculateur numérique ou dans un calcul quelconque.

Notez que "discret" ne signifie pas "entier" ou quelque chose comme ça. "discret" est l'opposé de "continu". Cela signifie que, pour avoir un ordinateur véritablement capable de stocker des éléments non discrets, vous devez pouvoir stocker deux numéros aet boù, abs(a-b) < εpour toute valeur arbitrairement petite ε. Bien sûr, vous pouvez aller aussi loin que vous le souhaitez (en utilisant de plus en plus d'espace de stockage), mais chaque ordinateur (physique) a toujours une limite supérieure. Quoi que vous fassiez, vous ne pouvez jamais créer un ordinateur (physique) qui enregistre de manière arbitraire des numéros résolus avec précision.

Même si vous êtes capable de représenter des nombres par des constructions mathématiques (par exemple π), cela ne change rien. Si vous stockez un graphique ou quoi que ce soit qui représente une formule mathématique, c'est aussi discret que tout le reste.

Addenda

Le reste n’est qu’une petite perspective au-delà du domaine de l’informatique. Comme les commentaires l'ont montré, le sujet physique n'est pas incontesté et, comme vous pouvez le constater, j'ai formulé mon paragraphe suivant d'une manière qui ne vise pas à déterminer si c'est vrai ou non. Considérez-le davantage comme une motivation du fait que le concept de "continuum" n’est pas trivial. La réponse donnée ci-dessus ne dépend pas du fait que l'espace soit discret ou non.

Notez que tout ceci n’est pas vraiment un problème d’ordinateurs, mais un problème de sens du terme "continu". Par exemple, tout le monde n’est même pas d’accord, ou a déjà convenu, que l’ Univers est continu (par exemple, l’échelle de Planck implique-t-elle que l’espace-temps est discret? ). Pour certaines choses (par exemple, les états d’énergie des électrons et de nombreuses autres caractéristiques de la mécanique quantique), nous savons même que l’Univers n’est pas continu; pour d'autres (par exemple, position ...), le jury est toujours absent (du moins en ce qui concerne l'interprétation des résultats de recherche ...). (Malgré le problème que même s'il est continu, nous ne pourrions pas mesurer avec une précision arbitraire => Heisenberg etc.).

En mathématiques, l’étude du continuum (c’est-à-dire des réels) ouvre de nombreux aspects fascinants, tels que la théorie de la mesure, qui rend tout à fait impossible de stocker un type «continu» de nombres / données.


Les commentaires ne sont pas pour une discussion prolongée; cette conversation a été déplacée pour discuter .
DW

29

Les ordinateurs représentent un élément de données sous forme d'un nombre fini de bits (zéros et uns) et l'ensemble de toutes les chaînes de bits finis est discret. Vous ne pouvez travailler avec, par exemple, que des nombres réels, si vous leur trouvez une représentation finie. Par exemple, vous pouvez dire "ces données correspondent au nombre ", mais vous ne pouvez pas stocker tous les chiffres de π dans un ordinateur. Par conséquent, les programmes informatiques qui fonctionnent avec des nombres réels en réalité que de travail sur un sous - ensemble discret de R .ππR


Les ordinateurs numériques le font, mais pas les ordinateurs analogiques.
Drew

Les commentaires ne sont pas pour une discussion prolongée; cette conversation a été déplacée pour discuter .
DW

8

Pour ajouter à toutes ces bonnes réponses, il convient de noter que, lors de la définition de ses machines, Alan Turing affirme que la quantité de symboles doit être finie (même si elle est arbitrairement grande) puisqu'un ordinateur (signifiant: un humain) ne peut pas distinguer tous les symboles autrement.

Voici quelques extraits de son article de 1936 intitulé "Sur des nombres calculables, avec une application au problème d'Entscheidungs":

entrez la description de l'image ici

Et puis à la section 9:

entrez la description de l'image ici entrez la description de l'image ici


1
S'il vous plaît transcrire les images pour qu'ils puissent être indexés par des recherches.
Raphaël

7

Tout est dans la mise en œuvre.

Si vous y réfléchissez, les ordinateurs sont vraiment des périphériques continus. Ceci est facilement démontré par le fait que toutes les équations EM qui régissent leur fonctionnement sont continues. Ce qui est discret, ce sont les modèles que nous utilisons pour décider comment utiliser ces dispositifs informatiques. Les machines abstraites que nous utilisons pour décrire le calcul sont toutes discrètes.

L’énorme avantage pratique qui en découle réside dans l’indépendance vis-à-vis de nombreux problèmes de contrôle de la qualité. Si nos modèles d'ordinateurs tiraient parti de la nature entièrement continue de leurs transistors et de leurs condensateurs, nous devions alors nous préoccuper de la qualité de notre construction de chaque transistor. Nous pouvons le voir dans le monde audio. Dans le monde où habitent les audiophiles, il est raisonnable de dépenser 2 000 $ pour un amplificateur pouvant comporter 10 transistors très soigneusement choisis et assortis, qui font exactement ce qu'ils veulent en permanence. Comparez cela avec 1 400 000 000 de transistors dans un processeur Core i7 au coût énorme de 400 $ .

Comme nos modèles de calcul sont discrets, nous pouvons modéliser tous les signaux que nous voyons dans un ordinateur sous forme de signal discret plus un terme d'erreur continu. Nous pouvons ensuite filtrer les erreurs en observant simplement qu'elles ne sont pas la bonne forme pour faire partie du signal discret.

Une partie importante de ceci est la suppression des termes de temps dans nos modèles abstraits. Beaucoup de nos modèles ne mesurent pas le temps par rapport à un processus physique, mais par rapport à un signal "logique" appelé horloge. Si vous interrompez une horloge, le système cesse de bouger, mais ne tombe pas en panne. Il ne fait que supprimer les erreurs analogiques éventuelles et attend la prochaine impulsion discrète de l'horloge. La suppression des termes de temps continu simplifie considérablement le calcul et les preuves de calcul. Au lieu de cela, nos concepts de temps sont mesurés de manière discrète, comme le montrent les catégorisations d'algorithmes P et NP.


7

Car:

  • Les ordinateurs numériques ne peuvent pas stocker de nombres réels arbitraires.

  • Les ordinateurs analogiques sont affectés par le bruit thermique (si électronique), les frictions (si mécaniques ou hydrauliques), les perturbations, la sensibilité aux variations de température, les imperfections inévitables et le vieillissement. C’est ce que font les physiciens et les ingénieurs (expérimentaux). La plupart des sciences informatiques font simplement abstraction de la physique.

Voici quelques articles sur le calcul réel :

et voici un article sur le calcul analogique :


4

Le terme "ordinateur" dans le langage moderne signifie "ordinateur numérique"; L'essence d'un ordinateur numérique est d'avoir un nombre fini d'états discrets. On pourrait avoir un débat intéressant sur le point de savoir si les raisons pour lesquelles les ordinateurs numériques ont remporté le succès par rapport aux ordinateurs analogiques étaient principalement liées à l'aspect pratique de l'ingénierie ou à une meilleure base reposant sur l'informatique théorique. Mais quelles que soient les raisons, nous avons fini par utiliser les ordinateurs numériques, et tout modèle mathématique utile d’un ordinateur numérique (et donc de ses données) sera plus discret que continu.


2

Le mot datadérive du mot latin datum, qui signifie quelque chose qui a été donné. Au fil du temps, la forme plurielle a changé d'usage et est maintenant couramment utilisée à la fois au singulier et au pluriel. Il a également été associé à des informations spécifiques.

Notez qu'il existe une différence entre une information (une donnée) et sa représentation.

Théorie de l'information traite (entre autres) des informations discrètes représentées par des variables. Ce sont des entités dénombrables. Par exemple, la vitesse, l'emplacement, la masse, etc. sont des quantités continues, mais discrètes les unes des autres: il n'y a pas de transformation entre la masse et l'emplacement. Lorsque ces quantités sont représentées numériquement, leurs éléments de données, quelle que soit leur représentation, sont également distincts les uns des autres.

D'autre part, la grande majorité de nos ordinateurs actuels utilisent une forme de charge électrique pour représenter les informations. L’accusation est présente ou non; il y a du courant dans le circuit ou il n'y en a pas. C'est aussi discret, mais ce n'est pas nécessaire! C’est simplement en raison de la façon dont notre technologie a été développée que nous utilisons la représentation binaire. Il est possible que les développements en informatique quantique vont changer cela dans un proche avenir. Il n’est pas non plus inconcevable que les ordinateurs analogiques fassent une recrudescence et notre idée que les nombres doivent être représentés par des valeurs binaires sera balayée!

Pour résumer: datasont composées d’informations discrètes, chacune d’elles étant une donnée; alors que chaque donnée n'a pas besoin d'être représentée à l'aide de mathématiques discrètes, elle est actuellement purement par coïncidence contemporaine.


1
La théorie de l'information peut également gérer des variables continues.
Yuval Filmus

1
Voir par exemple l' entropie différentielle .
Yuval Filmus

2

Je veux contester votre prémisse fondamentale:

Pourquoi les données sont-elles considérées comme une entité mathématique discrète plutôt que continue?

Ce n'est pas.

Par exemple, l’étude des algorithmes est un sous-domaine important de la science informatique et de nombreux algorithmes fonctionnent avec des données continues. Vous connaissez probablement l'algorithme d'Euclide pour calculer le plus grand commun diviseur de deux nombres naturels, mais saviez-vous qu'Euclide disposait également d'une version géométrique de ce même algorithme qui calcule la plus longue mesure commune de deux droites commensurables? C'est un exemple d'algorithme (et donc d'objet d'étude en informatique) sur des nombres réels, c'est-à-dire des données continues, même si Euclid n'y a pas pensé de cette façon.

Il y a beaucoup de façons différentes de classer les algorithmes, mais l'une des méthodes utilisées consiste à les classer en fonction de leur "continuité":

  • Algorithmes numériques (algorithmes à événements discrets sur données numériques):
    • la variante numérique de l'algorithme d'Euclide
    • division à main longue, multiplication, etc. telle qu'enseignée à l'école
    • n'importe quel programme informatique, programme λ-calcul, machine de Turing
  • Algorithmes à données discrètes, à événements discrets (algorithmes sur données continues, qui ont toutefois encore une notion de "pas", c'est-à-dire des données continues mais du temps discret):
    • la variante géométrique de l'algorithme d'Euclid
    • algorithmes sur des nombres réels (par exemple, procédure d'élimination de Gauss)
    • algorithmes sur les fonctions continues (par exemple, l'algorithme de bissection)
  • Algorithmes analogiques (temps continu, données continues):
    • circuits électriques
    • gyroscopes mécaniques
  • Algorithmes hybrides (toute combinaison de ce qui précède)
    • des robots

D'autres réponses ont déjà mentionné le calcul réel dans la théorie de la calculabilité, un autre sous-domaine important de l'informatique.

r

Le seul inconvénient réel (jeu de mots très recherché) est que de telles données ne peuvent pas être représentées avec des ordinateurs numériques courants. Vous pouvez penser aux algorithmes plutôt qu'aux données continues, mais vous ne pouvez pas les exécuter sur les machines standard que nous utilisons habituellement pour exécuter des algorithmes.

C'est la raison principale pour laquelle les données continues ne sont pas aussi "visibles" que les données numériques.

Cependant, l'implémentation d'un algorithme analogique n'a pas besoin d'être compliquée à imaginer ni même à construire. Par exemple, il s’agit d’une implémentation d’un algorithme analogique: Vélo triumphPar Andrew Dressel  - Travail personnel, CC BY-SA 3.0 , Link

rqrq×rπq×π


"il y a beaucoup d'algorithmes qui fonctionnent avec des données continues" - Nous pourrions avoir une longue discussion si de telles choses devraient s'appeler des "algorithmes", mais ce serait un mirage sur la sémantique, alors ne le faisons pas. Le fait est que ce ne sont pas des "algorithmes" qui fonctionnent sur des ordinateurs, mais sur des périphériques super-Turing théoriques, définis formellement.
Raphaël

1
Je trouve la métaphore de la bicyclette trompeuse. Quelque chose qui calcule une fonction n'est pas un ordinateur, ce que nous supposons implicitement être universel de nos jours.
Raphaël

1

π

Maintenant, l'ensemble de toutes les données finies possibles peut être placé dans un ordre lexicographique, ce qui signifie que l'ensemble est dénombrable. Mais, l'ensemble des nombres réels continus est indénombrable, il y a donc toujours des nombres dans le continu qui ne peuvent pas être stockés par un système de calcul donné. Nous pouvons en conclure que le stockage d'un nombre réel arbitraire nécessite des ressources infinies.


1
Je pense que cela pose la question . Prenons un ordinateur qui utilise un morceau de papier qu’il examine et qui donne son résultat sur un morceau de papier sur lequel il s’appuie. Si les données étaient continues, comme le suggère le PO, un tel ordinateur pourrait alors être d'une précision infinie avec seulement une quantité finie de données.
Ruakh

@ruakh Parlez-vous de quelque chose comme une machine analogique de Turing, où elle pourrait, par exemple, lire la longueur exacte d'une ligne tracée?
Mark H

Oui, exactement. Si je comprends bien, c'est le genre de question que le PO demande.
Ruakh

0

Les données ne sont pas toujours considérées comme discrètes. La programmation scientifique implique souvent une arithmétique en virgule flottante. Le programmeur prétend généralement que les variables impliquées sont continues, tout en gardant à l’esprit le problème de la stabilité numérique, qui découle du fait que les données ne sont stockées qu’à une précision finie.


12
La virgule flottante est discrète ... si un programmeur prétend qu'elle est continue, cela signifie simplement que les résultats importent peu ou que le programmeur n'a pas compris ce qu'il faisait.
AnoE

2
Je suis respectueusement en désaccord.
Yuval Filmus

6
@YuvalFilmus hélas, la virgule flottante étant discrète, il n'y a rien de plus à dire. Chaque fois que quelque chose est mis dans un ordinateur ordinaire, il est discrétisé.
Jean-Baptiste Yunès

5
@AnoE cela signifie que les résultats doivent être fiables avec une certaine précision, c'est ce que Yuval entend par "faire semblant". Vous pouvez obtenir des résultats utilisables, mais vous devez effacer la précision. Pour les grands ensembles, cela a du sens. Comparez cela aux problèmes de mécanique classiques: vous savez que vos mesures ne sont pas précises. un objet de 3 cm n'a pas réellement 3.000000000 ~ cm de longueur. Vous venez de couper la précision de votre mesure à un moment raisonnable.
Mindwin

6
Je ne pense pas que la question concerne le fonctionnement de nos esprits. Je pense que cela concerne la façon dont les choses fonctionnent réellement. La raison pour laquelle les nombres en virgule flottante sont approximatifs est qu’ils sont discrets. Le fait de les considérer comme continues même s’ils ne le sont pas ne permet pas de répondre à la question de savoir pourquoi les valeurs sont discrètes dans les ordinateurs. Sur une note de côté, votre façon de penser peut être dangereuse. Beaucoup de bugs ont résulté du fait que les programmeurs pensent que la virgule flottante est continue. Même les nombres communs que nous avons tendance à considérer comme précis, tels que 1 dixième ou 1 centième, sont approximatifs en virgule flottante.
JimmyJames

-2
  • Pour qu'un ordinateur fonctionne avec des données, celles-ci doivent exister dans la mémoire accessible de l'ordinateur.
  • La mémoire accessible d'un ordinateur est finie
  • Seules des données finies peuvent exister dans la mémoire accessible d'un ordinateur
  • Les valeurs non discrètes sont infinies

Les données en informatique sont considérées comme discrètes.


elimt(1+1/t)t

La formule que vous avez spécifiée est abrégée - vous ne pouvez pas l'utiliser dans des calculs dont la "réponse" réelle est nécessaire et aucun "travail" significatif ne peut donc être effectué par l'ordinateur. Vous pourriez écrire un petit programme d’analyse de texte à entrer et à cracher des représentations textuelles de nombres irrationnels, mais la représentation numérique réelle des "valeurs" de ce nombre ne peut pas être stockée en mémoire - pas plus que je ne peux écrire "ceci est un infini" sur papier et dire que je tiens tout dans ma main.
Repomeister

1
Vous semblez supposer que le seul moyen de calculer un nombre réel est de produire son développement décimal. Ce n'est tout simplement pas le cas.
David Richerby

2
eiπ=116π

1
<,,>,,=,+,,×,÷x1,x2,,xnx1,,xn
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.