Entendo que a "estrutura" dos dados é totalmente dependente da Álgebra Booleana, mas:
Por que os dados são considerados uma entidade matemática discreta, e não contínua?
Relacionado a isso:
Quais são os inconvenientes ou invariantes que são violados na estruturação de dados como uma entidade contínua em dimensões ?
Eu não sou especialista na área, pois sou estudante de matemática, então eu realmente aprecio se alguém me explicasse isso como se eu tivesse cinco anos.
data-structures
mathematical-foundations
evil_potato
fonte
fonte
Respostas:
Responda
Esta não foi uma escolha; é teoricamente e praticamente impossível representar valores contínuos e concretos em um computador digital ou, de fato, em qualquer tipo de cálculo.
Observe que "discreto" não significa "número inteiro" ou algo assim. "discreto" é o oposto de "contínuo". Isso significa que, para ter um computador realmente capaz de armazenar coisas não discretas, você precisará armazenar dois números
a
eb
onde,abs(a-b) < ε
por qualquer valor arbitrariamente pequeno deε
. Claro, você pode ir tão fundo quanto quiser (usando cada vez mais espaço de armazenamento), mas todo computador (físico) sempre tem um limite superior. Não importa o que você faça, você nunca poderá criar um computador (físico) que armazene números arbitrariamente finamente resolvidos.Mesmo se você conseguir representar números por construções matemáticas (por exemplo
π
), isso não muda nada. Se você armazena um gráfico ou o que quer que represente uma fórmula matemática, isso é tão discreto quanto qualquer outra coisa.Termo aditivo
O resto é apenas uma pequena perspectiva além do campo da ciência da computação. Como os comentários mostraram, o tópico físico não é incontestável e, como você pode ver, formulei meu próximo parágrafo de uma maneira que não é comprometida com a verdade ou não. Tome mais como motivação que o conceito de "continuum" não seja trivial. A resposta dada acima não depende se o espaço é discreto ou não.
Observe que tudo isso não é tanto um problema de computadores, mas um problema com o significado de "contínuo". Por exemplo, nem todos concordam, ou concordaram no passado, que o Universo é contínuo (por exemplo, a escala de Planck implica que o espaço-tempo é discreto? ). Para algumas coisas (por exemplo, estados de energia dos elétrons e muitas outras características da Mecânica Quântica), sabemos até que o Universo não é contínuo; para outros (por exemplo, posição ...) o júri ainda está de fora (pelo menos em relação à interpretação dos resultados da pesquisa ...). (Não obstante o problema de que, mesmo que seja contínuo, não podemos medir com precisão arbitrária => Heisenberg etc.).
Em matemática, estudar o continuum (isto é, os reais) abre muitos aspectos fascinantes, como a teoria da medida, o que torna absolutamente impossível realmente armazenar um tipo "contínuo" de número / dados.
fonte
Os computadores representam um dado como um número finito de bits (zeros e uns) e o conjunto de todas as cadeias de bits finitas é discreto. Você só pode trabalhar com, digamos, números reais se encontrar alguma representação finita para eles. Por exemplo, você pode dizer "esses dados correspondem ao número ", mas não pode armazenar todos os dígitos de π em um computador. Assim, os programas de computador que trabalham com números reais na verdade só funcionam em um subconjunto discreto de R .π π R
fonte
Para adicionar todas essas ótimas respostas, vale a pena notar que Alan Turing, ao definir suas máquinas, argumenta que a quantidade de símbolos precisa ser finita (mesmo que arbitrariamente grande), já que um computador (que significa humano) não pode distinguir todos os símbolos de outra maneira.
Aqui estão alguns trechos de seu artigo de 1936, "Sobre números computáveis, com uma aplicação ao problema do Entscheidung":
E então na seção 9:
fonte
Está tudo na implementação.
Se você pensar bem, os computadores realmente são dispositivos contínuos. Isso é facilmente demonstrado pelo fato de que todas as equações EM que regem como funcionam são contínuas. O que é discreto são os modelos que usamos para decidir como usar esses dispositivos de computação. As máquinas abstratas que usamos para descrever a computação são todas discretas.
A enorme vantagem prática disso é ter independência em relação a muitos desafios de controle de qualidade. Se nossos modelos de computadores alavancassem a natureza contínua e completa de seus transistores e capacitores, teríamos que nos preocupar com o quão bem construímos todos os transistores em um tremendo grau. Podemos ver isso no mundo do áudio. No mundo em que os audiófilos habitam, é razoável gastar US $ 2.000 em um amplificador que pode ter 10 transistores cuidadosamente selecionados e combinados, que fazem exatamente a coisa contínua que desejam. Compare isso com 1.400.000.000 de transistores em uma CPU Core i7 a um custo enorme de US $ 400.
Como nossos modelos computacionais são discretos, podemos modelar todos os sinais que vemos em um computador como um sinal discreto mais algum termo de erro contínuo. Podemos então filtrar os erros simplesmente observando que eles não têm a forma correta para fazer parte do sinal discreto.
Uma parte importante disso é a remoção de termos de tempo em nossos modelos abstratos. Muitos de nossos modelos não medem o tempo contra algum processo físico, mas contra algum sinal "lógico" conhecido como relógio. Se você interromper um relógio, o sistema para de se mover, mas não quebra. Ele acaba de eliminar os erros analógicos que possa ter e fica aguardando o próximo pulso discreto do relógio. A remoção de termos de tempo contínuos simplifica drasticamente a computação e as provas sobre a computação. Em vez disso, nossos conceitos de tempo são medidos discretamente, como visto nas categorizações de algoritmos P e NP.
fonte
Porque:
Computadores digitais não podem armazenar números reais arbitrários.
Os computadores analógicos são atormentados por ruídos térmicos (se eletrônicos), fricção (se mecânicos ou hidráulicos), distúrbios, sensibilidade a variações de temperatura, imperfeições inevitáveis e envelhecimento. Lidar com essas dificuldades é o que os físicos e engenheiros (experimentais) fazem. A maioria das ciências da computação simplesmente abstrai a física.
Aqui estão alguns trabalhos sobre computação real :
Mark Braverman, Stephen Cook, Computando sobre os reais: fundamentos da computação científica , Avisos da AMS, março de 2006.
Mark Braverman, Sobre a complexidade de funções reais , arXiv: cs / 0502066.
Lenore Blum, Computando sobre os reais: onde Turing encontra Newton , Notices of the AMS, outubro de 2004.
Vasco Brattka, modelos realistas de computabilidade dos números reais , abril de 2000.
Vasco Brattka, Peter Hertling, Máquinas de acesso aleatório real viáveis , dezembro de 1998.
Lenore Blum, Mike Shub, Steve Smale, Sobre uma teoria da computação e complexidade sobre os números reais: NP-completude, funções recursivas e máquinas universais , Boletim da AMS, julho de 1989.
e aqui está um artigo sobre computação analógica :
fonte
O termo "computador" na linguagem moderna significa "computador digital"; a essência de um computador digital é que ele possui um número finito de estados discretos. Poder-se-ia ter um debate interessante sobre se as razões pelas quais os computadores digitais foram favoráveis aos computadores analógicos se referiam principalmente à praticidade da engenharia ou se deviam principalmente à melhor sustentação da ciência da computação teórica. Mas, sejam quais forem as razões, acabamos com os computadores digitais e qualquer modelo matemático útil de um computador digital (e, portanto, seus dados) será discreto e não contínuo.
fonte
A palavra
data
deriva da palavra latinadatum
, que significa algo que foi dado. Com o tempo, a forma plural mudou de uso e agora é comumente usada como singular e plural. Também passou a ser associado especificamente a informações.Observe que há uma diferença entre um item de informação (um dado) e sua representação.
A Teoria da Informação lida com (entre outras coisas) informações discretas representadas por variáveis. Essas são entidades contáveis. Por exemplo, velocidade, localização, massa etc. são quantidades contínuas, mas discretas uma da outra: não há transformação entre massa e localização. Quando essas quantidades são representadas numericamente, seus itens de dados, independentemente de serem representados, também são discretos.
Por outro lado, a grande maioria de nossos computadores atuais usa alguma forma de carga elétrica para representar informações. A cobrança está presente ou não; existe corrente no circuito ou não. Isso também é discreto, mas não precisa ser! É simplesmente por causa da maneira como nossa tecnologia se desenvolveu que usamos a representação binária. É possível que a evolução da computação quântica mude isso no futuro próximo. Também não é inconcebível que computadores analógicos ressurgam e nossas noções de que os números devem ser representados por binários serão lavadas!
Resumindo:
data
são compostos por itens discretos de informação, cada um dos quais é um dado; enquanto que cada dado não precisa ser representado usando matemática discreta, mas atualmente é puramente por coincidência contemporânea.fonte
Quero desafiar sua premissa fundamental:
Não é.
Por exemplo, o estudo de algoritmos é um subcampo importante da ciência da computação e existem muitos algoritmos que trabalham com dados contínuos. Você provavelmente conhece o algoritmo de Euclides para calcular o maior divisor comum de dois números naturais, mas você sabia que Euclides também tinha uma versão geométrica do mesmo algoritmo que calcula a medida comum mais longa de duas linhas comensuráveis? Este é um exemplo de algoritmo (e, portanto, um objeto de estudo da ciência da computação) sobre números reais, ou seja, dados contínuos, embora Euclid não tenha pensado dessa maneira.
Existem muitas maneiras diferentes de classificar algoritmos, mas uma maneira usada é classificá-los por sua "continuidade":
Outras respostas já mencionaram Computação Real na Teoria da Computabilidade, outro subcampo importante da Ciência da Computação.
A única desvantagem real (trocadilho com muita intenção) é que esses dados não podem ser representados com computadores digitais comuns. Você pode pensar em algoritmos sobre dados contínuos, mas não pode executá- los nas máquinas padrão que costumamos usar para executar algoritmos.
Essa é a principal razão pela qual os dados contínuos não são tão "visíveis" quanto os dados digitais.
No entanto, uma implementação de um algoritmo analógico não precisa ser complicada de se imaginar ou até de construir. Por exemplo, esta é uma implementação de um algoritmo analógico: Por Andrew Dressel - Trabalho próprio, CC BY-SA 3.0 , Link
fonte
Agora, o conjunto de todos os dados finitos possíveis pode ser colocado em ordem lexicográfica, o que significa que o conjunto é contável. Porém, o conjunto de números reais contínuos é incontável; portanto, sempre existem números no continuum que não podem ser armazenados por um determinado sistema de computação. A partir disso, podemos concluir que o armazenamento de um número real arbitrário requer recursos infinitos.
fonte
Os dados nem sempre são considerados discretos. A programação científica geralmente envolve aritmética de ponto flutuante. O programador geralmente finge que as variáveis envolvidas são contínuas, mantendo em mente a questão da estabilidade numérica, que decorre do fato de que os dados são armazenados apenas com uma precisão finita.
fonte
Os dados em ciência da computação são considerados discretos.
fonte