Os computadores do mundo real usam o mecanismo da máquina de Turing?

7

Eu sou um estudante do ensino médio na décima segunda série. Eu estudo programação de alto nível e um pouco de ciência básica da computação.

Recentemente, comecei a entender o que é uma Máquina de Turing. Eu quero perguntar:

Entendo que uma Máquina de Turing é um dispositivo hipotético usado para explicar os mecanismos da computação.

Mas uma máquina de Turing é conceitualmente a verdadeira base dos computadores? (No nível mais básico). Ou os mecanismos de computação do mundo real e o mecanismo da Máquina de Turing (maneira de calcular as coisas) têm muito pouco em comum?

Aviv Cohn
fonte

Respostas:

10

As máquinas de Turing foram inventadas por Turing em seu artigo de 1936 sobre números computáveis ​​e o problema da parada. Era um dos poucos modelos flutuando na época (como o cálculo Church , que havia sido definido anteriormente). Todos esses modelos foram mostrados posteriormente equivalentes; portanto, se você estiver interessado apenas em computação , o modelo da máquina de Turing é tão bom quanto qualquer outro modelo.λ

Os computadores modernos não são baseados no modelo de máquina de Turing. As máquinas de Turing são muito lentas e não representam os recursos do hardware. Do lado do software, um computador moderno é semelhante à máquina de RAM , que permite endereçamento indireto e possui um "alfabeto" ilimitado (seus registros contêm números inteiros arbitrariamente grandes), embora as máquinas reais tenham registros limitados, e isso às vezes faz uma grande diferença ( por exemplo, ao fazer aritmética em grandes números). Não conheço um bom modelo para o lado do hardware; Os circuitos booleanos , populares na ciência da computação teórica, não modelam nem memória nem computação iterativa.

Máquinas de Turing são polinomialmente equivalentes a máquinas de RAM com registros polinomialmente limitados. Isso significa que ambas as máquinas fornecem a mesma noção de computação eficiente (computação polinomial no tempo), uma noção teórica cuja utilidade na prática é duvidosa. Por outro lado, as máquinas RAM (limitadas) formam um modelo razoável para a computação real e, portanto, os resultados de complexidade das máquinas RAM têm relevância prática. No entanto, mesmo esse modelo ignora algumas complexidades importantes dos computadores modernos, como a velocidade de acesso a diferentes tipos de memória (disco, memória principal, caches diferentes).

Yuval Filmus
fonte
Obrigado pela sua resposta. Eu admito que fiquei um pouco confuso. Entendo pela sua resposta que os computadores modernos não são baseados em máquinas de Turing. Nesse caso, o que eu gostaria de saber é: na parte mais baixa e calculadora do computador (corrija-me se estiver errado), mas presumo que a capacidade de fazer cálculos matemáticos seja a mais fundamental e ' capacidade de baixo nível de qualquer computador, que permita que todo o resto aconteça), que modelo teórico poderia explicar como isso é feito? Eu realmente gostaria de entender uma versão simplificada do aspecto mais básico de como os computadores funcionam.
Aviv Cohn
11
Você pode tentar ler Os elementos dos sistemas de computação . O hardware moderno é implementado usando transistores, que implementam portas lógicas, flip-flops e outros dispositivos de memória. O hardware implementa uma máquina de RAM com palavras de máquina (normalmente hoje em dia, 64 bits cada). O software é construído em várias camadas, mas o nível mais baixo que obtém é essa máquina de RAM.
Yuval Filmus
11
??? PTime computation "uma noção teórica cuja utilidade na prática é duvidosa"? Hã?
vzn
@vzn Para mim, a questão P vs. NP não tem absolutamente nenhuma relevância prática.
Yuval Filmus
1

todos os computadores modernos são basicamente construídos com base na arquitetura Von Neumann, que é essencialmente a CPU da unidade de processamento central, mais memória, e um programa armazenado em que a CPU também inclui a ALU da unidade aritmética / lógica .

observe que a máquina de Turing tem basicamente a mesma "arquitetura", especialmente o computador universal , que pode executar programas armazenados na fita. a tabela de estados e a cabeça da fita funcionam um pouco como a CPU (nessa analogia, a ALU seria um subconjunto de todos os estados da MT que controlam a lógica aritmética) e a fita como memória. é claro que muitos computadores reais antigos usavam "fitas" para armazenar dados (e isso continua em alguns contextos, por exemplo, sistemas de armazenamento em massa). a analogia pode ser reforçada com um "alfabeto de símbolos" binário na fita. também existem TMs de múltiplas cabeças estudadas, assim como em computadores reais.

A teoria da complexidade do TCS estuda entidades físicas operadas pela MT abstrata, ou seja, espaço e tempo, ambos com propriedades "contínuas / divisíveis", como no caso físico real. Diz-se que a MT faz "trabalho" enquanto calcula / se move , também um conceito físico. muitos teoremas profundos do TCS mostram inter-relações profundas entre espaço e tempo, assim como existem conceitos físicos fortes, por exemplo, "velocidade". no geral, existem profundas conexões entre o TCS e a física . (nunca esqueça que a TM é literalmente uma máquina! )

em resumo, existem várias semelhanças conceituais / metafóricas fortes entre uma MT e o computador moderno, embora, dependendo do contexto, isso possa ser enfatizado ou subestimado (não surpreendentemente levando a certa perplexidade dos alunos). uma diferença importante é que a TM possui memória infinita na fita; em computadores, isso é apenas "aproximado" (por assim dizer) por grandes memórias.

vzn
fonte
11
No subcampo dos algoritmos, as pessoas frequentemente estudam máquinas de RAM, aparentemente porque formam um modelo melhor de computação no mundo real. Embora as máquinas de Turing simulem máquinas de RAM, elas são muito mais eficientes. Você (provavelmente) não pode classificar números em usando uma máquina de Turing. O acesso aleatório é muito importante na prática. O(nlogn)
Yuval Filmus