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: 28430
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.
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.
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.