Fizikai Szemle honlap |
Tartalomjegyzék |
Fizikai Szemle 2003/12. 425.o.
Szelezsán János
Gábor Dénes Főiskola, Budapest
A fenti furcsa címet azért adtuk írásunknak, mert létjogosultsága volna egy olyan állításnak, hogy Neumann Jánost a fizika (matematikai fizika) "sodorta" a számítástechnikához és ily módon lett a "számítógépek atyja".
Az Olvasó bizonyára tudja, hogy Neumann János a múlt század nagy matematikusainak egyike (ha nem a legnagyobb) volt.
Ha a teljes életművet vizsgáljuk, akkor némi túlzással megkockáztathatjuk azt az állítást is, hogy a számítógép Neumann János munkásságának egy "mellékterméke" volt "csupán". Igaz, hogy ennek a hatása jóval nagyobb lett, mint amilyennek talán maga is gondolta volna.
Nagy matematikus volt, és még nagyobb azért, mert valószínűleg az utolsó nagy matematikai polihisztorként tartja majd számon a tudománytörténet. A matematika nagyobb ágai között talán egy sincs, amelyet ne művelt volna.
Sután hangzanak egymás után sorban a "nagy", "legnagyobb" jelzők, mégis zárjuk le a felsorolást azzal, hogy korának legnagyobb alkalmazó matematikusa is volt.
Út a számítógéphez
Neumann Jánost 1943-ban kinevezték tanácsadónak az atombomba előállítását előkészítő Manhattan Programhoz, egyúttal az aberdeeni Ballisztikai Kutató Laboratóriumba is. Az itt felmerülő numerikus matematikai problémák megoldásához mindinkább szüksége lett volna valamilyen mechanikus gyors számolóeszközre. Ezt többször is szóvá tette. 1944 januárjában levelet írt Warren Weavernek, az Alkalmazott Matematikai Bizottság elnökének. Azt kérdezte, hogy a kormánynak milyen eszközei vannak a számítások elvégzésére. Weaver említést tett néhány helyről, de a Moore Schoolt, amely később Neumann János számítástechnikai bázisa lett, nem említette meg.
Pedig a Moore Schoolban John Mauchly és J. Presper Eckert vezetésével - John V. Atanasoff elveinek felhasználásával - ekkor már elkezdték építeni az ENIAC (Electronic Numerical Integrator and Computer) nevű, első elektronikus számoló eszközt. Azért nem mondunk számítógépet, mert ez a gép még nem volt univerzális elektronikus számológép. (Az 1923-ban létrehozott Moore School of Electrical Engineering a Pennsylvania Egyetem önálló elektromérnöki részlege, "kara" volt.)
Tanácsadóként Neumann sokat utazott Los Alamos, Aberdeen és Princeton között. 1944 júniusában az aberdeeni pályaudvar peronján állt, amikor Goldstine csatlakozott hozzá. (Hermann H. Goldstine matematikus a hadsereg, a Pentagon képviselőjeként vett részt az ENIAC Programban.) Goldstine azonnal megismerte Neumannt, mert néhány évvel korábban részt vett egy konferencián, ahol az előadók egyike Neumann János volt.
Neumann János nagyon kedvesen fogadta Goldstine bemutatkozását, és megkérdezte, hogy mi járatban van itt. Goldstine elmondta, hogy az ENIAC projektben vesz részt. Mindjárt el is mesélte Neumann-nak, hogy ez az ENIAC gép 333 szorzást végez másodpercenként. Neumann-nak felcsillantak a szemei. A beszélgetésről Goldstine azt mondja, hogy a találkozás pillanatok alatt egy doktori vizsgává változott, Neumann mindenről kikérdezte az ENIAC géppel kapcsolatban. Goldstine megemlíti azt is, hogy Neumann teljesen megértette, miről van szó, és hogy mit tud az ENIAC.
Ettől kezdve Neumann János sűrűn megfordult a Moore Schoolban. Eleinte Főleg azért, hogy számításokat végezzen az ENIAC-on, de rövidesen oszlopos tagja lett az ENIAC-ot tervező, építő csoportnak.
Neumann kidolgozza a számítógépek alapelvét - a "First Draft"
Az ENIAC után, pontosabban félig-meddig párhuzamosan egy új gép, az EDVAC (Electronic Discrete Variable Computer) tervezésébe kezdtek Moore Schoolban. 1944 szeptemberétől Neumann János aktív résztvevője lett az EDVAC projektnek.
1945. június 30-án Neumann Jánostól egy 110 oldalas dokumentum érkezett a Moore Schoolba, Los Alamosból, "First Draft of a Report on the EDVAC" címmel. ("Az EDVAC-ról szóló jelentés első változata", a továbbiakban röviden "First Draft"-nak hívjuk). Ebben a dokumentumban Neumann János az EDVAC gép teljes leírását adja, összefoglalva mindazon gondolatokat, amelyek Moore Schoolban jöttek létre az új géppel kapcsolatban. Az anyagban leírta a gép logikáját, a gép felépítését. Neumann a gépet gyors működésű, automatikus, digitális számító rendszernek nevezte.
Érdekes, hogy Neumann János végig matematikai gépben gondolkodott, arra, hogy mire lesznek képesek ezek a gépek a harmadik évezred elejére talán nem is gondolt. Lássunk néhány mondatot a First Draftból.
Három szerepkörben
Neumann Jánosnak a számítógéphez hármas kötődése volt.
Egyfelől - mint már mondtuk - a számítógépek atyjának tekintik, amit a First Draft megírásával vívott ki magának. (Az irodalomban nagyon sok helyen megpendítik, hogy voltaképpen koordináló szerepe volt, többen szemére hányták, hogy a First Drafton szerepeltethette volna a többiek, P. Eckert és J. Mauchly nevét is. Mások viszont - például a programban részt vevő H. Goldstine is - határozottan állítják, hogy hatása vitathatatlanul óriási volt, nemcsak azért, mert szintetizálta az addigi elveket, módszereket, hanem a számítástechnika fejlődését több évtizedre meghatározó alapokat fektetett le.)
Neumann János a számítógépek nagy alkalmazója is volt, ráadásul úgy, hogy numerikus módszereket dolgozott ki konkrét problémák megoldására, és ezeket számítógépre vitte.
Nancy Stern (aki több projektben is dolgozott Neumann Jánossal, és több cikket is publikált Neumann Jánosról) a következőket írja Neumann János egyik híres előadását közlő cikk előszavában: "Neumann János elsődleges célja egy tudományos berendezés kifejlesztése volt, speciálisan a tudósok számára, hogy megoldhassanak olyan matematikai problémákat, amelyekben nagy számú művelet elvégzése szükséges. De nem elégítette ki a számítógépek kifejlesztésével kapcsolatos elmélet megalapozása, a gépek megépítése, sokat foglalkozott a gépek alkalmazásával is ... a matematikában és a matematikai fizikában. "
Nancy Stern itt megemlíti, hogy a második világháború után sok matematikus, aki a háború alatt a háborúval kapcsolatos alkalmazott matematikai tevékenységet végzett, visszatért az elméleti kutatásaihoz, "de nem így Neumann János".
Neumann János a háború után az Institute for Advanced Study intézményben (amely egy erősen elméleti kutatásokat végző intézet volt) vezetője lett egy számítógépes programnak, amelyet a Pentagon, a Tengerészeti Hivatal, a Légierő és az Atomenergia Bizottság pénzelt, s 1952-re itt épült meg az IAS gép (Institute for Advanced Study). Itt létrehozott egy Meteorológiai Intézetet, ahonnan számos feladatot oldottak meg az IAS gépen.
A harmadik oldala a számítógépekhez való kötődésének az, hogy nagy propagátora is volt a számítástechnikának (a matematikai, fizikai alkalmazásának). Számos előadást tartott. Ezeken kettős célt tűzött ki maga elé. Egyfelől a kormányt igyekezett meggyőzni a dolog fontosságáról (támogatást akart szerezni). Ehhez erős hátteret adott neki, hogy számos szervezetnél, bizottságban töltött be tanácsadói szerepet.
Nem kisebb feladatot jelentett - mint Nancy Stern írja - a számítástechnika (számítógépek) hasznosságáról (értelméről) meggyőzni a matematikusokat, fizikusokat, mivel sok, "tiszta" matematikával foglalkozó matematikus nagyon távol tartotta magát a numerikus számításoktól. Mástól, mint Neumann Jánostól, akinek a tiszta matematikában is óriási presztizse volt, ezt valószínűleg kevésbé fogadták volna el.
Mondanivalónkat jól támasztja alá Neumann János egyik híres előadása, amelyet 1946. május 15-én tartott a Tengerészeti Minisztérium Kutatási és Fejlesztési Hivatala Matematikai Számítások Bizottságában (Annals of the History of Computing 10/4 1989). Ezen az előadáson Neumann János igen nagy részletességgel elemzi azokat a matematikai, fizikai modelleket, amelyekhez szerinte feltétlenül szükségesek a nagy sebességű elektronikus számítógépek. Hogy megmutassuk a nagyon hosszú előadás "hangulatát", stílusát idézzünk ebből néhány mondatot.
"Igaz, hogy a legtöbb egydimenziós probléma, amely a matematikai fizikában, vagy az alkalmazott matematikában előfordul, nem kíván elektronikus sebességet. ... Azonban ha volnának olyan gépeink, amelyek két- vagy háromdimenziós problémák megoldására is alkalmasak volnának (a jelenlegiek nem ilyenek), akkor azonnal felmerülnének az igények két- vagy háromdimenziós problémák megoldására is. ... Igaz, hogy az egydimenziós hidrodinamikai problémák megoldására egy nem elektronikus gép általában megfelel. Ugyanakkor igaz, hogy a hidrodinamikai problémák a valóságában háromdimenziósak, és ha még tranziensek is (azaz nem stacionáriusak), vagyis az idő dimenzió is releváns, akkor négydimenziósak."
A továbbiakban hosszan fejtegeti a turbulencia miatti problémákat, majd azt elemzi, hogy milyen műveletszámok tartoznak az itt adódó parciális differenciálegyenletek numerikus megoldása esetén. Arra a következtetésre jut, hogy nem is túl finom felosztás esetén 3 x 108 cellát (kockát) kell vennünk. Cellánként mintegy 20 szorzást kell végeznünk, így összesen 20 x 3 x 108 szorzás szükséges. Tegyük fel, hogy a géppel egy szorzás elvégzése 1/10 ezredmásodpercig tart, akkor összesen 10-4 x 1010 = 106 másodperc, azaz 2 hét kell a feladat megoldásához. Ez azt jelenti, hogy nagyon fontosak volnának a gyors numerikus, elektronikus számológépek.
A dolgozatban (előadáson) végig, több helyen még ennél is nagyobb részletességgel elemzi a fizikai (matematikai) feladatok megoldásával kapcsolatos problémákat, és mindenütt arra a következtetésre jut, hogy ezeket csak elektronikus számológépekkel lehet megoldani.
Néhány jellemző dolgozat a "fizikus"-számítástechnikustól
Az alábbiakban szinte illusztrációképpen ismertetünk néhány dolgozatot azok közül, amelyekre Neumann János numerikus módszereket dolgozott ki, és amelyek közvetlenül is a számítógéppel kapcsolatosak.
Egy kétdimenziós hidrodinamikai probléma numerikus megoldása
A dolgozatnak öt szerzője van, Neumann János halála után 1959-ben jelent meg a Mathematical Tables and Other Aids to Computation című folyóiratban. Mint a bevezetésből is kitűnik, a szerzők a dolgozatban a Maniac I számítógépen differenciaegyenletekkel végzett számítások eredményéről számolnak be. A differenciaegyenletekkel összenyomhatatlan folyadék viselkedését leíró elsőrendű differenciálegyenlet-rendszert approximáltak. Magát az approximációt Neumann János végezte el, és egy iterációs módszert is adott az egyenletrendszer megoldására. Ezeket a dolgozathoz csatolt két függelékben közlik a szerzők (Neumann által nem publikálásra szánt, kézírásos anyagként). Az első függelék érdekessége, hogy a differenciálegyenleteknek differenciaegyenletekké történő átírását szinte számítógépes program alakjában írja le Neumann János.
Beszámoló jelentés áramlási problémák numerikus számításairól (I, II)
Ez a munka nyomtatásban (közel 100 oldal) csak Neumann János "Munkáinak Gyűjteményé"-ben jelent meg (a Standard Oil Development Company számára készült 1948 augusztusában). Ebben a dolgozatban két érdekesség van. Egyfelől egy heurisztikus stabilitási módszert alkalmaz Neumann János, másfelől - mondanivalónk szempontjából ez az érdekesebb - főkönyvelői pontossággal elemzi a számítógépes, illetve kézi megoldás költségeit. Idézzünk néhány mondatot, amivel Neumann János szokásos stílusát is illusztrálni akarjuk.
"Megbeszéléseket folytattam az IBM munkatársaival New Yorkban (590 Madison Avenue) a SSEC (Self-Sequencing Electronic Computer = önműködő elektronikus számítógép) ügyében.
Úgy tűnik, hogy ez a gép ebben az esetben néhány hétre bérelhető. Az ára előreláthatólag 300-400 $ egy ténylegesen felhasznált órára. Ezt az árat illetően az alábbi mondható:
A gép két 14 jegyű decimális számot 20 ms alatt szoroz össze. Ezzel párhuzamosan 20 ms szükséges egy gépi utasítás előhozásához. Úgy gondolom, hogy egy szorzási művelet adminisztrálásához 3-4 utasítás szükséges. Így tehát célszerűnek látszik egy szorzásra 70 ms-ot vagy ellenőrzéssel együtt 140 ms-ot venni. Ez 7 szorzást jelent másodpercenként, azaz 25000-et óránként. Óránként 350 $ mellett 1,4 centbe kerül egy szorzás.
Egy emberekből álló számolócsoport esetén 10 decimális jegyű szorzás ("Friden" vagy "Marchant" asztali számológéppel) 10 másodpercet vesz igénybe. A szorzást kísérő más műveletekre egy 4-szeres, az ellenőrzésre egy 2-szeres és az emberi gyenge effektivitás, fáradékonyság miatt egy 2-szeres faktort célszerű venni. Ez 160 másodpercet, vagyis 3 percet tesz ki szorzásonként, azaz 20 szorzás esik egy órára.
Nagyon jó számítócsoportokról szerzett ismereteim alapján ezek a számok nem pesszimisztikus becslésből adódnak. Ez 800 szorzást jelent egy 40 órás héten. 50 $-t véve egy számolóember heti béreként és 2-szeres faktort az általános költségek miatt 12,5 centet kapunk egy szorzásra.
Ez azt jelenti, hogy egy SSEC ezen árak mellett 12,5/1,4 = 9-szer olcsóbb, mint a számolóember."
A továbbiakban Neumann János kiszámítja, hogy hány embert pótol a számítógép. Figyelembe véve, hogy a számítógép heti 40 órás működése alatt 30-50 százalékos produktív időt jelent, a számítógép 500 embert pótol.
A dolgozatban ("Más számítógépek" címmel) a kifejlesztés alatt álló újabb számítógépek teljesítményét és egyéb paramétereit is elemzi Neumann János. Úgy látja, hogy az új gépek sebessége 5-50-szer nagyobb lesz, mint a SSEC gépé. Ezek naponta 16-24 órát üzemelnek és 5, esetleg 7 napot egy héten. Produktivitásuk több mint 50%-os lesz. Ezekből a számokból azt következteti ki, hogy az új gépek 10000-100000 emberrel lesznek ekvivalensek. Neumann János előrejelzése szerint ilyen gépek 1-3 év múlva jelennek meg, digitálisak lesznek, 2000-4000 elektroncsövet tartalmaznak. (A SSEC 12000 elektroncsövet és 20000 elektromechanikus relét tartalmazott, közli Neumann János ugyanitt.)
Elemzi az alkatrészek meghibásodási valószínűségét is. Nyolc óránkénti egy hibás művelet esetén műveletenként 10-12 hibavalószínűség adódik. Megjegyzi, hogy a telefonrelék 10-8-10-9 hibavalószínűséggel működnek, az elektroncsövek ennél rosszabbul. Úgy látja, hogy a 10-12-es számot nem könnyű elérni.
Úgy gondoljuk, érdekes ezeket az 50 évvel ezelőtti számokat elolvasni, különösen, ha azt is tudjuk, hogy az akkor erre legilletékesebb ember vetette papírra őket.
A numerikus megoldási módszer kidolgozása és a stabilitás elemzése után Neumann János pontosan meghatározza a műveletszámokat, és megvizsgálja, hogy a különböző számú osztópontok esetén mennyi gépidő szükséges a SSEC gépen.
"Tehát ... 170000 szorzás tartozik egy feladathoz, azaz 210 ember-hét vagy 7 óra a SSEC gépen: 40%-os hatékonyságot feltételezve a gépen ez 18 óra, azaz 2,2 8 órás nap."
Vagy másutt: "Egy »nagy« feladat, amelyben az x tengelyen vett osztópontok száma 25, a t tengelyen pedig 120, azaz m = 25, n = 120, tehát 3000 csomópont esetén 3000 x 16 s = 48000 s, 13,3 órát igényel."
Statisztikai módszerek a neutrondiffúzió vizsgálatára
A dolgozat voltaképpen egy levél, amelyet Neumann János R. Richtmyernek írt (1947. március 11. keltezéssel). A szerző által javasolt eljárás talán az első szimulációs módszer a számítástechnika történetében. A neutron paraméterei véletlen számok, a jelenség (a neutronok mozgása, ütközése, leírása ezekkel történik). Sok szó esik a dolgozatban az ENIAC számológépről, a szerző ebben a munkában is pontos számításokat végez a gépidő tekintetében. Érdekessége a dolgozatnak az is, hogy Neumann János a teljes számítási sémát (computing sheet) egy erre a célra konstruált programozási nyelven közli, amelyről azt írja, hogy ez ugyan nem "(emberi) számolócsoportnak" és nem az ENIAC számológépnek készült, de mindkettő számára jó alap. Lássunk ebből a programból (számítási sémából) néhány sort:
Mint látjuk, ez egy szimbolikus nyelven felírt program, 1947-ből.
A légáramlás egyenletének numerikus integrálása
A dolgozat 1950-ben jelent meg (társszerzők: J.G. Charney, R. Fjörtoft) a Tellus című folyóiratban. Meteorológiai előrejelzés céljából numerikus módszert javasolnak a szerzők a jelenséget leíró parciális differenciálegyenletekre, és itt is megvizsgálják a közelítő differenciaegyenletek stabilitását. A számításokat az ENIAC gépen végezték. (Érdekességként megemlítjük, hogy a szerzők a dolgozat végén köszönetet mondanak a program elkészítéséért Mrs. Klara von Neumann-nak, amiből kiderül, hogy Neumann János felesége "programozó" volt, az elsők között ebben a szakmában.)
Nagyméretű lineáris rendszerek megoldása
Ezt a dolgozatot társszerzőkkel V Bergmann-nal és D. Montgomeryvel írta Neumann. 1946-ban egy nyomtatásban 57 oldalas - beszámoló jelentésként a Bureau of Ordnance részére készült. Valószínűleg ez az első olyan munka a numerikus módszerek területén, amely "számítástechnikai" indíttatású. Azokat a problémákat veti fel, amelyek a számítógépek korszakának numerikus matematikájában azóta is a nagy problémát jelentik: nevezetesen a műveletszámok becslése és a módszerek stabilitása.
Mai szemmel nézve érdekes a cikk néhány mondata. A szerzők nagy egyenletrendszernek tekintik a 20, 50, 100 ismeretlent tartalmazókat, és azt mondják, hogy ezeket csak "nagy sebességű számológépekkel" (high speed computing machine) lehet megoldani. Gondoljunk csak azokra a számítógépekre, amelyeket akkor neveztek nagy sebességűeknek (50 művelet másodpercenként)!
Külön érdekessége ennek a dolgozatnak, hogy a számítógépek megjelenésével különösen fontossá váló problémát is felveti (valószínűleg ennyire "számítástechnikus módon" elsőként), nevezetesen a megoldási módszerek stabilitásának problémakörét. A szerzők egy numerikus eljárást stabilnak neveznek, ha a lépésenként fellépő kerekítési hibák nem akkumulálódnak túlságosan erősen. Nagyméretű lineáris egyenletrendszereknél ezek a hibák olyan mértékben halmozódhatnak, hogy a megoldási módszer használhatatlanná válik.
Egy módszer instabilitása, vagy az instabilitás mértékéről szóló információ hiánya különösen azért vetődött fel a számítógépekkel kapcsolatban, mert a kerekítési hibák hatásának egyik kiküszöbölési módja az adatok számjegyei számának a növelése, vagyis az, hogy jóval több számjegyű számokkal végezzük el a műveleteket, mint amilyen pontosan az eredményt kapni akarjuk. Rögzített hosszúsági szavakkal dolgozó számítógépekben csak adott számú számjegyből álló számokkal dolgozhatnunk. Két vagy három szóból álló számokkal speciális program segítségével lehetett műveleteket végezni, ami jelentősen meghosszabbította a gépidőt.
Az első számítógépeken a stabilitással kapcsolatban gondot okozott a gépek fixpontos aritmetikája: a feladatokat (a megoldási módszereket) úgy kellett transzformálni, hogy minden előforduló mennyiség egynél kisebb legyen. A számításban szereplő mennyiségek elosztása olyan faktorral, hogy a legnagyobb szám is kisebb legyen egynél, a kis számokat könnyen "nullává" tette. A stabilitás tekintetében ez súlyos problémát jelentett.
A numerikus módszerek jóságát illetően tehát fontos ismérv, hogy hogyan viszi tovább lépésről lépésre a kerekítési hibákat. A numerikus eljárásokat ebben a tekintetben szigorúan elemezni kell. Nagyon keveset tudunk erről, és nehéz problémának tűnik pontos becsléseket kapni - mondják a szerzők.
Nagyméretű mátrixok numerikus invertálása
Ez a dolgozatot H.H. Goldstine-nel együtt írta Neumann János. 1947-ben jelent meg az American Mathematical Society Bulletin című folyóiratban. Terjedelme és tartalma miatt is kisebb könyvnek tekinthető.
Mint az előzőekben említett dolgozatokban, itt is nem a mátrixinverziós módszer a lényeges, bár a terjedelmet tekintve a cikk nagyobb részét ez teszi ki. A szerzők is megemlítik, hogy a mátrixinverzió voltaképpen csak példa azoknak a problémáknak a bemutatására, amelyek azon lehetőség miatt jöttek elő, hogy számítógépekkel nagyméretű feladatok is megoldhatók. A nagy méret mellett a számítógépek fixpontos aritmetikája, valamint a rögzített és eléggé szűkre szabott számjegyszám is felvetette a dolgozatban elemzett gondokat.
A dolgozat első része túlmutat a numerikus matematikán, voltaképpen az alkalmazott matematika nagy alapkérdését elemzik a szerzők: a valóságos világ valamely jelenségének leírására szolgáló matematikai modell megoldása (a numerikus eredmény) a többféle típusú hiba miatt milyen messzire kerülhet a jelenség tényleges mérőszámaitól.
A dolgozaton végigvonul a számítógépes szemlélet. A szerzők több helyen is kiemelik, hogy a kerekítési hibák elemzése főleg a számítógépes feldolgozásoknál elengedhetetlen, hiszen ezeknél van lehetőség "hosszú számításokat" végezni.
Mai szemmel nézve érdekes a "hosszú számításhoz" tartozó lábjegyzet. Ebben a szerzők a következőket írják: "A teljesen automatizált elektronikus számológépek [ekkor még nem computer, hanem fully automatic electronic computing machine], amelyek két valós számot (teljesen digitális ábrázolásban) 10-4-10-3 másodperc alatt szoroznak össze, minden valószínűség szerint a nem túlságosan távoli jövőben használatba jönnek. Az olyan feladatok, amelyek megoldása 2-20 órát vesz igénybe, ezeken a gépeken típusfeladatoknak tekinthetők. Átlagszámokat véve ... egy hat órás feladat 107 szorzást jelent."
A számítás folyamán fellépő kerekítési hibák nem nagyok, de egy hosszú számítási folyamatban igen nagy számban fordulnak elő. E kerekítési hibákat a digitális számítási folyamat "belső zajá"-nak nevezik a szerzők.
A szerzők azért választják éppen a mátrixinverziót, mert a kerekítéssel kapcsolatos probléma itt igen nagy (míg a többi hibafajta elhanyagolható). Maga a feladat "elemi", de igen nagy számú elemi művelet szerepel benne.
<>
Reméljük, hogy a fentiek meggyőzték az Olvasót arról, hogy a címet helyesen választottuk meg, és egy fizikus olvasó számára jól illusztráltuk ezt a nagy életműből vett néhány "morzsával".