Differential Engine

Amíg a matematikusok nem voltak elkényeztetve az elektromos és elektronikus számítógépek áradatával, egészen agyafúrt dolgokat is képesek voltak kitalálni, csak hogy két számot össze tudjanak szorozni. Több matematikus is konstruált alapmûveletek elvégzésére szolgáló szerkezeteket, ezek azonban alig voltak nagyobbak (és hasznosabbak), mint egy kávédaráló.

Charles Babbage angol matematikusnak a tizenkilencedik század elején nagyszabású terv fogant meg a fejében: sok száz fogaskereket tartalmazó automatikus számológépet szeretett volna építeni. A "Differential Engine" feladata függvénytáblázatok számítása lett volna. A számítógépek elõtti korban egy-egy pontos függvénytáblázat kincset ért. Ma már szinte hihetetlen, hogy a különféle (színusz, koszínusz, logaritmus, stb.) táblázatokat akkoriban kézzel számolták ki. (Mikor a gimnáziumban arról tanultunk, hogy hogyan lehet a logaritmus táblázat segítségével hatékonyabban szorozni és osztani, a matematika tanárnõnk azt találta mondani, hogy függvénytáblázatokat csak a számítógépek feltalálása után kezdtek készíteni. Arra a kérdésünkre, hogy "Ha van már számítógépünk, akkor minek a függvénytáblázat? - gondolkodóba esett.)

Charles Babbage-nek soha nem sikerült megépíteni a gépét. Általánosan elterjedt vélemény szerint azért, mert a kor technológiája nem volt eléggé fejlett ahhoz, hogy a differential engine-hez szükséges nagyszámú egyforma fogaskereket elkészítsék. A valóságban a terv kudarcának nem mûszaki, hanem emberi okai voltak. Babbage folyton berhelt valamit, befejezni azonban soha semmit sem fejezett be. Hamar elveszítette az érdeklõdését, s ilyenkor mindig valami teljesen új dologba kezdett. Mihelyt a mûhelyben belefogtak a gép egy-egy részének kivitelezésébe, Babbage asztaláról máris megérkezett a "javított" terv változat, ami esetleg homlokegyenest ellentétes volt a feltaláló korábbi elképzeléseivel. Charles Babbage-ban tehát nem csak a világ elsõ hardver építõjét, de a világ elsõ buherátorát is tisztelhetjük.

A hálás utókor azonban az eredeti tervrajzok alapján elkészítette a masinát és most ki is van állítva a londoni Science Museumban.

A szerkezet egy kb. két méter magas monstrum, tele fogaskerékkel; az oldalán látható kurblival kell mûködtetni. Ezt a látogatók természetesen nem tekerhetik meg, ami a szerkezetet elnézve amúgy sem lehet egyszerû dolog. (Közelebbrõl szemügyre véve a berendezést, a tengely másik végén fel is fedeztem egy villanymotort - ez valószínûleg nem szerepelt Babbage eredeti rajzain.)

A gép algoritmusa

Babbage abból a ténybõl indult ki, hogy egy polinomot kellõen sokszor differenciálva, elõbb-utóbb konstanst kapunk. (Az eljárás végesdifferencia módszer néven korábban is ismert volt, de Babbagenek támadt elõször az az ötlete, hogy e módszeren alapuló gépet építsen.)

Írjuk fel egymás alá az x négyzet függvény értékeit az elsõ néhány egész számra:

  1    1
  2    4
  3    9
  4    16
  5    25

Most alkossunk egy újabb oszlopot, ahol az egymást követõ függvény értékek különbségeit számítjuk ki. Vagyis: 4 - 1 = 3, 9 - 4 = 5, stb

  1    1     3
  2    4     5
  3    9     7
  4    16    9
  5    25

Most alkossunk egy újabb oszlopot, ahol az elõbb kiszámolt különbségek különbsége szerepel:

1     1     3     2
2     4     5     2
3     9     7     2
4     16    9
5     25

Látszik, hogy ezek a különbségek állandók. Ha ezt a tényt kihasználva jobbról balra haladva tovább építjük a táblázatot, akkor ki tudjuk számolni az x négyzet értékeit tetszõleges egész számra, csupán összeadások segítségével. Ha kisebbre vesszük a lépésközt, akkor természetesen nem egészekre is ki lehet számolni a függvény értékeit.

Babagge õs-számítógépe hetedfokú polinomok helyettesítési értékeinek kiszámítására volt alkalmas, az eredményeket ráadásul ki is nyomtatta valahogy (erre nem sikerült rájönnöm). A masina csak egész számokkal tudott számolni, ezért a lebegõpontos számokat le kellett képezni egész számokra. (Nem is olyan régen még a DSP processzorok is csak egész számokkal tudtak számolni, így Babbage kései követõinek is részük lehetett ebben az élményben.)


Megjegyzések

A világ elsõ buherátora...

Ez az információ Joel Shurkin "Engines of the Mind" címû könyvébõl származik. A szerzõ egyebek mellett azt állítja, hogy egy svájci mûszerész néhány évvel késõbb (de még Babbage életében) elkészítette a "differential engine" egyszerûsített változatát. A szerkezet mûködõképes volt, meg is vásárolta egy brit biztosító társaság. Ez újabb bizonyíték arra, hogy a kor technikai színvonala lehetõvé tette volna az õs-számítógép megépítését.

Elkészítette a masinát...

A gépet Charles Babbage születésének kétszázadik évfordulója tiszteletére készítették el, és jelenleg a londoni Science Museum "Computing then and now" címû számítástechnika-történeti kiállításán látható - sok más hasonló furcsaság társaságában.


Írta: Mörk Péter 1995