Nosso PC funciona como uma máquina de Turing?

8

Nosso PC funciona como uma máquina de Turing? O modelo de uma máquina de Turing consiste em fita de memória infinita, o que significa estados infinitos. Mas suponha que se nosso PC tiver 128 MB de memória e disco de 30 GB, ele terá 256 ^ 30128000000 estados e, portanto, estados finitos.

Eu sei que podemos escrever um tipo de programa que, se durante a execução ficar sem memória, solicitará a troca do disco pela memória vazia e retomará a execução.

Mas e se não trocarmos o disco de memória, neste caso, é correto considerar o PC como FA ?

siddstuff
fonte
note que mesmo o disco [grande] é finito e, portanto, a computação baseada nele pode ser representada tecnicamente como um FSM. muito semelhante a esta outra questão Turing completo poder e computacional
vzn
Um computador não se limita à memória interna; também pode usar armazenamento externo.
reinierpost
Não, ele funciona como uma máquina de von Neumann. Além disso,25630128000000está mais perto do infinito do que você poderia esperar.
Andrej Bauer 12/06
Máquinas de Turing não têm necessariamente uma quantidade infinita de memória. Eles apenas têm uma quantidade suficiente de memória para fazer o que você quiser. Se você se limitar a interromper programas, uma máquina de Turing pode também ter memória finita. De qualquer forma, a quantidade de memória que uma máquina de turing usará a qualquer momento é finita, embora possivelmente aumentando. Os computadores em rede também têm uma quantidade finita, mas possivelmente crescente de memória.
DanielV

Respostas:

11

Você está certo de que os computadores físicos têm memória finita e, portanto, não são completos para Turing. Existem outras maneiras pelas quais a teoria da computabilidade não é um bom modelo para a computação - ela não leva em consideração as restrições de tempo e memória. A teoria da complexidade foi inventada (talvez) como uma representação mais realista da computação, mas o IMHO sofre de problemas semelhantes (mas mais sutis).

Por outro lado, para estudar matematicamente os recursos e limites da computação, precisamos usar alguma abstração sem restrições. Isso torna a análise possível. Da mesma forma, na mecânica estatística, assumimos que o número de elementos (átomos ou moléculas) é tão grande que o comportamento está próximo do limite (ou seja, deixamos o número de elementos tender ao infinito). Estudar computação de uma perspectiva assintótica tem vantagens semelhantes, mas às vezes é enganoso. Aqui estão alguns exemplos deste último:

  1. Em criptografia, algoritmos exponenciais às vezes são viáveis. Se escolhermos os parâmetros de segurança incorretos, nossa criptografia pode ser insegura, mesmo que seja "comprovadamente segura".
  2. Os algoritmos de tempo polinomial devem representar uma computação eficiente e viável, mas muitos deles não são viáveis. Como exemplo, os algoritmos de multiplicação de matriz mais sofisticados não são usados ​​na prática.
  3. A teoria moderna da complexidade é obcecada pelo pior desempenho possível e não pode analisar algoritmos heurísticos usados ​​na prática. Problemas difíceis de NP são considerados inviáveis, mas estão sendo resolvidos na prática o tempo todo.

Uma questão separada é que computadores reais não funcionam como as máquinas de Turing. Eles funcionam como máquinas de RAM, que são uma abstração melhor para a computação real.

Yuval Filmus
fonte
4

Eu acho que você já deu a resposta. Se o principal aspecto com o qual você está preocupado é a (in) finidade dos estados, uma Máquina de Turing, como tal, existe apenas como "um dispositivo hipotético".

Não importa quanta memória você fornecerá ao seu PC, ele sempre será limitado; portanto, você pode encontrar um programa que será executado em uma Máquina de Turing "real", mas não neste PC devido à fita delimitada.

http://en.wikipedia.org/wiki/Turing_machine#Comparison_with_real_machines

Sentinela
fonte
As máquinas de Turing têm um número potencialmente infinito de estados, mas uma máquina universal de Turing pode simular qualquer máquina de Turing, enquanto, ao mesmo tempo, possui um número fixo de estados.
Yuval Filmus
7
@YuvalFilmus Acho que você está confuso entre estados e configurações. Todas as máquinas de Turing têm um número finito de estados, mas devido à sua memória ilimitada que pode estar em infinitas configurações. As TMs universais também têm apenas muitos estados, mas podem precisar de memória ilimitada para simular sua máquina de entrada.
Adriann
1

Na época em que as máquinas de Turing foram inventadas, os computadores eram mulheres que executavam cálculos em pedaços de papel. Essa é a noção de computação que as máquinas de Turing expressam. A fita não faz parte deles, assim como o pedaço de papel faz parte de uma pessoa que faz cálculos.

Esse ainda é um bom modelo para o cálculo baseado em computador, porque os limites de recursos em computadores são geralmente bastante grandes. Modelos de computação inerentemente finitos somente se tornam úteis quando o número de estados possíveis é muito pequeno.

reinierpost
fonte
-1

Um computador moderno é Turing completo, geralmente esse termo é usado com exceção do dispositivo de armazenamento infinito. Na prática, a memória pode ser bastante longa. Por exemplo, além de serem aproximadores de funções universais, as redes neurais recorrentes com memória (e funcionando repetidamente) são consideradas Turing completas. De fato, as Máquinas Neurais de Turing levam essa idéia a um estágio que infere ainda mais algoritmos simples.

Tolga Birdal
fonte
Como isso responde à pergunta?
Raphael