Virkeligheten som simuleringspill

Det begynte med atomkraft og endte med et nytt programmeringsspråk. Siden 60-tallet har det dannet grunnlaget for alle såkalte objektorienterte programmeringsspråk, enten de heter Java, C++ eller Smalltalk. Vi snakker om programmeringsspråket SIMULA

Professor Kristen Nygaard, som folk flest husker best fra EU-kampen, har vært hovedperson i to av forskningssuksessene ved Institutt for informatikk: SIMULA og Systemarbeid. Foto: Ståle Skogstad

Sagt enkelt er SIMULA et verktøy som ble laget for å kunne "etterape" - simulere - komplekse situasjoner og forløp i virkeligheten, med mange komponenter (objekter) og tilstander. Når vi i dag sitter foran PC-en og skriver, klipper, redigerer, lagrer og holder styr på en mengde objekter - tekstdokumenter, bilder, mapper og regneark - er det arven fra SIMULA vi benytter oss av. Når arkitekten sitter foran skjermen og skyver rundt på vegger, dører og vinduer, er det også SIMULAs objektorienterte tilnærming som ligger bak tegneprogrammet.

Ole-Johan Dahl

Professor Ole-Johan Dahl har vært Kristen Nygaards partner i SIMULA-prosjektet og har vært helt sentral i oppbyggingen av Institutt for informatikk. Foto: Ståle Skogstad

Dette krever en grundigere forklaring. Men SIMULAS ene far, professor Kristen Nygaard , nekter å gi den i stikkordsform. Vil du være med, så heng på! Reisen går mer enn 50 år tilbake i tiden og viser det tette samspillet det har vært mellom Forsvarets forskningsinstitutt (FFI), Norsk Regnesentral og etter hvert Institutt for informatikk.

Hvordan dimensjonere en atomreaktor?

Året er 1948. Unge Nygaard er soldat som tjenestegjør ved FFI. Krigens siste fase hadde avslørt kjernekraftens uhyrlige energipotensial. Nå var spørsmålet: Hvordan kan denne kraften utnyttes på en kontrollert måte til sivilt bruk? Også lille Norge hadde gått løs på utfordringene og var i ferd med å bygge opp landets første atomreaktor på FFI på Kjeller utenfor Oslo. På det ytre var reaktoren så nær som ferdig designet, men det største problemet var uløst: For å oppnå en riktig mengde atomspaltinger (fisjoner) som kunne sørge for den riktige energiutviklingen, var diameteren på atomstavene helt avgjørende. En gal diameter ville enten ikke gi mange nok reaksjoner, eller omvendt, kunne føre til ukontrollert kjedereaksjon.

- Amerikanske myndigheter var, da som i dag, meget redde for at atomkraften skulle komme på vidvanke, så dette med diameteren var et meget hemmelig tema. Det stod ikke i "oppskriften", vi ble nødt til å beregne den på egen hånd. Jan V. Garwick ved FFI - informatikkens far i Norge - startet med beregningene, og nå skulle jeg ta over arbeidet. Dette var før vi hadde elektroniske datamaskiner. Vi brukte papir og penn og elektromekaniske regnemaskiner og det vi kaller anvendt matematikk. Vi fant fram til de likningene som beskrev det fysiske fenomenet, og løste dem numerisk. Dette viste seg å være en tungvint arbeidsmåte. Etter hvert var vi seks-sju mennesker som arbeidet full tid. Da kom vi over en amerikansk metode som ble kalt Monte Carlo-metoden, sier Nygaard.

Virkeligheten som tombola

Denne metoden beskrev hvordan man kunne simulere, etterape, den fysiske prosessen inne i reaktoren. Der delte enkelte urankjerner seg - de fisjonerte. Det medførte at en del nøytroner ble kastet ut med stor hastighet og etter hvert kolliderte med atomene i nærheten og spratt videre til nye kollisjoner. Dersom et nøytron hadde blitt bremset ned til en passende hastighet (spesielt av atomkjernene i det tunge vannet i reaktoren) og så traff en uran 235-atomkjerne, kunne nøytronet få denne kjernen til å fisjonere. Dermed ble det utløst ny energi og nye hastige nøytroner. Det var viktig å finne det riktige gjennomsnittet på fisjonen. Et meget høyt gjennomsnitt ville gi en katastrofe, i verste fall en atombombe.

Det den amerikanske rapporten viste, var at man på papir kunne lage en beregningsprosess som kunne etterape atferden til nøytronene. Man kunne simulere banene og kollisjonene til et stort antall nøytroner og ta statistikk over hvordan de simulerte nøytronene oppførte seg i samlet sum.

- Men nå var det slik at en kollisjon mellom et passende langsomt nøytron og en passende uranatomkjerne ikke alltid ledet til en ny fisjon. La oss anta at bare 23 % av slike kollisjoner ledet til fisjon. Hvordan skulle denne tilfeldigheten, med 23 % sannsynlighet, etterapes? Det ble gjort med en "trekke lodd"- eller "tombola"-teknikk. Derfor navnet Monte Carlo-metoden.

- Teknikken kan illustreres slik: Anta at vi hadde en tombola fylt med 100 lapper, nummerert "00", "01", "02", opp til "99". Hver gang vi fulgte et nøytron og det fikk en "passende" kollisjon, avgjorde vi om det ledet til en ny fisjon ved følgende regel: Vi snurret på tombolaen og trakk en lapp. Dersom tallet var mindre enn "23", sa vi at det ble utløst en ny fisjon, ellers ikke. Hva vil gjennomsnittet bli for et stort antall slike kollisjoner? 23 % - siden det er 23 lapper av 100 med tall mindre enn 23, sier Nygaard, og legger til at de klarte å gjennomføre beregningene med Monte Carlo-metoden atskillig raskere enn med den tradisjonelle numeriske metoden. Og siden det ikke berettes om atomkatastrofe eller atom-fiasko på Kjeller i begynnelsen av 1950-åra, kan man slutte at beregningene var korrekte.

- Men ikke alle trodde det skulle gå slik. Den fargerike professor Ivan T. Rosenqvist lovet på forhånd at "han var villig til å sitte på toppen av reaktoren i bare underbuksa" når vi forsøkte å starte den opp. Han ombestemte seg dog, humrer Nygaard.

Militære taktikkstudier

Poenget er at Nygaard nå for alvor hadde fått øynene opp for at man ved hjelp av matematiske spill kunne simulere prosesser i virkeligheten. Etter hvert ekspanderte beregningsvirksomheten til å bli et "regnekontor" og midt på 1950-tallet en "matematikkseksjon" med mange dyktige folk, blant annet Ole-Johan Dahl , som i likhet med Garwick ble meget dyktig i programmeringsspråk. Nygaard gikk over i operasjonsanalyse (planleggingsforskning) og ble spesialist i militærteknologiske strategi- og taktikkstudier. I det feltet fikk han på ny bruk for simuleringsmetoder, der simuleringen etterapet adferd av våpensystemer i konflikt.

Nå var de første brukbare datamaskinene kommet, men det var meget vanskelig å lage feilfrie simuleringsprogrammer. Nygaard begynte å leke med tanken på å lage et programmeringsspråk for simuleringsoppgaver. Men han oppdaget at det han først og fremst trengte, var et språk med begreper og uttrykksformer som kunne brukes til å fastholde og forstå meget komplekse systemer, med mange komponenter i kompliserte samspill. Et slikt språk skulle brukes til å beskrive og kommunisere om slike systemer.

I 1960 kom Nygaard til Norsk Regnesentral for å utvikle operasjonsanalyse, elektronisk databehandling, anvendt matematikk og statistikk for sivile formål og bygge opp Norsk Regnesentral til et forskningsinstitutt. Det varte ikke lenge før han igjen fikk oppgaver som krevde simulering. Denne gangen bestemte han seg for å forsøke å lage et språk som både kunne være et språk for systembeskrivelse og for programmering, slik at systembeskrivelsen via et oversetterprogram kunne lage et simuleringsprogram for det systemet som ble beskrevet. Språket fikk tidlig navnet SIMULA (for SIMUlation LAnguage).

Nye moderne språk

- Vinteren 1962 presenterte jeg ideene for min venn og kollega Ole-Johan Dahl. Han hadde det jeg manglet av kompetanse innenfor programmeringsspråk, og nå startet den fruktbare prosessen som skulle munne ut i første versjon av SIMULA i 1965. Mange har spekulert på hvordan vi jobbet sammen og hvem som "eier" hvilke deler av SIMULA. Men det er umulig å splitte SIMULA, det er et produkt vi har laget sammen.

Ole-Johan Dahl ble i 1968 den første informatikkprofessor ved Universitetet i Oslo og ble den sentrale i oppbyggingen av det som i dag er Institutt for informatikk. Faglig gikk han videre i teoretisk informatikk, med programbevisføring som hovedinteresse. Kristen Nygaard har fortsatt arbeidet med objekt-orientert programmering, blant annet med det meget moderne og generelle språket BETA, sammen med danske forskere. Dessuten har en viktig del av forskningen hans ligget innen feltet systemarbeid. I dag arbeider han med utvidelser av slagkraften for objekt-orientert programmering til distribuerte og lagdelte systemer. Det skjer innen prosjektene GOODS og STAGE ved Institutt for informatikk og Norsk Regnesentral.

Liten hjelp fra NTNF

- Burde Norsk Regnesentral og Norges teknisk-naturvitenskapelige forskningsråd (NTNF) ha lagt større vekt på å spre SIMULA, blant annet ved å gi det en mer overkommelig markedspris?

- Ja, med skam å melde, jeg synes særlig at NTNF håndterte den siden av saken på en lite imponerende måte. Der hevdet man at prisen for SIMULA måtte settes slik at alle kostnader ble dekket inn meget raskt: Programmeringsspråk levde ikke lenger enn tre til fem år, ble jeg fortalt. Dette var det rene tøv. Jeg mente at programmet burde deles ut gratis til universiteter og andre vitenskapelige institusjoner, og at prisen til privatkunder burde kunne være mindre enn den halve av hva som ble krevet, sier Nygaard og trekker en episode opp av hukommelsen:

- Donald Knuth, en kjent dataforsker ved Stanford, jobbet en tid i Norge. Da han skulle reise hjem, spurte han om han kunne få med seg SIMULA for å bruke det som opplæringsspråk ved Stanford. Jeg la inn et ord for ham, men han fikk nei. Han skulle betale en sum som var langt større enn den han hadde til rådighet. Det kaller jeg inkompetanse, sier Nygaard.

- Dere fikk ingen særlig støtte fra omgivelsene?

- Vi fikk god støtte for SIMULA-utviklingen fra ledelse og styre i Norsk Regnesentral. Ellers mente folk at a) det var uinteressant, b) det var interessant, men det var gjort før, c) Ole-Johan og jeg ikke var kompetente for oppgaven, og d) slikt ikke burde utvikles i et lite land som Norge, sier professor Kristen Nygaard som i begynnelsen av februar ble hedret med ROSING-prisen - nettopp for SIMULA.

Simulering

Når vi i datamaskinen lager en regneprosess som oppfører seg etter samme regler (har samme struktur) som et fenomen utenfor, sier vi at vi utfører en simulering. Vi gjenskaper komponenter og samspill og observerer dem i et "spill" som gjentas et stort antall ganger. Har man forstått de underliggende mekanismene i det simulerte fenomenet riktig, vil også statistikken over resultatene av simuleringen gi et tilnærmet riktig bilde av det som skjer i virkeligheten.

Objekt-orientert programmering

En kan trygt si at den objekt-orienterte programmeringen er blitt den dominerende "stilarten" i verden, men enerådende er den ikke, og det vil den heller ikke bli. Har en behov for å holde orden på mange komponenter og samspillet mellom dem, enten det er dokumenter og bilder i Windows eller biler i fergekø, så er det de objekt-orienterte språkene, og andre hjelpemidlene som brukes, SIMULA eller SIMULAs barn eller barnebarn: Smalltalk, C++, Corba, Java, BETA - for å nevne noen.

Emneord: Matematikk og naturvitenskap, Informasjons- og kommunikasjonsvitenskap, Matematisk modellering Av Odd Letnes
Publisert 1. feb. 2012 12:15
Legg til kommentar

Logg inn for å kommentere

Ikke UiO- eller Feide-bruker?
Opprett en WebID-bruker for å kommentere