Uma das coisas surpreendentes da ciência da computação é que a implementação física é, em certo sentido, "irrelevante". As pessoas construíram computadores com sucesso em vários substratos diferentes - relés, tubos de vácuo, transistores discretos etc. Em breve, as pessoas poderão construir computadores completos de Turing a partir de materiais ópticos não lineares, várias biomoléculas e alguns outros substratos. Em princípio, parece possível construir um computador com bola de bilhar .
No entanto, o substrato físico não é completamente irrelevante. As pessoas descobriram que certos conjuntos de componentes - em particular, a lógica do diodo-resistor - são "incompletos": não importa quantos deles você conecte a uma fonte de alimentação e entre si, há certas coisas muito simples que ela não pode Faz. (A lógica diodo-resistor pode implementar AND, OR, mas falha na implementação de NOT). Além disso, certas maneiras de conectar componentes - em particular os perceptrons de camada única - são "incompletos": existem certas coisas muito simples que eles não podem fazer. (Um perceptron de camada única pode implementar AND, OR, NOT, mas falha na implementação do XOR).
Existe uma frase menos incômoda para "coisas físicas das quais se pode construir uma máquina de Turing"? Ou, pelo contrário, "coisas físicas que, por mais que se tenha, não podem formar uma máquina de Turing"?
Por um tempo, usei a frase "conjunto funcionalmente completo" ou "conjunto universal de portas" - ou, quando falo com matemáticos, "coisas físicas que podem implementar um conjunto funcionalmente completo" - mas me disseram que não é ' t bastante correto. Alguns conjuntos de componentes podem implementar um conjunto funcionalmente completo; e, no entanto, não é possível construir uma máquina completa de Turing totalmente a partir desses componentes. Por exemplo, lâmpadas e interruptores de 4 vias operados manualmente podem implementar um conjunto funcionalmente completo (AND, OR, NOT, XOR etc.); e, no entanto, não é possível construir uma máquina completa de Turing inteiramente com interruptores e lâmpadas, uma vez que a saída (elétrica ou óptica) de uma não pode ser alimentada na entrada (rotativa mecanicamente) da próxima.
relacionado: Existe um nome oficial para uma noção de "reutilizável universal"? e Existe um nome para "chips dos quais se pode construir uma CPU"?
Respostas:
Acredito que um termo apropriado seja "uma implementação física da Máquina de Turing".
Você pode ler mais no artigo de Scott Aaronson, NP-complete Problems and Reality Physical , especialmente na seção Computação analógica e de relatividade.
Você também pode encontrar uma implementação de lego (com fita finita) na seguinte página: http://legoofdoom.blogspot.com/
fonte
A física modela a realidade com teorias que definem um conceito de estado dependente do tempo associado a um sistema e um operador de evolução do tempo que descreve como esse estado evolui. Assim que você encontrar um sistema físico que (após alguma discretização do espaço de estados) implemente o espaço de estados da sua máquina de Turing, e que tenha termos de interação que implementem (talvez após alguma discretização do tempo) a evolução do tempo de acordo com a tabela de transição de estados de sua máquina de Turing em seu espaço de estado, você encontrou um modelo físico completo de Turing do seu sistema. Assim, você pode argumentar que seu sistema "é" completo em Turing.
Ao analisar a computação quântica, você encontrará discussões sobre implicações que as teorias físicas têm no modelo de computação de Turing. Por exemplo, as teorias físicas precisam ser reversíveis. Uma propriedade que não é compartilhada por máquinas Turing comuns. No entanto, não há perda de generalidade, pois qualquer máquina de Turing pode ser simulada por uma máquina reversível, com alguma sobrecarga que pode compensar tempo versus espaço, etc.
fonte
Apenas pensei em salientar que a integridade de um meio físico para simular a lógica necessária para fabricar uma máquina de computação completa Turing pode ser estabelecida apenas na capacidade de incorporar um portão NAND, pois todos os outros portões podem ser derivados dos portões NAND (um pode perguntar o que compreende os portões da NAND, e essa é uma pergunta muito inteligente, mas são os portões da NAND até o fim!).
Você deve examinar o trabalho de Charles Babbage e as pessoas que ele inspirou. Babbage criou um computador físico para tabular funções polinomiais em tabelas impressas para índices de matemática (no passado, você tinha pilhas de livros que não tinham nada além de nomes de funções seguidos de folhas de valores de f (x)). Ele começou a trabalhar no que seria se tornaram um computador completo da Turing usando câmaras de engrenagens e tal. Acredito que seu filho continuou seu trabalho e a única manifestação física de seus esforços combinados foi uma ULA mecânica em pleno funcionamento, que é a base dessas calculadoras mecânicas que você pode ou não conhecer. No entanto, o financiamento para esses projetos caiu como um computador mecânico no tamanho e maneira que eles poderiam ser feitos naquele tempo, era muito impraticável. No entanto, desde então, e especialmente em eventos recentes, as pessoas passaram e estão promovendo a pesquisa de Charles Babbage. Essa abordagem pode ter sua última gargalhada, pois há quem pense que a única maneira de tornar as CPUs seriais mais rápidas do que agora é implementar algumas dessas abordagens mecânicas em uma CPU, evitando os problemas decorrentes dos eletromagnéticos em uma escala menor que o que usamos agora. Aparentemente, a mecânica funciona em qualquer escala.
Da mesma forma, o trabalho foi feito no que é chamado de computador quântico, que busca facilitar grandes cálculos por meio da teoria quântica. Não tenho muita certeza de como tudo funciona. Mas apela fisicamente a experimentos de física de partículas que se baseiam na teoria quântica.
Tenho certeza de que muitos outros meios diferentes de computação estão sendo explorados, até rochas no deserto, mas deles não tenho experiência.
fonte