Escritos
B. Piropo
Internet:
< Coluna em ForumPCs >
Volte de onde veio
31/07/2006
< Analytical Engine II: a máquina diferencial >

[Reiterando o convite: quarta-feira, 13 de setembro às 19 horas, na Livraria Letras e Expressões do Leblon, terei o prazer de receber os amigos – ou seja,   todos vocês, membros e visitantes deste Fórum – no coquetel de lançamento (e noite de autógrafos) de meu livro “Dicas do Piropo”, um conjunto de mais de 150 Dicas para facilitar a vida dos usuários de Windows e dos aplicativos do pacote Office editado pela Campus/Elsevier e prefaciado por João Ubaldo Ribeiro. A Livraria Letras e Expressões do Leblon fica na Av. Ataulfo de Paiva 1.292, loja C e seu telefone é (21) 2511-5085. Compareçam. Será um prazer recebê-los e conhecer pessoalmente tantos amigos que só conheço de “nick”...]

Semana passada falamos sobre o homem, Charles Babbage. A partir de agora falaremos sobre seu sonho: construir suas máquinas, aquelas que substituiriam os “computadores” (ou seja, as pessoas que computavam, ou calculavam, as tabelas náuticas e de logaritmos).

Babbage era um matemático formidável. Não o fosse, não teria assumido a cátedra Lucasiana de Cambridge e se tornado em 1816 membro da Royal Society com menos de 25 anos de idade. Mas, curiosamente, não foi sua inclinação para a matemática que o levou a conceber suas máquinas, mas seus conhecimentos de economia.

A idéia

Para que isto fique claro é preciso lembrar que o tempo de Babbage coincidiu com o início da revolução industrial, que por sua vez foi deflagrada a partir das teorias econômicas de Adam Smith e John Stuart Mill sobre a divisão do trabalho.

Em 1819 Babbage fez uma viagem à França que mudou sua vida. Lá, além de consolidar sua amizade com figuras históricas como Laplace e Fourier, ele tomou conhecimento dos trabalhos do Barão Gaspard de Prony responsável, entre outras obrigações, pelo cálculo das “Tables du Cadastre”, o mais ambicioso programa de cálculo de tabelas que o mundo jamais conhecera. Tratava-se de um imenso conjunto de tabelas criado por ordem de Napoleão Bonaparte para auxiliar a substituição do arcaico sistema de pesos e medidas imperial, então vigente na França, pelo sistema métrico decimal. Uma tarefa tão gigantesca que De Prony decidira empreendê-la de forma, digamos, industrial, inspirado na histórica obra do economista Adam Smith.

Para entendermos o conceito é preciso recuar até o final do século dezoito, quando Smith publicou sua obra seminal, “The wealth of Nations”, um tempo em que não havia fábricas e toda a produção de bens era feita artesanalmente, cada objeto sendo “fabricado” do princípio ao fim pelo mesmo artesão. No livro, Smith usa a manufatura de alfinetes como exemplo de uma nova concepção de fábrica baseada na divisão de tarefas. Segundo ele, para fabricar alfinetes era preciso cortar um fio de arame em pedaços do tamanho do alfinete, rebater uma das extremidades para criar a cabeça, afinar a outra para formar a ponta, polir o alfinete, embalar os alfinetes prontos e assim por diante. Smith comparou o resultado do trabalho de um único operário encarregado de todas estas operações com o obtido a partir da divisão de tarefas por uma equipe na qual cada operário seria responsável por uma e apenas uma das ações, demonstrando que esta divisão resultaria em uma especialização que por sua vez redundaria em um enorme ganho de produção (uma idéia que de tão óbvia pode até parecer infantil, mas lembre-se que falamos de uma época que antecede à revolução industrial da qual os escritos de Adam Smith foram um dos principais pilares).

Pois bem: para cumprir sua tarefa De Prony adotou um sistema similar, organizando sua “fábrica” de tabelas em três seções. A primeira era formada por uma dúzia de matemáticos e sábios (da qual fazia parte Lazare Carnot, o do princípio de Carnot sobre a eficiência das máquinas) que escolhiam as fórmulas e equações a serem usadas para calcular as tabelas. A segunda era formada por um grupo de supervisores, que organizavam o trabalho, compilavam os resultados, conferiam os cálculos e os preparavam para a impressão. E a terceira formada por quase uma centena de “computadores”, dos quais não se exigia grande conhecimento matemático mas apenas que soubessem executar as operações fundamentais com exatidão (uma curiosidade histórica: as tabelas de De Prony foram calculadas duas décadas depois da revolução francesa, sob o governo de Napoleão Bonaparte, logo após a derrocada da aristocracia que dominara a França até a queda da Bastilha em 14 de julho de 1789; como as longas perucas e os penteados elaborados eram talvez os símbolos mais odiados da antiga elite dominante, passaram a ser execrados no novo governo e com isto centenas de cabeleireiros perderam seus empregos; muitos deles, pessoas dedicadas e com algum grau de educação, foram aproveitados por De Prony para integrar sua equipe de computadores).

A divisão do trabalho aplicada por De Prony para o cálculo de tabelas causou profunda impressão em Babbage. Mas ele sabia que uma das principais causas de erros nas tabelas não eram cálculos equivocados, mas a transcrição e impressão de resultados errados. Por isto concebeu uma forma de construção de tabelas que também usava uma distribuição de tarefas, como a implementada por De Prony, mas cuja parte mais trabalhosa, justamente aquela que exigia mais “força bruta” e menos conhecimento, o cálculo propriamente dito e sua impressão, fosse executada não por homens, mas por uma máquina.

Assim nasceu a idéia da “Difference Engine”, a “máquina diferencial” de Babbage.

(Outra curiosidade histórica: embora tivessem sido inteiramente calculadas, as tabelas de De Prony jamais vieram à luz; quando prontas, a França mergulhou em uma crise econômica que perdurou por décadas e o pesado financiamento necessário para sua impressão nunca foi obtido; tudo o que restou delas foram os manuscritos, prontos para impressão, na Academia Francesa de Ciências).

O princípio de funcionamento

Mas que máquina era aquela? Como era possível, no início do século dezenove, conceber um engenho capaz de efetuar cálculos para construir tabelas? Em que princípio de baseava tal prodígio?

Como tudo na vida que parece extraordinariamente complicado, o funcionamento da máquina diferencial se baseava em princípios muito simples. O difícil foi aparecer um gênio que aplicasse esses princípios e concebesse algo funcional a partir deles.

Segundo a Wikipedia, “a máquina diferencial é um mecanismo digital para efetuar cálculos concebida exclusivamente para tabular funções polinomiais”.

Destrinchemos.

Neste ponto, cabe uma advertência: se você não tem pendores matemáticos ou não gosta do assunto, salte os próximos parágrafos e vá diretamente para o próximo tópico, “A Máquina”, já que seu conteúdo não é indispensável para acompanhar as peripécias de nosso caro Babbage. No entanto, se o assunto lhe agrada mesmo que um pouco e   ainda que você não tenha grandes conhecimentos matemáticos, recomendo enfaticamente a leitura. Os próximos parágrafos, escritos tanto quanto possível em uma linguagem acessível a leigos, lhe revelarão uma das coisas mais surpreendentes e interessantes da matemática, com uma aplicação prática imediata: o método das diferenças.

“Um mecanismo digital para efetuar cálculos” é uma calculadora que trabalha exclusivamente com números inteiros ou com frações que possam ser expressas por quocientes de números inteiros (para os matemáticos: com números racionais). Facilitando: uma máquina que efetua cálculos cujos resultados não variam continuamente, mas por intervalos discretos, saltando de um para outro. Estes intervalos podem ser tão pequenos quanto se queira, mas os resultados não podem variar continuamente (por exemplo: um relógio digital, dependendo de sua precisão, pode exprimir tempo em segundos, décimos ou milésimos de segundos; pode até mesmo descer a milionésimos ou bilionésimos de segundo, mas sempre mostrando resultados sob a forma de números inteiros – no último caso, o número de bilionésimos de segundo decorridos a partir de um dado momento; já um relógio “de ponteiro” é um mecanismo analógico que pode, idealmente, “apontar” para uma posição correspondente a qualquer “tempo” e, ao se mover, fazer esses resultados variarem continuamente para os “tempos” seguintes, teoricamente com uma precisão infinita, já que pode apontar para posições cujos valores correspondem a “números irracionais”, aqueles que, como o número “Pi”, quando expressos em uma base inteira racional, têm um número infinito de “casas fracionárias” – no caso da base dez, de “casas decimais”). A máquina diferencial, por trabalhar com pequenas diferenças entre resultados, era portanto um dispositivo de natureza digital.

Uma máquina que “tabula funções polinomiais” fornece dados que permitem tabular, ou seja, exibir sob a forma de tabelas, todos os resultados possíveis de uma função polinomial (e este era justamente o objetivo de Babbage: gerar tabelas náuticas).

E, finalmente, uma “função polinomial” é uma função expressa por um “polinômio”, uma expressão com um número finito de constantes e variáveis combinadas usando somente as operações de soma, subtração, multiplicação e exponenciação com expoentes inteiros (já veremos exemplos).

Pronto, destrinchado está.

Mas será que uma máquina que só serve para calcular o resultado de funções polinomiais presta para alguma finalidade prática?

Ainda segundo a Wikipedia: “Como funções logarítmicas e trigonométricas sempre podem ser expressas aproximadamente por funções polinomiais, uma máquina como esta é mais genérica do que parece a princípio” (em linguagem mais acessível: pode-se demonstrar que sempre é possível exprimir aproximadamente qualquer função trigonométrica ou logarítmica por uma função polinomial equivalente, portanto uma máquina capaz de tabular os resultados de funções polinomiais pode ser usada para calcular resultados tanto destas funções quanto das funções trigonométricas e logarítmicas).

Logo, a máquina diferencial seria na prática uma máquina de calcular para uso geral, ou seja, capaz de calcular resultados de qualquer função, seja ela polinomial, trigonométrica ou logarítmica.

A máquina diferencial de Babbage calculava os resultados das funções polinomiais usando o método das diferenças estabelecido por Isaac Newton (não lhe parece curioso como a gênese de quase todo o conhecimento da humanidade parece circunscrita a um número relativamente pequeno de indivíduos absolutamente geniais? Veja, nesta pequena série de colunas sobre as máquinas de Babbage, quantos nomes conhecidos aparecem e se repetem: Newton, Laplace, Fourier, Humboldt, Carnot...)

Para entendermos como funciona o método das diferenças, primeiro vejamos o que são polinômios. E, para não complicar, vamos nos restringir aos polinômios de uma única variável, aqueles usados pela máquina diferencial.

Variável é um símbolo que representa um número. Qualquer número. No nosso caso, digamos que o símbolo seja a letra “x”, classicamente usada para indicar variáveis desde muito antes dos tempos de Noel Rosa (lembre de seu samba genial, onde a intérprete declara seu amor pelo Estácio informando que “ser estrela é bem fácil, mas sair do Estácio é que é / o xis do problema”).

Um polinômio, indicado genericamente por P(x), é constituído por uma soma de parcelas, cada uma delas contendo a variável elevada a um expoente inteiro e positivo. O maior destes expoentes determina o “grau” do polinômio. Complicou ? Então veja na Figura 1 um exemplo típico de polinômio, o clássico e muito bem conhecido “polinômio do segundo grau” (porque 2 é o maior expoente, ou “grau”, a que a variável “x” está elevada).

Figura 1: Polinômio do segundo grau.

Na parte superior da figura vemos a representação genérica do polinômio do segundo grau, onde os “coeficientes” dos termos estão representados por A, B e C, respectivamente. E na parte inferior uma representação específica, na qual os coeficientes genéricos A, B e C foram substituídos pelos valores numéricos 2, -3 e 2.

Como se obtém o “resultado” do polinômio? Simples: substituindo a variável “x” por seu valor e efetuando os cálculos. Mas a variável “x” pode assumir qualquer valor e cada um deles dará origem a um resultado. Por exemplo, imagine que “x” valha 1. Então, para calcular o correspondente resultado do polinômio basta fazer x=1 e efetuar os cálculos. Usando a notação comumente empregada em planilhas eletrônicas   para exprimir potências, onde “x elevado à segunda potência” se escreve “x^2”, e sempre lembrando que “C=C.1” e “x^0=1”, teremos:

P(1) = 2.x^2 – 3.x^1 + 2.x^0 =

= 2.1^2 – 3.1^1 + 2.1^0 =

= 2.1 – 3.1 + 2.1 =

= 2 – 3 + 2 = 1

Assim, quando a variável “x” assume o valor 1, o resultado do polinômio P(1) é 1.

Já quando x=2 teremos:

P(2) = 2.2^2 – 3.2 + 2 = 8 – 6 + 2 = 4

Então quando a variável “x” assume o valor 2, o resultado do polinômio P(2) é 4.

Neste ponto você já percebeu que pode-se determinar todos os infinitos valores de P(x) atribuindo infinitos valores a “x” e efetuando os cálculos. O que geraria um número infinito de resultados e consumiria um tempo infinito, algo muito pouco prático.

Então, na prática, o que se faz?

Bem, estabelece-se um intervalo de variação para a variável “x” e um incremento para obter o valor seguinte, determina-se os valores sucessivos e calcula-se os resultados para cada valor assim obtido.

Calma que explicando parece complicado mas exemplificando fica fácil. Veja: estabeleçamos que o intervalo varie de zero a um e que o incremento seja de um décimo, ou 0,1. Então “x” assumirá os valores 0; 0,1; 0,2; 0,3..... 0,8; 0,9 e 1, cada um deles gerando um dos onze resultados correspondentes de P(x).

Ora, é claro que a forma mais simples de fazer isso é usando uma planilha de cálculos (para nós, felizardos, naturalmente; já Babbage teve que inventar uma máquina para isto). Experimente. Se você tem acesso a uma planilha eletrônica, qualquer planilha, entre nas colunas “A” até “E” e nas linhas “ 1” até “ 16” os valores mostrados na Figura 2, exatamente como mostrados na figura (o negrito, naturalmente, é dispensável pois serve apenas para destacar títulos, mas tome cuidado sobretudo com as células cujo conteúdo começa com um sinal de igualdade, pois estas são justamente as fórmulas usadas para os cálculos).

Figura 2: Planilha para cálculo de P(x) exibindo fórmulas.

Não se preocupe se, à medida que você introduzir os valores, eles forem se apresentando na planilha com um aspecto diferente do exibido na Figura 2. Isto certamente ocorrerá, já que a Figura 2 foi obtida ajustando a planilha para exibir as fórmulas como elas foram digitadas. Porém, como o modo padrão de exibição da planilha é a exibição de valores, provavelmente as células irão assumindo o aspecto da Figura 3, que mostra exatamente a mesma planilha da Figura 2, porém ajustada para exibir valores. Veja:

Figura 3: Planilha para cálculo de P(x) exibindo valores.

Agora, analisemos a planilha da Figura 3 e vamos descobrir uma coisa extraordinária. Primeiro vejamos o que suas células representam. As três primeiras linhas mostram apenas os valores dos coeficientes dos três termos do polinômio, A, B e C que, como indicado na Figura 1, valem respectivamente 2; –3 e 2. A linha “ 4” mostra o polinômio P(x) expresso com a mesma notação usada na planilha para indicar potências e a linha “ 5” é a dos títulos, que indicam o que vem abaixo.

Agora vamos ao que interessa: as onze linhas “ 6” a “ 16”. Repare: na coluna “A” elas mostram apenas a “ordem” dos valores da variável “x” no intervalo selecionado. Na coluna “B” estas linhas mostram os onze valores atribuídos a “x” no intervalo de zero a um, incrementados de 0,1 em 0,1. E na coluna “C” estas mesmas linhas mostram os “resultados do polinômio”, ou seja, os onze diferentes resultados calculados para P(x) quando “x” assume os onze diferentes valores do intervalo selecionado. A coluna “C” é portanto a coluna dos resultados, aquilo que interessa calcular, a que deveria ser preenchida pelos resultados fornecidos pela máquina diferencial.

Mas vamos dar dois passos adiante.

Repare na coluna “D”. Recorra à Figura 2 (a planilha exibindo fórmulas) para descobrir a que correspondem seus valores. Percebeu? Eles são as diferenças entre cada dois resultados sucessivos. Por exemplo: o valor 0,2 que você encontra na célula “D9” corresponde à diferença entre os resultados exibidos em “C8” (1,48) e “C9” (1,28). E, repare: todos os demais valores da coluna “D” foram assim obtidos (ou seja, subtraindo dois resultados sucessivos mostrados na coluna “C”).

E a coluna “E”, o que exibe? Bem, um exame das fórmulas mostradas na Figura 2 informa que ela é análoga à coluna “D”, ou seja, exibe a diferença entre dois valores sucessivos da coluna “D”. Ou seja: ela exibe as diferenças das diferenças.

Percebeu o que ela tem de extraordinário?

Sim, neste polinômio do segundo grau, as diferenças das diferenças (ou seja, as diferenças de segunda ordem) dos resultados são sempre iguais.

E isto não acontece por acaso. Na verdade, se você se deu ao trabalho de construir a planilha como mostrado na Figura 2, agora pode experimentar à vontade alterando os valores dos coeficientes A, B e C. E por mais que os altere, os números mostrados na coluna “E” serão sempre iguais entre si. De fato repare, nas duas planilhas mostradas na Figura 4, os resultados e as diferenças obtidas quando, na mesma planilha da Figura 2, entramos com valores muito maiores e muito menores para os coeficientes. Os resultados exibidos nas colunas “C” se alteram, as diferenças das colunas “D” também mas as colunas “E” continuam exibindo valores iguais entre si. De onde se pode concluir que em qualquer polinômio do segundo grau, as diferenças das diferenças (ou seja, as diferenças de segunda ordem) dos resultados são sempre iguais.

Clique para ampliar...
Figura 4: Cálculo de P(x) com diferentes coeficientes.

Extraordinário, não lhe parece?

Pois bem, quer ver algo ainda mais extraordinário? Repare, na Figura 5, o que ocorre quando criamos uma planilha para calcular os resultados de um polinômio do terceiro grau, ou seja, da forma “P(x)=A.x^3+B.x^2+C.x+D”. Para facilitar o entendimento, mantivemos o mesmo intervalo (zero a um) e o mesmo incremento (um décimo) para a variável “x” e calculamos, além dos resultados (ainda na coluna “C”), as diferenças de primeira, segunda e terceira ordem, esta última exibida na coluna “F”. Percebeu ? Sim, nos polinômios de terceiro grau as diferenças de terceira ordem são iguais (se duvida, construa uma planilha semelhante à da Figura 5 e altere à vontade os valores dos quatro coeficientes A, B, C e D).

Figura 5: Calculo dos valores de um polinômio do terceiro grau.

Claro que nesta altura dos acontecimentos você já se deu conta de que, seja qual for o grau do polinômio, as diferenças de ordem correspondente ao grau serão constantes (ou seja, as diferenças de ordem “n” de um polinômio de grau “n” serão iguais entre si).

Agora fica fácil entender em que consiste o “método das diferenças” estabelecido por Newton. Basta prestar atenção na Figura 6, que repete a Figura 3 (o cálculo do polinômio de segundo grau com coeficientes A=2; B=-3 e C=2) na qual foram calculados apenas os três primeiros resultados e incluídos os valores conhecidos, entre os quais as diferenças constantes da coluna “E”. Com os conhecimentos de que dispõe até agora, você seria capaz de preencher o restante da coluna “C” (a única que interessa, por exibir os resultados do polinômio) efetuando apenas operações de subtração (ou seja, “diferenças”)?

Figura 6: Resultados parciais de P(x).

Aposto que sim. Com você sabe que a diferença de segunda ordem é sempre igual a 0,04, pode calcular o valor de “D9” subtraindo 0,04 da última diferença de primeira ordem exibida em “D8”, 0,24, obtendo 0,20. E, como sabe que esta é a nova diferença de primeira ordem, pode calcular o resultado a ser exibido na célula “C9” subtraindo-a do resultado anterior exibido em “C8”, 1,48, obtendo (1,48 – 0,20 = 1,28) e escrevendo este valor em “C9”, o lugar correspondente ao resultado.

Eu não sei se você se deu conta do que acabou de fazer, mas se prestar atenção foi uma façanha notável : você calculou um resultado de um polinômio de segundo grau efetuando apenas duas subtrações sucessivas. Percebeu? Nada de elevar a potências, nada de multiplicar ou dividir, nada de somar, nada disso. Apenas duas subtrações. E, melhor: repetindo a dose você pode calcular, sempre apenas com duas subtrações, todos os demais resultados do polinômio. E, mais importante ainda: isto vale para qualquer polinômio, seja qual for sua complexidade e seja qual for seu grau (claro que quanto maior o grau, maior número de subtrações serão necessárias, mas qualquer resultado pode ser obtido apenas com um número finito de subtrações, ou “diferenças”).

Não é mesmo uma coisa formidável?

Pois foi o método das diferenças de Newton a idéia genial que Babbage aplicou para conceber sua máquina de fazer tabelas: escolhia o polinômio que representava matematicamente o fenômeno a ser tabelado, estabelecia o intervalo de variação e o incremento, usava uma equipe de matemáticos para calcular os primeiros resultados e, daí em diante, fazia sua máquina efetuar todas as diferenças (ou subtrações) sucessivas que levavam aos demais resultados, preenchendo inteiramente a tabela.

Simples, não lhe parece?

Pois é esta simplicidade que caracteriza os gênios.

A Máquina de somar

Concebido o método, restava pô-lo em prática. Mas como fabricar uma máquina capaz de fazer subtrações?

Bem, não é preciso ser um gênio para conceber algo tão simples desde que se conheça como funcionam as engrenagens. Na verdade, algo parecido já existia desde muito antes dos tempos de Babbage, “ La machine d’arithmétique”, uma máquina de calcular elementar concebida por Blaise Pascal (sim, Pascal, o físico e matemático genial que estabeleceu as bases da teoria das probabilidades e deu seu nome a uma linguagem de programação e à unidade padrão de pressão; não disse que são poucos?). Dois séculos e meio antes de Babbage (mais especificamente em 1645) Pascal havia criado uma máquina capaz de efetuar cálculos no sistema decimal usando rodas e hastes dentadas. Com efeito, sobre a máquina, dizia seu inventor: “ de toutes lesquelles manières différentes l'invention principale et le mouvement essentiel consistent en ce que chaque rouë ou verge d'un ordre faisant un mouvement de dix figures arithmétiques, fait mouvoir sa prochaine d'une figure seulement” (“de todas as coisas diferentes [da máquina] a invenção principal e o movimento essencial consistem em que cada roda ou haste de uma ordem, ao fazer um movimento de dez algarismos aritméticos, faz mover a próxima apenas um algarismo”).

Evidentemente Babbage conhecia a máquina de Pascal. Tanto assim que, no histórico texto de Menabrea (sobre o qual ainda falaremos) sobre as máquinas de Babbage ela é mencionada, porém de forma pouco elogiosa: “the much-admired machine of Pascal is now simply an object of curiosity, which, whilst it displays the powerful intellect of its inventor, is yet of little utility in itself. Its powers extended no further than the execution of the first four operations of arithmetic, and indeed were in reality confined to that of the first two, since multiplication and division were the result of a series of additions and subtractions” (“a tão admirada máquina de Pascal é hoje simplesmente um objeto de curiosidade que, embora comprove o poderoso intelecto de seu inventor, é de pouca utilidade em si mesma. Sua capacidade não vai além da execução das quatro operações aritméticas e, ainda assim, é efetivamente confinada às duas primeiras, já que multiplicação e divisão são o resultado de uma sucessão de somas e subtrações”). Mas, seja como for, a idéia usada para conceber sua máquina é basicamente a mesma: um mecanismo de engrenagens.

Como funciona um negócio desses?

Bem, máquinas de calcular usando engrenagens foram muito populares em meados do século passado, antes do advento das calculadoras digitais eletrônicas. Os modelos mais antigos eram, digamos, de “tração animal”, ou seja, acionados à manivela. (veja alguns deles na Figura 7 (imagens obtidas no < http://www.computermuseumgroningen.nl/index.html > “Allard's Computer Museum Groningen” e Vintage Calculators Web Museum < http://www.vintagecalculators.com/html/odhner.html >). Mais tarde surgiram os modelos elétricos, baseados no mesmo princípio, porém acionados por um pequeno motor elétrico que substituiu a manivela. Eram muito rápidas para a época: se você entrasse com dois números de, digamos, seis algarismos, e comandasse uma divisão, dava para tomar um cafezinho enquanto a divisão era feita e na volta ainda pegaria os últimos giros das engrenagens antes de ler o resultado, desde que não perdesse muito tempo batendo papo no corredor (agora falando sério: nas boas máquinas de calcular elétricas somas e subtrações eram feitas em um par de segundos, multiplicações em cerca de dez segundos; apenas nas divisões dava tempo de tomar o cafezinho....)

[outra curiosidade já nem tão histórica: do parágrafo acima dá para perceber que eu tive alguma experiência pessoal no uso destas maravilhas da tecnologia e de fato assim foi: no meu primeiro emprego, ainda nos tempos de estudante nos início dos anos sessenta, trabalhei com algumas delas em um escritório de projeto onde havia diversas máquinas de calcular, algumas elétricas, outras de manivela; as elétricas eram destinadas aos engenheiros, naturalmente; os estudantes tinham que se contentar com as de manivela; se vocês prometerem guardar segredo eu até poderia admitir que muitas vezes me coube uma Facit, igual àquela pretinha do canto inferior direito da Figura 7, que eu sempre recebia praguejando contra a discriminação à favor dos engenheiros que usavam as elétricas sem jamais me ocorrer que um dia eu poderia sentir saudades dela...]

Clique para ampliar...
Figura 7: calculadoras de manivela.

A máquina de Babbage era baseada no mesmo princípio. Mas que princípio seria esse? Como um conjunto de engrenagens pode efetuar operações matemáticas?

Bem, na verdade “operações matemáticas” é um certo exagero. Máquinas de engrenagens podem somar, e olhe lá. Mas como a subtração é uma soma com sinal invertido, elas acabam por somar e subtrair (finalidade precípua da máquina diferencial de Babbage, como já sabemos). E como a multiplicação e a divisão nada mais são que uma sucessão de somas e subtrações, respectivamente, se corretamente operadas as calculadoras de engrenagens movidas a manivela serão capazes de executar as quatro operações aritméticas: soma, subtração, multiplicação e divisão. Mas no fundo não passam de “máquinas de somar”, um dos nomes pelos quais eram conhecidas.

Então tudo o que precisamos saber é como se pode somar usando engrenagens. O que fica fácil de entender examinando a figura 8, que exibe uma dessas máquinas com as engrenagens à mostra e um detalhe de seu conjunto principal de engrenagens (fotos obtidas no < http://www.vintagecalculators.com/html/odhner.html > Vintage Calculators Web Museum).

Clique para ampliar...
Figura 8: Máquina de somar e detalhe das engrenagens.

Repare na máquina “aberta” do lado esquerdo da figura. Note seu conjunto principal de engrenagens na parte superior. Trata-se de um tipo especial de engrenagens onde se pode variar o número de “dentes” ou ressaltos. Note o detalhe do lado direito, na parte assinalada em azul. Veja que na parte de baixo há três pinos salientes (assinalados pelas setas apontando para a direita) enquanto, acima deles, todos os demais pinos estão recolhidos (os três primeiros assinalados pelas setas voltadas para a esquerda). Agora repare nas engrenagens restantes. A da extremidade direita exibe apenas um pino saliente, todos os demais estão recolhidos. Na situada imediatamente à esquerda dela, dois pinos estão salientes. Ao lado, na engrenagem assinalada, há três pinos salientes. Na seguinte, quatro (dá para notar por detrás das setas), na outra cinco, na seguinte seis, na próxima sete, na seguinte oito e nas duas últimas nenhum pino está levantado. “Lendo” o número de pinos da esquerda para a direita teremos: “ 0087654321”. É assim que se “entra” na máquina com os algarismos que formam uma parcela: levantando o número correspondente de pinos em cada engrenagem.

Como estes pinos são levantados? Movendo pequenas alavancas que ajustam peças que fazem parte das engrenagens do conjunto principal (uma delas está assinalada com uma seta na imagem da esquerda da figura 8, as demais aparecem igualmente na mesma imagem mas não estão assinaladas e, na imagem da direita, procurando bem dá para ver perto do canto superior esquerdo as alavancas correspondentes às duas últimas engrenagens da esquerda) e que podem ser vistas na máquina Facit no canto inferior direito da Figura 7 atravessando sua “tampa”. Para cada posição que a alavanca é movida levanta-se um pino na engrenagem correspondente. Assim, entra-se com qualquer número (no caso da máquina mostrada na Figura 8, de até dez algarismos).

Agora, o que ocorre quando se gira a manivela, digamos, no sentido horário?

As engrenagens do conjunto de cima giram e seus “dentes” acionam os dentes das do conjunto de baixo. Mas, atenção: os “dentes” das engrenagens de cima são os pinos salientes. Então, para uma volta completa da manivela com as engrenagens ajustadas como mostra a imagem direita da Figura 8, a engrenagem da extremidade direita do conjunto superior move apenas um dente da engrenagem correspondente do conjunto inferior, a seguinte dois dentes e assim sucessivamente. Portanto, imaginando-se que no início do movimento as engrenagens do conjunto inferior estavam na posição correspondente ao número “ 0000000000”, após uma volta completa da manivela o número “ 0087654321” que estava “armazenado” no conjunto de engrenagens superior é transferido para o conjunto inferior e aparece no mostrador de baixo.

Quer somar a segunda parcela? Pois entre com ela no conjunto superior, ajustando cada alavanca no algarismo correspondente (o que corresponde a levantar um número equivalente de pinos, ou “dentes”, em cada engrenagem) e gire a manivela uma segunda vez efetuando mais uma volta completa.

Percebeu? Os novos números serão somados aos anteriores, já que cada engrenagem do conjunto inferior se movimentará tantos “dentes” adicionais quantos os pinos levantados na engrenagem correspondente do conjunto superior. E o resultado aparecerá no mostrador de baixo.

Agora só falta entender como fazer “ir um” (ou seja, como proceder quando a soma de dois algarismos excede a dez, o valor da base do sistema decimal).

Bem, quando “vai um” basta fazer a engrenagem imediatamente à esquerda “andar” um dente a mais. E se você prestou atenção na descrição da máquina de Pascal saberá como fazer isso. Recordando: “de todas as coisas diferentes [da máquina] a invenção principal e o movimento essencial consistem em que cada roda ou haste de uma ordem, ao fazer um movimento de dez algarismos aritméticos, faz mover a próxima apenas um algarismo”. Percebeu? Cada vez que uma engrenagem gira uma volta completa (correspondente aos algarismos de zero a nove, já que ela tem dez dentes) faz com que a engrenagem que está imediatamente à sua esquerda avance um “dente”. Ou seja: “foi um”...

Assim se soma. Subtrair, naturalmente, se consegue da mesma forma. A única diferença é que o segundo giro da manivela se faz no sentido oposto.

Multiplicar se consegue dando voltas sucessivas na manivela e movendo todo o conjunto da engrenagem superior uma “casa” para a esquerda após cada dígito (pense um pouco que você entenderá; e pense mais um pouco que descobrirá como dividir).

Achou complicado?

Mas não é. Aposto que se você tivesse uma destas máquinas desmontadas na sua frente entenderia imediatamente seu funcionamento. Acredite: é de uma simplicidade franciscana (agora que você já sabe as bases, naturalmente).

A Máquina Diferencial de Babbage

A máquina diferencial de Babbage (“the difference engine”) baseava-se nos mesmos princípios das máquinas de engrenagens fabricadas cem anos depois, embora fosse muito mais complexa devido ao maior número de dígitos de suas parcelas. Também seria movimentada manualmente. Veja, na Figura 9 (montada a partir de fotos obtidas na < http://en.wikipedia.org/wiki/Difference_engine > Wikipedia) um exemplar que permanece em exibição no London Science Museum, montado em 1991 por Doron Swade e equipe, para celebrar o ducentésimo aniversário de nascimento de Babbage. Note, na imagem exibida no canto inferior direito da Figura 9, um detalhe no qual se pode perceber claramente a complexidade do mecanismo idealizado pelo inventor (a máquina foi montada rigorosamente de acordo com os planos e desenhos de Babbage). Repare na imagem maior, no lado esquerdo da máquina, os rolos de papel branco. Aquele setor corresponde justamente à impressora, que fazia parte do dispositivo idealizado por Babbage e que visava evitar erros de cópia e transcrição dos resultados: de acordo com a concepção genial de Charles Babbage, as tabelas sairiam inteiramente prontas da máquina, já que seriam impressas diretamente por ela.

Clique para ampliar...
Figura 9: Máquina diferencial e detalhe ( London Science Museum).

Veja, na Figura 10, uma parte da máquina diferencial original de Babbage, montada por seu filho alguns anos após sua morte de acordo com os desenhos deixados pelo pai. Note que seu acabamento não é tão bom quanto o do modelo do London Science Museum, o que é compreensível levando-se em conta a evolução da tecnologia nos cem anos que medearam entre os dois projetos.

Figura 10: Montagem parcial da máquina diferencial.

Mas por que eu mostro apenas fotos de dispositivos montados por terceiros e não da máquina diferencial do próprio Babbage, que dedicou a vida à sua construção?

Porque infelizmente Babbage jamais consegui terminá-las. Nem mesmo a primeira. O que contribuiu significativamente para seu descrédito e para a execração a que foi submetido, como vimos na coluna anterior.

As razões disso, assim como um breve resumo de sua luta vã para construí-las, serão o assunto da próxima coluna.

Coluna Anterior: < http://www.forumpcs.com.br/viewtopic.php?t=179042 > Analytical Engine I: Um velho ranzinza

Próxima coluna: Em breve.

Comentários dos Leitores

B. Piropo


URL: http://www.bpiropo.com.br
Copyright Benito Piropo Da-Rin
WebMaster:
Topo da Página
Atualizada em
(MM/DD/AA) + Hora
Wagner Ribeiro ]