A máquina das diferenças de Babbage
Qua 9 Nov 2005 00:51 |
- Detalhes
- Categoria: Museu do Hardware
- Atualização: Terça, 14 Abril 2009 20:51
- Autor: vovó Vicki
- Acessos: 28521
Uma máquina das diferenças (difference engine) é um computador mecânico de uso especial, projetado para tabular funções polinômicas. Uma vez que funções logarítmicas e trigonométricas podem ser aproximadas por polinômios, a função destas máquinas é mais ampla do que pode parecer de início.
Entendendo o método das diferenças, explicado logo abaixo, fica claro porque este é perfeito para ser usado por máquinas: é um método que usa apenas adições (ou subtrações) iterativas através de um algoritmo muito simples.
![]() |
![]() |
![]() |
Fotos de peças do Powerhouse Museum de Sidney, Australia e do Science Museum de Londres. |
Agora vem a pergunta "Porque esta máquina está no Museu do Hardware da Aldeia?". É que, devido ao seu funcionamento, esta máquina pode ser considerada a tataravó do computador! Tire suas próprias conclusões...
Um pouco da história
O primeiro dispositivo deste tipo foi concebido em 1786 por J. H. Mueller, mas nunca foi construído.
![Máquina das Diferenças Máquina das Diferenças](/images/stories/info_hard/DE1A.jpg)
As máquinas das diferenças foram esquecidas por quase um século até serem redescobertas em 1822 por Charles Babbage. A máquina de Babbage usava o sistema numérico decimal e funcionava girando-se uma manivela. Inicialmente o governo britânico financiou o projeto porém, como nunca que o inventor terminava a máquina, acabou suspendendo o seu apoio. Apesar disto, Babbage continuou seu trabalho e desenvolveu uma máquina analítica de aplicação muito mais ampla, deixando a máquina das diferenças de lado. No entanto, entre 1847 e 1849, retornou ao projeto original para aperfeiçoá-lo (sua Difference Engine No.2).
A Fig. 2 mostra uma foto da Máquina das Diferenças No.1. Charles Babbage iniciou sua construção em 1823 e a abandonou em 1842. Inspirado nos desenhos de Babbage, George Scheutz construíu várias máquinas das diferenças a partir de 1855. Uma delas foi vendida para o governo britânico em 1859.
Como Babbage nunca terminou as suas máquinas, havia dúvidas se elas realmente funcionariam. Baseando-se nos planos originais de Babbage, o Science Museum de Londres construíu uma Máquina das Diferenças No.2, empreitada que foi de 1989 até 1991. Em 2000, a impressora idealizada por Babbage também estava pronta. Tanto a máquina das diferenças quanto a impressora, que funcionaram perfeitamente, foram construídas apenas com tolerâncias que poderiam ser obtidas com a tecnologia disponível no século 19 e, desta forma, foi colocado um ponto final na discussão se os desenhos de Babbage efetivamente poderiam produzir máquinas funcionais.
O método das diferenças
Antes de mais nada, é preciso conceituar "diferença". Uma "diferença", escrita Δf(x), é simplesmente a diferença entre os valores de uma função calculada com dois valores diferentes para sua variável x, ou seja, Δf(x) = f(x1)-f(x2). Um "diferencial" é quase a mesma coisa. Num diferencial, os valores usados, x1 e x2, são reduzidos gradualmente por um processo limitante numa quantidade infinitesimal (infinitamente pequena) df(x). Um "diferencial", portanto, é uma "diferença" infinitesimal. Em contrapartida, uma "diferença" pode então ser considerada um "diferencial" finito, ou seja, um "diferencial" que usa um intervalo de tamanho finito ao invés de um infinitesimal. O método das diferenças acaba sendo um método de integrar "diferenças".
Se foi muito para seu neurônio solitário, o exemplo abaixo vai ajudar. O princípio de uma máquina das diferenças é o método de Newton de diferenças. Este método pode ser ilustrado através de um pequeno exemplo. Considere o polinônio de segundo grau
p(x) = 2x2 - 3x + 2
e suponha que queiramos tabular os valores p(0), p(0.1), p(0.2), p(0.3), p(0.4), etc. A tabela abaixo foi construída da seguinte forma: a primeira coluna contém os valores do polinômio, a segunda coluna contém as diferenças entre os dois vizinhos da primeira coluna e a terceira coluna contém as diferenças dos dois vizinhos da segunda coluna:
p(0)=2.00 | ||
2.0-1.72=0.28 | ||
p(0.1)=1.72 | 0.28-0.24=0.04 | |
1.72-1.48=0.24 | ||
p(0.2)=1.48 | 0.24-0.20=0.04 | |
1.48-1.28=0.20 | ||
p(0.3)=1.28 | 0.20-0.16=0.04 | |
1.28-1.12=0.16 | ||
p(0.4)=1.12 |
Observe como os valores da terceira coluna são constantes. Isto não é coincidência. Na realidade, se começarmos com qualquer polinômio de grau n, a coluna de número n+1 sempre apresentará valores constantes. Este fato crucial é que faz o método funcionar, como veremos a seguir.
![Máquina das Diferenças No.2 Máquina das Diferenças No.2](/images/stories/info_hard/babbageDif2.jpg)
Esta tabela foi sendo construída da esquerda para a direita, só que agora podemos continuar no sentido inverso e calcular mais valores do polinômio. Para calcular p(0.5) começamos com a coluna dos valores constantes, ou seja, 0.04. Para achar o próximo valor da coluna do meio, subtraímos 0.04 dos 0.16 já calculados, ou seja, 0.16-0.04=0.12. Agora, para calcular o próximo valor da primeira coluna, basta subtrair o valor encontrado do último valor da primeira coluna, ou seja, p(0.5)=1.12-0.12=1.00
Para calcular p(0.6) repetimos o mesmo algoritmo com os valores de p(0.5): pegamos 0.04 da terceira coluna, subtraímos este valor do último valor 0.12 da segunda coluna para obter 0.08 e depois subtraímos este resultado do último valor 1.00 da primeira coluna para obter 0.92, o valor de p(0.6).
Este processo pode continuar ad infinitum e os valores do polinômio são obtidos sem uma única multiplicação. A máquina das diferenças, portanto, só precisa estar preparada para efetuar subtrações. De um ciclo para o outro, ela precisa guardar apenas dois números (os últimos elementos da primeira e da segunda colunas). Se quisermos tabular polinômios do terceiro grau, precisaremos armazenar três números; para tabular polinômios de grau n precisaremos armazenar n números.
A construção da Máquina das Diferenças No. 2 pelo Science Museum terminou em Novembro de 1991, um mês antes do 200º aniversário de Babbage. Só a seção calculadora da máquina pesa 2.6 toneladas e é composta por 4.000 partes. A máquina pronta pode ser vista na Fig. 3. Funcionou perfeitamente, sendo capaz de armazenar 7 números, cada um com até 31 dígitos decimais. Portanto, com esta máquina, é possível tabular polinômios de sétimo grau com uma precisão de 31 dígitos.
Como a máquina pode ser alimentada pelos mais diversos polinômios, ela é ou não é um computador? Ah, antes que me esqueça - as melhores máquinas de Scheutz não armazenavam mais do que 4 números de 15 dígitos.